# Question
Title: External Ext4 card mounted only for root (!) on Android 5.1 64 bits
**In short**: if I mount my Ext4 8GB SD card, **only root (SU) can see** it. The rest of users (so, the rest of apps) don't detect it.

As long as my **Ext4 SD** card is not correctly mounted (Android always yields `Damaged SD card. Format it... blah blah blah`), I followed this guide to mount it. And it works:

SD Card is at `/dev/block/mmcblk1`, so first partition is at `/dev/block/mmcblk1p1`.
I performed the (not very clear for me) prior ADB process:

```
su
setprop service.adb.tcp.port 5555
adb kill-server
stop adbd
start adbd
HOME=/sdcard adb start-server
adb connect localhost
adb -s localhost:5555 shell
exit
stop adbd
cat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys
start adbd

```

And then the card is **correctly mounted** by doing (as root):

```
# mount -t ext4 /dev/block/mmcblk1p1 /storage/extSdCard && sleep 5 && /system/bin/vold

```

Note how it works as SU but **not as normal user**:

```
root@unknown:/ # ls /storage/sdcard1
lost+found
root@unknown:/ # exit
u0_a98@unknown:/ $ ls /storage/sdcard1
ls: can't open '/storage/sdcard1': Permission denied

```

I have tested the above steps via *SSH* (remote shell).
The SD Card has been formatted from Windows using *Minitool Partition Wizard*.

I have tested too:

* Editing the `/system/etc/permissions/platform.xml` file manually (adding `<group gid=”media_rw” />`) to `WRITE_EXTERNAL_STORAGE` section, as referred here.
* SDFix.
* Using Xposed framework with HandleExternalStorage module.

But the apps (Total Commander, Ghost Commander, or any other program) have no access to the Ext4 SDCard.

What else could I try?
**Workarounds** to make apps read (and write) SD Card accepted too.

Extra data 1:

Note the output of the `mount` command for both users:

```
root@unknown:/ # mount | grep "sdcard" -i
/dev/block/mmcblk1p1 /storage/sdcard1 ext4 rw,seclabel,relatime,data=ordered 0 0
root@unknown:/ # exit
u0_a98@unknown:/ $ mount | grep "sdcard"
u0_a98@unknown:/ $ mount | grep "mmcblk"

```

As can be seen, the root user has a mounted device that the normal user has not (!). I did not know this could happen on Linux.

# Answer
Edit 2020-06-03: If you would like to see a way more detailed answer in how the mounting ecosystem works under Android, you may have a look at this answer: How to bind mount a folder inside /sdcard with correct permissions?

# Mounting

Try logging in as a root user with proper mounting permissions using

```
su -mm

```

Make sure that a directory exists that receives the mount:

```
mkdir /mnt/arch1

```

You can also create an empty folder inside your internal storage and use that mount point instead if Apps won't allow you to browse in the `/` root directory.

Mount your ext4 partition using

```
mount -t ext4 -o noatime /dev/block/mmcblk1p2 /mnt/arch1

```

whereas `mmcblk1p2` is the second partition of my sdcard in my case. You can replace `/mnt/arch1` with any other path you wish.

My first partition is formatted (and acting as extSdCard) with FAT32 as a fallback, so Apps write their stuff there while my ext4 partition is "safe" and to prevent OSes accidentally formatting the whole SD-Card when inserting it.

You should now be able to browse inside that mount point using either your terminal (rooted and non-rooted) or your apps.

To automatically mount the partition on startup, you can use this line

```
su -mm -c mount -t ext4 -o noatime /dev/block/mmcblk1p2 /mnt/arch

```

in Tasker for example.

# Unmounting / mount information

**Please note** that mount points of `-mm` in turn aren't visible to the "regular" root (without `-mm`). To unmount the partition, you would have to login with `-mm` again and use `umount /dev/block/mmcblk1p2` or `umount /mnt/arch1` from there.

Checking `whoami` won't reveal being logged in with or without `-mm`.

# App permissions

Edit 2020-06-03: After all these years using this approach I should add that even with rwx permissions on my special ext4 sdcard partition, apps may not be able to read files unless the SELinux policy is set to "permissive". For a quick fix I let Tasker execute `su -c setenforce permissive` on every boot. I need to do this anyway because I use ViPER4Android audio effect processing and it would not work without the permissive setting. Because of this, I noticed the permissive dependency just recently.

# What I can't answer

Unfortunately I have no idea how to mount it in that way that your ext4 partition is displayed as real external storage by standard file managers. You would have to do the workaround by creating a directory inside your internal storage mentioned earlier.

# How I figured it out

I experienced the exact problem. I gave the fact that other apps can't access the mount a further thought. Maybe the root user is not supposed to mount partitions for use with Android apps. I noticed a directory called `media_rw` is owned by `media_rw` (yes, same names) so I thought about `su`ing as a `media_rw` user and applying the above steps.

While reading the help page with `su --help` within Android, I stumbled across this part:

```
-m, -p,
-mm, --mount-master          connect to a shell that can manipulate the
                             master mount namespace - requires su to be
                             running as daemon, must be first parameter

```

So tried logging in as a root user with the `-mm` option instead, mounted my partition from there and surprise - I was able to see my stuff in Total Commander and open media files from there with VLC.

My device in particular is the Planet Computers Gemini, using stock Android 7.1.1 (Nougat) rooted with SuperSU. Edit 2020-06-03: Android 8.1 (Oreo rooted with Magisk; same device) as well.
> 3 votes

# Answer
@djsumdog and @Sopalajo de Arrierez Sorry for the delayed response.

Things got re-orgonized and stream lined. By unifying those that use the `fstab` files. Such as the `init`, `vold`, and recovery all under `/fstab.<device>` now. Some of which is managed by vold and just off the top of my head it sounds like a permissions issue because with root it's like an override with its `R/W` powers. Linux used to have an issue with android when formatting due to this but I do not know if it was fixed.

" **DEVICES MAY PROVIDE EXTERNAL STORAGE BY EMULATING A CASE-INSENSITIVE, PERMISSIONLESS FILESYSTEM BACKED BY INTERNAL STORAGE.** "

" When configuring a device-specific `init.rc` script,the EXTERNAL\_STORAGE environment variable must be defined as the path to the primary external storage. The `/sdcard` path must also resolve to the same location, possibly through a symlink. If a device adjusts the location of external storage between platform updates, symlinks should be created so that old paths continue working."

"One possible implementation is provided by the FUSE daemon in `system/core/sdcard`, which can be added as a device-specific `init.rc` service":

```
virtual sdcard daemon running as media_rw (1023)
service sdcard /system/bin/sdcard <source_path> <dest_path> 1023 1023
    class late_start

```

"Where `source_path` is the backing internal storage and `dest_path` is the target mount point."

Reference
> 1 votes

# Answer
Thanks for this discussion. Here is what "kind of" works on my Android 5.1 TV computer:

```
su -mm -c mount -t ext4 -o noatime /dev/block/mmcblk0p1 /storage/sdcard1 &&  sleep 5 && /system/bin/vold
chown -R root:sdcard_r /storage/sdcard1
chmod 771 /storage/sdcard1

```

I say "kind of" because this is still not seen as a true, external storage card by Android or file manager apps (and the like). However, all apps can read/write/traverse the folder tree and do what they need to. You do NOT have to be root except to do this. As things stand for me now, I have to re-issue this upon every re-start of Android. But using Tasker makes this pretty easy to accomplish.
> 0 votes

---
Tags: mount, ext4
---


# Question
Title: USB debugging turns off after restart on Android 7.0
Recently, my Moto G4 running Android 7.0 has been turning off USB debugging under developer options whenever the phone restarts. Is there a way to keep it on all the time? I have already tried revoking and reauthorizing the USB debugging authorizations.

# Answer
This might help you Sir!: If you have further questions, don't hesitate to ask me. https://www.youtube.com/watch?v=7KdH4j7aAPM
> 0 votes

---
Tags: usb, debug
---


# Question
Title: how to clear RAM on the click on a button?
I need some help regarding the performance of my phone. I have to clear RAM every time to free some space through the task manager. Can anybody please help me clearing RAM on the click of a button?

# Answer
> 0 votes
Android's RAM management has gotten quite good over the years, but if you really need to free up ram, I recommend this app: Taskmanager. It also features a widget to put in your homescreen.

---
Tags: ram
---


title: What is the little icon in the top left

text:
# Question
Title: What is the little icon in the top left
The icon disappears when I'm using the phone.

# Answer
> 1 votes
Giffgaff (stylised "giffgaff") is a mobile telephone network running as a Mobile Virtual Network Operator using O2's British network. Owned by O2's owners Telefónica, Giffgaff was launched on 25 November 2009.

It is the Branding logo from your Mobile Telephone Network

From Wikipedia

---
Tags: notifications
---


title: SMS archiving and control

