# Question
Title: Make device take power only from charger when the battery is full
I made a device that is up and running (screen is on) 24/7 and connected to AC charger. After only 1 year, the batteries of these devices are dead. I don't really understand since the device is directly connected to AC, the battery should be bypassed and never been used.

I made some current measurements and I discovered that the current consumed by the device is sometimes 0 for ~1 minute. So it is obvious that the battery is working because if AC current is 0 while the screen is on, it means the battery is working.

This power management does not make any sense. Is it the expected one? Is there any hack I can do using ADB commands?

thanks

# Answer
> 0 votes
"I don't really understand since the device is directly connected to AC, the battery should be bypassed and never been used.

If you mean li-ion battery, cycle use is recommended since keeping it fully charged for 24/365 may shorten its life cycle as in your case.

Since you need battery as backup only, use UPS (Pb gel battery) coming with bypass instead

---
Tags: charging
---


# Question
Title: Why is my Android activity showing up on myactivity.google.com?
I never consented to this and there was no indication anywhere that activity on my Android phone would show up in Google's My Activity. I see stuff like "com.google.android.pack" and other stuff. How do I STOP this information from being sent to Google? How long has this been going on for?

What information gets sent? For instance, I just read My Activity has detailson the photos I've taken. What kinds of details? How does `Web & App Activity` differ from `Device Information`? Does `Web & App Activity` the setting that controls whether information about apps I use is sent to Google? Does it send my Chrome browser history to Google? It looks like it controls my Pixel's default camera app, too. Is there a way to keep search history on but not the camera info being sent?

# Answer
> 1 votes
On your phone, navigate to `Settings > Google` (or Accounts and select Google account). Then click `Google Account > Data & Personalization`.

Under **Activity Controls** section you can review and turn on/off many of these tracking features. BTW, you consented to this when you skimped over the ToS Agreement and just clicked "next, next" when setting up your phone.

Each section explains what it saves/tracks.

* Web & App Activity is specific to Google Apps and Websites (maps, search, account, etc). It also includes 3rd party Apps you use on Google's OS (i.e. Android). It also includes history (i.e. Chrome History) of these apps. Thankfully, the latter can be separately disabled.
* Device Information is more for preinstalled Android apps, like Phone and Contacts, voice searches, etc.

Oh and it has been going on for years. The only "recentish" change is that logging into 1 Google Service (for example, Maps) also logs you automatically into other Google Services (like YouTube, Gmail, etc)

---
Tags: google-account
---


# Question
Title: Unlock Bootloader from EDL mode via MSMDownloadTool
**Problem**

I'd like to know the proper process of "hacking" emmc\_appsboot.mbn in order to flash already an unlocked bootloader from start. I didn't want to ask for a file from an already unlocked phone because I'm interested in the process and how it works.

**What I did**

I tried myself editing with a hex editor the line after `ANDROID BOOT!` and changed the hex from 00 to 01 but the phone was perfectly bricked :D and I had to spend some times with the drivers (Qualcomm 9008) and learning how to put it in EDL mode with the phone not even fastbooting, afterwards I was able to "msmdownload" it again reflashing everything. I can now in fastboot and recovery.

I also tried replacing the recovery, with twrp, and actually it failed when going to recovery because of the md5 checksum.

I hex-edited both md5.img and md5sum.md5 files replacing the md5 of recovery.img with the one of twrp (renamed recovery.img of course) but still, it failed nonetheless the md5 checksum.

I suppose there is some other file where these hash's are stored and are checked during boot.

Is it safe to assume that emmc\_appsboot.mbn as well is checksumed and if it fails it doesn't load at all?

What's the correct process in:

**1)** Editing emmc\_appsboot.mbn in order to unlock the bootloader

**2)** Making the system actually boot and work after we edited those files (probably security checks / hash's are involved).

**IMPORTANT:** Please do not suggest "how to unlock the bootloader" with usb-debugging etc, the well known methods that are well known, kindly

Reference : You can download here the MSMDownloadTool with all the ROM / OP3 related files.

# Answer
> 2 votes
Here’s what anyone should do if it’s in a similar situation:

Do a full unbrick method 1 from here

Download OxygenOS 4.0.0 (Android 7.0) , `OnePlus3Oxygen_16_OTA_035_all_1612310359_e10cadfb2af7.zip`.

`adb sideload` the file above when in recovery. Why this version? Because it’s vulnerable to CVE-2017-5626 and CVE-2017-5624. Weirdly enough, my phone turned back from the dead after this; however if it didn’t work (as I was expecting) , I would go into fastboot mode and unlock the bootloader from there with:

`fastboot oem 4F500301`

Which will completely bypass the oem mechanism and will unlock your bootloader even if you can’t boot the system and go to the developer menu.

This backdoor was removed by OnePlus with OxygenOS 4.0.2 (“patched”).

---
Tags: fastboot, bootloader
---


# Question
Title: How to turn my Android tablet into general Wifi IP camera with AP?
I would like to turn my Android tablet into general Wifi IP camera to be accessible as a standard wifi camera from another wifi enabled tablet, smartphone or PC.

There is a number of Android apps on Google Play, called Wifi camera, but to stream video GSM connection is required and login to gmail on both devices is required either.

All I need is to have my tablet to act as a general WiFi camera , supporting wifi pairing and access from VideoLan VLC media player via rtsp (example rtsp://10.1.1.20:554/ch0\_0.h264).

I want to stream not encrypted video at a selected resolution ( HD or above)

2. I need such appl to come with AP, I can set multicast mode, to let 2 or more devices to access the same video stream
3. I am interested to have such Android appl to feature and support ONVIF wifi camera standard to let me run more ONVIF tests.

darius

# Answer
You have a few options, What is AP ?

Do you only want Local Access ? Whereas the camera can only be connected to from the same WiFi network, Not publicly accessible ?

Or do you want Publicly Accessible ?
Whereas the camera can be accessed from another device remotely over the internet ( check on home while you're at work for example )

You can create a simple IP Camera app that works on local networks very easily, however you'll need a server to handle internet access, I use Ivideon to do my remote access.

My Setup ...

Both TinyCam.. & IP Webcam .. Offer Free Versions.

Ivideon has a free limited account, the limits should be enough for Home use.

You can also grab some Free Open Sourced Alternative's from the website F-Droid Free Open Sourced Software Repository F-Droid.org

---

**Part 2**

OK, so I've looked into IP WebCam and it uses it's own dedicated website that you can connect to locally, however I remember the app from a few years ago and behaved differently back then... Maybe Android limitations.

You can build an application for what you need, or search for RTSP Camera on Google Play,

I know that there is some because you can get libraries on GitHub that are OpenSourced .. like this one pedroSG94's RTMP-RTSP-stream-client
> 0 votes

---
Tags: wi-fi, camera
---


# Question
Title: How to remove KDE Connect app icon from Notification bar?
I have the KDE Connect app in order to connect my Android phone (Moto Z2 Play) to my Ubuntu machine. With the upgrade to Android 8, this app has a new annoying behavior in that its icon is always in the Notification bar even when not connected. (If I pull down it says "Not connected to any device").

How can I get the icon to not appear in the Notification bar when the phone is not connected to anything?

# Answer
You can choose to disable that notification by long pressing it and following what shows up there.

If you have a rooted device with Xposed framework, you can setup GravityBox and use its Notification blocked under Miscellaneous.

I, however, use MacroDroid to clear that notification (works only on Android 8.0 and above).

**Trigger**: *Device events → Notification received → Select Application (s) → KDE Connect: Text content: Matches; Text: Not connected to any device*; uncheck both the following options.

**Actions**: *Notification →Clear Notifications →* and then follow it as you did in Trigger.

**Constraints**: not required

Reboot the device, or restart the KDE Connect app, or simply run the macro by long-pressing it, followed by "Test actions".

That notification would no longer annoy you.
> 1 votes

# Answer
Excerpt taken from KDE Connect – New stuff 0x3:

> Android Oreo introduced some restrictions in regard to apps running in the background. In the future in order to be able to run in the background KDE Connect needs to show a persistent notification.
>
> To hide the notification you need to long-press it and switch it off. Other notifications from KDE Connect are unaffected by this.
> 4 votes

# Answer
On Android 9 Pie:

* long press the notification
* tap the information icon (blue "i" in a circle)
* choose "Notifications"
* uncheck "Persistent indicator"
> 1 votes

---
Tags: notification-bar
---


# Question
Title: App not installed error on Huawei Mate 9
I downloaded apk files from Chrome. After the downloads completed, I pressed `Install`. But after 2~3 seconds, it just said `App not installed`. For example, I downloaded an app called "TutuApp". It won't install and doesn't give any information on why so I can fix it.

Anyone knows how to fix this?

My phone is Huawei Mate 9 with Android version 8.0.0. I'm new to Android and a complete noob.

# Answer
There's 'App not Installed' Error on Android on Stack Overflow.

For my case, Google Protect was on, so I was unable to install app.
> 1 votes

---
Tags: installation, apk, huawei, 8.0-oreo
---


# Question
Title: How to disable device administrator that stops Settings app?
I try to disable two apps: Tasker and Applock, from device administrators, but when I tap to uncheck it, the Settings app stops. Other device admins like Cerberus can be enabled/disabled.

I sent an email to Tasker developer but received this answer:

> Have you disabled Tasker and restarted the device ?
>
> In any case, if the Settings app is stopping that's a bug in the Settings app on your device, not in Tasker, I'm sorry to say. Tasker has no influence on what Settings does when the button is checked or unchecked, and you're the first person in 6 years to report a crash in Settings from disabling the Device Admin.

**logcat via adb** shows an uncaught exception:

```
12-01 18:46:20.764 22303 22303 E AndroidRuntime: FATAL EXCEPTION: main
12-01 18:46:20.764 22303 22303 E AndroidRuntime: Process: com.android.settings, PID: 22303
12-01 18:46:20.764 22303 22303 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.DeviceAdminAdd}: java.lang.SecurityException: net.dinglisch.android.taskerm from uid 10134 not allowed to perform SYSTEM_ALERT_WINDOW
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3155)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2498)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.-wrap11(ActivityThread.java)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:148)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5459)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-01 18:46:20.764 22303 22303 E AndroidRuntime: Caused by: java.lang.SecurityException: net.dinglisch.android.taskerm from uid 10134 not allowed to perform SYSTEM_ALERT_WINDOW
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.AppOpsManager.checkOp(AppOpsManager.java:1521)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at com.android.settings.DeviceAdminAdd.onResume(DeviceAdminAdd.java:384)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1281)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.Activity.performResume(Activity.java:6335)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3113)
12-01 18:46:20.764 22303 22303 E AndroidRuntime:    ... 10 more
12-01 18:46:30.174 23612 23612 E AndroidRuntime: FATAL EXCEPTION: main
12-01 18:46:30.174 23612 23612 E AndroidRuntime: Process: com.android.settings, PID: 23612
12-01 18:46:30.174 23612 23612 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.DeviceAdminAdd}: java.lang.SecurityException: com.domobile.applock from uid 10161 not allowed to perform SYSTEM_ALERT_WINDOW
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3155)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2498)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.-wrap11(ActivityThread.java)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:148)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5459)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-01 18:46:30.174 23612 23612 E AndroidRuntime: Caused by: java.lang.SecurityException: com.domobile.applock from uid 10161 not allowed to perform SYSTEM_ALERT_WINDOW
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.AppOpsManager.checkOp(AppOpsManager.java:1521)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at com.android.settings.DeviceAdminAdd.onResume(DeviceAdminAdd.java:384)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1281)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.Activity.performResume(Activity.java:6335)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3113)
12-01 18:46:30.174 23612 23612 E AndroidRuntime:    ... 10 more

```

**Device info**

```
ro.bootimage.build.fingerprint]: [motorola/harpia_retail/harpia:6.0.1/MPI24.241-15.3/3:user/release-keys]
[ro.bootloader]: [0x8104]
[ro.bootmode]: [normal]
[ro.bootreason]: [power_key_press]
[ro.bug2go.magickeys]: [24,26]
[ro.build.characteristics]: [default]
[ro.build.date]: [Sat Jul  9 02:59:12 CDT 2016]
[ro.build.date.utc]: [1468051152]
[ro.build.description]: [harpia-user 6.0.1 MPI24.241-15.3 3 release-keys]
[ro.build.display.id]: [MPI24.241-15.3]
[ro.build.fingerprint]: [motorola/harpia/harpia:6.0.1/MPI24.241-15.3/3:user/release-keys]
[ro.build.flavor]: [harpia-user]
[ro.build.host]: [ilclbld31]
[ro.build.id]: [MPI24.241-15.3]
[ro.build.product]: [harpia]
[ro.build.tags]: [release-keys]
[ro.build.thumbprint]: [6.0.1/MPI24.241-15.3/3:user/release-keys]
[ro.build.type]: [user]
[ro.build.user]: [hudsoncm]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.full]: [Blur_Version.24.71.3.harpia.retail.en.US]
[ro.build.version.incremental]: [3]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.qcom]: [AU_LINUX_ANDROID_LA.BR.1.1.3_RB1.05.01.00.032.015]
[ro.build.version.release]: [6.0.1]
[ro.build.version.sdk]: [23]
[ro.build.version.security_patch]: [2016-06-01]

```

Is it possible to disable these device admins without resetting the device?

# Answer
> 2 votes
1. First, give that app *Overlay Permission*

Go to Phone Settings -\> Applications -\> Apps that can appear on top (in "..." overflow menu on top) -\> Check "Your app to uninstall"
2. Second, disable that app from *Device Administrators* from Phone Settings.
3. Now you can uninstall as regular app

# Answer
> 1 votes
The problem can also be solved like this:

1. Go to Settings -\> Apps.
2. Click on menu, then click 'Reset app preferences'.
3. Then go to Security settings -\> Device administrators, and deactivate the device administrator.

---
Tags: 6.0-marshmallow, device-administrator
---


title: Can I upgrade Android on my Xoom?

text:
# Question
Title: Can I upgrade Android on my Xoom?
I have a old school 32 gig wifi-only Xoom. I would like to upgrade to a newer version of Android, so I can use Chrome.

Also I got the tablet, so I could download and manage my google home devices. Is this possible without trashing the tablet?

# Answer
The newest version of Android I can find is CyanogenMod 11. Needless to say it is not getting any updates any time soon, as CyanogenMod is dead and was superseded by LineageOS. There's some guy on the XDA forums trying to build Oreo for it but let's be real for a moment; A Tegra 2 device with 1GB RAM will run Oreo like a 486 old-school PC runs Windows 10.
> 0 votes

---
Tags: motorola-droid, motorola-xoom
---


title: Unknown status bar icon - Galaxy note 9

text:
# Question
Title: Unknown status bar icon - Galaxy note 9
Today I (very briefly) spotted a new icon in my status bar. It looked like a little person icon (head and shoulder, silhouette kind of thing) with sound waves on the right (like WiFi signal but horizontal).

It was only there for a second so I wasn't able to get a screenshot but will definitely try if i see it again.

I haven't come across this icon in the 8 or so years that I've been using android and I can't think of any obvious app that it would be for. I haven't installed any apps in the last week or so either.

If it helps, I was on my Galaxy Note 9 on Oreo (8.1.0 / Samsung Experience 9.5), it is rooted (Magisk) and has Xposed installed.

Any help identifying this icon is greatly appreciated and I'll update if I manage to get a screenshot.

# Answer
> 1 votes
This icon indicates that Google is sharing location.

The same icon can be seen in Google Maps by accessing the navigation drawer and the menu "Location Sharing".

Source: AndroidCentral Forum - Person icon in notification bar that quickly disappears

# Answer
> 1 votes
As per my findings, thanks to @Firelord, this icon is used for voice-over.

There may be multiple apps that use this icon but it seems the most common would be Google Voice (which I don't have).

---
Tags: notification-icons, samsung-galaxy-note-9
---


# Question
Title: Android Emulator: Failed to sync vcpu reg Error
* **Machine**: HP ZBook 15 G3
* **Processor**: Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz, 2712 Mhz, 4 Core(s), 8 Logical Processor(s)
* **System**: Windows 10.0.16299 Build 16299
* **Android**: Studio: Android Studio 3.1.4
* **Haxm version**: 7.3.0
* **Hardware Virtualization enabled in Bios**: Yes

Brand new install of Android Studio.

I cannot run any X86/X86\_64 Android emulators. They terminate as soon as I start them with the error "Failed to sync vcpu reg". I have restarted several times and use no other virtualisation tools, although I believe the latest Haxm has solved that issue, so previous answers all suggest this.

Thanks in advance.

# Answer
> 1 votes
Do you have HP SureClick running? I had the same problem on the Zbook Studio x360 G5 until I disabled it.

---
Tags: avd-manager, intel-haxm
---


# Question
Title: Change an app language without changing the system language nor rooting the phone
i have a phone the language of which is English. I also have a Mi Band 3 on which I have installed Arabic package to be able to see my friends' messages in Persian (using the same characters as Arabic). If I want the Mi Band 3 to use the Arabic language characters, the language of my phone must be changed to Arabic to make the language of Mi Fit application also Arabic, and I know for sure that I don't want such a thing. How do I change the language of a single application (Mi Fit here) without rooting the phone?!

# Answer
What you mention is strange. I do not have Arabic, but what I have likely applies to it.

There are at least three different places where the language (and alphabet, if different) may be relevant:

1. System language/alphabet.
2. Input language/alphabet.
3. Displayed messages language/alphabet.

I have two language/alphabet combinations as input (Samsung Keyboard), but I do not have both languages for the system interface. That is fine, as the first two item are covered by completely different settings.

As for displayed messages, I found no problem in WhatsApp and Viber showing messages in a different alphabet. It is not up to any configuration of my phone. It is up to the sender to have that alphabet as an input choice.
> 0 votes

# Answer
The intelligent wrist band (mi band 3) adapts it's language with the language of the application Mi Fit with which it is paired. The Mi Fit application gets its language seeing directly from the display language of the phone. Therefore, if I set the phone language as English, the Mi Fit application and also the Mi Band 3 will be set English, and the messages in other languages (e.g., Persian) will not be shown on the band.
> 0 votes

---
Tags: applications, languages, mi-band-2
---


title: Calendar notification - no sound

text:
# Question
Title: Calendar notification - no sound
On Xiaomi Redmi Note 4 with MIUI 10, Android 7 there is no way to enable sound for calendar notifications, I get vibrations only. I have tried several calendar apps including Google, MIUI, aCalendar+, various settings including setting battery optimisation off but it never plays a sound, it only vibrates.

When I press TEST in aCalendar+ notifications settings it vibrates but makes no sound and provides no further help. Of course my sounds are on and I have even tried to turn off bluetooth. I have no SD card, all sounds are stored in internal memory.

Notifications form WhatsApp or Facebook messenger work well with the sound.

Any hints?

# Answer
Finally figured it out by browsing and reviewing all available settings.

There is an entry **Notifications and status bar** under **System & Devices** menu. There is an entry **App notifications** and I have enabled everything for *aCalendar+* there. Now notifications come with sound finally.

Those settings are quite complicated especially for former Windows Phone users where such stuff worked out of the box.

A good article about the problem is here.
> 1 votes

---
Tags: notifications, 7.0-nougat, calendar
---


# Question
Title: Which part of Android directories contains so-called proprietary blobs?
When building AOSP (Android Open Source Project) or LineageOS, there is a tool named breakfast. It downloads proprietary blobs and integrates them to the source tree.

I have read this article, does it mean all of the blobs are under `/system/vendor/` directory?

Do those binary files also exist in Android filesystem? And where are they?

# Answer
Yes, binary blobs are part of Android filesystem. Android can't boot without them as they are kind of hardware drivers for the device. Most of those are found under `/vendor/lib(64)`, some also under `/system`, `/etc` and `/bin`. Before Android Treble, `/vendor` wasn't necessarily a partition but a symlink to `/system/vendor` directory. Starting with Oreo, `/vendor` is a partition, containing all content related to `OEM` and `SoC` vendor. Most of the blobs are executable files or libraries, run as independent services on boot. See this sample proprietary-files list.

In addition to that, the first partition (usually labeled `modem`) on eMMC contains Radio/RIL related firmware. Another partition `dsp` contains Qualcomm's *Digital Signal Processor* related binaries. They aren't built with ROM but are part of Android filesystem tree, mounted at `(/vendor)/firmware` and `(/vendor)/dsp`. Their execution is isolated from the rest of the device.

Many partition related to bootloaders are in themselves complete binaries, such as `aboot`, `sbl`, `rpm`, `tz`, `cmnlib`, `devcfg`, `keymaster`, `lksecapp` on Qualcomm devices. Those aren't mountable filesystem, but directly executed by bootloaders during boot process. All of them are proprietary binary blobs; the closed-source part of Android devices.

**PS:** Android (a superset of AOSP) isn't a generic OS which can be installed on any hardware like we do on PCs. *Support for the hardware is locked down to proprietary binaries (HALs) by the OEM and/or silicon vendors.* So the binary blobs are critical, and the open-source AOSP (including modified Linux kernel source provided by Google) is of no use without hardware drivers. And the manufacturers rarely document the working of their hardware so that developers like Replicant can implement an open source driver. There is very small set of hardware components on Android devices that you can expect to be handled directly by making syscalls to kernel as is the case on PCs. The only notable addition by SoC vendors / OEMs to generic kernel source already modified by Google <sup>(, )</sup> is the handling of non-discoverable devices (defining device nodes). Rest of the hardware related stuffed is handled in userspace through binary blobs.

**Further reading:**
> 6 votes

---
Tags: file-system, lineageos, aosp
---


# Question
Title: Why are third party apps entirely excluded from USB OTG since Android 7?
Android KitKat rendered SD cards next to useless for writing, but did not affect USB-OTG at all.

Android 6.0 put USB OTG into read-only, which can be a good thing, but sometimes, I want to write to OTG.

Android 7.0 entirely hides OTG from anything else than Google built-in Stock File Manager, **which is not even nearly as good and functional as ES File Explorer *from 2012.*** (yes, 2012. No typo here.)

Is that for security reasons? But what if I actually want read/write OTG access?

What's next? Removing Internet access for security reasons?

# Answer
Though my phone could have Android 7, I've stuck with 6 because of compatibility with a few Xposed modules so I don't know if this helps you, but a file manager named MiXplorer has it's own OTG driver, so *maybe* it could r/w your OTG device. By default this is disabled, you need to turn it on in the settings.

Please let me know if it did work for you
> 1 votes

---
Tags: external-sd, sd-card, file-management
---


# Question
Title: How to restore phone numbers from contact.list file to my phone
I made a backup using tunesgo software which turned to be a scam, I couldnt restore the backup I must to pay for them 40 dollars!

I managed to extract the bak file using winrar but my Xiaomi mi max cant read the contact.list file and I cant get my phone numbers back. please help

# Answer
> 2 votes
So I have a solution but it is not totally able to re save them on your phone,you will only be able to save them in a word file

1-convert the .bak (backup) file to into zip file by renaming it and changing the last word after the dot from .bak to .zip

2-unextract the zip file with winrar , open the folder and you should find contact.list file,leave it. open a new document notepad , choose open and click on the "contact.list" file to open it in the notepad text

3-now select all and copy them into a word file,you can search for your numbers or specific contact by the search and replace tool of the microsoft word.

---
Tags: contacts, backup, restore
---


# Question
Title: How to paste text between existing words?
When writing on Android, such as YouTube comments, I sometimes need to change word orders or paste words. Cutting an existing word is easy: just long press the word and then select "Cut". But I have been having difficulties in pasting the test at the right position.

For example, let's say that I have copied "vicious" in the clipboard, and I want to paste it into an existing sentence "I saw a dog." between "a" and "dog". If I try to long-press the space between "a" and "dog", the word "dog" gets selected. I can then select "Paste", but then the current selection gets replaced by it, which is not what I want. I cannot find anyway to past a word without selecting anything.

I am using Gboard (Google Keyboard).

# Answer
> 2 votes
1. Select the Google symbol in the top left of Gboard.

2. Select the `-I-`.

3. Use the arrows to move the cursor where you want to paste the word. Select paste.

---
Tags: text-input, copy-paste
---


# Question
Title: How can I add a system service to Android?
Me and another person are attempting to enable NFC on the Verizon Wear24. The watch itself has a PN548 NFC chip inside of it and was missing the kernel drivers as well as the NFC service.

We have found some older answers on SO.com about adding system services (which is what we need to do) but these were written in 2011-2013 (6 years ago as of writing this) and specific to Android 2. Most of the things these answers refer to don't exist on our ROM.

One issue is that we don't have any source to build from -- WearOS is closed source. We can only edit the existing ROM contents.

# Answer
You need to build a system application if you want it to be permanent.. Their is other ways to implement the service, like using init.d and some shell commands to be run at each boot ..

However the easiest method would be to build a simple Auto Start application that starts the service.

I found this answer on SO about building an Auto Start application that also starts a new service...

> Answer on SO

It's fairly easy to build... Once you've built the application, try to install it in the system/app folder and see if everything works... You may have a locked system and can not modify the system apps...

So you will need to use a command list that is run on each boot,... Init.d script should do that.
> 0 votes

---
Tags: 7.1-nougat, android-wear, services
---


# Question
Title: Is there an app where you can control your phone w only hardware buttons
My phones touch screen is broken, it only responds for like 2 secs everytime i turn on with power button. Need somethin like double press vol key equals swipe left, and other key is right. Hold for swipe down up. Thankss

# Answer
> 0 votes
I don't think so.

Use bluetooth to connect something like gamepad or keyboard to control your phone, but I should have changed screen or bought a new phone.

# Answer
> 0 votes
If your phone has OTG,

* Plug in a USB Mouse & Keyboard.

---
Tags: broken-screen
---


# Question
Title: How to set my wallpaper from my Dropbox?
I have copied a bunch of images into my Dropbox on my pc and sync'd them to my phone. Does anyone know how to use these images for wallpapers on my phone?

The only way I can think of is that I can use something like Astro to copy the file to my gallery locally on the phone, or to share my dropbox pictures folder on the web and browse to it.

Although copying the file into dropbox and then copying it again seems crazy. Is there a better option?

# Answer
> 2 votes
You're right I just played with trying to set a Dropbox image as my wallpaper, and can't believe that there isn't an easier way. Part of the problem seems to be that if you Open a dropbox image, it isn't sent to the Gallery or the system default image viewer (which would let you do things like set as wallpaper) but Dropbox uses its own (HTML?) viewer.

There are feature requests in Dropbox's "Votebox" that are requesting features that would fix this. It's probably worth heading over there and letting them know that you'd like this feature, this option looks like the most likely (but you can just go to Votebox and search for Android to see all the relevant ones):

Add Dropbox photos to Android gallery

**Update:** If you download photos from Dropbox, they do appear in the gallery in a folder called "Photos". Now that they're in the Gallery, you can set them as wallpaper the same as normal. You might need to force the media scanner to start before they'll show up in the gallery, this previous question has options for forcing that to run.

# Answer
> 1 votes
When I select an image from Dropbox, it opens to be viewed. Then if I press *and hold* the image, I'm given the option to Open, Download, Share or Delete the image. If I choose Open, the image opens in a view similar to the Gallery in which I can press menu, then Set as and finally, Wallpaper.

This still requires several steps but you never have to actually download the image from Dropbox.

# Answer
> 0 votes
HTC One V phone. I e-mail the photo from Dropbox to myself. Open pic, press, hold, release and your options are there. Set as wallpaper and photo saves in gallery (all photos) or just download.

# Answer
> 0 votes
Well, I am several years late, but just in case someone is still looking for a solution for this, I will leave this app here, that I have just found:

https://play.google.com/store/apps/details?id=it.simonesessa.changer

It seems to get the job done, and even has settings for ordering and shuffling. (It's a bit confusing whether you need to pay if you only use one account, I'm not sure whether it stays free after the trial period or not.)

# Answer
> 0 votes
I know is is an old question but it seems Dropbox still hasn't fixed this. I managed to find a way to do it through Photos:

1. Open Dropbox and find image
2. ...
3. Export
4. Upload to Photos
5. Upload (Photos account must be setup)
6. ... (Top right)
7. Use As
8. Wallpaper
9. Tick Set Wallpaper

Done

# Answer
> -1 votes
Open dropbox view camera uploads press circled arrow of chosen pic, select more, then select open with, choose 'gallery' wait for jpg to open then press your own phone menu button ( in samsung bottom left corner) select set as then proceed for wallpaper or home screen. :)

---
Tags: gallery, wallpaper, dropbox
---


# Question
Title: How do I import a KML route into OsmAnd?
I created a route using **Google Maps** and exported it as a KML file. I would like to import now this KML file into **OsmAnd** so I could check where I am.

So far I found out that it is possible to create a map from a KML file with theOsmAndMapTileCreator program. However, I cannot find one, all I have is OsmAndMapCreator -- and this program does not allow me to import KML in the first place (at least I don't see such option at all). Thus, I cannot prepare a map for OsmAnd (from KML; in general I prepared regular OSM map for OsmAnd using this program).

Since I didn't find any working solution with true off-line KML route imported, I use Google Maps with a pre-loaded route. There is a catch though - if I forget it is cached, and I switch anything in Google Maps I will lose this route when biking. So it is not reliable enough -- just workaround.

The bottom line is -- I have KML file, I have OsmAnd, I would like to import the former into the latter. How do I do it?

# Answer
I almost forgot about my own question, meanwhile I found perfectly working solution -- simply converting KML into GPX with GPSBabel: http://www.gpsbabel.org/

It is open source, which is great plus for me.
> 8 votes

# Answer
I use GMap2GPX.

It loads some JavaScript into the running tab to do all the work. It's fairly easy to use, just follow the instructions on the site. Use "extract full" to generate a reasonably accurate .gpx file (the basic file just has turn-by-turn instructions and little data besides).

Note: Only use it in an incognito instance for added privacy. You must not be logged into Google using Chrome (or it won't work for security reasons). Just launch an incognito instance via "ctrl+shift+N" and do it again there.
> 2 votes

# Answer
Try using JOSM and OpenData plugin. To install it just go to preferences(F12)-\>plugins-\>search "opendata" and install. After importing you can (as far as I know) save it as \*.osm, and then use OsmandMapCreator
> 1 votes

# Answer
Since osmand is about offline maps, I'd like to provide an "offline" solution as well. Basically, you want to convert the kml file to gpx format, and make the gpx file available to osmand.

You can use gpsbabel to convert the kml file to gpx, which is free/open-source, and is available for most platforms, and is probably in the main repository of your favourite linux distro. On linux, it's as easy as running the following command, changing out file.kml and file.gpx for your filenames:

```
gpsbabel -i kml -f file.kml -o gpx -F file.gpx

```

You can then put the gpx file in the `/sdcard/osmand/tracks/` directory on your Android device, and osmand will make it available to display, etc.
> 1 votes

# Answer
I just tried Globalmapper v17 to convert KML to GPX. How to do: Open KML file in Globalmapper. Then go to "File \> Export \> Export vector/lidar format" Change options as needed. Save to a desired directory.
> 0 votes

---
Tags: maps, osmand
---


# Question
Title: Blocks all calls not going through Google Voice?
Not sure if this is the correct place to ask, but is there a way to prevent anyone from calling my Android phone directly, so they all incoming (and perhaps outgoing, but incoming is most important) calls must be filtered through Google Voice?

# Answer
> 3 votes
I suppose one way to do this would be with a general call blocking app. I use Mr. Number Call Block on my phone, and you could set it up with the following rules:

1. Block all calls
2. Add your GV number as an exception to the blocking rule

That should allow you to basically block all calls that don't originate from you GV number. The downside to this would be that blocked calls wouldn't get forwarded through GV's call service, but rather would get sent to voicemail (or you could choose to have it automatically answer-\>hang up to block the calls completely).

For outgoing calls you should just be able to use the settings in the GV app. My EVO has an option do use GV for all outgoing calls, though I'm not sure if other phones do, to be honest.

# Answer
> 2 votes
Not blocking *per se*, but depending on your carrier you can have your regular number always forward to your Google Voicemail.

Some information here: http://www.google.com/support/voice/bin/answer.py?hl=en&answer=164652

and here: http://www.google.com/support/forum/p/voice/thread?tid=00a93855af6943b4

# Answer
> 0 votes
here's a thought. block all incoming calls, except for ones with your GV number. Set your GV Cid to GV number, then use GV call screen function to tell who is calling. note, though, callers will only be asked for their name, if they call from a number not in your Google Contacts.

As a side note, thinking of setting my fiance phone to this, as her sister won't use GV, thus eating up her minutes.

# Answer
> 0 votes
Disabling the phone permission of the Phone app might help.

In Android 6.0, go to Settings \> Apps \> (Gear Icon in right corner) \> App permissions \> Phone \> Disable Phone, then restart the phone.

Afterward, I was able to make and receive all calls with Google Voice only, without losing data functionality

To be more specific, I was using a Motorola G Turbo Edition.

---
Tags: calls
---


# Question
Title: What is the best way to ensure adb access if a screen breaks?
I just broke the screen on my OnePlus 6, which doesn't allow adb debugging until you change the USB Connection Type to 'MTP' (via the screen), and their repair service states they will wipe any device they are sent, no exceptions. I didn't unlock the bootloader, and so unlocking it to flash a different recovery will also wipe the device. It also removed adb over wifi, so it appears it is completely locked down.

On my next phone (Razer Phone 2), I want to ensure this never happens again. I am concerned that potential Android updates may also require screen interaction before it will allow adb over USB, or that adb over wifi may be removed.

What is the best way to ensure that I can maintain adb access without screen interaction in the case of a future breakage?

I plan on:

* Unlocking the bootloader right away, so that worst case I could flash a custom recovery like twrp that would allow adb access
* Enabling adb
* Authorizing at least two computers
* Setting the default USB mode to MTP (if possible)
* Enabling adb over wifi, but ONLY if I can lock it down

Regarding adb over WiFi, I don't want this fully enabled on every network I join. Is there a way to whitelist only my home WiFi, or to only allow it from authorized computers?

I'm looking for ways to not lose access like this in the future - I have to order a replacement screen and repair it myself in order to try and retrieve the data. It's also important to me that I don't lose access via any system updates in the future, though this is difficult to ensure. Perhaps a nandroid backup of a system with everything ready that could be restored through the recovery?

In devices like the OnePlus 6, that have removed adb over WiFi and require touch input to adb over USB, what are the viable options?

# Answer
This could be a problem with the installed drivers if you need to switch to a data transfer mode such as MTP to use adb. I use adb on charging only in data transfer mode, which is status-by-design, in OnePlus 6.

For the broken screen issue, I don't know if this would help. You could try with an OTG cable and a mouse to see if it works automatically. There is an OTG toggle in Settings app so it might be the cause if this approach doesn't work as plug-n-play.

As for your approach on your new phone, understand that adb over wifi is safe. Whether on wifi or on USB, your phone would show an authorisation approval dialog to approve a machine (PC) for USB Debugging, be it on USB or Wifi. So you need to careful more on what machine to allow for, instead of restricting the access over a specific Wifi.

However, it is possible to mistakenly authorize adb over wifi when unsuspecting that the dialog would show up suddenly, say when you were playing a game and so deeply engaged that you just nearly click anything as ok that shows up on screen, so for that you would want to restrict access to adb only on your personal wifi with trusted machines.

Now for that, you can use automation. I use Tasker app to automatically enable adb over wifi on boot. For your case, here are the instructions (tested with a rooted OnePlus running Android 8.1):

1. Profile: State → Net → Wifi Connected (requires Location permission and Location enabled at all times):

* SSID: select your SSID/WiFi's name
    * Active: Yes
    * leave the rest untouched
2. Task: Code → Run Shell:

* Command:

    ```
    setprop service.adb.tcp.port 9999
    stop adbd && start adbd

    ```
    * Tick *Use Root*
3. Long press the task next to profile and select Add Exit Task.
4. Exit Task: Code → Run Shell:

* Command:

    ```
    setprop service.adb.tcp.port ''
    stop adbd && start adbd

    ```
    * Tick *Use Root*

Now, as long as location service remains enabled, Tasker would detect when the phone gets connected and disconnected to your SSID. When connected, adb would be listening over your WiFI on port 9999 (choose any port of your choice but above 1024). When the WiFi disconnects from that SSID, adb would not listen on a port.

---

If you plan to use TWRP than even if a system update messes up with your USB Debugging settings TWRP would always grant you access to debugging automatically as it works independently of Android system installed in the device. You don't need to change data transfer mode there either. If you need to do it, something is definitely not right. Furthermore, if you have TWRP installed than you have deeper access to your data that which adb can never have so you need not to worry about debugging in Android if TWRP is available and kicking.
> 1 votes

---
Tags: adb, data-recovery, broken-screen
---


# Question
Title: Backing up Android device on Windows via wireless
I need a way to back up my whole Android device on my PC, which is running Windows 7.

I don't have USB cable for my phone, but I have wireless router, so my best option is using Wireless connection.

I have encrypted my rooted Nexus S device, and now I am locked out of accessing SD card via recovery. The only way to decrypt my device is Factory data reset, which will erase all data on my phone.

Before doing that I need to backup all my SD Card content, Apps, App data content to my PC. I need something much like Ultimate Backup Tool, but instead of recovering data through USB cable, using wireless instead.

# Answer
> 2 votes
Summing up the solution from the comments and expanding:

This process basically includes two steps:

1. Create a backup
2. Transfer it to the Windows PC wirelessly

A further pre-condition for the following is that the device is rooted, which is the case here.

---

## Create the backup

Depending on what you need to backup, there are different good solutions available (you can see the backup tag-wiki for more information):

All three options store their backups on the SDCard. So if your device features a microSD slot, you could even simply take out the card, and attach it to your PC using a card reader. This generally works without a cable, and such could also count as "wireless" :)

One thing you might need to care for manually are the media files, and other downloaded/manually created stuff. Usually, this is stored on the SDCard as well – but that could be the internal one, so in case of the "card-reader option" you might need to copy stuff to the external card manually, which can be done with a good file manager such as ES File Explorer.

---

## Transfer via WiFi

Now for the WiFi transfer. This can be done with the just mentioned *ES File Explorer*, which includes a "Samba client" to access Windows shares: Just share a drive from your computer, and then copy all files over. This also can be done "the other way round", *pulling* the files: with e.g. Airdroid you can access your device from any web browser. *Airdroid* includes a file manager, and lets you upload and download files.

Another more elegant variant, especially if you want to automate things, is to use a sync tool. Here you might want to take a look at FolderSync: As the name suggests, this app lets you synchronizes files and folders. Like with *ES File Explorer*, you can use Samba/CIFS here to access a Windows share.

Elegant permanent solution: Set up scheduled backups with *Titanium Backup*, and set up a matching sync interval for TiBu's backup directory with *FolderSync*. That way you always have an up-to-date backup off-board your device, in case of brick/loss/whatever.

# Answer
> 3 votes
In my opinion the best and easiest no-cost and nag-free method of backing up \[some or all\] files from your Android to a Windows machine, uses an underappreciated feature of ES File Explorer, along with any FTP client software for Windows (my preference is a free download of Filezilla.)

1. Download & install **ES File Explorer** from the Google Play store. (Documentation at bottom of post)
2. Download & install **Filezilla** from Filezilla-Project.org. (Documentation at bottom of post)
3. In **ES File Explorer**:

* Tap the "**hamburger menu icon**" (at the top-left of the screen) to open the menu
    * Slide down to find and tap "**Network**" and then tap "**View on PC**"
    * Tap "**Turn On**" (at the bottom of the screen)
    * Note the **IP address** and **port number** that is displayed.
    (The port number is the number to the right of the `:` colon.)
    * Click **Connect**.
4. In **Filezilla**, you need to create a new connection to the IP and Port Number you were given.

* Click the first toolbar button to open the **Site Manager**.
    * Click "**New Site**" and then fill in the values on the first tab *as shown in the image below*, and then click **Connect**.
5. Create a **destination** folder on your computer, where you want to store the backup.
6. You can now **copy files by dragging them** between your Android (in the right-side of Filezilla) and Windows (the left-side of Filezilla, or directly to desktop or other folders/shortcuts).

> Note that Windows has alternative (less user-friendly) ways to open FTP folders that do not require an FTP client, such as typing the FTP address & port number (exactly as shown by ES File Explorer) directly into the **address bar of any browser**, or by adding a new **Network Location** in the "Network & Internet Settings" in the Control Panel.

---

# More Information:

---

## **ES File Explorer**:

---

## **Filezilla**:

---
Tags: wi-fi, backup, encryption
---


title: Android and battery issue

text:
# Question
Title: Android and battery issue
Recently purchased a new cord and box. It is now flashing on/off on the battery feature. Help It is also not holding the charge

# Answer
> 0 votes
The question needs to be more explained! But still, I will try to answer your question.

If you have recently bought it and you are facing problem then there is a strong chance that you have got a faulty product. And you can't recognize the problem by your self because it's more likely faulty in hardware. So, what I recommend is to try another charger if you have it already or just spend a few dollars to get a new one.

Also, there may be a software glitch that preventing the charging. Try to update or reset the phone. Doing these will give it a fresh kick. And if you are still not fixed then I highly recommend following my one of the article. I have pretty much explained about battery issues along with fixes.

---
Tags: battery
---


title: Troubleshooting wifi issues

text:
# Question
Title: Troubleshooting wifi issues
Suddenly the wifi of my Xiaomi A1 stopped to connect my home's wifi :-/

There is no update, either phone or router, I'm aware off. But at some point yesterday I realized I was not connected. So I tried to manually connect. First weird thing, Android doesn't have the password saved. I enter again the password, and I just get "failed to connect".

All the other devices (iphone, ipad, macbook, google home, chromecast, etc.) keep working as normal.

I've rebooted the router just in case, but no outcomes.

Any idea how can I troubleshoot that?

# Answer
> 0 votes
As discovered in the comments thread, my issue looks to be a hardware issue on the phone itself.

---
Tags: wi-fi, connection-issues, xiaomi
---


# Question
Title: ES File Explorer Remote Manager is gone?
I've lost the option to send files to my device using ES file Explorer. Until yesterday, I would open ES file Explorer, go to Network, Select Remote Management and turn it on. From there, I could transfer files from my PC using FTP.

Yesterday, I couldn't connect using FTP. I opened ES file Explorer, went to Network, the option for Remote Management is gone. If I select FTP under Network, it no longer gives the option to turn it on or off.

I've tried uninstalling ES File Explorer, but still have the same problem. Would appreciate any suggestions.

# Answer
Its not, in newer versions of the application it is located under Network → **View on PC**; and it can be started/stopped using the interface provided under that option:

Alternatively pulling down the notification also brings you to the interface where you can stop the server.

The other FTP option you mentioned is not an FTP sever instead it is an **FTP client** that allows you to view the shared folders (from other devices/servers) via FTP.
> 2 votes

---
Tags: es-file-explorer
---


# Question
Title: Problems after rooting with TWRP and SuperSU
I'm having some problems with my Samsung A3 2016 (A310F), on Android 7.0.

I rooted the device using Odin3 v3.12.3 and flashed TWRP 3.0.2.1 SMA310, and then installed SuperSU v2.76 using the TWRP that had been installed.

Unfortunately, whilst the phone had become rooted, there were a number of problems with the device. The Wifi button became stuck and greyed out in the "off" position, the camera wouldn't work, SD Card storage is not showing, and when connecting the phone to my PC via USB it doesn't open Explorer like it did before rooting (I can see it in Device Manager, but it is impossible to access the phone). Furthermore, the phone cannot access the Internet using mobile data either.

I have tried to clear the Cache and Dalvik Cache via TWRP, and reset network settings, neither of which has worked.

My research has suggested that perhaps SuperSU v2.76 is the problem, and that I would need to use SuperSU v2.82. However, I cannot find any way to get SuperSU v2.82 onto the device.

I suspect I need to start from scratch somehow, but I'm very new to Androids and rooting and I'm not sure what to do.

Can anyone please give me some advice?

# Answer
> 0 votes
In case anyone else has the same issue, I managed to solve the problem.

I unrooted the phone using the option in SuperSU, and then flashed the device with the stock firmware using Odin.

This fixed all the problems, and allowed me to successfully connect the phone to the PC via USB.

It turns out SuperSU was problematic, and that Magisk is a better solution for this particular firmware.

So I placed the latest Magisk build on the phone via USB, then used Odin to put TWRP back on the device. Then, from the TWRP Recovery menu, I installed Magisk.

After this, I installed Magisk Manager from GitHub.

The phone was successfully rooted after this point, and all functions are working properly.

---
Tags: wi-fi, samsung, usb, twrp, supersu
---


# Question
Title: How to fix phone booting only into fastboot mode after flashing a custom ROM?
I have a Wileyfox Swift and I have tried to install lineageos 15.1 by following the tutorial that can be found on the lineageos website. I have successfully installed adb, twrp and used it to install the zip file that contains the lineageos files.

After installing the zip file, the phone only boots on what I think is the fastboot screen (shown below) which gives me the following options:

* Start : this will boot on the fastboot menu
* Restart bootloader : this will boot on the fastboot menu
* Recovery mode : this will start twrp
* Power off : this will power off the phone

Before installing the zip file, I have always checked the md5 file to make sure that there had not been a problem in the downloading process. I have tried to install crdroid but with the same result. I have also tried to install numerous version of lineagos but it does not work either. I have read online that this issue could be resolved by pressing for a long time on the volume down/power button but it didn’t work.

I have run out of idea and am wondering if anyone has any idea on how to resolve this issue?

# Answer
> 2 votes
Old thread, but helped me fix my Wileyfox Swift as well.

I had the same issue - followed the TWRP route, erased and loaded the new image. On restart, the bootloader refused to load the system, just went round and round. Speculation on my part, but this might have been because some of us had to "patch" the 'fox bootloader to get the Android 7 update to load in the first place.

The links on the facebook page posted by Bo Lawson (thank you) are still active at the time of this post. I selected the "last" cyanogen release (see the Swift links, used ZNH2KAS7EB).

TWRP was already on, so I booted to recovery, used adp to push the file SW27-WF-CRACKLING-CM-13.1.5-ZNH2KAS7EB-RECOVERY.zip to /sdcard, then used TWRP to install it. This also replaced the "new" bootloader. The old Cyanogen image booted without issues, so just turned on USB debugging, then rebooted to bootloader.

Fastboot flash'd recovery with TWRP(3.2.3.0) again. Rebooted to recovery, then installed the replacement image (not Lineage, but e.Foundation's beta).

Works! ...and there was much rejoicing.

---
Tags: boot, fastboot, lineageos
---


title: Call history issue

text:
# Question
Title: Call history issue
Few of my contacts are receiving a call from my number, which is getting recorded in their call history. But I don't have dialed their number nor does my call log shows the call at times the call goes to people whose number is also not saved.

How is it possible? What could be the issue?

# Answer
You might be having a rogue app with permissions to make calls (android.permission.CALL\_PHONE) without user intervention and modify call log (android.permission.WRITE\_CALL\_LOG). Unless a competing and more compelling reason emerges I suggest you single out apps having those permissions and uninstall them until you no longer have this problem.

User Izzy maintains a very good list of permission checker apps which you can use to list permissions used by the apps. I use aSpotCat and I am giving instructions accordingly.

In the third image you need to touch those pointed entries to load the apps having the aforementioned permissions.
> 0 votes

---
Tags: call-history
---


title: Cannot install / update apps

text:
# Question
Title: Cannot install / update apps
Since a short time ago, I cannot update / install apps.

E.g., if I try updating a given app, it is downloaded and shown as installing.

But as soon as the installation finishes, it shows again as available for updating, and I keep having in my phone the same "old" version.

What can be the cause, and solution for this? (I mean not to factory reset my phone...)

Could it be related to some setting in Settings -\> Apps -\> Special Access -\> Apps that can change system settings ?

Using Samsung J7 Prime, Android 8.1.0

# Answer
> 3 votes
Here is a detail step by step that will hopefully keep you from doing a factory reset. There's a couple things to touch on before beginning. Placing your phone in airplane mode will ensure updates don't start until you finish the entire process. If you are rooted disable all applications that require root (Task & Scripting Apps, Firewalls, Adblockers, etc) Also anything of that nature for non-root, any 'run at boot' type App. Feed Readers, Podcast Apps, basically anything that wants to sync on reboots and/or connection changes.

* First be sure that you have plenty of storage to proceed. More than 1 Gb *at least* should be free on your internal memory
* Also be sure your SDcard is working correctly.
* Eject & remove your SDcard, then re-insert it.
* Reboot before starting this procedure, we're trying to get everything in the freshest state possible.

1) **Turn Off & Reset Networking**

```
 1. Turn ON airplane mode.
 2. Open the Settings App.
 3. Under the "Wireless & Networks" header tap More > Reset Network Settings.
 (Samsung: Settings > Connections > More Connection Settings > Reset Network Settings.)

```

2) **Remove Google Account**

*This will remove Information linked to your account until you re-add your account Make sure you backup important information before this step*

```
 1. Open the Settings App.
 2. Under the "Personal" header tap Accounts. (No header on Samsung)
 3. Tap Google > Select the account you're using with Google Play
 4. Tap More > Remove Account.

```

3) **Clear Cache & Data from Download Manager**