text:
# Question
Title: SMS archiving and control
I've searched throughout the web with no joy. My background: I've got 16+ years in software (I'm out of it but not before I built some Android apps for myself).

My problem is that I'd like to reduce the amount of space used on my phone for old messages but I'd like to keep them available.

Something like an automated system that prunes old messages to off-site (cloud) storage but makes them available upon demand.

What I want, is a system that lets me keep my chats growing indefinitely while keeping only a specified amount of space used on the phone.

Thoughts? Suggestions?

# Answer
2 options come to mind.

* Export sms to text file and upload the text file to a cloud service. In your application, you would need to recognize when the user wants to load older messages, maybe an onScroll event or maybe a "Load More" button etc...
* Store SMS entirely on cloud services. Only load the sms from a cloud, and upload whenever you receive a message. The application purely loads the sms list as a ListView from the content returned by the server.

Using PHP and SQL as the server API would work to build your own server.
> 0 votes

---
Tags: sms, file-archives
---


# Question
Title: Use Charles Proxy to monitor traffic from an android game
Can I use Charles Proxy to monitor traffic for an online android game like PUBG. If yes then what all information can I get from this? Can I use this to monitor the packets which are sent to the game server while playing the game and get the information like the ping I am getting while playing the game?

# Answer
Online games usually use UDP (and sometimes also raw TCP and/or HTTP(s)) traffic, but Charles is a web proxy that captures only HTTP and HTTPs traffic. Therefore you will only see a small part of the traffic.

The in-game ping usually bases on the UDP traffic, therefore using a pry will also not help you to get your ping time. AFAIK PUBG has a built-in ping time viewer that can be enabled in-game.
> 0 votes

---
Tags: proxy
---


# Question
Title: Why network activity is detected from apps after VPN firewall blocks them?
A few non-rooted (no rooted) Android 7 and 8 phones from (Huawei, ZTE, Neffos and Samsung) were tested in this simple firewall (NetGuard) experiment. A selection of apps (including apps from the phone manufacturer) was chosen to be blocked from accessing the Internet regardless using Mobile Data or WiFi, by using NetGuard.

Before the experiment, NetGuard and GlassWire for Android were installed. The GlassWire is activated to monitor if these apps still can access to the Internet. Throughout the experiment, GlassWire reported that some apps, that were blocked by NetGuard, had network traffic to the Internet.

Therefore, it seems that users who buy any Android phones are denied full control of the phone, even if they have installed privacy protection apps such as NetGuard. So, to make the experiment fair enough, this question is posted here, requesting help from experts out there, on whether what is the actual problem(s).

Is the problem caused because GlassWire reports false positives? Or NetGuard requires special configurations in order to block Internet for selected apps? Or Android phones disregard users and allow apps to access Internet even though NetGuard was installed?

# Answer
> 3 votes
> Is the problem caused because GlassWire reports false positives?

You are correct. This question appears to be related to the understanding of OSI Model. NetGuard is based on VPN which makes use of the `TUN` interface at OSI layer 3, while GlassWire collects data from `NetworkStatsManagr` which is something within Android's Java runtime e.g. the creation of sockets happens at top layers; Application or Transport. And the UID-based data usage is collected from qtaguid module of `iptables` which also operates at OSI layers above 3.

Making use of Per-app VPN configuration, NetGuard asks the OS to only send traffic from app XYZ through the TUN interface so that it can be forwarded through a VPN connection (which it never does). When we see apps from the top, it looks like the apps are sending network data which is moving out of the device, but in actuality, it's blocked at layer 3. So IP packets even don't hit the physical layer.

This fact is self-explained by the GlassWire app. It has a built-in firewall which is also based on VPN; no other possible way for non-root apps. When turning on this firewall, it warns that users will still get data usage stats for the blocked app. The reason is as stated above, data is measured on upper OSI layers, and blocking occurs at a lower level:

>

That's why sniffers work at OSI layer 2, or even better is to watch from outside e.g. using a proxy server or at the router.

> Therefore, it seems that users who buy any Android phones are denied full control of the phone, even if they have installed privacy protection apps such as NetGuard.

Well, NetGuard and similar apps have become somewhat privacy protections apps just as a ***side effect*** of Android's `VPNService` API which wasn't intended for this usage. Such apps can do app filtering based on `UIDs` and/or `SOcket_MARKs` which Android uses to categorize the network traffic for different purposes. If they wanted to give users freedom of choosing which apps can access the internet and which can't, they could simply set Protection Level of android.permission.INTERNET `dangerous`, which doesn't favor their business model; consider the fact that Google is the biggest search engine and ads are their prime source of revenue.

Advanced users who want more fine-grained control of privacy usually root their devices and make use of lower-level things like Linux kernel's built-in firewall `iptables`. Also, some custom ROMs have such features built-in.

**RELATED:**

---
Tags: internet, privacy, 8.0-oreo, vpn, firewall
---


# Question
Title: Can I repurchase apps so they can be shared with my family library?
The documentation states:

> Any apps or games purchased after July 2, 2016 are eligible to be added to Family Library. If you purchased the app or game before July 2, 2016, it’s eligible for Family Library if the developer has made past purchases available. You can find out whether this is the case by tapping Read More on the app’s details page.

https://support.google.com/googleplay/answer/7007852

I have apps that I purchased before this cut off date that I would like to share via my Family Library. Unfortunately when I visit the Play Store page for these apps I am offered either an `Install` or `Uninstall` button instead of the `Buy` button.

This leads me to ask:

* Am I able to repurchase these apps with my primary google account so that I can share them via the Family Library?
* If I purchase them with a Family Linked child account will they be shared with the other members of our Family?

# Answer
**Yes**

The solution I have found is to purchase the software with another family member's account and from there set the Family Library toggle to true.

This can be done from a child account with the caveat that parental permission will be required if their account has been configured with that option.
> 0 votes

---
Tags: google-play-store, google-play-family
---


# Question
Title: adb permission denied to push files to subdirectry
Why would I get permission denied using adb to copy a directory to a subdirectory on my phone, when I could copy to its parent directory and both have the same permission?

I tried this from my PC to my Nexus 5 running 6.0.1 (Oct 5):

```
adb push Dir /sdcard/Dir/Subdir

```

It failed with

```
Permission denied

```

This has worked before, with no changes I'm aware of.

I launched adb shell and ran

```
ls -l

```

to get permissions for /sdcard (storage/emulated/0), /sdcard/Dir and /sdcard/Dir/Subdir:

```
drwxrwx--x root sdcard_rw

```

I then:

```
cd /sdcard/Dir/Subdir
mkdir XYZ

```

Got

```
mdkdir: XYZ: Permission Denied

```

Tried:

```
su
mkdir XYZ

```

Again, permission denied

I then tried another push

```
adb push XYZ /sdcard/Dir

```

This worked and copied all of the files.

Why would it work to /sdcard/Dir and not to /sdcard/Dir/Subdir, when both have the same permissions? Why would permission be denied for root?

# Answer
As it appears in this comment, the file permissions and access control to SubDir differs from what ideally should be.

The problem:

```
# ls -l on /data/media/0/Dir
dwrxrwxr-x root root

```

The user group should have been *media\_rw* instead of *root*.

The solution is to change to appropriate group or make the directory writable by others.

```
chmod 777 /data/media/0/Dir/SubDir       # making SubDir writable by others
chgrp media_rw /data/media/0/Dir/SubDir  # Alternatively, changing group from root to media_rw

```

**Note:** you may need to install Busybox or Toybox to have and use chmod and/or chgrp.
> 1 votes

# Answer
There's a similar problem reported in adb push ... Permission denied where I ended up pushing the file to `/sdcard/` and then used `adb shell` to then copy the file to the sub-directory I needed it to be in.

For completeness:

Let's assume I have an expansion file `test.obb` file I want to install on a local physical Android device, and my package name of the app is `app.example.test`.

I pushed the file using `adb push` e.g. `adb push test.obb /sdcard/`

`adb shell`

```
cd /sdcard/Android/obb/app.example.test/
cp /sdcard/test.obb .
ls -la

```

I can now see the obb file is in the folder it needs to be in.
> 0 votes

---
Tags: adb
---


# Question
Title: How to run an Android init service with superuser SELinux context?
I want to run an Android `init` service. I have a device which has rooted shell (purchased from manufacture as rooted). This device doesn't have Magisk or other su manager but `adb shell` is rooted and it has `userdebug` ROM installed on it.

I have followed following steps to set up `init` service:

1. Created `/etc/init/custom.rc` file with following contents:

```
#/etc/init/custom.rc

# define service, use executable here if script not needed
service custom /system/bin/custom.sh

    # don't start unless explicitly asked to
    disabled

    # run with unrestricted SELinux context to avoid avc denials
    # can also use "u:r:su:s0" on userdebug / eng builds if no Magisk
    # it's required if SELinux is enforcing and service needs access
    # to some system resources not allowed by default sepolicy
    # seclabel u:r:magisk:s0
    seclabel u:r:su:s0

# start the service when boot is completed
on property:sys.boot_completed=1
    start custom

```
2. Created `/system/bin/custom.sh` with following contents:

```
#!/system/bin/sh

# execute the binary, should run in foreground, otherwise get in loop
echo "$(date): Starting program..."
exec /system/bin/executable

```
3. Placed my executable at `/system/bin/executable`.
4. Gave permissions to all files as following:

```
# Give rights to the executable
chown 0.0 /system/bin/executable
chmod 554 /system/bin/executable
chcon u:object_r:system_file:s0 /system/bin/executable

# Give rights to the custom.sh
chown 0.0 /system/bin/custom.sh
chmod 554 /system/bin/custom.sh
chcon u:object_r:system_file:s0 /system/bin/custom.sh

# Give rights to the custom.rc
chown 0.0 /etc/init/custom.rc
chmod 644 /etc/init/custom.rc
chcon u:object_r:system_file:s0 /etc/init/custom.rc

```
5. Reboot the system.

I got following error:

```
[   55.829099 / 06-09 23:51:09.279][0] init: cannot execve('/system/bin/custom.sh'): Permission denied
[   55.850172 / 06-09 23:51:09.309][6] init: Service 'custom' (pid 7729)
[   55.850224 / 06-09 23:51:09.309][6] init: Service 'custom' (pid 7729) exited with status 127
[   55.850243 / 06-09 23:51:09.309][6] init: Sending signal 9 to service 'custom' (pid 7729) process group...
[   60.830224 / 06-09 23:51:14.289][6] init: starting service 'custom'...
[   60.832073 / 06-09 23:51:14.289][1] init: cannot execve('/system/bin/custom.sh'): Permission denied
[   60.832153 / 06-09 23:51:14.289][3] audit: type=1400 audit(1560142274.289:131): avc:  denied  { transition } for  pid=8035 comm="init" path="/system/bin/custom.sh" dev="sda24" ino=8146 scontext=u:r:init:s0 tcontext=u:r:su:s0 tclass=process permissive=0

```

I have very little experience with SELinux Policies. Please guide me how can I fix this.

# Answer
> 6 votes
Here the error is:

```
audit: type=1400 audit(1560142274.289:131): avc: denied { transition } for pid=8035 comm="init" path="/system/bin/custom.sh" dev="sda24" ino=8146 scontext=u:r:init:s0 tcontext=u:r:su:s0 tclass=process permissive=0

```

In easy words it states that *`init` is running with its context `u:r:init:0`, you want it to execute `/system/bin/custom.sh` with context `u:r:su:s0`, but it's not allowed in sepolicy*.

Rooting a phone gets two things: UID `0` (which you have) and an unrestricted SELinux context (which you don't have). Magisk allows any other context to do anything with its own contexts (`u:r:magisk:s0` and `u:object_r:magisk:s0`). And it can do anything to any other context. See details in this answer.

`u:r:su:s0` is a limited context which doesn't allow `init` to make transition to itself. Only adb can do this on `userdebug` or `eng` builds of a ROM. See reference and this answer for details.

Possible solutions:

* Run service in `init`'s context if it doesn't need to access any resources which `init` isn't allowed to access. But in most cases it's highly unlikely.
* Root your device with Magisk and run service with `u:r:magisk:s0` context as explained in this answer.
* Modify your SELinux policy to allow this transition. Inject the following statement to `sepolicy` using magiskpolicy or sepolicy-inject:

```
~# magiskpolicy --live 'allow init su process transition'
~# sepolicy-inject -s init -t su -c process -p transition -l

```

Also see `dmesg` for any other denials. As a reference, on my device `init` is allowed to do following operations to Magisk:

```
allow init magisk : process { fork transition sigchld sigkill sigstop signull signal ptrace getsched setsched getsession getpgid setpgid getcap setcap share getattr setexec setfscreate noatsecure siginh setrlimit rlimitinh dyntransition setcurrent execmem execstack execheap setkeycreate setsockcreate getrlimit }
allow init magisk : fifo_file { read write getattr open }
allow init magisk : fd use
allow init magisk : unix_stream_socket { getopt connectto }
allow init magisk : binder { impersonate call set_context_mgr transfer }

```

Then extract `boot.img` and `ramdisk` (only on non-system-as-root devices), replace `/sepolicy` with new policy file copied from `/sys/fs/selinux/policy`, repack `boot.img` and flash back.
* Set SELinux permissive

From root `adb shell` do `echo -n 0 >/sys/fs/selinux/enforce` or `setenforce 0`. However this is not permanent and will be set to `enforced` on boot. `init` can't set it permissive. Also setting SELinux permissive is a security risk and hence never recommended.

---
Tags: root-access, linux, scripts, services, init.d
---


# Question
Title: How do I create a shortcut to another file or folder inside a folder?
How do I create a shortcut to another file or folder inside a folder?

Example:

Suppose I go to a folder A `/storage/sdcard0/pictures`. I know that I have another folder B `/storage/sdcard1/music`. I want to create a shortcut inside folder A that point to folder B such that when I click on the shortcut, it goes to folder B.

I would appreciate if the answer is not about creating a shortcut on your home screen because this question is about creating a shortcut in a folder, not on the home screen. Thank you.

# Answer
For the benefit of future visitors, Android's `/sdcard` is an emulated storage, not the real filesystem. It doesn't support symlinks (what you call shortcut).

See this answer for details.
> 0 votes

---
Tags: internal-storage, 4.1-jelly-bean, 4.2-jelly-bean, storage, 4.3-jelly-bean
---


# Question
Title: status bar with icons to simulate home or power button press
i'm rooted on android 4.0.4 ICS stock.
i would like to have a status bar that even shows in full screen, which can have an icon to simulate a home button press and an icon to simulate a power button press. anyone know of an available way to do this on this rom or another rom?
thank you,

# Answer
> 0 votes
Screen off app: Screen Off and Lock

Then, something like Notification Toggle can be used to have this icon and others in the notification dropdown.

# Answer
> 1 votes
You always can install Button Savior on rooted ROMs (however I'm not aware if it has compatibility problems with some). It worths a try, because it's free (but also has a pro version to purchase).

It allows you to add hardware keys of your phone as virtual software keys on any location of the screen. So you can easily trigger home or back keys just by touching their icons on screen, even on full-screen apps and games.

---
Tags: 4.0-ice-cream-sandwich, samsung-galaxy-s-3
---


# Question
Title: Re-locking bootloader with stock ROM/recovery - Wileyfox Swift 2 Plus
I recently unlocked the bootloader on my Wileyfox Swift 2 Plus to take a partition image, as per this answer. I didn't flash the recovery or make any change to the ROM, and the device is not rooted. After a factory reset (to Android 8.1.0, if that helps), I now need to re-lock the bootloader, but `fastboot oem lock` renders it unable to boot normally. I can still boot into fastboot mode or recovery, but the phone won't start normally until I run `fastboot oem unlock` again. How can I get this back to factory settings, with the bootloader locked?

Note that I'm not interested in reasons to keep the bootloader unlocked. Having the bootloader locked is a requirement for several apps that I need to use, and I'm not going to try to bypass that.

# Answer
> 0 votes
You can try to reflash the stock rom, or if your only problem that apps wouldn't work install magisk and by this apps you can use magisk hide.

---
Tags: twrp, fastboot, bootloader, 8.1-oreo, bootloader-lock
---


# Question
Title: Does "Data Saver" also apply to metered Wi-Fi?
The section `Use Android Nougat’s "Data Saver" (Android 7.0+)` under this site How to Restrict Background Data for Metered Wi-Fi Networks on Android mentions:

> Android 7.0 Nougat introduced a much more granular way to take the reins on your mobile data with a new feature called Data Saver.
>
> Basically, this allows you to limit background data used by apps, but whitelist anything that want to have unrestricted access. This means background data is disabled for every app by default, then you can pick and choose where to grant unlimited access
>
> And that’s all there is to it. It’s worth keeping in mind that this only applies to mobile data-all apps will remain unrestricted while on Wi-Fi.

My question is whether this `Data Saver` option applies to Wi-Fi that you set to metered, meaning metered WLAN?

# Answer
> 3 votes
Yes, Data Saver option applies to metered Wi-Fi. As quoted here:

> From Android 7.0 (API level 24), users can enable Data Saver on a device-wide basis in order to optimize their device's data usage, and use less data.
> ...
> When a user enables Data Saver in **Settings** and ***the device is on a metered network***, the system blocks background data usage and signals apps to use less data in the foreground wherever possible.

Android achieves this through `iptables` and I can confirm (tested on Pie) that `REJECT` rules are added for `wlan0` interface when both conditions meet i.e. Data Saver and Metered WiFi.

---
Tags: wi-fi, 7.0-nougat, mobile-data, 7.1-nougat, background-data
---


# Question
Title: How do I change phone number in Viber from SIM1 to SIM2, when I only have data on SIM2?
How do I change Viber phone number in a dual-SIM phone from SIM1 to SIM2, when my current Viber account's phone number corresponds to SIM1, but I only have data on SIM2? (e.g. when I have moved to a new network)

(The Viber doc does not say how to)

# Answer
> 2 votes
1. In `Android > Wifi & Internet > SIM & network`, Enable both SIM1 and SIM2. Set 'default SIM for mobile data' to SIM2.

* Apparently Viber needs to see old SIM1 as well, to verify it corresponds to your account, before it will allow changing phone number. But SIM1 is disconnected and doesn't need roaming; all your data is now coming via SIM2. While you are in this in-between state, you will not be able to receive any calls or messages with Viber - but neither Viber nor Android won't actually tell you 'No network on SIM1'. Viber will not notify you it's offline (oh no, proper notification would be too easy...), it will appear as if it's online, except when you try to send a message it will just get silently delayed, or when you try to make a call you get a 'No Service' dialog (but it won't say which SIM, and even if you do have service on SIM2 and SIM2 is enabled as default).

1. Close and reopen Viber. Go into `Settings > Account > Change phone number > New phone number > Continue > Continue (to prompt about spamming your contacts with your new number)`

* Type in the new phone number (from SIM2) and press `Continue`. Viber will attempt to message all your contacts but fail with 'No Service'. Ignore that. (Actually it's desirable to prevent Viber spamming your entire contact book)
* Viber will send the confirmation code to the new SIM2 number. This should succeed. This is the crucial step.
* Verify it worked by checking that the phone number at the top of the 'More' profile page (under your picture) has changed to the new one.
* If this step didn't work, do it again till it works. Make sure you actually have data connectivity on SIM2.

1. In `Android > Wifi & Internet > SIM & network`, disable SIM1. (At this point you could power down and remove SIM1 from SIM tray, if you won't need to reactivate it again/soon).
2. Now, you apparently have to reboot your phone. (Quitting Viber and deleting its cache don't seem to be enough. Although the Viber doc implies this is never needed.)
3. Restart Viber and everything should be fine under SIM2.

(None of this procedure is described in `Viber doc > Change phone number` but should be. Possibly because dual-SIM phones are not very common in Europe and US.)

---
Tags: sim-card, dual-sim, viber-messenger
---


# Question
Title: Why can't Tasker manage battery mode on my rooted Pixel?
I've been using Tasker to mute my phone at work. I recently added some nested tasks to enable and disable battery saver mode when I arrive and leave. However, it doesn't seem to have permission.

The phone is stock rooted Oreo on the October 2018 security patch release. Tasker is up to date.

I first see a notification:

> **Missing Permissions**
> Tasker needs the following permission(s) for the funcationality you have configured:
>
> Write Secure Settings

Tapping the notification, I then get a modal:

> **Missing Permissions**
> Tasker needs to have permission to write secure settings to use this action. Want to learn how to grant it?
>
> NO OK

Then another:

> **Use Root**
> Since your device is rooted you can automatically grant this permission. Do it now?
>
> NO OK

Opting for the affirmative results in a toast notification:

> Tasker has been denied superuser permissions.

The battery mode never gets changed. Thanks for any assistance.

# Answer
As it was confirmed in the comments, Tasker was denied superuser access in the Magisk app. Tasker can enable battery saver.

If anyone wants a command-line solution, try this:

Code -\> Run Shell -\> Command: `settings put global low_power 1` -\> tick Root.

Replace 1 with 0 to disable battery saver via command-line.

Tested on OnePlus 6 running Android 8.1.
> 2 votes

# Answer
If you use the Magisk app, add superuser permissions at Menu \> Superuser \> Tasker = ON.

That worked for me on Resurrection Remix OS with Android 9.
> 2 votes

---
Tags: permissions, tasker
---


# Question
Title: Will the new changes to Android 9 cause the VPN based firewall apps become obsolete?
Firewall apps use VPN to manage network (to allow or disallow apps to connect to the Internet via Wifi or Mobile Data), mainly is for phones that are not rooted.

However, this article mentions:

> As XDA Developers explains, access to proc/net is going to be tightened up so that only **designated VPN apps** will be allowed to read TCP and UDP files (and in turn interpret network activity).

Even though I support that Android should have features to allow or disallow Apps to have Internet access, BUT this wonderful feature may not even applies to Android or Google apps itself. (Such as the data hungry Google Play Store and Google Play Services apps!)

Thus, if only designated VPN apps are allowed, this means that phones which are not rooted will no longer be able to use Firewall apps that use VPN to manage network! This is totally unacceptable!

If Android 9 (Android Pie) do not allow end-user to be able to control the network for the famous and notoriously data hungry Google Play Store and Google Play Services apps (that self update without permission from end-user), then it implies that **Google and Android have fail the city by disregarding end-user's concern on network usage!**

Therefore, I would like to know if Android 9 will result in such unfair and despicable behaviors.

# Answer
> 1 votes
Have a read of the commit on googlesource here. It states

> Files in /proc/net leak information. This change is the first step in determining which files apps may use, whitelisting benign access, and otherwise removing access while providing safe alternative APIs.

\[....\]

> * Labels /proc/net/{tcp,tcp6,udp,udp6} as proc\_net\_vpn due to existing use by VPN apps. This may be replaced by an alternative API.
> * Audits all other proc/net access for apps.

# Answer
> 1 votes
I'm not a developer but I can try to put a simple picture of this scenario. The purpose behind restricting apps' access to `/proc/net` is to make sure that VPN apps should no longer be able to detect when other apps connect/disconnect to/from internet. It's justified as it was a security flaw. VPN apps have been accessing these files to detect device's network activity, which is possible through proper Android APIs. And ***that only designated VPN apps will be allowed to read TCP and UDP files*** was just for Pie release, giving some grace period to developers of VPN apps.
On Android Q:

> Android Q removes access to `/proc/net`, which includes information about a device's network state. Apps that need access to this information, such as VPNs, should refer to the NetworkStatsManager and ConnectivityManager classes.

Coming to your concern:

> it implies that Google and Android have fail the city by disregarding end-user's concern on network usage!

As quoted in my answer to one of your other questions, firewall apps which are based on VPN have become somewhat privacy protections apps just as a side effect of Android's VPNService API which wasn't intended for this usage. Such apps can do app filtering based on `UIDs` and/or `SOcket_MARKs` which Android uses to categorize the network traffic for different purposes. If they wanted to give users freedom of choosing which apps can access internet and which can't, they could simply set Protection Level of android.permission.INTERNET `dangerous`, but it doesn't favor their business model.

Consider the fact that Google is biggest search engine and `ads` are their prime source of revenue. Android is a world of targeted advertisement through online tracking and profiling, though no doubt they try to protect user's privacy and security from certain aspects. Device is yours, you must be given the right to restrict connectivity of even the daemons running as root. But it's not the case. That's why advanced users who want a more fine-grained control on privacy, usually root their devices and make use of lower level things like Linux kernel's builtin firewall `iptables`. Going further deeper there are mods like `Xposed` to Android core framework. Android's hidden *permission manger* `AppOps` is also helpful from certain aspects. Also some custom ROM have such features built-in, so that no third party firewalls are required:

---
Tags: wi-fi, mobile-data, vpn, firewall, 9.0-pie
---


title: Phone gets stuck after charging

text:
# Question
Title: Phone gets stuck after charging
My phone is somewhat older sony xperia v. still running on android v4.1 jelly bean. recently it behaves abnormaly. whenever I put it in charge (wall adapter or usb plugged into a laptop) , it only sometimes very slow to respond while chargin and almost always slow to respond after i remove the charging cable. its usually working very much fine but in only these situations it acts abnormly.

i don't have many apps installed and i usualy force-stop them after i use them. and also phone works very much fine in normal situations. only after charging this happens.

why is this happening and what can i do to avoid this? please help

# Answer
> 0 votes
Your device is very old and contains dozens of vulnerabilities. Therefore one very likely scenario is that malware has infected your system using one of the vulnerabilities and now uses your CPU to do something, e.g. Bitcoin mining or something similar.

As on Smartphones heavy CPU usage results in high battery usage (which is usually easy detectable by the user) this malware only abuses your device while it is charging.

As it is so old I assume it has only one CPU core and if the malware is active the CPU operates at full capacity and hence the device is nearly blocked. The detection if the device is charging or not is a bit slow therefore this effect continues some time after you have disconnected the phone from the charger.

---
Tags: charging, screen, system-error
---


title: Where does Havoc Os store update files?

text:
# Question
Title: Where does Havoc Os store update files?
I am relatively new in **HavocOS**.

I am seeing an update has arrived in my OS, it is downloaded already. But I can't find the files downloaded in the mobile.

I want to manually update with **TWRP** recovery to install the Upgrade.

But where does HavocOs store its downloaded upgrade files?

# Answer
> 0 votes
I have found a solution ***here***.

> Hold **tap** near the **changelog button** and you'll see an **export option pop up**.
>
> Click on it and it will export zip file in **internal storage** in a folder called ***Updates***

# Answer
> -1 votes
`/data/havoc_updates/` is the location.

---
Tags: rom-flashing, custom-roms, twrp
---


# Question
Title: Is this Android phone Android 9.0 or Android 6.0?
I purchased an XGody Mate 20, advertised as Android 9.0.

Indeed, if you switch it on Settings -\> About Phone reports Android 9.0:

However, when I plug the device in, Android Studio reports it to be Android 6.0:

Also the DevCheck Android App also reports the device to be Android 6.0.

Is there any way to find out which is it really? I bought this under the understanding it was an Android 9.0 device.

# Answer
I wanted to turn some of the comments into an answer that can be used for additional verification in case someone else runs into a similar issue where the vendor also reskinned the notifications window.

Android 9.0 was released in March 2018. The Security patch level is May 2017. This doesn't make sense at all. Would you trust it if the vaccination card for a 15 month old toddler says the most recent vaccinations were given 10 months before he was born? Not to mention that I'd really recommend against using a phone which is over 2 years out of date on security patches.

The Kernel Version also doesn't match: Android 9.0 has one of 3 kernel version: 4.4, 4.9 or 4.14. The stated version, 3.18.19, matches that of Android 6.0.

The Build Number also is cause for concern. MRA58K is related to the Android 6.0 ROM, and vendors are not supposed to use test keys for released products.

Overall, these are all causes for concern. This device has been tampered with (either rooted and the build.prop edited, or a full ROM edit), and poorly at that, since if they were competent, chances are they'd have edited the above values as well to be less suspicious. There is no way to know what other changes they made. At best they're trying to mislead you. At worst they're spying on your and stealing your money.

I urge you to get a refund. If that's not possible, I recommend you install a clean version of Android so you have less reason to worry about malicious intrusions. However, that might not be enough, because there might be intrusions in the device, either hardware or software, that can interfere with anything you do with the device. I agree with the others though that it's a security risk to use the device as-is.
> 50 votes

# Answer
Pull down the notification shade. If it looks like this:

It is android 6.0

If it looks like this:

It is android 9.0
> 34 votes

# Answer
this is not android pie

you can tell this because the little circle at the bottom looks like O and not ◉
> 0 votes

---
Tags: 9.0-pie
---


# Question
Title: Can't boot into recovery mode after flashing TWRP on Samsung Galaxy S5
# Problem

I can not boot my Samsung Galaxy S5 into recovery mode after flashing TWRP.

# Background

I am trying to install LineageOS on my Samsung Galaxy S5.

# What I tried

I followed the install guide on the LineageOS wiki:
1. Installing heimdall, which I built from source to get v1.4.2, since the previous version could not complete the handshake with my phone (other people had the same error)
2. Checking if heimdall works by using `heimdall print-pit`, which it did
3. Flashing TWRP by using `heimdall flash --RECOVERY twrp-x.x.x-x-klte.img --no-reboot`. Keeping their disclaimer in mind I tried both the current version as well as two older ones. Heimdall outputs `RECOVERY upload successful`, and I disconnect the phone (after the device has been released).
4. Booting into recovery mode -\> **FAIL**

# Error

The device boots into download mode instead (and no, I did not accidentally switch the volume buttons). There is no error message.

# Edit

I originally (and wrongfully) assumed the device to be Samsung Galaxy S5 LTE. It was, however, a Samsung Galaxy S5 Plus (at least this is how I explain the error).

# Answer
> 4 votes
# Preface

I have found the solution to my particular problem now, but if someone else knows more about this feel free to improve my answer or post your own.

# Solution

Annoyed with what I thought to be heimdall's fault, I turned to odin (not in a religious way).

This, however, gave me the same error. Close to desperation, I decided to check everything that I did again, and luckily so: Because the guide was emphasizing that the TWRP version has to be the correct one for the model, with not even a little deviation, I checked and found that what I thought to be be a Galaxy S5 was actually named Galaxy S5 LTE-A. However, the model read "SM-G901F", which belongs to the Galaxy S5 Plus. So after downloading the correct TWRP and LOS versions, everything went fine.

I am not sure if this was the only problem or if there is still a problem with heimdall, since the linked reddit thread suggests so.

# Conclusion

All this may be very well due to me not being patient enough to get the correct model before I start. In this case, I still hope that my error can serve someone else in their search, seeing as I linked a lot of resources (and maybe other people make the same mistake as me).

---
Tags: twrp, samsung-galaxy-s-5, lineageos, heimdall
---


# Question
Title: How to make fennec(firefox) not reopen and automatically load the last open tab?
After removing the Firefox Android browser (Fennec) activity and reopening it again, the lastly open tab appears and loads the webpage.

How can *this* be disabled?
*(by this, I mean that the tab that was last opened, is **reloaded automatically** upon reopening the firefox activity.)*

**background**

1. I **do** want open tabs to be conserved during cycles of closing and reopening the firefox/fennec activity.
2. However, it is annoying that this setting to keep tabs, provokes the last open tab (which was displayed at the moment the firefox activity was closed) to be automatically reloaded. More often then not I do not want to revisit this exact webpage, but was expansive mobile data volume and time for this.

# Answer
To disable restorng tabs, go to Firefox settings, then Advanced, click on Restore tabs. Select "Don't restore after quitting Firefox". It will not open previous tabs when you restart the browser.

But you said that is not the behavior you are looking for. Then the other possibility is to set as homepage a page you don't care for. Go to Settings -\> General -\> Home -\> Set a homepage, then select Custom and enter: `about:blank` (a blank page as your homepage). Click OK. Enable "Also use for new tabs".

From now, before closing Firefox, open a new tab. A blank page will be displayed. When you open the browser again, the blank page will be loaded. The other tabs will still be there.
> 0 votes

---
Tags: firefox-for-android
---


# Question
Title: I keep getting alerted regarding unread Facebook messages even though there is none
My phone beeps and tells me I have an unread Facebook message even though I don't. I've got a hunch what the source of the problem is. I have both the Facebook app and the Friend Caster app and they are connected to different Facebook accounts (one's for work one's for my personal life). Is there way I can stop getting these false "new message" alerts?

I want both my Facebook accounts on my phone because then all the contact numbers get pulled off both accounts. If anyone can think of a better way I'm open.

# Answer
It looks like Friend Caster is considered end of life so that may be the problem. Facebook apparently made changes to their api, so it has been discontinued. Source https://support.onelouder.com/hc/en-us/articles/204558634-What-Happened-to-FriendCaster-

You should be able to have 1 account on the app and one on the preferred web browser, or you could go the route this page talks about https://android.gadgethacks.com/how-to/set-up-two-different-facebook-accounts-one-android-device-0161254/

There are probably other workarounds but these are the ones I found with a quick google search.
> 1 votes

---
Tags: notifications, facebook
---


# Question
Title: install a flashable zip, using the "Install Update from SD card" option built into any stock recovery
I'm looking for a way to install a flashable zip (no OTA zip), using the "Install Update from SD card" option built into any stock recovery, without installing a custom recovery. Is there any way to do this? Will "unlocking OEM" in developer settings allow this?

# Answer
Unfortunately this is not possible on devices newer than Android 5.0.

After 5.0, signature verification was enhanced to combat the Universal Signature bug.

---

Prior to Android 5.0, a bug existed in the Signature verification program, something to do with the way the signature was validated allowed another signature to result in the same validation ( The Universal Signature ) .

To answer your question for Android 5.0 and lower..

* Repackage the custom system.img into an OTA Update format
* Sign the update package with the Universal Signature
* Hope that it validates through the stock program.

In most cases, the recovery program checks the format and signature are correct, then it check's if the package is designed for your device by reading the build.prop.

If your build.prop matches the package, and the signature is validated it will install.
> 0 votes

---
Tags: recovery-mode
---


# Question
Title: adb device doesn't listed on cmd {Lenovo K8 Plus}
I am trying to root my Lenovo K8 Plus after unlocking bootloader. I try to install TWRP and somehow the TWRP recovery doesn't open and the phone is struck in the bootloop. I then fastboot the device and connect to PC and open minimal fastboot cmd. The phone wasn't listed in adb device, but listed in fastboot devices.

I think usb debugging is not turned on because the system doesn't restart (maybe there is no ROM).

What should I do?

# Answer
Common mistake these days people do not read the instructions.
Here is a example Warning from TWRP site:

> This device uses dm-verity!
>
> This means that swiping to allow system modifications will prevent you from being able to boot if you are using the stock kernel. In order to bypass dm-verity's boot prevention, you will have to install a kernel that has dm-verity disabled in the fstab.

Go back to the Tutorial where you have downloaded TWRP and read, i am pretty sure there is something you forgot to flash.
Universal DM-Verity ForceEncrypt Disk Quota Disabler

Another common mistake after flashing TWRP you must not boot into android. Reboot straightforward into recovery right after flashing, otherwise your custom recovery will be replaced with stock recovery
`/system/recovery-from-boot.p`
> 1 votes

---
Tags: adb, rooting, fastboot, boot-loop
---


title: What are AP Bands?

text:
# Question
Title: What are AP Bands?
There are 2 AP bands in Android WiFi settings (2.4GHz and 5GHz). What is their use and what effects will be seen if we modify the `WCNSS_qcom_cfg.ini` file in order to support 40MHz.

# Answer
> 2 votes
**Q1:**

> What is their use

These 2 bands, 2.4GHz and 5GHz, are extensively used in consumer technologies for the transmission of data wirelessly. They are both free to use, no need to apply for a license. On a phone, they are use for wireless connections to other access points, routers, or to create hotspots for other phones, tablets, etc.

There are other devices that use these bands such as cordeless phones, routers, automatic garage door openers, etc.

**Q2:**

> what effects will be seen if we modify the =\>WCNSS\_qcom\_cfg.ini\<= file in order to support 40MHz

You should make sure that your WIFI chip supports those wide channel. If it does, then the bandwidth will increase (see the difference between range and bandwidth in the note section).

> ### What Channel Bandwidths on 2.4GHz and 5GHz?
>
> **On The 2.4GHz Frequency Band**
>
> When using the 2.4GHz broadcasting radio you should generally use a channel bandwidth block 20MHz wide. This is because there are more non-overlapping channels available when using 20MHz (as opposed to 40MHz) which means there is less likelihood of congestion or clashing channels.
>
> You can also use 40MHz on the 2.4GHz broadcasting radio. However it congests the Wi-FI in the area so if you live in a built up area it probably isn’t a great idea as it will interfere with other 2.4GHz users.
>
> **On The 5GHz Frequency Band**
>
> When using 5GHz, however, it is possible to use wider channel bandwidths for increased bandwidth. As such on the 5GHz channel you can use the 40MHz, 80MHz or even the 160MHz channel bandwidths (if your router or AP supports it) for increased bandwidth.

**Note:**

## Difference between range and bandwith

> **Range** : how far your data can travel. In most cases, the higher the frequency of a wireless signal, the shorter its range.
>
> The biggest reason for this is that higher frequency signals cannot penetrate solid objects like walls and floors as well as lower frequency signals. Thus, the 2.4 GHz has a farther range than the 5 GHz frequency.
>
> **Bandwidth (speed)**: Higher bandwidth means that files will download and upload faster, and high-bandwidth applications such as streaming video will perform much smoother and faster.
>
> Higher frequencies allow faster transmission of data, also known as bandwidth. Therefore, the 5GHz with its higher bandwidth will provide much faster data connections than 2.4 GHz.

**Sources:**

Using the 2.4 and 5GHz bands

What is the difference between 2.4 GHz and 5 GHz?

Why Your Router Has Two Wifi Bands and How They Work

20MHz vs 40MHz vs 80MHz vs 160MHz: What Channel Bandwidth Should I Use?

---
Tags: wifi-hotspot, wifi-tethering
---


title: How to find out firmware

text:
# Question
Title: How to find out firmware
How does one determine what firmware they are using? I've looked in settings -\> about phone and can't find it. I know I'm using Android 5.1.1 and have CM.

# Answer
> 3 votes
It depends and differs by the mobile manufactures.

For Sony, Samsung and Motorola devices you can find in `Settings > About phone > Build Number`.

If you have a Samsung device you can also check the version of firmware you currently have by dialing `*#1234#`.

In HTC devices it will be under `Settings > About Device > Software Information > Software Version`. (eg. 3.16.401.9)

The firmware number consists of several elements, all of which are essential for the functioning of the phone:

```
- PDA: Android operating system and your customizations.
- Phone: the actual identifier of your device.
- CSC (Country Exit Code): the languages and country-specific parameters.
- Bootloader: the boot loader program that runs at startup to all unit processes.

```

<sub> Screenshot - Click to enlarge image(Source - Ref)</sub>

# Answer
> 0 votes
While this is an old thread, others may find it by a search as I just did. On my Chinese tablet I have not found a way to relate the displayed build number of the firmware (V1.0.0\_V7 - but V7 is the hardware version) with a downloadable version. However, Aida64 tells me that there is a file */system/build.prop* described as Build Properties; examining that file, which is text, I find a great mass of information, thought not a build number as such. In my case I have a build *date*, which solves my problem: it is earlier than the date of the firmware I can download. I suppose the details are likely to vary from one device to another, but the general approach may be the best if there is no clear information. Some of the information displayed by "About" is not that useful; apparently my serial number is 0123456789ABCDEF

---
Tags: cyanogenmod, 5.0-lollipop, device-firmware, sony-xperia-z2
---


# Question
Title: Does blocking notifications at the system level stop data usage?
If I go to

```
Settings -> Apps & notifications -> Instagram (or some other app)

```

and turn notifications off for that app, does that stop data usage on my data plan? I ask because the message, when you turn notifications off for an app, is

> At your request, Android is blocking this app's notifications from appearing on this device

which would seem to imply that the Android OS will receive the notification, and swallow it up at the OS level. Which would imply that the phone does receive the notification from the network, thus some data usage would occur against your data plan.

So does blocking notifications stop data usage, or not?

# Answer
> So does blocking notifications stop data usage, or not?

It does not. A notification as stated in Notifications Overview is simply:

> a message that Android displays outside your app's UI to provide the user with reminders, communication from other people, or other timely information from your app

When you are connected, your apps will connect to servers to receive messages and communicate them to you. Blocking the notifications does not block the apps from receiving the messages, but from showing them to you.
> 1 votes

---
Tags: notifications, mobile-data
---


# Question
Title: How to delete an app without deleting app data?
I'm on an Android and my device is a Huawei. I got this device a few months ago and I don't want to root my device because I don't trust myself.

Is there a way to delete an app without deleting app data?

If possible, I don't want to use ADB because I don't know any good apps and my computer is in a bad state and I just don't want to use it. Even if it's a hard or complicated way, I might do it. I do have other devices that might help.

# Answer
> 3 votes
Assuming you are talking about apps you've installed yourself (and not about pre-installed apps), you can utilise for this. You need to know the app's package name first (the part shown in the Play Store URL in the `id=` parameter, or at F-Droid following the `/package/` in the URL). Then, with your device connected:

```
adb uninstall -k <app.package.name>

```

replacing `<app.package.name>` by the app's package name. The `-k` parameter is telling `uninstall` to *keep* the app's data. So when you next install the app, the data is already there and will be used.

---
Tags: applications, delete
---


# Question
Title: Can I use whatsapp with a number belonging to another phone
I currently have a Samsung S5 phone but find it bulky to carry and as I use it mainly for old fashioned calls I was thinking of moving my simcard (and therefore phone number) to my old Motorola Razr. I understand that the S5 will effectively become like a small tablet and the email will still work on the S5 but will whatsapp if I am using the number on another phone?
Will my whatsapp contacts notice any difference or will it work exactly as it currently does? Thanks

# Answer
> 10 votes
Answer is 'Yes', you can use it on your S5 seamlessly while using SIM in another device.

• Your Whatsapp contacts doesn't see any change.

• Remember Whatsapp can only be use on single device at a time(not whatsapp web) that means if you try to open it in your Moto device than you Galaxy device 's account will be closed.

# Answer
> 3 votes
I think I am in a good position to answer this question. You can always use a WhatsApp account with a no which isn't available in the device. I have been doing this for years. But please make sure that you setup a security code feature after successful completion of WhatsApp setup in the desired phone, which will secure you from being hijacked if the no(WhatsApp) lost!

# Answer
> 1 votes
Yes, you can use it on your S5 while using the SIM in another device.

1. You have to copy contact to that mobile.
2. Use the OTP that comes by SMS on that number to put on the mobile you want to use Whatsapp.
3. Sync your old chats from Google mail id, you use to store back up.

**Note:** Whatsapp can only be used on a single device, so only use one account associated only one mobile number.

**Suggestion:** You can also use Whatsapp Web to use Whatsapp on your laptop or computer without changing SIM.

# Answer
> 0 votes
Yes, you can, I have done it my times. Even the number is no more active, you still can use it for your WA. Like my WA's number right now, the number itself already deactivated by the operator since around 2 years ago. But I still use the number for my WA.

# Answer
> 0 votes
**Short answer**:

* Your S5 will still be usable for WhatsApp, with your phone number.
* Your WA contacts will keep the same.

**Important notes**:

1. Every phone number can be used with WA on a single device. Using WA with that phone number on another device enforces closing the WA account in the previously associated device.
2. Be aware that, when you insert your Sim card in another phone (Moto Razr here), if it has WhatsApp installed, the phone may prompt about "updating the account" (or the like) in a cryptic way, and not explicitly stating that it refers to WhatsApp (this depends on versions of OS and WA). If you answer "yes" (assuming it relates to the phone/line, not WA), the number will be used for WA in the Moto Razr, and **it will be automatically removed from the S5.** You will need to associate again the number with WA installed in the S5. It may be a problem if you do not have your Sim card at hand, as it happened to me before.
3. Be aware that, if you insert a new Sim card in the S5, WhatsApp may prompt for changing the number associated with the WA account (this depends on versions of OS and WA). You have to decide what you want to do.
4. The latest Android versions allow for having two WhatsApp accounts in a single phone (likewise for Viber, Telegram, etc.), with Dual Messenger. This required before the use of Parallel Space or the like. So for the case above, if you configure it properly, **you may keep you old WA account in the S5, and also have your new number associated with WA in your S5**. I have exactly this.

---
Tags: whatsapp-messenger
---


# Question
Title: What time does Google Play update apps when it is set to auto-update?
I'm not getting on what basis Google Play will update apps when auto-update is enabled.

Is it time-specific, or something else?

# Answer
> 1 votes
Adding to @Josh's experience mentioned in the comments above, the auto-update is not time-specific - I too have only seen the auto update proceed when on WiFi (my chosen setting) *and plugged in charging*. On my Sony Xperia running Android 7.0, it appears to be the default behaviour.

I can't find any more reliable sources for this behaviour, but there is lots of personal experience: http://forums.androidcentral.com/google-pixel-pixel-xl/747707-auto-update-apps-while-charging.html

Annoyingly, it is **not mentioned** on Google support, and I can't figure out how to give feedback to them about it: https://support.google.com/googleplay/answer/113412?hl=en-AU

I can only post 2 links in this answer, but the 'WiFi and charging' requirement has been requested as a configurable feature (google 'how-to-allow-auto-update-of-apps-in-play-store-only-when-plugged-in') and there may be a workaround to achieve similar behaviour using the WiFi on Sleep setting (listed on benjaminoakes dot com).

# Answer
> 1 votes
My phone's Google Play app auto-updates around 1:30 a.m. daily (phone is never plugged in at that time), so there is definitely no connection of update with phone plugged in.

Phone must have WiFi on (selected in Google Play settings) for update.

---
Tags: google-play-store, 4.1-jelly-bean, application-autoupdate
---


title: Auto wallpaper changer

text:
# Question
Title: Auto wallpaper changer
I need to auto download wallpaper from internet and set based on a frequency ( daily or hourly ) ? I'm using Samsung Galaxy Note 8 on Android Pie. Is this functionality available in android?

# Answer
You can try Casualis:Auto wallpaper change. It can:

> lets you have an always new wallpaper without lifting a finger: you just have to decide when you want Casualis to activate and you're done!
>
> Features:
>
> * Set a random wallpaper every 1/3/6/12 hours or every 1/3/7 days, at the time you prefer;
> * Choose a wallpaper manually among over 3000 high-resolution images or use your own images;

In the settings, you can select the wallpapers from. Disadvantage: It shows ads.

Or you can try Wallpapers.

> * Enjoy a collection that keeps on growing. Access images from Google Earth, Google+, and other partners.
> * Double your fun. Show the world one wallpaper on your lock screen, and keep one for yourself on your home screen. (Requires Android™ 7.0, Nougat, and above.)
> * Start each day fresh. Pick your favorite category and you’ll get a new wallpaper image each day.

Disadvantage: Made by Google and not updated since 2018.
> 1 votes

---
Tags: samsung, automation, 9.0-pie, wallpaper
---


# Question
Title: How to limit Google account access to selected apps?
I have used Google Photos App on iOS and the google account there allows me to disable access to the other google services where I don't see my other accounts in all Google Apps like Youtube, Gmail, Drive etc. This can't be done as far as I know on an android device. Although I can turn the automatic sync off but the account is pretty much there on all apps. Is it possible in some way that I achieve the same behavior as in iOS. It's pretty strange that google apps are giving more options on iOS than on Android.

# Answer
> 1 votes
There are two ways to do it.

## Method 1 - Ugly

If your phone supports multiple sessions (I mean this), then disable GApps except Google Photos in the new user session.

## Method 2 - Better

Use Parallel Space and just run the Google Photos A.P.K. in it
I'm not sure here but I think if you are a privileged user you can direct the sign in to a webview.
As suggested by @chx, `Shelter` is good, I just tested it, makes clone for these apps when I tried to do it for Google Photos.

# Answer
> 1 votes
I wanted to use Meet for workplace meetings but I absolutely didn't want my workplace account to be all over my phone, my emails, calendar etc. So I have installed Shelter. It's a delight to use. The app itself looks simple, it has two tabs, Main and Shelter. Initially I had only very few apps in the Shelter: Contacts, Files, Google Play Store (and Moto Actions). I can see them in the launcher, they have a little briefcase overlay, here are three normal icons with two versions of the Play Store:

I launched the work Play Store, added my workplace Google Account as prompted, installed Meet, the screenhshot has Messages next to it to show the difference:

The apps outside of the Shelter do not see my workplace account. This is absolutely perfect. Here's how Shelter now looks:

---
Tags: applications, google-account
---


# Question
Title: How to setup Android Chrome to translate highlighted text via the pop-up Google search?
How to set up the little pop-up bar down below the screen, which generates a quick Google search whenever a word or phrase has been highlighted, to automatically translate what has been selected. That was my original setup but I guess I have messed up some settings and now it doesn't translate. How can I turn it back on?

# Answer
1. Open Google Translate's settings.
2. Select "Tap to Translate", then enable "Enable".
3. In Preferred languages, set "Your primary language" and "Language you translate the most".
4. Go back to Chrome, select a word, "Translate" should appear. Click on it to translate the word.

**Update**

Based on Vadim's comment that the method might no longer work, to get the translation back:

1. Enter `chrome://flags` on your search bar
2. Type `translation` on the Search flag box
3. Set `Contextual Search translations` to Enabled.
4. Then Relaunch Chrome

You should be able again to see the translation at the bottom after selecting a word as seen on the image below.

**Remarks:**

* `Touch to Search` must be enabled in Chrome's settings (Settings -\> Sync and Google services -\> Touch to search)
* There are times when it stops working. You need either:

a. pressing the 3-dot then Translate or

b. to restart Chrome, or
> 4 votes

---
Tags: popup, google-translate
---


# Question
Title: How to auto-sync photos on Android [replicate Samsung Cloud]
On the Android phone Samsung Galaxy you can use Samsung Cloud which will sync your photos to online. Can we replicate this on a personal level to just your computer (and not going through Samsung Cloud). Here is how I imagine this:

1. You are outside somewhere and take some photos.
2. You come home and your Android connects to your home wifi.
3. Then an app or service wirelessly transfers the new photos to a folder on your laptop.

Thank you.

# Answer
To my knowledge, there is no on-board solution available. But with a little 3rd-party-help, this could be accomplished:

There's e.g. the app PhotoBackup (also available at Play Store if one insists) which does exactly that: automatically backup your photos as soon as they are taken – to your own backup server. For this it needs a counter-part on the server/computer you wish to backup to, which with this app is the tricky part (and described on its homepage).

Some alternatives can be found in my app lists here.

A third one would be to self-build a solution with one of the apps like or : trigger a sync whenever a photo was taken. As I haven't done that, I cannot provide a recipe here.
> 0 votes

---
Tags: samsung, sync, cloud
---


# Question
Title: My Samsung Galaxy Note 8 Doesn't Show an "Allow USB Debugging?" Prompt. Is there a fix?
Around this morning, I had the idea to transfer all my whatsapp chats(from android to ios)

Not so ***complicated***, right?

Well, I was in for a rude awakening. Not only did I spend literally 7 hours trying to fix it... I couldn't fix it!

That's basically why I'm reaching out to you. My last hope. My knight in shining armor.

Here are the more technical details:

* Before you say it, and I know you will, I'll tell you - I restarted my phone about 10 million times
* I've enabled and disabled usb debugging around 10 million times minus 1.
* I haven't played with adb so I don't screw with my android system. However if that's necessary, I'll do what must be done.
* I'm specifically using my own samsung galaxy note 8 since I previously tried on another phone(LG v20) and it didn't work either.

So, I must ask you, are you up to this challenge? Can you fix what seems unfixable?

P.s. Here's a preview of what should be showing up on my own android device but is not:

# Answer
> 1 votes
There's an option called "Revoke USB Authorization" within the Developer options. Click it and it'll revoke the auth key.

# Answer
> 0 votes
It seems like the profile of the computer(perhaps the RSA key fingerprint) was automatically recognized by the android device and so it didn't ask for any permissions. From there, I'm still kind of trying to understand it. But basically, as soon as I reset(factory reset) my computer, it started prompting me for authorization again. I'm sure the factory reset was on the extreme end of options, but it worked in the end.

---
Tags: settings, usb-debugging, data-transfer, 9.0-pie, samsung-galaxy-note-8
---


# Question
Title: Text recogniser could not be set up on your device error
I have a smartphone with stock ROM Android 7.0 (Nougat). I use OCR apps very often for scanning text documents. Previously, OCR used to work well, but recently I noticed that whatever OCR app I use, it always shows ***Text recogniser could not be set up on your device*** error.

Why is this happening and how to fix this? Please help.

# Answer
Make sure you have updated version of Google play services or it's not disabled and many OCR apps offer a file to download for the functioning of the app
> 0 votes

---
Tags: 7.0-nougat, ocr
---


title: How to use 2 sim cards & SD Card?

text:
# Question
Title: How to use 2 sim cards & SD Card?
I have xiaomi redmi note 5 pro, and the sim tray has a hybrid configuration, Either using 2 sim cards or 1 sim and one micro sd card. Is it anyway to use 2 sim cards and a micro SD card in the same time?

# Answer
> 1 votes
It is not really possible to do all of this in the phone, but you could insert both sim cards to the phone and use an SD to USB adapter.

---
Tags: xiaomi, dual-sim
---


title: What app is changing my volume?

text:
# Question
Title: What app is changing my volume?
My media volume occasionally and randomly jumps to 100%

Usually when it does happen it's in the first few seconds after I start playing music on my headphones, which makes me suspect Spotify or Bose.

How do I tell what app is doing this?

How do I tell what apps can change the media volume?

# Answer
> How do I tell what apps can change the media volume?

I have used aSpotCat in the past so I am recommending it for identifying apps by permission. Install and launch the app → tap on *List apps by permission* → tap on *Misc. permissions* → tap on three dots horizontal line icon → search "Change your audio settings".

This would list all the apps having permission to change the audio in the device globally.

Note: some users commented on the Play Store that the app shows too many ads, so I suggest using this app with internet connectivity disabled.

---

> How do I tell what app is doing this?

This may be Android version dependent since I have **tested this only on Android 8.1**, but here's how you can find the troublesome app.

Setup in your PC and run this command on the PC as soon as you detect the spike in the audio output:

```
adb shell dumpsys audio

```

In the overwhelming output, search for the section beginning with the title *Audio event log: volume changes*. Observe the last written entries (by timestamp). In my test case I launched a video player app to play a video and changed the volume through it. Then I inserted my earphones which are automatically detected by an automation app MacroDroid and the latter automatically lowers the volume to protect my ears. Here's how all these volume changes were reflected in the log I got for my test case:

```
Audio event log: volume changes (logged when command received by AudioService)
07-22 05:03:57:687 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_RAISE flags:0x1011) from android/MediaSessionService uid:1000
07-22 05:03:57:697 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_SAME flags:0x1014) from android/MediaSessionService uid:1000
07-22 05:04:03:982 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_LOWER flags:0x1011) from android/MediaSessionService uid:1000
07-22 05:04:03:999 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_SAME flags:0x1014) from android/MediaSessionService uid:1000
07-22 05:04:04:792 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_LOWER flags:0x1011) from android/MediaSessionService uid:1000
07-22 05:04:04:809 adjustSuggestedStreamVolume(sugg:USE_DEFAULT_STREAM_TYPE dir:ADJUST_SAME flags:0x1014) from android/MediaSessionService uid:1000
**07-22 05:05:09:860 setStreamVolume(stream:STREAM_MUSIC index:12 flags:0x0) from video.player.videoplayer**
07-22 05:05:09:871 setStreamVolume(stream:STREAM_MUSIC index:13 flags:0x0) from video.player.videoplayer
07-22 05:05:09:905 setStreamVolume(stream:STREAM_MUSIC index:14 flags:0x0) from video.player.videoplayer
07-22 05:05:09:988 setStreamVolume(stream:STREAM_MUSIC index:15 flags:0x0) from video.player.videoplayer
07-22 05:05:10:492 setStreamVolume(stream:STREAM_MUSIC index:16 flags:0x0) from video.player.videoplayer
07-22 05:05:10:542 setStreamVolume(stream:STREAM_MUSIC index:17 flags:0x0) from video.player.videoplayer
07-22 05:05:10:693 setStreamVolume(stream:STREAM_MUSIC index:16 flags:0x0) from video.player.videoplayer
07-22 05:05:10:845 setStreamVolume(stream:STREAM_MUSIC index:14 flags:0x0) from video.player.videoplayer
07-22 05:05:17:772 setStreamVolume(stream:STREAM_MUSIC index:15 flags:0x0) from video.player.videoplayer
07-22 05:05:17:789 setStreamVolume(stream:STREAM_MUSIC index:16 flags:0x0) from video.player.videoplayer
07-22 05:05:18:275 setStreamVolume(stream:STREAM_MUSIC index:15 flags:0x0) from video.player.videoplayer
07-22 05:05:18:325 setStreamVolume(stream:STREAM_MUSIC index:14 flags:0x0) from video.player.videoplayer
07-22 05:05:18:392 setStreamVolume(stream:STREAM_MUSIC index:13 flags:0x0) from video.player.videoplayer
**07-22 05:05:21:665 setStreamVolume(stream:STREAM_MUSIC index:6 flags:0x0) from com.arlosoft.macrodroid**

```

In the highlighted lines, the term that follows after the word *from* is the package name of the app which triggered the change in the volume level, which in my test case are *video.player.videoplayer* (for my Video Player app) and *com.arlosoft.macrodroid* (MacroDroid app).

Whatsoever package name appears in your output, you can find the corresponding app name by using this answer of mine.
> 6 votes

---
Tags: volume-control
---


# Question
Title: Why is transmitting a file locally through AirDroid slower than downloading it from the internet?
I have a video file on my Android device (One Plus 7 Pro). I use the app AirDroid to download this file to my desktop computer through a web browser or application on the computer. This all happens locally, I can cut the internet connection in the middle of the transfer and it will not impede the transfer.

I find that this transfer is slower than I would expect. The fastest speed I have been able to achieve is 6 megabytes per second, which I only achieve when I host a hotspot with my phone, and connect the desktop to that.

If I connect both the phone and the desktop to a WiFi router, I only get roughly half that speed.

Both these devices are capable of both uploading and downloading data much faster than this. If I connect them to a sufficiently fast internet connection through WiFi, they can upload and download files from and to the Internet at multiple times the speeds mentioned above.

If their hardware are capable of that when transmitting to/from the Internet, why can they not do the same thing locally? I would assume that having removed the bottleneck of the Internet connection, the speed would be much faster.

I have noticed that this speed limitation also occurred with other apps that did similar things, such as ShareIt. I have also noticed it a multitude of Android devices from various brands, and various computers.

# Answer
> If I connect both the phone and the desktop to a WiFi router, I only get roughly half that speed.

This is because of the way a Wifi network works. If you transmit data from one Wifi device to a second Wifi device connected to the same Wifi network (using the Wifi frequency and the router does not support MIMO) the data will be always transmitted this way (defined by the Wifi standard):

device 1 -\> Wifi router -\> device 2

Therefore each packet has to be transmitted twice over the air and in your Wifi only one device can be active (sending or receiving data) at a time. It looks like the limiting factor in your set-up is the Wifi transmission speed. Both devices seem to use the same Wifi frequencies and therefore can not communicate at the same time but alternating. Therefore you only get the half speed.

This situation would not occur if your Wifi would support one of the following techniques:

* The Wifi works in both 2.4GHz and 5GHz mode (and one device supports 5GHz Wifi)
* The router has multiple antennas and can use antenna diversity (MU-MIMO) so that multiple devices can communicate at the same time

Alternatively there would be the possibility to use a WiFi Direct connection. It does not involve the router, therefore the connection should be up to twice as fast. But I don't have any experience with such a connection and AirDroid.
> 2 votes

---
Tags: wi-fi, file-transfer, file-sharing, shareit, airdroid
---


title: Black screen starting an app

text:
# Question
Title: Black screen starting an app
Occasionally I'll start an app only to be presented with the App's title bar and a black screen. Usually the app's interface shows after 3-10 seconds. Very rarely the screen will stay black. I don't have any real idea about why or how to reproduce it.

I'm wondering if this is simply the phone working to try to start the app or maybe I've got too many other applications open?

Is there some way to reduce/prevent apps from showing a black screen at first and/or not opening at all?

# Answer
> 6 votes
Black is the default plot color for Android, so this is the placeholder until the app completes it's layout operation. There are a number of things that can cause an app to have a delay here:

* Performing a network call(s).
* Loading data from disk.
* Garbage collection from other tasks.
* Restoring a complex drawing.

You can check to see if it is related to network latency by putting your phone in airplane mode and opening the app. If the app pops right up, the long delay is likely due to a network call that takes a while to complete (and completes immediately as an error when there is no connection).

The other three are trickier to test for. If it is garbage collection, you will likely only see the delay when other apps have been recently running and then switching immediately the misbehaving app. You can completely uninstall an app, including user data, and then re-install to see if it has something to do with your personal settings.

# Answer
> 1 votes
The black screen is probably related to 'lag'. This lag can be caused by a number of things.

On the Samsung Galaxy S its a 'known' problem that the memory used for main storage is pretty slow. Especially when another app is writing a lot of data (mostly big downloads and marketplace updates)

When I'm updating applications or creating a lot of data traffic I generally just don't use my device for anything while those apps are busy, this should help you too prevent the 'black screen of lag' on your device.

# Answer
> 0 votes
I've seen this before, it seems to be when the application is loading or switching back into the foreground while the OS is busy doing something else. Seems more likely to occur when in the middle of a sync or while happening to receive a text message or some other notification causing event.

# Answer
> 0 votes
when you flip your smartphone you can tell if the app is protected (maybe want to register first before use or so like Obi Dos Applications).

# Answer
> 0 votes
Go to Settings select Systems \> Reset \> Reset all settings.

---
Tags: performance
---


# Question
Title: Can I safely delete .facebook_cache folder if I don't have a Facebook app installed?
I have noticed that there is a folder named `.facebook_cache` in `/storage/emulated/0/`

I have never had the Facebook app or the Facebook Messenger app installed on the device and I don't intend to. At first I thought it must have been put there by the Facebook website, which was concerning, or been set up as default by the Android OS. After reading around I assume it was imported as a backup from the Google cloud from an earlier device which had the app installed.

Can anyone confirm the reason that it exists on this device and if it is okay to delete the folder without causing any issues?

# Answer
Quoting from Mathew Read's answer here

> **Cache** is temporary files. One example might be thumbnails for contacts in a social media app. These can be cleared without any major effect — the app can just download them again when it needs to — and if space is low the Android OS may remove cache files itself.

You don't even have the app installed , so it can do no harm

The reason for it being of likely the Google Backup, since you never installed the app

You can also use the SD maid app mentioned here, which I find very effective in removing *corpses* and cleaning system How to clean up related files from deleted apps?
> 2 votes

# Answer
I had this directory, too.

I discovered pictures in it (everything except the journal file) are created when a map thumbnail is opened in Whatsapp after giving it storage permissions.

You can safely delete this directory.
> 1 votes

---
Tags: facebook, cache
---


# Question
Title: How to uninstall a system app using adb uninstall command (NOT remove via rm or any other way)
Have to mention this to avoid possible confusion, this question is *not* duplicate. This question is specific to **using adb to uninstall a package**. There are several similar questions but are all different from this one, as they're focused on removing an application by any means.

*Please do not provide answers using "rm" command to delete the package files. Also, answers related to malformed package names, or trailing carriage returns. I think they're pretty much all covered in all the other questions.*

I had `pm uninstall` functionality but after ROM upgrade. Some things won't uninstall anymore. For example the following two system apps (which I removed under previous ROM, significantly improving overall performance):
/system/priv-app/SecurityCenter/SecurityCenter.apk=com.miui.securitycenter
/system/app/Updater/Updater.apk=com.android.updater

Now I get an error trying to pm uninstall them: **Failure \[DELETE\_FAILED\_INTERNAL\_ERROR\]**

But other **system** apps (which won't uninstall through regular android interface) do uninstall via `pm uninstall` command. Example:
/system/priv-app/Browser/Browser.apk=com.android.browser

So both are system apps, what could be the difference between them?

For reference, I upgraded from MIUI 8.1.6.0 to 8.5.3.0, and re-installed TWRP and SuperSU. This question is not specific to my ROM, as I see other people are in the same situation. But I seem to have an advantage being able to be able to uninstall some system apps. And am willing to contribute, to find a solution for everyone, to uninstall any app.

I tried: mount -o rw,remount /system
but that didn't solve it.

Please help out with any ideas along the way. Thanks!

---

*`Update 1`* \- Confirming steps to avoid intermittent issues
* Wiped all partitions in TWRP
* Installed Latest ROM (MIUI 8.5.3.0)
* Went back to TWRP, wiped only /Data
* Restored /Data from backed up version of the ROM that came with device (MIUI 8.1.6.0)
* Now after I boot into OS, ROM shows as latest (MIUI 8.5.3.0) in settings

Now I am able to pm uninstall every app I've tried. Even the most resilient: Google APP, Updater, Security.

This Frankenstein.. err I mean hybrid ROM works fine so far, and I've already removed many system packages, making the phone (Redmi 3S+) visibly faster. But I would still like to pinpoint what was causing this to make it into *Generic Solution*. So, if it ain't broke I'm willing break it, so next time it breaks we will know what's causing it and how to fix it.

*`Update 2`* \-
* Wiped all partitions and restored all partitions from Original ROM.
* Restored to factory settings (using TWRP)
* and after booting into ROM, went back to TWRP and made another backup
* Using same scenario as in Update 1 above, with only exception of using /Data from here. pm uninstall does *not* work.

Any thoughts on the differences between the two /Data partitions I should be focusing on?

# Answer
I succeded adding the **-k** and **--user** options to the **pm** command, e.g.:

```
pm uninstall -k --user 0 com.android.service

```

The command was issued as root, no need to remount /system as rw. Android on the phone is 6.0 and the package is a system app. Without the extra option I get the error:

```
Failure [DELETE_FAILED_INTERNAL_ERROR]

```
> 26 votes

# Answer
Also works without -k (keep user settings) option:

```
pm uninstall --user 0 com.android.service

```

and without opening adb shell:

```
adb uninstall --user 0 com.android.service

```
> 15 votes

---
Tags: adb, twrp, uninstallation, miui, supersu
---


# Question
Title: Will phone lose pairing if it was paired via WiFi direct and it connected to a WiFi network?
If a phone and another device is connected via WiFi direct, and the phone detected a home or free public WiFi network, will it connect with the WiFi network and lose pairing with the device it was originally paired to?

# Answer
> -1 votes
It will not connect the other wifi if you didn't connect it manually.

---
Tags: wi-fi, wifi-direct
---


title: 8 Ball Pool (Miniclip) on Android x86

text:
# Question
Title: 8 Ball Pool (Miniclip) on Android x86
I'm using Android x86 emulator on a Dell Vostro 3500. I installed 8 Ball Pool by Miniclip When I try to run the app, I get a message saying I need 20mb additional space before I can continue, but that's ridiculous because I'm using a 1TB drive. What is wrong and how do I fix this?

# Answer
it can be from the emulator and you can search for it on youtube or you can change it to bluestacks / nox or tencent gaming buddy if it has the game or you can use an android os besides your current os such as phoenix os / prime os :)
> -1 votes

---
Tags: android-x86, dell
---


# Question
Title: How do I block this (carrier) advertisement dialog?
I receive this kind of messages almost every day, and I'm tired of them.

Screenshot (click image for larger variant)

I want to block them, but I have no idea how are they called. I'm looking for a way to block this messages, either via an app (doesn't matter if it needs root) or programatically (if I can detect these messages, perhaps I would be able to create an app to block them).

EDIT: The message icon is the same as the SIM Toolkit. Could this be related? As far as I know, Cell Broadcasts don't show with "OK" and "Cancel" buttons as this message.

# Answer
> 11 votes
From what I can see from this site (In Spanish): this is a specific advertising service that only the `Movistar` network seems to push to phones.

The only solution I found is to Disable the "SIM Toolkit" application, `Settings > Applications > SIM Toolkit` but this may require access to your device. Removing SIM toolkit according to Android Forum users can be removed without any issues. I would `Disable` it rather than take the nuclear deletion option personally.

From the link:

> Hasn't been on my phone in a year... no problems without it - that I'm aware of.

and

> I know for a fact that 4G works without it... has not been on my phone for the last year - and every ROM I could flash made no difference. I'm really temped to believe that SimToolKit is for Metro's various services/bloatware (where they monitor data usage - for whatever reason)

From Wikipedia:

> SIM Application Toolkit (commonly referred to as STK) is a standard of the GSM system which enables the Subscriber Identity Module (SIM) to initiate actions which can be used for various value-added services.

These so called 'value added services' are what you want to remove.

Alternatively you could contact Movistar and see if they can stop it, tell them it is crashing your device or causing you issues and ask what can be done. Depending on your contract you could move to another network also.

# Answer
> 3 votes
I was getting tired of those messages too, worse of all, the text was always garbled.

If you already have `Titanium Backup Pro` like I do, I simply "Froze" the SIM Tool Kit app. It disables the application and prevents the icon from appearing in your app drawer.

If you were ever to need it you can unfreeze or "Thaw" the app.

So far I've never seen the use of the STK. If I didn't have the backup app I would delete it without thinking twice.

# Answer
> 2 votes
Go to SIM Toolkit and search for Flash services and deactivate it. Worked for me.

# Answer
> 0 votes
1. Open SIM Toolkit app in your mobile.
2. Select the active Flash service
3. Click on "Deactivate" to turn it off.

The main challenge is choosing the correct service in Step 2. The name of the service differs from one network to another.

You can find Flash service names of popular Network providers here.

Disclosure: I'm the author of above linked article.

---
Tags: cyanogenmod, 4.4-kitkat
---


# Question
Title: Network Locked SIM card on Unlocked Note 9
Have a Note9 on Tesco mobile, they have confirmned it is unlocked. I can use other UK SIM cards in this.

Trying my AIS (Thailand) SIM it asks me for a PIN for the Network Unlock?

Could this be a ROM issue? Is the phone region locked?

Any suggestions?

Cheers

# Answer
> 0 votes
OK Digging around found the solution.

Samsung devices have a regional warranty lock, I needed to make a 5-10 minute call to a local number using the Tesco SIM to unlock the phone for use with networks outside that region.

It is clearly printed on the box, but Tesco helpfully put thier own welcom to Tesco mnobile sticker over this.

---
Tags: mobile-network, samsung-galaxy-note-9
---


title: All calls are going to voicemail?

text:
# Question
Title: All calls are going to voicemail?
I'm still able to make outbound calls without any issue, however inbound calls are going straight to voicemail. As in instantly. Not a single ring or even delay. Straight to voicemail. Of course I get the voicemails right away and can call back. Wondering what setting I might have changed to cause this problem?

# Answer
> 0 votes
A coworker suggested going into airplane mode and then back out. That corrected the problem.

---
Tags: verizon, samsung-galaxy-s-9
---


# Question
Title: What does "Global EU" mean in the context of smartphone versions?
While browsing smartphone offers, I encountered several offers like "Xiaomi Mi9 6/64GB Global EU". What does "Global EU" mean in this context?

# Answer
It's the ROM version installed on the phone indicating the region. Manufacturers ship different ROMs depending on the region. Someone living in Europe will have a different ROM than one living in Africa or Asia. You can even find difference in ROMs within a continent or region.

Usually with Xiaomi phones, you have the Global and China ROMs. Then (if I am not mistaken -- someone corrects me here), the Global versions is divided in EU, Russia, India, etc depending on the market. Global EU is just the ROM version for the EU market.
> 1 votes

---
Tags: xiaomi
---


title: Where are notepad notes stored?

text:
# Question
Title: Where are notepad notes stored?
A simple question really, where do apps such as notepad store their data (the notes)?

Additionally, where do offline games store their information (such as what level you're on)? I've looked at the android/data/ files, but they're often empty. Any tips?

Example below:

According to that, the app uses 30+ mb of data

But, the file for that app (Internal Storage/Android/data/...) only has 8mb inside it. Where's the rest?

Edit: what's a "data" file? Here's my internal storage: .

I'm on EMUI 9.1.0 and Android 9.

# Answer
> 2 votes
Android apps follow rules where each app is stored unter `<pkgname>`
and usually the data is stored in databases. big data (games) usually stored in `obb`

`/storage/emulated/0` is your Internal Storage (which is a view for `/data/media/0`)
`/data/user/0` is a symlink to `/data/data` (where you have no access)
`/data/user_de/0` is rarely used for some apps (not sure if this my country code or stands for DeviceEncrypted)

so the example paths looks like this

```
/data/user[_de]/0/com.randomlogicgames.battletext/files/
/data/user[_de]/0/com.randomlogicgames.battletext/databases/
/data/user[_de]/0/com.randomlogicgames.battletext/shared_prefs/
/data/user[_de]/0/com.randomlogicgames.battletext/cache/
/storage/emulated/0/Android/obb/com.randomlogicgames.battletext/
/storage/emulated/0/Android/data/com.randomlogicgames.battletext/files/

```

---
Tags: internal-storage
---


title: Why Do Cables Affect Charging Speeds?

text:
# Question
Title: Why Do Cables Affect Charging Speeds?
I had P1 Turbo with 5000mah battery. It's SC-13 could 0-100 in under a hour even with wifi enabled.

The charger is broken but I keep the cable. I use a third party 2.1A charger with dual ports. The weird thing is. My G7102 and Note 3 N9000 gets charged slowly with that cable compared to the original cable of Ace 2. Ampere says Samsung cable gives more than 2 times amperage.

Why is that? I don't know electronics can someone explain it to me why is that?

# Answer
> 1 votes
1. Because some cables do not meet USB spec and are unable to negotiate faster charging protocols. Faster charging protocols such as USB-PD allow higher voltages and currents which provide a greater charging power to the device and increase charging speeds.
2. In addition, all cables have a *resistance*. This is affected by the *length* and *cross sectional area* supplying the power pins.

The formula is:

> *R* = *ρ* *L* / *A*

(Where *R* is resistance, *ρ* is resistivity, *L* is length and *A* is cross sectional area).

Other factors are the plug itself and the amount of power it can draw. Also, factors like QC 3.0 compatibility allow the phone to pull more current at a higher voltage. Phones intelligently decide how much power to draw as well based upon their own tables, the temperature and charge and other properties of the battery.

But, in general, a cable with higher resistance or unable to pull as much power will charge more slowly. Just because a cable is rated for 2A doesn't mean it will achieve this.

To see more detail, I suggest you get a meter that will allow you to measure the precise current and voltage using the same USB plug and different cables.

---
Tags: samsung, samsung-galaxy-note, earphone
---