```
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Download Manager.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.

```

4) **Clear Cache & Data from Google Play Services**

```
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Google Play Services.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.
 8. (if available) Tap Uninstall to uninstall system updates.

```

5) **Clear Cache & Data from Google Play Store**

```
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Google Play Store.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.
 8. Tap Uninstall to uninstall system updates.
 9. Repeat these step for all other existing Google apps. **Backup your data**

```

6) **Things to check in the Setting App before rebooting** Use the Search in the Settings App, some of these may not be found in every Android version.

```
 - Reset App Preferences in the Apps settings menu.
 - Reset Permissions in Privacy Guard and set it to OFF.
 - System Profiles are set to OFF.
 - Developer Options are set to OFF.
 - Under the "System" header tap Accessibility, Switch all to OFF.

```

7) **Reboot, Connect & Sign-In**

```
 1. Power on / Reboot your Device.
 2. Open Settings > Display > Screen Timeout. Set it to Never.
 3. Plug your device into a power source.
 4. Allow a couple minutes to pass then turn OFF airplane mode.
 5. Turn Data off.
 6. Open Google Play.
 7. Choose your network.
 8. Sign into your Google Account.
 9. Tap the Home button.
10. Set your device down for 10-15 minutes and let Google process updates, sync, etc.
11. Reboot and access Google Play as you normally would.

```

All information can be found in the Play Store Help: extra steps to fix Google Play Issues

# Answer
> 1 votes
Please clear your cache and then try updating the apps. More specifically you will have clear the Play Store app cache. Go to Settings, Apps, Google Play Store app, and click on storage. There you should have a option to clear the cache. Do let us know if that helps.

# Answer
> 1 votes
Taken from:

Play Store won’t open, load, or download apps

> * Open your device's Settings \> app Settings.
> * Tap Apps & notifications and then See all apps.
> * Scroll down and tap Google Play Store.
> * Tap Storage and then Clear Cache.
> * Next, tap Clear data.
>
> Re-open the Play Store & try your download again.

Restart your device once.

---
Tags: updates, installation
---


# Question
Title: Can adb sideload be used to flash/install ZIPs using 'stock' recovery/fastboot?
TWRP isn't supported for my WE\_T1 Android Nougat. Can I still use the adb sideload function to install ZIPs using stock fastboot?

# Answer
> 1 votes
sideloading works with adb, not . Both uses different protocols and expect different data to process. Fastboot compatible archives (or ZIPs here) contain fastboot compatible images and a simple script to flash them. Recovery compatible ZIPs are usually complex as they employ scripts with various checks and preparation before flashing anything.

In addition, stock recovery requires ZIPs signed by your OEM, otherwise, they would fail during a flash. Fastboot doesn't employ such signature based check when flashing as long as bootloader is unlocked.

For understanding you can compare fastboot images with recovery flashable images from here and here.

---
Tags: adb, rooting, twrp
---


title: Phone PIN visible to keen observers?

text:
# Question
Title: Phone PIN visible to keen observers?
I acquired a S8+ earlier this week. One thing I noticed is when I enter my PIN, the number will only vanish after I hit the next number in the sequence. At best, a keen observer will only see the last number. At worst, someone will get my PIN by watching over my shoulder, etc..

Is there a fix for this behavior on the phone?

# Answer
> 1 votes
As pointed out by @user452820, there is a security setting in settings for that. Go to Settings \> Lock screen and security \> Other security settings and change the slider on `Make passwords visible`.

The blue slider should be greyed out to stop it.

# Answer
> 0 votes
You need to go to your phone's setting then find security. In security section look for password, find "show password" and turn it off. Sorry if I didn't say the exact place because I don't know how settings look like in your phone. But it's android and it means it should be there.

---
Tags: samsung-galaxy-s-8
---


# Question
Title: Removing ads on apps that don't have ad-free version (e.g. Angry Bird)
My disabled child likes this game very much. But he can't handle the advertisement. It is just too much for him. I would like to get Angry Birds ad-free. I would pay for it, but there's no ad-free version on the Play Store.

The device is not rooted, and I'm not going to root it. So if possible, is there any solution for non-rooted device?

# .. several months later. Here is my solution

It seems impossible to disable ads on android games. Most of them are completely useless and some are glorifying war.

This is no problem for normal people.

For my disabled child this is information overload.

We bought an old standalone device. This kind of device where you need to buy games on cartridges. This solves my use case. AFAIK angry bird is not available for nintendo DSi, but other nice games.

# Answer
Since I don't like complicated work arounds like switching off internet connection or rooting the device, I choose this solution: uninstall it.
> -1 votes

# Answer
If your device is rooted, install Adaway. It will remove ads basically everywhere.
> 0 votes

# Answer
If you switch mobile data off or use airplane mode, ads won't be displayed.
> 0 votes

# Answer
Use an app called LostNet Firewall Pro to block angry birds from going online. You can find it on Google Play.
> 0 votes

# Answer
You could use the app Lucky Patcher to remove ads from apps.

A lot of its features are for root-only devices but it works on non-rooted devices as well.

With it installed, you can then patch an application to remove Google Ads, then reinstall the patched version (Uninstall and install) (if it also says "License verification found", you need to patch the APK modified for no ads to remove license verification).

(Except for using this app and writing a few custom patches for it, I am not affiliated with it in any way)

(Google Play Protect will block Lucky Patcher and call it malware. It can be safe to dismiss (More options \> Install anyways (unsafe)) if you downloaded it from the official site.)
> 0 votes

# Answer
You can use pihole. It will help block the ads on th DNS level. You can either get a raspberry Pi or install it on any computer. Link : https://pi-hole.net
> 0 votes

---
Tags: applications, ads
---


# Question
Title: What special privileges "/system/xbin/su" does have w.r.t. root access?
This answer says:

> Because of the way directory/file permissions are configured on Android, you need to have the `su` binary on your `/system` partition in order for it to work. Putting elsewhere will not suffice, because it will not have the permissions it needs to actually allow processes to switch users.

What is the mechanism that causes binaries in `/system` to have special privileges?
Specifically, if I moved `/system/xbin/su` to `/data/xbin/su` (and changed anything relevant to point to `/data/xbin/su` instead of `/system/xbin/su`), what would be different?

---

My guess is that these privileges are enforced by SELinux.
I searched Android's sources, and found in platform/system/sepolicy/private/file\_contexts:

```
/system(/.*)?       u:object_r:system_file:s0

```

and in platform/system/sepolicy/public/domain.te:

```
allow { appdomain coredomain } system_file:file { execute read open getattr map };

```

However, I also found in platform/system/sepolicy/private/file\_contexts:

```
/system/xbin/su     u:object_r:su_exec:s0

```

and in platform/system/sepolicy/public/domain.te:

```
# Nobody should be able to execute su on user builds.
# On userdebug/eng builds, only dumpstate, shell, and
# su itself execute su.
neverallow { domain userdebug_or_eng(`-dumpstate -shell -su') } su_exec:file no_x_file_perms;

```

So I am confused.

# Answer
> 8 votes
Since Android is based on Linux kernel, getting root access by executing `/system/xbin/su` \- like one can do on a Linux system - used to work in good old days but not now. The story is a bit twisted.

**WHAT IS SUID?**
Special thing about `/system/xbin/su` isn't that it's in `/system` partition, but the `set-user-ID-root (SUID)` bit set on this binary makes it special. SUID (**S**et owner **U**ser **ID** up on execution) is a special type of permission on Linux kernel that grants the permissions of the file owner to the new process rather than inheriting permissions from parent process who runs it. Since the owner of `/system/xbin/su` is root (UID 0), it can switch the effective UID of process to 0 when executed, hence enabling calling process to have root access.
This is a part of Discretionary Access Control (DAC); one of Linux kernel's security features.

**MANDATORY ACCESS CONTROL (MAC):**
Implemented since KitKat, SELinux can control who executes `su` binary, by defining Access Vector rules.

On `userdebug`/`eng` build of a ROM, `adb shell` (by executing `su`, as you have mentioned) and `adb daemon` () can make `transition` (, , , ) to run as root with unrestricted context `u:r:su:s0` (). But `adbd` can't be run as root on final `user` builds (, ), neither su binary is included. So, `/system/xbin/su` is intended only for developers to debug `eng`ineering or `userdebug` builds of a ROM, not for end user (). And second special thing about it is its SELinux context `u:object_r:su_exec:s0`.

See Why “adb root” does nothing? for more details.

**HOW ANDROID RESTRICTS ROOT ACCESS?**
Keeping SELinux aside, on user build of a ROM that is intended for end users, placing `su` under `/system` won't give any advantage, even with `set-user-ID-root`. A normal app can't elevate its privileges to root by executing `su` because:

* Starting with Jelly Bean, Android switched to file capabilities (a capability is a subset of root privileges) instead of relying on `set-user-ID` type of security vulnerabilities. A more secure mechanism: Ambient capabilities has also been introduced in Android Oreo.
* System daemons and services can make use of file capabilities to gain process capabilities (see under Transformation of capabilities during execve) but apps can't do that either because they run with process control attribute `NO_NEW_PRIVS` set, ignoring `set-user-ID` as well as file capabilities. SUID is also ignored by mounting `/system` and `/data` with `nosuid` option for all apps.
* UID can be switched only if calling process has SETUID/SETGID capability in its Bounding set (one of the 5 capabilities categories a process can have). But Android apps are made to run with all capabilities already dropped in all sets.
* Starting with Oreo, apps' ability to change UID/GID has been further suppressed by blocking certain syscalls using seccomp filters.

ADB daemon, however runs with CAP\_SETUID and CAP\_SETGID (to allow switching to UID/GID `shell`???). But `adb shell` too can't get us capabilities by executing a SUID-root `su` binary because `NOROOT` and `NO_SETUID_FIXUP` security bits are set on `adbd` process. Contrarily on a debugging build, no capabilities are dropped from bounding set (10), so executing `/system/xbin/su` (with `set-user-ID-root` bit or `cap_setuid,cap_setgid+ep` file capabilities) would get us full root access.

Syscalls used in these sandboxing methods: `cap_set_proc`, `setresuid`, `setresgid`, `sys_seccomp`, `prctl` (CAPBSET\_DROP, SET\_NO\_NEW\_PRIVS, SET\_SECUREBITS, SET\_SECCOMP) are all part of Minijail.

---

Summarizing the above lines, DAC and MAC would only allow `adb root` and executing `/system/xbin/su` from `adb shell` on `userdebug` build of ROM. To have root access from apps and on `user` builds targeted for end user, we need to ***root the phone*** as explained below.

---

**HOW TO GET ROOT ACCESS ON ANDROID?**
So if we want to have privileges with UID 0 and all 38 capabilities of Linux kernel, we need a rooting solution that can deal with all above described security measures. Since the standalone `su` binaries stopped working with the release of Jelly Bean, a transition was made to su daemon mode.

Now on a rooted phone, a fully privileged daemon runs from the very start of booting process (in fact `init` is replaced). When an app needs root access, it executes su binary provided by the rooting solution. This `su` doesn't change UID/GID on its own, but just connects to super user daemon through a UNIX socket and asks to provide the requesting app a root shell with all capabilities. In order to interact with user to grant/deny `su` requests from apps, su daemon is hooked with an app that can display user interface prompts. A database of granted/denied permissions is built by su daemon for future use.
In addition to that, SELinux denials are also handled by defining SELinux policy allow-rules when rooting the phone.

New methods of root like Magisk work in system-less mode i.e. without modifying `/system` partition. Only boot partition - that contains kernel and initramfs - is modified to inject su daemon service and new SELiux policies. A locked bootloader won't boot modified `boot.img`, so bootloader needs to be unlocked. For more details regarding this, see Unlocking Bootloader. However there have been some rooting hacks that worked by bypassing above described security implementations without going for proper way of rooting. Most of such exploits and vulnerabilities in Android OS have been fixed over time. Here is a good write up on this subject.

So to conclude, placing `su` binary under `/system` or any other location won't give any benefit.

Also see How Magisk works? for more details.

**PS:** Please ignore so many links, they are for my own future reference.

---
Tags: rooting, permissions, partitions, selinux
---


# Question
Title: x88 Max+ Android Hide On Screen Keyboard
This little box is so close to replacing my PC but it has a number of frustrating issues that I would like to fix (it's running Android 9.0).

The on screen keyboard won't go away. I have show virtual keyboard turned off in physical keyboard settings but it still appears.

The enter key enters the currently selected key on the physical keyboard instead of enter. I know how to fix this by rooting the device but I don't know how to root the device (and I'd rather not root the device if I can avoid it).

The cursor keys control the selected key on the on screen keyboard instead of the cursor position on the screen.

Selecting a suggested search term in Google Chrome with the mouse while typing in the URL/Search bar doesn't work (does nothing).

If I can fix the on screen keyboard issues this box will be good enough to replace my PC! Any help appreciated.

# Answer
> 1 votes
You can use External Keyboard Helper Pro app to do this on the T95Q, I assume on the X88 MAX Plus too (I got rid of mine as it cannot do VPN over Ethernet).

---
Tags: external-keyboard, android-tv, 9.0-pie
---


# Question
Title: Make Android open a page at a specific time every morning
I want to login to a site for 50 consecutive days. For this, I will have to visit their homepage for 50 days.

Is there anything that can be used to do this?

# Answer
Using Macrodroid:

1. Add Day/Time trigger, then select Monday to Sunday and input the time.
2. Select the Open Website / HTTP GET action, then enter the webpage that should be opened.
3. Select Set Variable action. Choose "New variable", give it a name and select Integer.
4. On the Constraints tab, select Macroid Variable, select the variable create during step 4, select "\<", and set Value to 51.
5. Give your macro a name, save it. It will look like the image below:

The macro will trigger daily at the exact time you entered opening the desired webpage for 50 consecutive days.

**Disclaimer:** I am not related to Macrodroid developer(s).
> 4 votes

---
Tags: automation
---


# Question
Title: How to access files via localhost in firefox browser
I'm looking for a way to access my devices files in Firefox. The reason for this is I want to use an extension to read \*.md file.

I know that I can use `file:///` to access files, but the extension can't use this way. The only way is to use localhost. I have searched around but have only found talk about accessing the PC via localhost. I want to access the local android files.

Here is the link to the extension I want to use: Markdown Viewer

# Answer
After playing around a little and trying out some options (especialy from Firelord), I decided to actually try to use `file:///`, and to my great surprise it worked, even though the instructions for the add-on says it doesn't.

So to answer the question, you can access the files by using `file:///`. This is much easier then having to install and setup another app.
> 1 votes

# Answer
If you need localhost, than run a web server on your Android and bind it to loopback address. There are many apps on Play Store that can run a web server. I just tested out HTTP Server powered by Apache and it works fine.

Instructions:

1. Install and launch it.
2. Grant Storage permission/access.
3. Download an Apache version. The latest version comes with the app and would be marked with **X** sign next to it. Tap on that entry once to install that version.
4. Afterwards, go to the section *Server address & port* → Change:

* Server Address: 127.0.0.1
    * Server Port: 8080 (or anything above 1024)
    * Fallback action: Stop
5. Start Server. The server's home directory is `/sdcard/htdocs/public/`, so move your directories under public directory.
6. Setup your addon in Firefox and add `http://127.0.0.1` under Allowed Origins as mentioned here.
7. Load your file in Firefox by using the address \`http://127.0.0.1:PORT/PATH. The extension should work now.

Replace PORT with the port you used for the server. Replace PATH with the path of your directory/file relative to public directory. So, if file is under `/sdcard/htdocs/public/testing/readme.md`, the PATH should be `testing/readme.md`.

**Note:** for some reason the addon sometimes load, other times it just shows a blank page when trying to load README.md.
> 3 votes

# Answer
Well you can do this by simply installing Apache Web Server in Termux. So after installing Termux. Do the following steps:-

1. `apt update && apt upgrade -y`
2. `apt install apache2`

It will install Apache Web Server in your Termux Then do `apachectl start` it will start the Apache server.

You might see a Warning like this:-

> AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

To correct this : just uncomment the line 221:

which says `# ServerName
www.example.com:8080`

And then place your `/sdcard` in your web root:

(`/data/data/com.termux/files/usr/share/apache2/default-site/htdocs/`)

by doing

`cp -r /sdcard /data/data/com.termux/files/usr/share/apache2/default-site/htdocs/`

Then point to:

`https://127.0.0.1:8080/sdcard` in your browser.

Now, you will be able to access your files in your browser.
> 1 votes

---
Tags: file-system, firefox-for-android
---


# Question
Title: Auto SMS reply a missed call from a specific contact anytime
I am looking for a solution to auto SMS reply a missed call from a specific contact anytime. All solution I found are either for all contacts, or for limited time intervals. Anyone has an idea?

# Answer
As stated in the comments by Dan Hulme, what you ask can be achieved through automation. Using Macrodroid:

1. Add a macro.
2. Select Call Missed on the Triggers section, then select the contact number.
3. On the Action sections, select Send SMS. Enter the phone number of your contact or select it from the contact list (you will need to give the app the appropriate permissions). Enter the message that should be automatically send to the contact.
4. No need to add a constraint. Give the macro a name, then save it. It will look like the following image:

Whenever you missed a call from the contact number you selected, an SMS will automatically be sent with the message entered.

**Disclaimer:** I am not related to Macrodroid developer(s).
> 1 votes

---
Tags: automation, missed-calls
---


# Question
Title: Cannot download "Office 365" because it is not compatible with Samsung Galaxy Tab S2
I have Office on my Samsung Galaxy Tab S2, but I cannot upgrade it to Office 365. I can't download it from Google Play Store because it tells me that

> Your device isn't compatible with this version.

This is a high-end tablet, so I expected it to be compatible.

Is Microsoft still going to support this issue out, or do I, in fact, already have 365 without knowing it?

# Answer
> 0 votes
Based on my memory and this article, there was an old "Microsoft Office" app that was replaced by individual Microsoft Office apps:

However, there are *no* "Office 365" apps. "Office 365" is a subscription plan that enhances the user experience of individual Office apps with advanced mobile features.

---

For this particular case:

Samsung Galaxy Tab S2 was deemed as "not compatible" by Play Store. The exact reason cannot be known because there are too many possibilities. However, the download is only prevented on the Play Store. You can still find and download the APK file from credible 3rd-party sources (e.g. APK Mirror) and try to install it, and see if it's compatible (working properly).

Regarding the status of your "Office 365", that depends whether you have subscribed to it or not previously. But the migration from the old Microsoft Office app to the newer individual Office apps didn't affect the status of someone's "Office 365" subscription plan.

# Answer
> -1 votes
The type of Office 365 subscription plan you have determines the availability of some mobile apps and what you can do on them. For a plan comparison, see:

| Home plans | Business plans | Education plans | Nonprofit plans |

The information you seek is right here =\> Office 365 Mobile Setup

---
Tags: google-play-store, ms-office, samsung-galaxy-tab-s-2
---


# Question
Title: How to remove magazine unlock on huawei p9 running nougat
How can I completely remove the magazine unlock that comes with Android 7.0 (nougat) on a huawei P9. I want my phone to go directly to the pattern unlock screen and not show the magazine unlock.

I am willing to root the phone if required to delete/replace this screen.

I am running build EVA-L09C432B386 and have TWRP recovery installed.

# Answer
> 0 votes
The earlier answer didnt work for me. What I ended up doing was on my lock screen, I swiped up from the bottom to access the lock screen settings. Under "Subscriptions", I unsubscribed from all subscriptions, turned off the auto-update AND turned on the option to delete all old cover pictures, just to be thorough.

Then I went back to my lock screen, swiped up again and accessed "Covers", and I deleted all of them.

Hope this helps someone. I was getting pretty frustrated in trying to figure this out.

# Answer
> -1 votes
1. From your device’s Settings, tap Screen lock & password \> Magazine unlock.
2. Turn off ‘Auto-update via Wi-Fi’

Found it in this link: http://webcazine.com/forums/honor-8-how-to-turn-off-wallpaper-updates/

---
Tags: lock-screens, 7.0-nougat, huawei
---


# Question
Title: Copy all sdcard contents to larger sdcard
Recently I've run out of room on my small (2GB) sdcard. What I want to do is copy all the contents of this card onto something a little larger. I have an FTP server (the one that comes with ES File Explorer) installed on my phone, and that's pretty much the only way I can copy from the card mounted in my phone to a computer or vice-versa (my computer has never recognized my phone's sdcard and only displayes /data).

What's the best way to copy all of it (including hidden files, non-readable files, and apps stored on the sdcard)?

# Answer
The least tricky way is:

1. take your 2GB card out of the device, put it into a card reader, and attach that to your computer
2. copy all contents from the card to an empty directory on your computer
3. safely remove the card reader, replace the 2GB card by the newer, bigger one, and attach that to the computer
4. copy the contents of the directory from step 2. to the new card
5. safely remove that card again, and place it into your Android device

When in doubt about the hidden stuff, use Linux for the copy process. You can even boot it from a LiveCD. From a terminal command, use `cp -R /path/to/source/* /path/to/target`. On the other hand, if using Windows and you can see the files/directories starting with a dot (watch out e.g. for the `.android_secure` directory), they should be copied along fine.

### See also:
> 3 votes

# Answer
On my Android One Nokia 7.1, I noticed that the SD card is mounted as `/storage/XXXX-XXXX` where XXXX-XXXX is the volume's serial number.

Here's how I cloned my smaller SD card onto a larger one:

* Formatted the 200GB µSD using these steps (Windows says it’s too large)
* Copied using `ROBOCOPY /S /ZB /V g:\ f:\` ( `g:\` represents the old SD card while `f:\` represents the new).
* Changed the volume serial number using SysInternals’ `VolumeId.exe`:

```
PS> cmd /c vol f:
Volume in drive F is LUMIAUSD200
Volume Serial Number is 1F04-2747
PS > Volumeid.exe f: B14F-130C

VolumeId v2.1 - Set disk volume id
Copyright (C) 1997-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Volume ID for drive f: updated to b14f-130c
PS > cmd /c vol f:
Volume in drive F is LUMIAUSD200
Volume Serial Number is B14F-130C

```

After that, I inserted the new card into the phone, and voilà! All apps were happy (since the mountpoint had not changed).
> 1 votes

---
Tags: file-management, external-sd
---


title: How to root my Motorola Flipside?

text:
# Question
Title: How to root my Motorola Flipside?
I am a relatively new Android user, but I have a bit of experience with Linux.

My new Motorola Flipside MB508 has quite a few unwanted preinstalled applications on it, which I would like to remove. However, I need to root the device to do this.

What is the easiest way to root a Motorola Flipside on Linux?

`*`edit`*` I tried using SuperOneClick, but I am running Fedora (17) and it doesn't work in Wine.

# Answer
> 0 votes
AndroidEvolved has guides for rooting your Motorola Flipside.

The easiest solution is to use SuperOneClick.

1. Download SuperOneClick, and extract it.
2. Connect your device to the computer. Ensure that SD card is not mounted. If it is mounted, unmount it.
3. Enable USB Debugging from Phone –\> Settings –\> Application Development –\> Development.
4. Open SuperOneClick.exe.
5. Click on Universal tab if you are going to root any Android device like Nexus One, Galaxy S, Droid etc. Click on Samsung Captivate if that's your phone.
6. Click on Root tab and wait for the process to finish. \[this will take some time\]
7. Once completd, you would get a popup box that would confirm that rooting has been successful.
8. Restart your phone.

Source

# Answer
> 0 votes
Try FramaRoot.
It doesn't need a PC to connect to and no ADB is required.

It simply installs Super SU on your device. You don't need to be worried about breaking... If it couldn't root your device it simply avoids installing super user.

---
Tags: rooting, linux, motorola-flipside
---


# Question
Title: Grant an app write access to external storage that does not request it?
I would like to grant the Syncthing app write access to external storage in Marshmallow. The app does not request it explicitly (unlike other apps that seem to use the Storage Access Framework to do so).

In the app permissions screen, there is no permission listed for external storage, only for 'storage' (which seems to mean internal storage). So there does not seem to be any direct way to grant this permission.

My phone is rooted and I could just run Syncthing as root - but this option creates many problems and sometimes results in the app hanging indefinitely.

Is there any other way around this problem?

# Answer
> 2 votes
You could manually add the related permission to write on external storage to `AndroidManifest.xml` but it won't work.

I found myself in a situation similar to yours, and I also tried to decompile the app, add the **WRITE\_EXTERNAL\_STORAGE** permission request to the AndroidManifest.xml and recompile the package, but it didn't work.

Since Lollipop, Android's new policy concerning the external SD requires any app which needs access to the above-mentioned to use the DocumentProvider interface. Unless you prefer to work in Smali, there's no way to implement it without the Java source code. Just editing the Manifest is not enough.

So, no. There's no way to manually add a working **WRITE\_EXTERNAL\_STORAGE** permission, neither in Lollipop or in Marshmallow. Your only choice is to ask the dev to implement it.

# Answer
> 0 votes
I do this for the AMAZING terminal app Termux which for reasons that I do not understand also does not request this permission.

The procedure is rather complicated, involving copying and editing an xml file manually, and puts you at risk of preventing your system from booting. You'll also need to do it again every time the app updates. I guess if you use an editor that has root access you wouldn't have to worry about the copying part. Hmm. Maybe I should do it that way too, actually.

The following are the steps I use to fix perms for Termux. You'll have to adapt them to work for your app. They should probably be the same except for the full app name.

If you're not familiar with XML you should be suuuper hesitant to try this as you'll probably render your phone unbootable if you make an error.

* Make sure you're not updating apps (turn off auto-update) or doing anything else which could result in modifications to the packages xml file while you're editing it.
* Start a session in Terminal Emulator. `su -` in this session to give yourself root permissions.
* `cd /data/system`
* `ls -l packages.xml`
    + write down the permissions and ownership of `packages.xml`. They will be essential later.
    + When I did this ten minutes ago, these values were still `-rw-rw---- system:system` as they have been for the however many years I've been doing this. Might be different on a different type of phone.
* `cp packages.xml packages.xml.orig` to make a backup copy of this very important system file
* `cp packages.xml /storage/emulated/0/tmp`, or some other location depending on how your phone's file system is laid out. If that directory doesn't exist, just create it.

Now edit the file whichever way you prefer (I use `vim` under `Termux`, but use whatever text editor) to make the following change:

* Find the second line containing `/name="com.termux"/`. It should be a `shared-user` tag (i.e. a line starting with `<shared-user`)
    + For your app this might end up being a different line containing the full name of your app, depending on whether your app has an entry in the earlier section in this file. There might also not be a permissions entry for your app, in which case you'll have to make one from scratch, I guess. I would think this would probably be okay but I really don't know; you might cause system issues by doing so. Caveat emptor. But yeah if you find this node for Termux and copy it and paste the copy below Termux's entry that would probably work.
* Copy the last `<item ... />` line and paste it right underneath.
* Edit the pasted line to change the permission (currently mine has `WAKE_LOCK`) to read `WRITE_MEDIA_STORAGE`.
* so the last node within the `<perms>` node should be
    + `<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />`

Save the file and exit your editor and go back to your Terminal window (where you still have a root session running in `/data/system`).

* `cp /storage/emulated/0/tmp/packages.xml .`
    + Use `cp` here and NOT `mv` as `mv` doesn't set the permissions correctly.
* ***VERIFY*** that the permissions are the same as they were when you started. This is VERY IMPORTANT because the phone won't boot if the perms are wrong. I did this once and managed to rescue it somehow, I forget how.

At this point you should be good to reboot. It's probably prudent to do a `diff packages.xml packages.xml.orig1` or whatever to verify that you made the change correctly.

After you reboot your app should have write access to the external SD card. Good luck!

If anyone is aware of a cleaner way to do this, please let me know! This is clunky AF and carries no small risk of having to spend another hour afterward fixing my phone.

---
Tags: 6.0-marshmallow, permissions
---


title: How to loop a song in youtube?

text:
# Question
Title: How to loop a song in youtube?
I used to listen to some favourite song in youtube (Android). I would like to loop so it plays all time till I stop. Previously I have tried using Chrome web browser. It work to loop, but no sound. So, I forget it.

the my question is, is any way how to do it? In the case of Chrome, is any specific version I have to use to make it work?

# Answer
Chrome latest on Play Store `72.0.3626. 105`

Open Chrome in Desktop mode (Settings→Desktop site) , paste YouTube link and click on the video to reveal menu as shown. Select "Loop"
> 1 votes

---
Tags: chrome-for-android, youtube
---


title: Does Lineage OS 16 runs on Nokia 6.1?

text:
# Question
Title: Does Lineage OS 16 runs on Nokia 6.1?
I am looking to find if the Nokia 6.1 is able to run Lineage OS 16. I didnt find a Nokia section in the official list of supported device. I looked online and find this list from thedroidguru (same list on alldroidtips):

> List Of Nokia Devices Getting Lineage OS 16
>
> Nokia, or HMD Global, has already maintained a nice record when it comes to providing Android updates. Though these devices did not receive any support from LineageOS 15, it is expected that LineageOS 16 would support the Nokia 8, Nokia 6 2017, Nokia 1, Nokia 2, Nokia 3, Nokia 5.

As far as I know, the Nokia 6.1 is the name of the Nokia 6 2018. Is this list accurate? If the Nokia 6 2017 can run the rom, the 6.1 should be able to do so, shouldn't it? So, Does Lineage OS 16 runs on Nokia 6.1?

# Answer
> 3 votes
Well, nobody knows which devices will be supported for LineageOS 16 because each device's maintainer(s) (developer(s)) are different.

LineageOS team never maintains a list of devices supported for LineageOS 15.1 or 16 etc. But they have a devices list for which they support any of the LineageOS version: https://wiki.lineageos.org/devices/

But that's not all. The actual official builds come very late because of many factors. For example, the lineage16.0 branch is almost ready but there is no OFFICIAL LineageOS 16 build available from LineageOS team or any device maintainer.

But if you see the LineageOS 16 builds available UNOFFICIALLY, you will find many devices. This is not an official source but more accurate as it is maintained by me. I hand pick all of the available builds to accumulate at one place.

Similar to LineageOS 16, I have an OFFICIAL LineageOS 15.1 page where you will find all such OFFICIAL builds. I will continue to maintain an OFFICIAL LineageOS 16 page when the builds will be available.

Coming to your question, as of now I did not see any builds available for Nokia 6.1. You may follow my LineageOS 16 link, where I do update the page almost on daily basis. You will find the build once it is available from a dev.

# Answer
> 3 votes
There are only unofficial builds of Lineage for the Nokia 6.1. Else you can try out a few GSIs. Since the bootloader is only unlockable via unofficial methods, and there are not enough Nokia users with unlocked bootloaders, the chances for an official LOS support are super thin.

---
Tags: lineageos, nokia-6
---


title: No sound playing in Chrome web browser

text:
# Question
Title: No sound playing in Chrome web browser
I would like to loop a song of YouTube, so I need to play it in Chrome browser rather than in the YouTube mobile application. The loop itself is working fine, but unfortunately there is no sound playing. I am using Chrome 72.0.3626.105 which is running in Android 4.4.4 KitKat.

What is probably the problem? Sound other than in Chrome is working fine. So, it is clear that the problem is with the browser, not other part.

# Answer
> 0 votes
Chrome which you are using is targeting `minsdk 24` which corresponds to Nougat and you are on KitKat so you shouldn't be surprised if it doesn't work properly (you can check the manifest using many apps available to determine sdk level- just search for manifest on Play Store )

You can search Chrome version that is compatible and download from third party sources of your choice. Related Install Google Chrome for old tablet / phone

---
Tags: 4.4-kitkat, audio, chrome-for-android, youtube
---


# Question
Title: How to record (photos and videos) directly to Samsung's Secure Folder?
Sometimes or usually I need to take photos or videos of my documentation with my Samsung mobile.

How do I configure Secure Folder (provided by Samsung) to record all I want directly into Secure Folder? I don't want to move them one by one manually.

# Answer
You can log into Secure Folder before you take any photos and videos. Use the Camera that's inside of the Secure Folder. If it's not there, tap "Add apps" and add it.

You can also do this with a lot of other apps, it's kind of like having a second phone inside your phone but more secure.
> 1 votes

---
Tags: samsung, hidden
---