# Question
Title: How do I change the name of my Android device?
My Android device is the Nexus One. But this should apply to all current Android devices.

**How do I change the name of my Android device?**

When I connect to my wireless router's client tables, my android devices is listed for example as: android\_1234567890abedfc. I'd like to give it a more readable name.

# Answer
> 22 votes
To change the hostname (device name) you have to use the terminal (as root):

For Eclair (2.1): echo MYNAME \> /proc/sys/kernel/hostname

For Froyo (2.2): (works also on most 2.3) setprop net.hostname MYNAME

Then restart your wi-fi. To see the change, type uname -a

*some devices needs reboot for work!*

# Answer
> 20 votes
### Summary:

* `getprop net.hostname` (Android System Hostname, likely android\_24412414 type name)
* `echo $HOSTNAME` (shell/terminal/env hostname, likely ro.product.device from build.prop)
* `cat /proc/sys/kernel/hostname` (Linux System Hostname, likely **localhost**)
* `head /etc/hosts` (Linux System Hostname, likely **localhost**)
* `hostname` (Command not always installed, if installed via busy box, will read **/proc/sys/kernel/hostname**)

Depends on which version of Android you have.

### Android 4.0 and Above

Newer versions will use the right `build.prop` entry. Well, that is to say, Android reads the `build.prop` as it's normal boot process. Once the Connectivity Service runs, it checks to see if net.hostname is set in the Settings, then if empty, then it uses the "android\_" + (permanent) android ID. So that's all you need to do.

**Add `net.hostname=HOSTNAMEHERE` to `/system/build.prop` (Root may be needed). Leave a blank line at the end of the file.**

Kitkat's ConnectivityService.java, notice the IF isEmpty statement:

```
    // setup our unique device name
    if (TextUtils.isEmpty(SystemProperties.get("net.hostname"))) {
        String id = Settings.Secure.getString(context.getContentResolver(),
                Settings.Secure.ANDROID_ID);
        if (id != null && id.length() > 0) {
            String name = new String("android-").concat(id);
            SystemProperties.set("net.hostname", name);

```

### Android 2.3 and Below

Older versions, Gingerbread, Froyo, etc, just clobber it. It doesn't bother to check. It will set net.hostname to android\_24412414... no matter what. So you will need to change it after that Connectivity Service has finished loading. Luckily, it only runs the startup once, not on every new connection. So we just need to run `setprop net.hostname HOSTNAMEHERE` after that for it to stick. Unfortunately, it runs fairly late in the boot process, so you need something that will make the changes on boot\_complete. Most likely an App that runs by itself.

Froyo's ConnectivityService.java:

```
    // setup our unique device name
    String id = Settings.Secure.getString(context.getContentResolver(),
            Settings.Secure.ANDROID_ID);
    if (id != null && id.length() > 0) {
        String name = new String("android_").concat(id);
        SystemProperties.set("net.hostname", name);

```

### But then there is another issue.

**The net.hostname setting, is not copied to the entire system!** If you use a console/terminal application, you might not get the same hostname. My phone, a Samsung Sidekick 4G (semi-Galaxy S based) has an init.rc which runs `hostname localhost`, so all underneath commands will not see either your build.prop hostname or the android\_id hostname! So you need to set that too.

> `hostname HOSTNAMEHERE` or `echo HOSTNAMEHERE > /proc/sys/kernel/hostname`

**Note: Depending on how you are doing it, you'll need to run the above command as root in order for it to work. Init.rc is typically on the read only system partition, so root access is needed to edit it.**

The dhcpcd command, which is run to get a dhcp address, will not update to a hostname provided by the server (That can be fixed by adding the right dhcpcd-run-hooks and dhcpcd.conf), and it will not provide a hostname to the dhcp server if `$(hostname)` (The hostname command) is blank or localhost, and it does not internally use net.hostname. **libnetutils is used for calling dhcpcd with -h "net.hostname", but if for some reason it decides not to call with -h, DHCPCD WILL STILL SEND THE SYSTEM HOSTNAME via gethostname(), as long as it's not "(none)", "localhost", or empty.** On Stock Froyo anyway. Samsung screwed the pooch on some devices like mine. No hostname pass through, forced network time, etc.

### My Solution for Gingerbread and below Samsung, Edit the DHCP Client Daemon config:

The last thing you can do is edit /etc/dhcpcd/dhcpcd.conf. If you add `hostname YOURHOSTNAME` to the file, it will use that, unless a hostname is given on the commandline. This won't fix the android\_234etc issue, but will if the hostname is localhost (My problem, since Samsung screwed libnetutils and localhost in init.rc). You will need Root, but this works across reboots. This won't work if dhcpcd is called with -h Hostname option.

# Answer
> 11 votes
I found a way to do this on my rooted Nexus 7 with 4.2.2. The setting is saved persistently and works throughout reboots.
Source: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

> 1. Note that the device must be rooted to use adb
> 2. Run `adb pull /system/build.prop`
> 3. Edit the `build.prop` file and append `net.hostname=NewHostname`
> 4. Run `adb push build.prop /sdcard/build.prop` (or `/mnt/sdcard`, if it fails)
> 5. Run `adb shell` and execute the following commands:
> `$ su`
> `# mount -o rw,remount /system`
> `# cp /sdcard/build.prop /system/build.prop` (or `/mnt/sdcard` if you used that previously)
> `# mount -o ro,remount /system`
> `# exit`
> 6. Reboot the device

# Answer
> 9 votes
This works on CyanogenMod and probably other modified ROMs but not stock AOSP ROMs:

Go to **Settings \> Developer Options** and scroll down to **Device Hostname**. Root is not needed.

(Click image to enlarge)

# Answer
> 7 votes
I have not ran stock in a long time but in Application Settings \> Development you will see the option 'Device hostname'.

# Answer
> 5 votes
Go to Google Play Store. Search for "hostname", and download **hostname changer** app.

Must be rooted.

# Answer
> 4 votes
Hostname is used to easily identify and remember hosts connected to a network. It's set on boot, e.g. from `/etc/hostname` on Linux based systems. Hostname is also a part of `DHCPREQUEST` (standardized as code 12 by IETF) which a DHCP client (Android device in our case) makes to DHCP server (WiFi router) to get an IP address assigned. DHCP server stores the hostnames to offer services like DNS. See details in How to ping a local network host by hostname?.

Android - instead of using Linux kernel's hostname service \- used property `net.hostname` (since Android 2.2) to set a unique host name for every device which was based on `android_id`. This hostname property was used for DHCP handshake (as added in Android 2.2 and 4.0). In Android 6 `net.hostname` continued to be used (, , , ) in new Java DHCP client when native `dhcpcd` was abandoned and later service was removed in Android 7. Since Android 8 - when `android_id` became unique to apps - `net.hostname` is no more set, so a `null` is sent in `DHCPREQUEST`. See Android 8 Privacy Changes and Security Enhancements:

> `net.hostname` is now empty and the dhcp client no longer sends a hostname

So the **WiFi routers show no host names for Android 8+, neither we can set / unset / change it.**

However **on rooted devices** you can set `net.hostname` manually using `setprop` command or add in some `init`'s `.rc` file to set on every boot. Or use a third party client like `busybox udhcpc` to send desired hostname and other options to router. See Connecting to WiFi via ADB Shell.

---
Tags: settings, dhcp
---


title: Unable to mount /system as read-write

text:
# Question
Title: Unable to mount /system as read-write
I want to modify a file under /system. The problem is that is read-only, and even with root I cannot set it as read-write.

I've tried the following:

---

Some useful informations:

* The device is a Redmi 3
* Using android 5.1.1, on MIUI 6.4.7 (china developer version)
* I have root access, and enabled it for the apps mentioned above
* Bootloader is unlocked
* No SD card
* Output of `mount | grep system`: `/dev/block/dm-0 /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0`

---

I would like to manage the /system folder directly from the phone. I'm pretty hopeless, I've tried googling 2 hours for a working solution. Thanks in advance.

# Answer
> 4 votes
I've found the source of the problem asking in the MIUI forums, the boot image will not accept a modified /system.

You have to use the adb interface: `adb devices` then `adb disable-verity`.

Disclaimer: I'm not responsible for any damage caused by these operations.

# Answer
> 0 votes
As suggested by user aalaap here, disabling **Mount Namespace Separation** setting in **SuperSU** solved this issue for me on ZP999 and SuperSU 2.82 SR5.

---
Tags: root-access, 5.1-lollipop, mount, xiaomi
---


# Question
Title: How to get rid of Microsoft Authenticator?
I have Office 365 subscription and it works well. However, I got the Microsoft Authenticator app installed on my Samsung Galaxy and it got my Outlook account added there. I have no idea how that happened since I did not add it.

I've read the instructions from How to use the Microsoft Authenticator app, but the instructions are complicated. I don't need this Authenticator, so I want to get rid of it.

How can I get rid of it and keep my Microsoft account?

# Answer
You must both delete the app from your old device and tell Microsoft to forget the old device and unregister it from your account. From Common questions about the Microsoft Authenticator app:

> * To remove the app from a device using a personal Microsoft account. Go to the two-step verification area of your Account Security page and choose to turn off verification for your old device.

Then you can uninstall the app just like any other app.
> 1 votes

---
Tags: uninstallation, microsoft-authenticator
---


title: Add badge number outlook

text:
# Question
Title: Add badge number outlook
There is a badge number setting on Android how to get it to show badge number for Outlook on the home screen.

I had assumed this would be pretty standard but does not appear to be.

Tesla Unread fails to work.

# Answer
Notyfer it the Play Store seems to work correctly. Create a notyfer widget with Outlook.

Simply disable foucesed inbox under settings and enable Badge Count-\>All.
> 0 votes

# Answer
Go to Settings, Display, Home Screen and make sure "App Icon Badges" is enabled.
> 0 votes

---
Tags: outlook
---


# Question
Title: Disable sound when a specific App shows a notification
Is there a way I can allow notifications yet turn off notification sounds for one particular App? I want the notification sound to be off even if my phone is not on vibrate or silent mode.

I am using a One Plus 5T running Android 9.0.8

# Answer
> 1 votes
I assume you mean **OxygenOS** 9.0.8, based on Android 9 Pie.

To do this, you can go to **Settings \> Apps and Notifications \> See all apps**

Scroll down the list to find your app and select it from the list.

Tap **Notifications**.

Choose which notification channel you would like to mute notifications from.

Tap **Behavior** and select your desired behavior.

---
Tags: notifications, oneplus-5t
---


# Question
Title: Find a list of all apps that launch at boot time
I am using Android 5.1.1 (EDIT: 6.0.1 now) in a Samsung J7. I want to get a list of apps that launch at boot time1.

**What are the alternative clear ways of identifying such list? (preferably native from Android)**

I could not find anything native. I did find other options/posts, but I am not sure how certain were the posters about the methods, with contradicting info, so I explicitly ask:

1. This answer gives Android Assistant as an option. I installed it, and checked *Monitoring* -\> *Startup Manager* It shows two tabs (*User*, *System*) with lists of apps2. The two lists total 41+83=124 apps. AirDroid, AlarmReceiver (I could not identify this app) and Maps.Me are in the first list, e.g. There is no mention to any permission. This *would* do the job.
2. This answer suggests checking the list of apps that have RECEIVE\_BOOT\_COMPLETED permission, among the list of 138 permissions. This would list apps that *are able to* launch at startup (although not necessarily doing so?). Permission Explorer shows 151 apps with this permission. aSpotCat shows 68 apps with this permission. App Permission Watcher shows 48 apps that can “run at startup” without specifically quoting the name of the permission; for instance, this does not list Skype, which shows up in the other two. This might be checking User apps, but then 48\<\>41, and AirDroid or Maps.Me are not in here. Permission Friendly Apps also shows 48 apps that can run at startup3; it does not list Skype.

So at this point, I do not know which is a sure way, and what is each app checking...

---

1 At this point, I do not mean to modify the startup list, but only check it.

2 Moreover, there is a checkbox for each app to *Select ítems to kill on startup*.

3 I did not check if these are all the same as App Permission Watcher.

# Answer
On Android 7+, you can do:

```
~$ pm query-receivers --components -a android.intent.action.BOOT_COMPLETED

```

Or:

```
~$ dumpsys package resolvers receiver | awk '/android.intent.action.BOOT_COMPLETED/{p=1;next}/:/{p=0}p {print $2}'

```

Related: Disable autostart on boot

---

Self promoting my app WhatsRunning. Please check Auto-Starting Apps, Alarms and Scheduled Jobs.

Related: Prevent Android apps from starting on device boot
> 3 votes

# Answer
Open memory in your settings then select App started on boot
> 2 votes

---
Tags: boot, auto-start
---


# Question
Title: What is default "fstab" file in Android?
As I known, in Android 9, `system` and `vendor` are mounted in the first stage of `init` by parsing `fstab` from device tree. But, there is another `fstab` parsed in `init` process, it is `device default fstab`, which is parsed by `ReadDefaultFstab` function below. I am facing to a error " failed to find device default fstab " in boot log. Can anyone explain for me this `default fstab` file? What is it and it's role?

```
// Loads the fstab file and combines with fstab entries passed in from device tree.
bool ReadDefaultFstab(Fstab* fstab) {
    Fstab dt_fstab;
    ReadFstabFromDt(&dt_fstab, false);

    *fstab = std::move(dt_fstab);

    std::string default_fstab_path;
    // Use different fstab paths for normal boot and recovery boot, respectively
    if (access("/system/bin/recovery", F_OK) == 0) {
        default_fstab_path = "/etc/recovery.fstab";
    } else {  // normal boot
        default_fstab_path = GetFstabPath();
    }

    Fstab default_fstab;
    if (!default_fstab_path.empty()) {
        ReadFstabFromFile(default_fstab_path, &default_fstab);
    } else {
        LINFO << __FUNCTION__ << "(): failed to find device default fstab";
    }

    for (auto&& entry : default_fstab) {
        fstab->emplace_back(std::move(entry));
    }

    return !fstab->empty();
}

```

# Answer
> 0 votes
It can be in `/` (ramdisk), `/odm/etc/` or `/vendor/etc/`.

Android Storage Configuration:

> For Android releases 4.3 and later, the various fstab files used by init, vold and recovery were unified in the `/fstab.<device>` file

Next change occured with Treble when vendor/SoC specific code was separated from Generic AOSP code. So `fstab` was moved to `/odm` or `/vendor`.

`default_fstab_path` reads `GetFstabPath()`:

```
// Identify path to fstab file. Lookup is based on pattern fstab.<hardware>,
// fstab.<hardware.platform> in folders /odm/etc, /vendor/etc, or /.

```

Commit states:

> fstab contains device- and soc- specific content that should reside in /odm or /vendor partition. This change searches the fstab.${ro.hardware} file from /odm/etc, /vendor/etc and /, then use the first one found.

`fstab` contains entries for all filesystems to be mounted on boot or in recovery from partitions including `system`, `vendor`, `userdata`, `cache`, `misc`, `persist`, `modem`, `dsp` etc. See details in Android Partitions and Filesystems.

Some of the entries of `fstab` are moved to DTB. See *"WHERE FSTAB IS?"* in How to disable dm-verity on Android?

---
Tags: file-system, mount
---


# Question
Title: Uber Driver app using too much resources
So, I'm working a bit as a bicycle courier for Uber Eats. For this, I have to use their app Uber Driver.

Problem is, my phone battery (which still holds charge well) is draining very, very fast when using that application. It can run only a handful of hours. Furthermore, discharging/recharging the battery that much would quickly impact its lifespan...

So I have to carry several powerbanks and always have one connected...

It would be so better if the app could just use less resources. Probably some things are badly coded in the app and could be improved, but I'm not a web developer at Uber...

So I'm asking out of desperation, is there anything I could do to make this app use less resources?

(Xiaomi Redmi 5A - LineageOS 15.1)

# Answer
> 1 votes
So, after some use of this Uber app, some elements for answering:

* The app keeps the screen on, so I can improve the situation by turning off the screen when I don't need it.
* I'm considering upgrading to a phone with a more energy-efficient CPU (from 28 nm to 12 nm), it should help a bit.
* I'm having a "lipstick powerbank" plugged in the more possible, to wear it off instead of the phone battery.

I guess that's the best I will be able to achieve…

---
Tags: applications, battery, battery-life, cpu, uber
---


# Question
Title: Can Android be used in IPv6-only networks? What level of IPv4 faking is necessary?
I'm using several Android devices that have Android 6.0.x and 6.0.1, and that I want to use in an IPv6 island ("private") network. The Android devices are either attached to a WiFi-to-Ethernet bridge, or some tablets even accept USB 2.0 Ethernet dongles using OTG cables. The IPv6 network has RAs signalling the IPv6 prefix to use, as well as DNS IPv6 server address, and optionally some more-specific IPv6 routes. There are neither DHCPv6 nor DHCPv4 servers available. Well, there are DHCPv6 servers in this network, but they only respond with delegated prefixes.

Unfortunately, I cannot reliably connect my Android devices to this network. For cross-checking, an ordinary Linux Raspbian-equipped Pi does immediately become connected and works correctly, using DNS and getting proper addresses.

Even when I set a static IPv4 address, my Android devices often don't correctly connect in that they don't use IPv6 DNS, albeit it is getting advertised (RFC 5006). I have to set fake IPv4 DNS server addresses to be able to set the static IPv4 parameters. But even then, the Android devices aren't properly working, either not correctly using DNS or even getting disconnected after some seconds.

What kind of IPv4 connectivity do Android devices expect?

# Answer
So after some more testing, using an especially made Brouter using a Raspberry Pi Zero W, I now know from my tests that **Android 5.x, 6.0/6.1, and 7.0 in fact do support IPv6-only networks**. However, the caveat is that as soon as Android neither gets an IPv4 address nor an IPv6 global address, the network manager will declare this network unusable and will disconnect from it.

The reason why I was experiencing such disconnects was because I was connecting my Android devices to a test network, where I shut down the link-local router from time to time for fixing, and only after some delay restarted it. And during these spans without IPv6 RAs advertising global prefixes and without IPv4, Android declared my network dead and disconnected.

Some more background information gained over time:

* Some Android versions are **allergic to ULA DNS server addresses**, and only deem GUAs proper. However, the same Android versions happily accept *ULA* prefixes. The symptom then is that these Android devices keep connected to an IPv6 network using ULAs, **but cannot resolve any DNS names** after some seconds. Using one of the better diagnosis apps I notice that these Android versions first learn the DNS server address, then remove it after around 15-30 seconds. It seems as if newer Android versions 7.x are less rigid in their expectations at the moment.
* Some Android versions react **allergic to documentary addresses, that is, the `2001:db8::/32` address range**. They are ignoring these addresses, especially for DNS servers. More recent Android versions 7.x seem to be tolerant of using the documentary address block in networks.

In the end, the safe side is as follows, unless you can avoid especially Android 5.x, but also some 6.x releases for sure:

* ULAs `fc00::/7` are evil ;) Please note that this includes the `fd00::/8` often taught as "best practice" in IPv6 courses, so be careful.
* documentary IPv6 addresses `2001:db8::/32` are evil too.
* stick to real global addresses, even if they're faked.
> 5 votes

# Answer
Since Android 5.0 IPv6-only with RFC 5006(8106) should work completely without ipv4. Do you have dns64/NAT64 implemented? Android tries to start 464xlat internally (clat). This fails without dns64/NAT64.
> 0 votes

# Answer
MacOS gives a comprehensive method to test ipv6 with NAT64 internet sharing. \- https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple\_ref/doc/uid/TP40010220-CH213-SW16

But I found that all my Android phones (Nexus5 with Android 8.1.0, LG V30 with Android 9) are successfully *connected*, but failed to *communicate* to the internet. Well, iPhone works fine.

Three IPv6 was allocated to a phone; two `2001:2::/48` (benchmarking purpose range) and one `ff0x` link-local address.

As @TheDiveO stated, it seems true that Android itself blocks ULA DNS or a link-local network.
> 0 votes

---
Tags: networking, ipv6
---


title: How to secure phone for repair shop?

text:
# Question
Title: How to secure phone for repair shop?
I've been an android user for many years and so far I've been lucky enough not to need to have a phone repaired by a shop, so I'd never considered this problem until recently. I had to give my Galaxy S8 to a shop for repair. Since it's running Android 9.0 I thought I could use guest mode to keep my info private, but it turns out Samsung disables multiple accounts on the Galaxy. (WHY?!)

This is like handing the keys to the castle to a complete stranger. Having my phone with the lock screen unprotected is as good as having full access to my email accounts, my Google Drive repository, my social media accounts, and another dozen other apps with private data. Disabling them all and then reenabling them later would take almost as much time as just doing a factory reset and restore later.

Is there a reasonably simple way to give my phone to a repair person and have my data remain secure?

# Answer
> 3 votes
Doing a factory reset and full storage clean is the way to go here. Service will not fiddle with kiosk apps or the like. To my experience, they wipe your device anyway – so make a good backup and wipe it yourself.

Don't forget (to backup and wipe) your internal SD card – and simply keep the external with you.

For details on how to achieve that, please see: How to make a complete factory reset, without anyone being able to retrieve my data – asks for a different reason (selling a device), but with the same goal (protecting (or rather completely wiping) your personal data which resides on the device). And while the answer there gives detailed background, here come some points for the doing:

* backup whatever you need (and can be backed up)
* if you've got an external SD card, simply take it out and keep it. What they don't have they cannot look at.
* as you want all data on internal storage gone, just wipe that completely. Easiest way for that probably is:
    1. remove any Google Account you might have configured, to avoid tripping FRP
    2. perform a factory reset, then
    3. turn on full device encryption. Let it encrypt the entire device.
    4. optionally, copy some files to it
    5. perform another factory-reset, turning device encryption off

By toggling device encryption on and off again, the entire storage should be overwritten (without you requiring root permissions to do so explicitly). This makes data recovery very hard – actually, nearly impossible; though Forensics might have their ways, that would be far too expensive for someone simply curious unless that someone *knows* there's something of value to be found.

PS: All that of course assumes you are still able to perform those steps. If e.g. the device no longer turns on at all, chances are rather low to achieve any of those details.

---
Tags: security
---


# Question
Title: Use another Google account in Chrome only
My Android phone has 2 Google accounts set up. I see those when I go to `Google > Account` in my phone settings:

* `Google Account 1` (main user)
* `Google Account 2`

Google Chrome is configured to use `Google Account 1`, and syncs history, bookmarks, etc.

**Question**: How can I configure Chrome to make it so that it's the history/bookmarks from `Google Account 2` that are synchronized, while keeping `Google Account 1` as the main user at the OS level?

**What I've tried**: From Chrome, go to Settings, then click my account: it brings me to a view where I can choose between `Google Account 1` or `Google Account 2` (or add another account). Clicking either account 1 or 2 takes me to a lists of the various accounts from various apps I have on the system (!?) (Airbnb, Facebook, Meetup, ...). This is the same view as `System Settings > Accounts`. I can't find any option to choose which account to assign to Chrome in there.

Android: 9

Google Chrome: 77.0.3865.92

# Answer
> 1 votes
Open Chrome, tap on menu (top right corner), open settings. On the first line, you should see your main account or google account 1 according to you..Tap on that.

You should see all the google accounts logged in to your android device. Below them, you will find sync option. Tap on that.

It will open a new window with title `Sync`. Find the `syncing to` option, tap on it. Now select which account the data should be synced to.

This will force chrome to use Account2 or whichever chosen account, keeping main account to the OS unchanged

Done!!

---
Tags: google-account, chrome-for-android
---


title: Way to ‘remote clone’ my tablet

text:
# Question
Title: Way to ‘remote clone’ my tablet
Earliert this month, I forgot my Huawei tablet (MediaPad T3) at an airport on a different continent. While I did submit a lost property notice, I didn’t think of checking my Google account’s mail address. Initially, I heard nothing, so I presumed it was gone and bought a new one (same model, same size memory card), logged on with my Google account—and then received the mail to that account that my device has been found.

The airport’s lost and found office told me that shipping it my way would cost around €100, while sending it domestically would cost €50. Picking it up at the office would cost €20. I have friends who live in that country, so needless to say I won’t let the tablet get shipped across the globe.

However, I am wondering if there is any way to clone the tablet’s data from the old (lost) one to the new one I bought the other day. I’m mainly interested in apps and app data (i.e. transfer savegame status and login status); the only files on there were videos that I have backups of.

I heard of Huawei’s PhoneClone app which seems to be the easiest/quickest/dirtiest option, but naturally the descriptions assume that both devices are in the same room. I was unable to confirm whether data transfer works across the internet. Of course, if there are other (better?) options, I might be interested in those, too.

So in short:

* Can I use Huawei’s PhoneClone app to clone my tablet’s contents via internet connection only?
* Are there other, potentially better options to clone the app data on my tablet without the two being physically close to each other?

As I mentioned, they are logged into the same Google account. Furthermore, I could send images of any QR codes or the likes to whichever friend I ask to pick it up for me so that should not pose any inherent problem either.

# Answer
> 1 votes
A possible solution is to backup the old phone with Helium - App Sync and Backup. Then upload, the data files created by it to Google Drive (or any other cloud storage). Download the data files from the cloud storage to your new phone. Finally restore them using the same app.

Obviously, your friend will do the backup and upload the files. While you will download and restore them.

***Note:*** I don't own a Huawei phone, so I could not advise whether the app you mentioned will work or not.

# Answer
> 0 votes
I did some testing of the PhoneClone app on just my new tablet. It turns out that when you select ‘this is the new device’ a hotspot is generated with a QR code for direct connection or the manual account information to connect. Thus, data transfer will happen locally via the new device’s hotspot and PhoneClone is not suitable to transfer data from far away.

---
Tags: backup, huawei
---


# Question
Title: Why is Android showing a different hosts file once my system is booted versus in recovery?
In the past, I've used a modified hosts file on my system that I place at `/system/etc/hosts`. The process is pretty straightforward

* Boot into recovery using a custom recovery.
* Mount `/system` read-write
* Use `adb push` to copy a hosts file to `/system/etc/hosts`
* Reboot and the hosts file takes effect.

Note that the above process doesn't require rooting. It does, of course, modify the system partition.

However, after upgrading to Nougat, I'm seeing some weird behavior where once I reboot, the hosts file is just the standard one with only `localhost` in it. This never used to happen on Marshmallow or below.

I thought at first that the system was overwriting my hosts file on each boot, but the strangest part is that if I go back to recovery, the file I copied is still there at `/system/etc/hosts`. My guess is that the system is doing a mount at boot time that's hiding my file.

Does anyone have any experience with this or have a way to fix it?

# Answer
I got this problem, too.

After my searching and try for hours, finnally it worked.

Just use `adb push` to copy a hosts file to both `/system/etc/hosts` and `/etc/hosts`

I think `/etc/hosts` probobaly overrides `/system/etc/hosts` when the phone rebooting.
> 0 votes

---
Tags: recovery-mode, file-system, 7.0-nougat, hosts
---


# Question
Title: How can I only have sound when being called (phone)?
In my Android phone, I have the following options for sound:

* Media volume
* Alarm volume
* Ring volume

However, if I increase ring volume, I also get each time a sound when I get a Whatsapp message, Facebook massage etc.

Is it possible to (temporarily) get sound only when I will be (phone) called (by another person)?

(background: I always leave my sound off, but I expect an important phone call today I do not want to miss).

Mobile: Motorola S5+, Android 8.1.0

Thanks in advance.

# Answer
> 1 votes
You can try this:

Go to **System settings**-\>**Notifications**-\>Select WhatsApp-\>Choose **Block all** and/or **Show silently** according to your need.

Do the same for Facebook.

---
Tags: audio, calls
---


# Question
Title: Change headphone left-right balance on Android 7
What is the best way to set the left-right balance on a pair of earphones/headphones? I've looked into it, but I can't seem to find an easy way to do this.

I am on a rooted Nexus 6P on stock android 7.1.1

Does anyone know of a way to do this? I know very little about android development, so a simple solution would be best (preferably an app).

Thanks in advance for any help.

# Answer
> 0 votes
Got the same problem.

My solution: root the phone with Magisk, install de Viper module and set the settings.

There's a lot of tutorials in xda, and it's pretty simple.

# Answer
> 0 votes
If you don't have root, there are many apps on the Play Store which can do this. Just search for `stereo balance controller` and pick up an app which can run as a service and equalise the system audio.

---
Tags: audio, stock-android, headphones, 7.1-nougat
---


# Question
Title: Should my "adb backup" include the system files or not if I'm planning to downgrade my Android version?
I'm using Oneplus 3t on the latest Android 9 OS. I'm planning to downgrade it to Android 8 and hence backing up my data with adb first.

```
adb backup "-apk -obb -shared -all -nosystem -f d:/other backup/phoneadbbackup/backup2.ab

```

Now here's the problem. I could backup system apps as well. But I'm not sure whether or not that is a good idea.

After I downgrade, there's a chance that the system apps would remain the same. If yes, then that's great because all the data could get restored back for the system apps. However, if there are a few system apps missing in 8 then could that error out the restore process? If the apps are same but the data was different in 8 then restoring data from 9 would cause errors, isn't it?

So my question is:

1. What does "-system" back up exactly?
2. If I'm planning to downgrade my OS then does the above command look good?

# Answer
> 1 votes
Nobody posted an answer over here so I'm going to post one.

Backing up system files with ADB is a bad idea. The problem is that there can be small differences in system files between Android versions. And it's more likely to not work owing to the fact that it didn't work even without the system files (more details on that below). Based on the following experience I would recommend not backing up system files via ADB. In fact there was no use of going via ADB route in the end because ultimately I had to restore everything manually.

My experience with ADB backup: was not good. It created a file of 3GB which took upwards of 30 minutes. After restoring only 4 apps were actually restored but it occupied 3GB of my space. When I checked later via file manager then I noticed that it had created all kinds of junk files with missing apks or leftover fragments. Considering that you might have updated your os in your old Phone (multiple times), then ADB backup is going to copy paste all the file fragments for system files.

Hence, I don't recommend ADB backup/restore for system files.

---
Tags: adb, backup, downgrade
---


# Question
Title: Stuck at boot animation on multiple custom ROMs
Just yesterday I thought of having a new ROM installed on my phone and it is not the first time I'm doing it. Though I made a mistake of not taking a backup of the system before flashing the custom ROM.

These are the steps that I followed:

1. Moving to bootloader and rebooting to TWRP recovery
2. Wiping the cache, system, data and dalvik cache
3. Moving to `install` option and installing the CustomROM1.zip from the Internal Storage
4. But the screen is stuck at boot animation
5. Using my laptop I tried to do the following:

5.1. `fastboot erase system` and `fastboot erase recovery`

5.2. Flashed TWRP recovery again using `fastboot flash recover twrp.img`

6. Moved the CustomROM2.zip file in the Internal Storage and tried to flash it using `install` option but resulted in boot animation loop

I even tried to ADB sideload and flash the zip but resulted in the same error. Currently I'm on **Moto G Play (Harpia)** and the ROMs that I used are

CustomROM1 = Resurrection Remix v. 5.8.3

CustomROM2 = Eelo v. 0.7

Any sort of help to get out of this would be totally appreciable. And thank in advance.

# Answer
After much try and waiting I couldn't get any satisfactory result out of it. So ultimately I had to flash the stock firmware. The name of the firmware could be deduced from the command `fastboot getvar all`

https://androidforums.com/threads/bootloader-unlock-back-to-stock-for-motorola-e4-plus-owens.1264881/

This is the link anyone who's facing the same issues can refer to.
> 1 votes

# Answer
Have you confirmed the integrity of the file you're flashing? I have had some that wouldn't flash and after trying every variable, I re-downloaded the file and it flashed no problem. Also consider: after successfully flashing the ROM, boot back into recovery or to the bootloader before booting the system.
> 0 votes

---
Tags: twrp, boot-loop
---


# Question
Title: How can an existing storage server in Solid Explorer be edited?
In Solid Explorer (2.7.7), how can an existing network storage server (e.g. SFTP, LAN/SMB; all grouped by Solid Explorer into "Cloud Storage") be changed? ? How can one be deleted? Holding on the server name in the "Storages" list or the title bar has no affect.

# Answer
1. Tap the "hamburger" icon (☰) to open the sidebar.
2. Tap the vertical ellipses (⋮) to open the menu.
3. Tap "Storage Manager".

From here, tap a storage's menu button to edit or delete the server. Additionally, the storage order can be changed by holding and dragging an item.
> 1 votes

---
Tags: file-management
---


# Question
Title: How do I connect to 802.1x EAP Wi-Fi network from an Android 10 device?
My Wi-Fi uses 802.1x EAP with TLS. It works well with the old Android devices, but an Android 10 device pretends that it's trying to connect, and a few seconds later marks the connection as disabled. There is absolutely nothing in the Radius logs about any failed connection attempt.

The configuration is quite the same between this device and the older ones, with two differences:

* *Security* field is unavailable, unless I chose to manually add the network, in which case there is no “802.1x EAP,” but only “WEP,” “WPA/WPA2-Personal” and “WPA/WPA2/WPA3-Enterprise.” I suppose that I need to chose the last one.
* *Domain* field is added between *CA Certificate* and *User certificate*. I tried to keep it empty or enter the domain name of the company; the result is the same.

What can I do to understand why doesn't the device attempt to talk to the Radius server before marking the connection as disabled?

# Answer
> 1 votes
Before the client (aka supplicant) can talk to the authenticator it must first establish a TLS connection. The failure might be occurring in the EAPOL START before a user authentication (TLS auth) can occur. This might be why you do not see any authentication attempts on the Radius server.

Yes you must select WPA/WPA2/WPA3-Enterprise in order to do EAP-TLS. You need to specify both the CA Certificate and Client certificate in order to complete the EAP TLS Flow.

Are you familiar with Android Logcat? You could start looking there and filtering on wpa\_supplicant or EAPOL to see if there are any certificate validation or related errors.

Guessing why here but, it's possible your older devices will work with the same CA/Client certificate depending how old they are. Certificate validation has improved (strengthened) in android over the years and it might be why its failing on new devices and not older.

---
Tags: wi-fi, security
---


title: Sharing contact throught SMS

text:
# Question
Title: Sharing contact throught SMS
When I am share the contact throught SMS, during the addition of contact it is converting to MMS formate and message is not going. Please help me. Phone mode: MIA3 andriod one

# Answer
> it is converting to MMS formate and message is not going

This only happens if you try to send the contact as a vcard file (.vcf is the extension). To send the contact number only, copy the number to clipboard and paste it in message body. The message will be transferred as text.
If you want to send the message as a vcard file, contact your cellular company (eg. Airtel , Jio, Vodafone etc) and request them to enable MMS on your number.
> 0 votes

---
Tags: sms
---


# Question
Title: System bootlooping after TWRP installation
I have installed TWRP through Odin, then I booted it. I only seen it, **I haven´t done anything**, just rebooted to the system again, and it got stuck on trying to boot the system.

It's Samsung J7 Prime with Oreo, Odin 3.13 and TWRP-3.2.3-For-Galaxy-J7-Prime.tar

So, what the hell? Why is it not booting? Any idea?

# Answer
> 1 votes
Can you boot into TWRP? If you can I would try these steps:

* **Boot** into TWRP
* Once TWRP is booted you **first** need to **wipe** your `/data` partition or go into **Wipe \> Advanced Wipe** and make sure **Data is ticked** then **swipe to wipe**.
If this is your **first boot into TWRP:** swipe **Wipe \> Format Data** from left to right and follow the instructions displayed onscreen.
* Once it's finished **go back** to **the home screen** and swipe **Reboot \> Recovery** from left to right. TWRP should be able to mount your data partition.
* Now flash the `no-verity-opt-encrypt` zip you downloaded from this link, put it on an SD Card and flash it by going to **Install \> *%zip location%*** This zip prevents your phone from **bootlooping** since Android Oreo uses **dm-verity** to prevent modification to the system.
* You are (hopefully) now able to reboot to your OS without bootlooping.
Hope this helps.

---
Tags: twrp, boot-loop
---


# Question
Title: Two 4G sim enabled simultaneously (Jio & Airtel) - Samsung Galaxy On Max
I have Samsung Galaxy On Max and inserted two different carrier SIM cards that are Jio4g and Airtel. It has been written that this device is dual sim 4g. It was working fine till I was using Jio4g as my LTE network and for mobile data as well but when i recharged my Airtel sim card and switched it to 4g my Jio sim disabled(Jio doesn't have 3g/2g connectivity). So it means i can use only one sim as 4g enabled.

On the basis of device model, it support 4g SIM on both slots but not at same time. It means it does have SoC that can handle LTE networks on both SIMs so,

My concern is, Can Samsung provide some update so that users can use both SIM as 4g(LTE) simultaneously?

# Answer
What you are looking for is something like DSDV i.e. Dual SIM Dual VoLTE. Unfortunately, your smartphone does not support it and it will not be possible for Samsung to push an OTA update to enable it. The chipset itself is not capable of connecting both SIM cards to 4G networks at the same time. One has to fall-back to 3G/2G.
> 3 votes

# Answer
The problem is probably with Jio 4G and not with Samsung.

As observed, Vodafone Airtel or Airtel and Idea 4G SIMs work perfectly fine with dual SIM. Reliance Jio won't remain active if mobile data is taken from another SIM card on the device. You **must** access internet services from Jio 4G to keep it enabled.

If you want to use both of your SIM cards, then place JIO4G on SIM1 and Airtel on SIM2.
> 0 votes

---
Tags: samsung, ota-update, 4g
---


# Question
Title: Encrypted SD card data recovery with broken display (S9+)
my phone (Galaxy S9+) was recently stolen, and thankfully I got it back, but it was completely destroyed when I got it back. I'm not sure what they did to it (looks like they took a hammer to it), all I know is the display no longer turns on. It will still power up though.

I need to somehow retrieve the data from the encrypted SD card, and as I'm aware, the only way to do this is with the device that encrypted the card.

As far as I remember, the old phone has developer mode + remote debugging turned on, however I cannot access it via adb (presumably because I can't press the button to allow data transfer that pops up when you plug the phone into a computer). Its not rooted either.

Buying a new digitizer or paying for data recovery is simply out of the question as both are very expensive.

I do have some phone repair experience, and I see my last resort as disassembling my new s9 and using that screen to either decrypt it or copy the contents, but I'd really rather not take my brand new phone apart + these newer galaxies are among the hardest phones I've ever repaired.

Do I have any other options?

# Answer
Answering my own question because I just figured out the simplest way possible (and tbh feel like a bit of an idiot for not realizing this before haha)

There was a method suggested on the comments thread of the OP, which might work as well, but what I ended up doing is using my USB hub (which has an hdmi port) and plugging the phone directly into my tv via hdmi. It required having my keyboard plugged in as well, but there were no permissions to bypass, and if you have a bt keyboard you could essentially use a physical keyboard to pair the bt keyboard, and then use a usb c to hdmi adapter to hook up to the tv -- cheaper option since this usb hub was like 50 bucks :P
> 0 votes

---
Tags: samsung, sd-card, data-recovery, samsung-galaxy-s, encryption
---


# Question
Title: What is the proper method to manually odex an apk?
I am looking for a proper and simple method to odex an apk file. I have an upgraded apk file from a ROM with which I want to replace an older one, and it is located in the `/system-priv` directory. The older apk has the `.odex` file, but I figured out I can't directly overwrite it since I can't use the old `.odex` (hence I need to odex first), lest I'll be stuck with app crashes or bootloops.

I have tried searching for methods online but are not satisfactory in one of the ways:

1. This one which involves the use of a `dexopt-wrapper.bin` seems to be way outdated as binary is not supported, I have this error poping up:

```
 error: dexopt-wrapper error: only position independent executables (PIE) are supported.

```
2. The second one which is lengthy and links to other required resources are no longer there, and is somewhat not compatible with my system.
3. The only promising one which uses Auto Odexer Script, but currently I'm running issues adb and also seems it uses the same dexopt-wrapper binary which was giving me errors in terminal.

There are tools/methods for doing the entire system at once, but I do not need the entire system re-odexed. I want to personally create an odexed "upgraded" `.apk` from the extracted ROM.

# Update

I upgraded the wrapper binary (now PIE) and should be compatible however still encountering this error:

```
--- BEGIN '/sdcard/app/A.apk' (bootstrap=0) ---
--- waiting for verify+opt, pid=17200
--- would reduce privs here
execl(/bin/dexopt) failed: No such file or directory
--- END '/sdcard/app/A.apk' --- status=0x4300, process failed
1|mido:/ #

```

and the result is an empty `.odex` file in the dir. Someone to point out where I am going wrong here?

# Answer
> 4 votes
credits to **com.modaco.odexme** xda link

Theoretically you should only need your Android device to manually odex, I ended up using both smartphone (running KitKat 4.4) and PC as explained later.

I successfully odexed apks using the following steps:

1.Create a **`/dir/odex`** on your Android device

2.Save next script as **`odex.sh`** in `/dir/odex`, give it execute permission 777

```
#!/system/bin/sh

cd /dir/odex

for filename in `find . -name '*.apk'`
do

# step 1 - odex the apk
./dexopt-wrapper $filename `echo $filename | sed 's/\(.*\.\)apk/\1odex/'`

# step 2 - did we succesfully odex?
if [ -f `echo $filename | sed 's/\(.*\.\)apk/\1odex/'` ]
then
    # step 3 - remove the classes.dex from the apk
    ./zip -d $filename classes.dex

    # step 4 - zipalign, just in case
    ./zipalign -f -v 4 $filename $filename.new
    mv $filename.new $filename
fi

done;

```

3.Obtain following binaries from **`com.modaco.odexme.apk\assets`**

`dexopt-wrapper` `zip` `zipalign`

put those in `/dir/odex` and give execute permission 777

4.Copy .apk(s) you want to odex from `/system/app` or `/system/priv-app` to `/dir/odex`

5.Open **`Terminal`**, cd to `/dir/odex` and execute `./odex.sh`

At this point I had a problem with `zipalign` which could not `LINK EXECUTABLE` \- cannot locate symbol... but nonetheless script partially executed and got odex(es) sitting next to apk(s) in our dir.

6.So I had to resort to the PC, copy original apk to PC, open it with WinRar or 7zip, manually remove `classes.dex`, then `zipalign`, and put "deodexed" apk back to Android device.

7.Now with a file explorer put newly created .odex and .apk in `/system/app` or `/system/priv-app` (have a backup of original apk first). If it fails to write mount system as rw. Give both permission 644 as all the other apks and odex in dir.

8.You can now delete corresponding dex in `/data/dalvik-cache`

9.Reboot (or soft-reboot)

10.Enjoy your newly odexed app

I successfully odexed `LGEIME.apk`, a modified keyboard for my G2, and `GoogleDrive.apk`, I moved it to /system/app to save space on /data partition because newer version are 5.0+ only. I was skeptical about GoogleDrive because it was multi-dex, infact apk contained `classes.dex` and `classes2.dex`: turned out I had to strip only classes.dex from the apk and leave classes2.dex inside the apk.

credits to **com.modaco.odexme** xda link

YMMV

---
Tags: rom, apk, odex
---


# Question
Title: How to remove/delete files from my shared folder in Google drive?
How can we remove or delete files from shared folder in Google Drive as I can't see any remove/delete option there. See the screenshot below:

Here I want to remove ymusic-latest.apk from my shared folder. How do we do that?

# Answer
> 0 votes
You should have the Remove options as shown on the first image below. If not (as is your case), then long-press on the file, a menu should appear as seen on the second image. You can then click on the trash/bin to delete the file.

I used version 2.19.392.02.35 of Google Drive.

---
Tags: google-drive
---


# Question
Title: Browse or mount SD card over WiFi on Linux?
Is there a way to browse the contents of my SD card from my Linux (Ubuntu 10.04) machine over WiFi?

I used to connect with a mini-usb cable, or send files through gmail. Surely there must be a way to access the files through wifi.

My main focus is ease-of-use, I don't particularly care about speed or security. Although I do prefer a non-cloud solution due to privacy concerns.

(I have not actively searched for a solution yet. I will do this now, so maybe I will answer my own question. Which, as I understood from Atwood, is proper use of a StackExchange site.)

# Answer
I use FTPServer ( http://www.appbrain.com/app/ftpserver/lutey.FTPServer ) to browse and copy files to and from my phone over wifi. On Ubuntu you can connect to an FTP server and browse it as if it is a directory.
> 2 votes

# Answer
**WiFi File Explorer** allows browsing of the SD card through a web based interface. Quite nice, but perhaps difficult to copy a large number of files.

http://lifehacker.com/5626268/wifi-file-explorer-manages-your-android-sd-card-from-a-web-browser

**On Air (Wifi Disk)** 'allows you to easily transfer files over your Wi-Fi connection by accessing it as if it were a drive', but only for Mac I suppose.

**SwiFTP** is an FTP server, which does what it says.
> 4 votes

# Answer
There is WiFi FTP Server from Google Play store which I plan to download and chronicle setup. It has many positive reviews (4.4 stars out of 5 stars) and 500K+ Downloads.

There is a free version with ads and a paid version that is only $0.99 which is a small price to pay to support the developers (IMHO).

My goal is to have static IP address for phone on Home WiFi network and Ubuntu's `cron` run a job every morning to `mount` external storage card, log last access time for 3600 filenames and then `umount` external storage card.
> 0 votes

---
Tags: sd-card, linux, file-transfer, file-management
---


# Question
Title: How can I disable the downloaded neural net for speech-to-text?
My voice-to-text was working amazing on my Pixel 3, until I elected to accept the optional downloaded neural net that makes for "faster recognition" and works offline. The result has been an astounding drop in accuracy to the point that it's unusable, and I'd like to turn the feature off and go back to normal recognition.

How can I do this?

# Answer
> 0 votes
I finally found it, right after I put up the bounty, go figure.

Just searching "Voice typing" in settings and turn off `Faster voice typing`.

---
Tags: settings, voice-recognition
---


# Question
Title: Can WhatsApp video calls be restored/reviewed?
In WhatsApp, one can view the detail of video call history by tapping the entry on it.

The video calls have a volume on the device, so can they be restored and reviewed?

# Answer
> 1 votes
**No, WhatsApp video calls can't be restored and reviewed.** It's not stored anywhere locally on the phone or remotely on the internet.

The size shown here is the total data transferred through the internet while on the video call. It's basically the usage of network data, *mostly for data usage auditing/monitoring on a limited internet plan.*

There are some 3rd-party apps that can record WhatsApp video calls locally on the phone, but WhatsApp doesn't have a feature to record both phone and video calls natively.

---
Tags: whatsapp-messenger
---


title: Sandisk SSD USB not detected by Android

text:
# Question
Title: Sandisk SSD USB not detected by Android
I have a Sandisk Extreme Portable SSD 500 GB. It works fine with Windows 10 but it cannot be detected by any of my Android devices. I tested with an Nokia 3.1, Sony Xperia Z3 Tablet Compact and a Sony Xperia 10 Plus, both with and without a Transcend OTG adapter. As well, I reformated it with exFAT and NTFS. What could be wrong?

The tablet runs Android 6 while the two phones run Android 9.

Other USB memory sticks work fine with the OTG adapter on all devices.

# Answer
There are one major differences between an USB stick and an USB SSD: **power consumption**

As SSDs usually don't have the possibility to use a separate power supply you have to place an active USB hub (a hub with an own power supply) between the phone and the SSD.

The SSD is optimized for high performance and therefore requires much more power than a simple USB stick.

The Sandisk Extreme Portable SSD 500 GB requires about 4 Watt. Most smartphones only support USB 2.0 and therefore the output is limited to 5V at 500 mA = 2.5 Watt. Only a very few smartphone support USB 3.0 or USB power delivery in OTG mode which would make it possible to use an SSD via OTG.

On a regular computer the SSD works because USB 3.0 allows 900 mA (5V at 900mA -\> 4.5 Watt) and therefore it can power the SSD correctly.
> 4 votes

# Answer
I had the same issue before. Android doesn’t recognize the NTFS file format but some phones can read exFAT. You can try the app Total Commander and exFAT/NTFS for USB by Paragon Software.
> 0 votes

---
Tags: usb, usb-on-the-go
---


title: save to homescreen is not working

text:
# Question
Title: save to homescreen is not working
Android Nougat 7.0 on Motox Pure 2015 -- rooted

I can't save shortcuts to home-screen anymore. None of the installed browsers save to home-screen. Google maps doesn't save to home-screen.

I just tried to save a directions shortcut from Google maps and it said that the shortcut was saved, but it is not.

Added edit: Here is a log entry while saving the Google maps shortcut:

```
[10-06 09:18:46.584 1146:1179 W/BroadcastQueue]
Background execution not allowed: receiving Intent { act=com.android.launcher.action.INSTALL_SHORTCUT flg=0x10 (has extras) } to com.google.android.googlequicksearchbox/com.android.launcher3.InstallShortcutReceiver

```

I'm starting to think this has to do with one of my battery app background restricter apps. I am testing that out now.

# Answer
> 0 votes
SOLVED: I allowed com.google.android.googlequicksearchbox to run in the background and that fixed the problem.

In my case the app that was restricting was called `BackgroundRestrictor`.

I also have both the `RootBooster` and `Hibernation` apps running, and they didn't need any adjusting.

---
Tags: 7.0-nougat, home-screen-shortcuts
---


title: How to disable USB OTG on Android 6+?

text:
# Question
Title: How to disable USB OTG on Android 6+?
I need to disable the OTG (USB) on Android 8. I already did it on Android 6 by disabling a permission on the file `android.hardware.usb.host.xml` but it is not working anymore on Android 8.1.

# Answer
`android.hardware.usb.host.xml` file - located under `/vendor/etc/permissions/` or `/system/etc/permissions/` before Treble - contains `feature name="android.hardware.usb.host"` which indicates *that the device can communicate with USB devices as the USB host*. This feature is evaluated by PackageManager (along with other software / hardware features) and used by Google Play to filter (in)compatible apps based on the value `<uses-feature android:name="android.hardware.usb.host" />` in *AndroidManifest.xml*. See details here.

Also if the device doesn't support USB host mode, UsbHostManager service is not started, so apps like this which use USB host APIs cannot connect to USB devices. But any connected device is still detected by kernel and appears under `/sys` and `/dev`.

To confirm if the device supports USB host mode:

```
~$ pm list features | grep usb.host
feature:android.hardware.usb.host

```

```
~$ dumpsys usb | grep host_manager
  host_manager={

```

These lines shouldn't appear after you delete `android.hardware.usb.host.xml` file.

---

However **since Android 6** USB storage devices such as a USB stick are handled by `vold`, which doesn't depend on the feature discussed above. `vold` listens to kernel through a netlink socket for block device `uevent` () and matches that with some entry in `fstab` (). Then it creates disk and partition nodes in `/dev/block/vold/` (), checks filesystem for errors and mounts in `/mnt/media_rw/` (also emulates SD cards in `/mnt/runtime/`) (). After that `ExternalStorageProvider` (a content provider) is triggered which grants apps URI access to OTG storage through SAF or Scoped Directory Access.

So in order to disable auto-mounting of USB storage devices by `vold`, you need to **remove the corresponding entry from `fstab`** as referenced here:

```
/devices/*/xhci-hcd.0.auto/usb*    auto    auto    defaults    voldmanaged=usb:auto

```

`fstab` is found under `/odm/etc/` or `/vendor/etc/`. Before Treble it was in rootfs (`/`). See details in this answer.
> 2 votes

---
Tags: usb-on-the-go, 8.1-oreo
---


title: is an SD card mounted with setuid mode?

text:
# Question
Title: is an SD card mounted with setuid mode?
Related question here which gives all the gory details (that I won't repeat in this question), motivations and context.

Android is a Linux kernel based system. I know quite well about mount(2) and mount(8) and the filesystems on Linux.

Can the SD card in a tablet be mounted (e.g. as an Ext4 file system) without the `MS_NOSUID` flag? If yes, how?

I am willing and capable of writing, cross-compiling, and building a statically linked ELF executable (for my ARM-based tablet), which is `root`-setuid and mixes the features of `sudo` and `sash` on my Debian system. I am capable of formatting some SD card (on my Debian) as an Ext4 filesystem. And if I know how to install and run it on my tablet, I will write that program as a GPLv3+ software (in C).

A related question is what exact cross GCC compiler should I use on Debian/x86-64 to target such an ARM tablet.

# Answer
> 3 votes
* External storage (`/sdcard`) and physically external storage both are mounted by `vold` with `nosuid` irrespective of the filesystem, can't be mounted other way without root.
* Both storages are accessible to apps as emulated filesystem (with fixed file permissions) or through SAF; both don't let files be executed.
* You can move ELF executable to somewhere on `/data` e.g. to `/data/local/tmp/` using `adb shell` or to `/data/data/com.termux/files/home/` using Termux app. `/data` is formatted as `ext4` or `f2fs`, lets file permissions be set, so you can execute files there. But that too is mounted with `nosuid` by default.
* Android apps are run with all Linux capabilities dropped (empty bounding set and `NO_NEW_PRIVS` set), so they can't make use of `setuid` or file capabilities to elevate their privileges.

You may want to have a look at How Magisk works? or How to manually root a phone? to see how root works on Android devices, not possible with locked bootloader.

---
Tags: sd-card
---


# Question
Title: What's the point of pseudo-big.LITTLE CPU in Nokia 7 plus?
As far as I understand:

* CPUs can change their frequencies relatively quickly, which can be used for performance-power tradeoff based on load and priorities.
* big.LITTLE goes further – you can switch between powerful and energy-efficient cores in order to save more energy than underclocking allows you. Those cores vary by architecture, otherwise it would not make much sense. Usually, there is a mix of powerful cores with out-of-order execution and energy-efficient cores with in-order execution.

However, according to GSMArena, Nokia 7 plus has the following CPU:

> 4x2.2 GHz Kryo 260 & 4x1.8 GHz Kryo 260

That is, you have eight cores of the same type, but four of them can go up to 2.2 GHz, while other four of them can go up just to 1.8 GHz.

I believe we cannot use the same justification as for big.LITTLE. Instead of switching the cores, we could just scale the core's frequency.

Also, if the upper frequency is fixed (that is, if there are four physical cores that never go beyond 1.8 GHz), it implies uneven distribution of load and heat generation.

# Answer
> 3 votes
I think you are mistaking the "Kryo" brand from Qualcomm from being different than just a customized version of ARM big.LITTLE.

As stated in the Qualcomm Snapdragon 660/630 announcement article from Anandtech:

> Snapdragon 660’s Kryo 260 CPU uses four semi-custom Cortex-A73 cores in the “performance” cluster and four semi-custom Cortex-A53 cores in the “efficiency” cluster in a big.LITTLE arrangement. The Kryo 260, however, does not hit the same peak frequencies as Kryo 280, and Kryo 260 uses 1MB/1MB of shared L2 per cluster instead of 2MB/1MB of L2 for Kryo 280.

The confusion probably is from the fact that while there are 2x2 sets of CPU cores on the chipset, Qualcomm's branding the package of the 2 "performance" and 2 "efficiency" cores **as the Kryo CPU**. The obfuscation is probably due to Qualcomm emphasizing their customization trying to differentiate from ARM's reference big.LITTLE A73/A53 CPU core set.

Honestly while GSM Arena is a good starting point, if there is confusion/conflict further research should be done.

---
Tags: cpu, arm-processors
---


# Question
Title: Install Magisk on Samsung Galaxy S7 Edge (SM-G935FD) UAE ROM
Going quietly mad here... have tried and tried. Steps taken are I purchased a Samsung Galaxy S7 Edge online - its an SM-G935FD, with an original ROM (official) from the UAE (XSG). I install TWRP - no problems there - then install Magisk Manager on the phone via the website. I download Magisk also, and then boot into recovery with TWRP. I install Magisk, but after rebooting, I get the following message - "Verification failed" "Unable to restart your device. The integrity verification has failed. You need to reset your device to factory default settings. This will erase all your data" Any ideas or suggestions as to what I should do with this? I rooted to phone, and have lost access to Samsung Health, which I'd like to use. I don't need Samsung Pay. Any advice greatly appreciated. Thanks.

# Answer
Yep. I finally solved my issue late last night. In recovery, using TWRP, after trying to install Magisk, I'd get a response that was something like "unable to mount /data partition"..and I believe that was what was causing the issue. I found this html site at XDA developers

https://forum.xda-developers.com/android/general/how-to-fix-unable-to-mount-data-t3830897

which steps you through the process of repairing the data file systems (both ext2 and ext4), and that worked. Magisk installed correctly and is now working with my banking details, as well as Samsung Health (which involved changing a digit in the System/build prop file (tima from 1 to 0).

Now if someone could show me what to do when the next samsung update comes along, I'd be grateful. Don't want to lose it all (Magisk install) after the next update...
> 1 votes

---
Tags: magisk
---


# Question
Title: How does carrier/network lock work? How is it implemented?
I feel like I should have been able to find the answer to this, maybe I'm distracted or something, but does anyone know how carrier/network/sim lock actually works and if there are any workarounds? Say I wanted to make one of those unlocking services. What is the process?

I saw a couple answers from some years ago, they all seem fairly vague and as if it's actually an unknown, so I'm not sure if that's current information. It seems inevitable that someone would have leaked or reverse engineered that information by now, right?

# Answer
Carrier locks work at SoC/bootloader level. In simple terms the modem - which has its own Baseband Processor - is tuned to certain frequencies / bands or programmed to register with only one MCC/MNC which identifies a universally unique carrier. MCC/MNC is part of IMSI which is stored on SIM card and used in initial authentication process when device goes online.

Both modem (which is integrated in SoC) and SIM (which is a Java card Secure Element) are completely isolated from Application Processor (the one on which Android OS runs); they have their own processors, OS and possibly storage. Modem's communication protocol (through RIL) is usually vendor-specific and closed source (used to be simply ATC in good old days). Communication to SIM (APDU commands) is also routed through BP. So the unlocking workarounds aren't very straightforward but hacks do exist and they work, usually through special hardware/software.

Mostly modems accept some kind of dial code for SIM unlock, which is calculated by passing phone's IMEI through some mathematical functions, which are cracked by hackers sometimes. Another approach is to communicate with modem thorough some service mode e.g. Diagnostic Mode (DM) on Qualcomm SoC's (see this recent example), or possibly go even below that and directly use UART/JTAG entirely bypassing Android OS. So there is no standardization and official/unofficial unlocking methods largely vary from vendor to vendor and device to device.
> 6 votes

---
Tags: sim-unlocking, carriers
---


# Question
Title: Errors after MIUI ROM flashing with TWRP
I'm trying to flash Xiaomi EU stable version of MIUI 10 on my Redmi Note 4 MTK.

* TWRP: `3.0.2`
* ROM: `Xiaomi EU MIUI 10 (HMNote4_V10.2.1.0)`
* Gapps: `arm64-6.0-nano`

After first flash with full wipe, it has stuck in Setup Wizard at SIM selection with `Unfortunately, Setup Wizard has stopped` error.

Java error message:

```
java.lang.IncompatibleClassChangeError: The method 'void android.telephony.SubscriptionManager.setDefaultDataSubld(int)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'com.google.android.setupwizard.carrier.SimSetupActivity$SetSimDataFragment' appears in /system/priv-app/SetupWizard/SetupWizard.apk)
at com.google.android.setupwizard.carrier.SimSetupActivity$SetSimDataFragment.apply(SimSetupActivity.java:166)
at com.google.android.setupwizard.carrier.SimSetupActivity$SimSetupFragment.applySelection(SimSetupActivity.java:326)
at com.google.android.setupwizard.carrier.SimSetupActivity$SetSimDataFragment.applySelection(SimSetupActivity.java)
at com.google.android.setupwizard.carrier.SimSetupActivity.start(SimSetupActivity.java:93)
at com.google.android.setupwizard.BaseActivity.onNextPressed(BaseActivity.java:378)
at com.google.android.setupwizard.BaseActivity.onNavigateNext(BaseActivity.java:660)
at com.android.setupwizardlib

```

Then I re-flashed it without wipes. And another error emerged - `Unfortunately, Settings has stopped`

Java error message:

```
java.lang.RuntimeException:
Unable to start activity ComponentInfo{com.android.settings/com.android.settings.wifi.WifiSetupActivity}:
java.lang.lllegalStateException: You need to use a miui theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(Activity Thread.java)
at android.app.ActivityThread.handleLaunchActivity(Activity Thread.java)
at android.app.ActivityThread.access$1100(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygotelnit$MethodAndArgsCaller.run(Zygotelnit.java)
at com.android.internal.os.Zygotelnit.main(Zygotelnit.java)
Caused by: java.lang.lllegalStateException: You need to use a miui theme (or descendant) with this activity.
at com. miui.internal.app.ActivityDelegate.installSubDecor(SourceFile)
at com.miui.internal.app.ActivityDelegate.onCreate(SourceFile)
at miui.app.Activity.onCreate(SourceFile)
at com.android.settings.kg.onCreate(SettingsActivity.java)
at com.android.settings.wifi.WifiSetupActivity.onCreate(WifiSetupActivity.java)
at android.app.Activity.performCreate(Activity.java)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
... 10 more

```

What do to fix this issue?

# Answer
> 1 votes
Do not install any Gapps over Xiaomi EU Stable ROMs. The ROM already has Gapps and installing another Gapps can cause conflict. Flashing the ROM without Gapps solved the problem for me.

---
Tags: twrp, miui, mediatek, miui-10, redmi-note-4
---


# Question
Title: How to protect my Wi-Fi password from being displayed by Android phones when sharing it with QR code?
I would like to know if there is any workaround to protect or hide my TP-LINK Wi-Fi router password from being displayed on phones using Xiaomi (Redmi) phones.

If we go to Wi-Fi in a Redmi phone and tap on previously connected Wi-Fi, then the phone allows us to share the Wi-Fi network by scanning QR code by some other phone or the same phone.

And if I scan this QR code with any other phone, then we can easily see the password. So how can I protect my Wi-Fi password?

# Answer
The answer to this question is more general than the specific hardware you referenced in your question, and not Android specific in any way, but since this question seems to arise from time to time I will answer it as best I can so that people can see this isn't "magic" in any way.

The reason this is showing your password is that the QR code for WiFi information stores and transmits the WiFi password in plain text, so that anyone who scans the QR code will have your WiFi password. The QR code isn't something special here: although you can't "read" it per se, any device that knows the standard code used for the QR symbol can read it just like words on a piece of paper. This is just how QR codes for WiFi are done and it doesn't matter if it is a TP-Link, Asus, Linksys, or any other device creating them: the password is in plain text. It also does not matter what device is reading the QR code: whether it's Redmi, Samsung, Apple, Google, Huawei, or whatever, it can read the QR code and display the network name and password in plain text, although some apps might "mask" the password for basic privacy (but they do have the information).

The proper way to handle this security in a home environment is not to give your WiFi password out to your friends, only to your family (or set it up yourself for them, although they may still be able to retrieve the password). And for your friends' or guests' use, have a separate SSID with a simple password that is setup to only access the Internet (commonly called Client Isolation), possibly at a throttled rate. I don't know about TP-Link, but many companies like Asus have an app for your cell phone that can very quickly allow you to enable a guest WiFi network for a certain period of time (say 4, 24, 72 hours) then automatically disables it. This example is useful for friends who are over for dinner, the entire day, or weekend perhaps. Some people, myself included, just enable a guest network with a password all the time, but this network has client isolation (users can only access the Internet) and it is throttled to about 1-2% of my ISP speeds (they have 5Mbps down and 500Kbps upload to use) and I change the password 3-4 times a year and put it on the fridge. None of these are perfect answers to security, but they are usually good enough.

Otherwise, if you are giving people access to your network, you might as well just give them the WiFi password... Once they are connected to WiFi it is largely the same as if they plugged into your network with a cable and can access everything, so having physical access to the network and having the WiFi password are essentially the same thing. Besides, it is fairly easy to change the WiFi password later if needed to restrict access. It also isn't a bad idea to change your WiFi password on a regular basis, once every 30-90 days or so, so that if the password is out there, it cannot be accessed later if things change, like your friend for whatever reason is not your friend any longer.
> 33 votes

# Answer
The short answer to this question is you can not stop anybody that has the WiFi password from sharing it. Which is exactly what the phone is doing when it generates the QR code.

If you want to prevent users of your network from sharing access with others then you have to use something other than the default password WPA to secure the network. There are a number of possible solutions

* Use MAC address white lists, this means that only known hardware will be allowed to connect even if they have the password (MAC addresses are easily spoofed with laptops, not sure if it's possible without jailbreaking a phone)
* Used WPA-TLS, this uses individual certificates for each user, once installed on the phone there is no way to export the private key so no way to share with others (it is possible to extract keys on some jail broken phones that do not have hardware secure elements)
* Use a captive portal and require a second password that changes regularly (this could be from a 2fa token only given to authorised users)

This list is not complete but should give you some options to look at.
> 12 votes

# Answer
You can have a dedicated guest SSID (if your router supports it). This can separate guests from you to some degree, depending on router capabilities.

If you don't want give the guests permanent access, you can change the password time-to-time.

If you want to go further, you can look at WPA2/WPA3 Enterprise. This allows better access control. However, you probably don't want to do this on your home Wi-Fi, because it is too complex to set up and you might need a better (and more expensive) Wi-Fi router for that.

For explanation why QR code does not hide the password see @acejavelin's post.
> 4 votes

# Answer
I have a second router, just a small cheap one, connected by cable to the main router. They have different wifi networks and different passwords. I give my friends the password of the second router only.

I can change it anytime easily. Or disconnect it.

I find its an easy and effective solution.
> 3 votes

---
Tags: wi-fi, security, qr-code
---


# Question
Title: How to flash Magisk-x.y.z.zip using fastboot without using TWRP?
Is it mandatory to use twrp to flash Magisk. Can it be flashed using **fastboot**

# Answer
> 2 votes
You probably meant **fastboot** mode.

And no, Magisk cannot be flashed using Fastboot mode. It is a zip file and not an image file that you can just flash to a partition. If you want to use fastboot, you should consider patching your boot image using Magisk Manager and then boot that image using fastboot boot command.

```
fastboot boot magisk-patched.img

```

Or if you are sure you have the correct boot image, you can flash the patched image too:

```
fastboot flash boot magisk-patched.img

```

---
Tags: fastboot
---


# Question
Title: How do I enter a new line in a cell in Google Sheets?
When accessing a spreadsheet in Google Drive on a computer with a keyboard, I can enter a new line in a single cell by pressing `alt`+`enter`.

My keyboard on my Android doesn't even have an `alt` key.

How do I enter a new line on my Android device?

For a keyboard on my Android, I'm currently using Swype, but I am assuming, and hoping, there is some kind of general approach that is not specific to a particular keyboard.

# Answer
Easiest way: add an extra letter at the end of the line. Select that letter. Hit enter. The letter will be replaced with a new line.
> 32 votes

# Answer
The function `CHAR(10)` will return a Line Feed.

Combining with functions like `CONCATENATE()` or `&` will give a new line. Example:

```
=CONCATENATE("First line"; CHAR(10); "Second line")
="First line"&CHAR(10)&"Second line"

```
> 5 votes

# Answer
The only way that I found so far is through the clipboard.

Using a source document with a line break, with some effort you could succeed in selecting just the line break, and then copy/paste it.

Even easier is to use an app such as "Unicode Pad" or "Unicode CharMap", both of which will find and then copy/paste any character. You'll need to look for LF, LINE FEED or U+000A.
Note that you won't "see" the character after you select it, it shows as a space for obvious reasons.
This still isn't as convenient as I would like it to be, but at least I found it to work reliably.
> 4 votes

# Answer
Mark the cell in which you want to have new lines.

At the top menu click the "A" next to the redo button.

in the lower screen section a modal pops up. There hit the tab "CELL".

Than activate "Wrap Text".

Now this cell will do line-breaks on long text.
> 3 votes

# Answer
The highlight a throw-away character and hit enter trick, as well as the type everything into a text editor, then copy/paste it into the Google Sheets cell, both only work on Android devices. I have a Google Spreadsheet that I'm sharing with a client who has an iPhone, and she needs to be able to enter multiple lines within a cell. So I came up with just a little Google Apps Script code to do it on her iPhone (can be entered into the drop-down menu of the Google Spreadsheet, Tools \>\> Script editor):

```
function onEdit(e) {
    e.range.setValue(e.value.replace(/\\\\/g, '\\').replace(/ *\\n */g, '\n').replace(/\/g, '\\'));
}

```

Basically, that creates a function (that is automatically linked to a Google Sheets trigger), and will run every time a cell is edited. It simply replaces all of the "\n" characters in your text with a line-break. Make sure that's a backslash, and not a normal slash. For programmers, the "\n" is a special character that represents a carriage return within a string. The only possible exception where an accidental line-break might happen would be when trying to input a Windows path into a cell such as "C:\Users\John\Documents\news". So double-backslashes is the common workaround for Windows paths among programmers. So one could enter "C:\Users\John\Documents\news" or even just simply "C:\Users\John\Documents\news" (since \n is really the only string we're replacing at this point).

It's also possible to change the replacement characters, in case anyone is more familiar with HTML:

```
function onEdit(e) {
    e.range.setValue(e.value.replace(/ *<br *\/*> */ig, '\n'));
}

```

Since "`<br>`" is much more deliberate (people don't accidentally type that in unless they want a line-break), it makes for a simpler replace function, since we don't have to do an escape for double-backslashes. But personally, typing in the angled brackets from an Android touchscreen keyboard are a bit inconvenient to do so twice for every line-break...

-Ted
> 3 votes

# Answer
The following trick worked for me: Ctrl + Enter
> 1 votes

# Answer
I have succeeded by pressing several times Enter when typing a message, select all, copy it and paste it into a cell in a sheet.
> 0 votes

# Answer
Just select a line and press + (top right on the tool bar), you'll be offered to insert a row above or below or a link.
> -2 votes

---
Tags: keyboard, google-drive, google-sheets
---


# Question
Title: Android OS - strange UDP traffic on port 123
I have a Redmi Note 3 (unrooted) phone running MIUI Global 10.2 \[Android version 6.0.1 MMB29M\]

I have installed AdGuard to monitor the traffic that my phone sends/receives. While checking the 'Filtering Log', I see few connections that the app "Android OS" makes to the remote address "118.189.138.5:123" (see screenshot). As you can see from the screenshot, the requested URL is having a "UDP" connection protocol.

Now, when I do a search for this IP address, I see that it belongs to "M1 Connect Pte Ltd" in Singapore.

https://www.speedguide.net/ip/118.189.138.5

I also noticed similar UDP connections to these IP addresses:

95.216.192.15 belongs to "D2 Internet Investment Ukraine ETTH broadband" in Ukraine 133.243.238.163 belongs to "National Institute of Information and Communicatio" in Japan and the strangest of all 202.12.97.45 belonging to "Ministry of University Affairs" in Thailand

So my question is why would Android OS make connection to this IP addresses. What are these connections for? Am I missing something here or are these some legit connections used for some 'good' work? Is my phone connecting and leaking some information?

Hoping that some expert on networking will answer this.

# Answer
> 1 votes
There is a simple answer what is causing the UDP traffic.

The first indicator is the used port number 123 which is typically used by the Network Time Protocol (NTP). This protocol is responsible for synchronizing the time of your smartphone with a remote server.

To spread the burden among multiple servers and to make sure there is always a server available the NTP protocol usually does not use one specific time server to synchronize with.

Instead a large pool of servers is used. The three IP address 118.189.138.5 95.216.192.15 133.243.238.163 and 202.12.97.45 you mentioned are all NTP servers and they belong to the NTP pool "Asia 1".

Therefore if you capture more traffic earlier or later I assume you will see all of those IP addresses with UDP traffic on port 123.

---
Tags: udp
---


title: Pixel 3a Live Caption

text:
# Question
Title: Pixel 3a Live Caption
I have bought a pixel and I update the phone to Android 10 but I can't put the live captions the option isn't there any help?

# Answer
This feature is not yet available. It will probably be available with the new Pixel 4.

Source: https://www.theverge.com/2019/9/30/20891465/android-10-pixel-4-live-caption-accessibility-feature
> 0 votes

---
Tags: google-pixel-3-xl
---


# Question
Title: How can I share my free internet vpn connection with my laptop?
I am getting the free internet connection through both HTTP Injector and Anonytun, I want to get the same fast connection in my laptop as in the android phone? Please use simple language since I'm not exactly very convulsant with these things..but I,m also not thaat dumb...hehe :-). Thank you.

# Answer
The easy Way... 1. Start your VPN on your phone 2. Install/Use Clockworkmod's USB Tether. 2b. Use PDANet/Foxfi for wireless sharing.

The Clockworkmod/PDAnet tether app will connect to the internet like any other app; through the VPN.
> 2 votes

---
Tags: internet, wifi-hotspot
---


# Question
Title: Delete incomplete download from Play Store
I was downloading a game from Play Store, but suddenly errors occur when 75% file downloaded. My device storage is limited and now I wanted to delete that useless files.

Where are the files located?

# Answer
> 1 votes
You don't need to delete that. If an error occurs and download is interrupted the Android OS itself deletes that file(It consider it as garbage).

# Answer
> 0 votes
You can also clear "Google Play Store" cache.

# Answer
> -1 votes
Try CleanMaster for Android. It tracks and deletes unwanted and useless files from the temp, obb and other folders. I have used it and works for me. Its easy ;)

---
Tags: google-play-store
---


# Question
Title: Can I open a second Gmail account in a separate app?
I currently have several Gmail accounts, one for work, and the others personal. I'd like to keep these separate so I can forget about work on the weekends, but I'm finding it hard to do right now.

Is there a way to open the work account in a different app (E.G., Outlook) but not have it show up in the regular Gmail client as well?

# Answer
Unfortunately the answer is that it will depend...

It will depend how your work email is setup and/or the device being used.

**Option1 - Android Enterprise** If your organization has an MDM (mobile device management) and they support a configuration called Android Enterprise it is possible they can distribute another instant if Gmail that keeps your work and personal email separate. You will need to contact your companies help desk for more info. Note your device must be new enough to support Android Enterprise.

**Option2 - Samsung Devices** Some newer Samsung devices allow you to do this with a feature called Secure folder. Secure folder allows you to add applications like gmail to the secure folder. This allows you to run another instance of gmail or most other android.

Hope that helps
> 1 votes

---
Tags: gmail, email, accounts
---


# Question
Title: How can I programmatically backup Android phone's settings?
I was wondering if I could programmatically backup my Android phone's settings. The "PHONE"'s settings and not application settings.

# Answer
> 0 votes
The easiest way availaboe to you is using a third party app. I found My Backup Pro (there is a free version as well) which seemed promising.

You can also search he market for settings backup.

<sup>I use an system app provided by the manufacturer which is called backup and restore. I'll give them if the mentioned solution does not work for you. The reason im asking you to go with the first app is that the manufacturer's system app is highly unlikely to work properly ina device other than the one is originally made for. </sup>

# Answer
> 0 votes
If your phone is an LG, it's easy to do that with LG backup. To backup your phone's settings, go to Settings - LG Backup \[in list mode\] - Backup. Unselect everything except settings, and click backup.

If not, try Titanium Backup.

# Answer
> -1 votes
If you know the location of the settings database, you can use LlamaLab's Automate to copy app data within the application itself, even in the root directory.

---
Tags: settings, backup, automation
---


# Question
Title: Will "hiding" contacts on Google Contacts affect other apps' behavior?
I manage my contacts on my Google account. There is a feature in Google Contacts where one can "hide" selected contacts, as follows. If you go to contacts.google.com, click the three dots to the right of a contact, then click "Hide from contacts" in the menu, the contact will be moved to Other Contacts.

I prefer to keep my digital data organized, and shortening my contacts list will help. However, I'm not sure what the effect of hiding a contact is (other than it not displaying in the contacts list on a contacts app).

We're talking about a contact that I'm not likely to communicate with in the future, but it would still be better for me to save their details, for example in the unlikely event that they phone me. **If a hidden contact phones me (on my Samsung Galaxy S8), will my stock phone app show me who is calling?**

# Answer
The name of the caller will **not** be identified if the contact is hidden in Google Contacts.

The contact will be removed from the contacts list in the stock Samsung contacts app.

I tested this by calling my mobile with my work phone. I hid my work phone number in contacts.gooogle.com, and I also had to remove the number from my personal information in my Samsung Account, as well as my Samsung Account in my secure folder.
> 3 votes

# Answer
"hiding" means hiding the contacts from the contacts app only , it will tells who's calling. I'm saying that it is only used by the app
> -1 votes

---
Tags: contacts, google-contacts, samsung-galaxy-s-8, hidden, phone-app
---


title: How to hide my name in Whatsapp group?

text:
# Question
Title: How to hide my name in Whatsapp group?
I've provided a screenshot, clickable for full size, of a group I'm in. Some people are able to hide their names. How can I do it? I do not know some people in the group and I don't want them contacting me.

# Answer
Well you cannot hide names in WhatsApp at all. As you know it wont accept a blank as profile name.

1.Coming to the blank names beside the contact number is shown because the other person has saved you in his contact but his number is not saved(with a name) in your contacts list. Due to this the app will show only the contact number but not the name.

**Update-** Try saving the contact with a name and then refresh your contacts in whats app for this first force stop the app then clear the cache (this works most of the time irrespective of the make or mode of internet )

2.You may be using an older version of the application.(you have not specified the version so it can also be the problem).

3.You could be blocked by the other person so you cannot see his name initially(later last seen and then the display pic)

If the above still do not solve your problem then try reading the faq 1 and faq 2
> 1 votes

# Answer
Actually, its a hack for WhatsApp. I should say that it is a bug in WhatsApp that if you copy this ⇨ ຸ from here and paste in place of your name or about and then delete the ⇨ then tap save, then you name or about will not show. There would be empty spaces instead. WhatsApp, on its official website (FAQs), says that status can't be empty but you can using this trick. So it's a loophole actually. For status, if it doesn't go empty by that trick, just try to paste the ⇨ ຸ and delete both the characters, i.e., ⇨ as well as ຸ and then save to see if it works. But if you are a professional, you might want strangers to recognise you right away.
> 1 votes

---
Tags: whatsapp-messenger, privacy
---


# Question
Title: How to remove an app from recent apps list?
We have had the recent uninspired idea to let a SmartPhone upgrade itself to the "*Pie*" Version of the "*Google*" "*Android*" Operating System.

Now, although everything went smoothly, we have discovered to our utter amazement that we are no longer able to close a Mobile Software Application at once. We are able only to close all of the running Mobile Software Applications at once.

No matter how much we have been searching so far, there is no obvious individual "*Close*" Button for each Mobile Software Application in this Latest Version.

Does anybody know how to close them individually, in a gentle way? We are not referring to any Forced Closures by means of terminating them.

# Answer
> 0 votes
As mentioned in the comments the way to close individual apps in the Samsung One UI is to simply "swipe" that app away.

The two gestures I have here are swiping up on the app to close it or swiping down to maximise it.

---
Tags: 9.0-pie, recents-screen
---


title: Local equivalent to adb install

text:
# Question
Title: Local equivalent to adb install
With a PC connection and adb, I can install packages by running

```
adb install foobar.apk

```

There is also an option to downgrade a package to an earlier version and keep data (as long the app itself did not introduce any incompatibilities in the later version):

```
adb install -r -d foobar.apk

```

Is there an equivalent local command which I could run from a terminal session (or any other way to downgrade without a PC connection)?

# Answer
> 0 votes
The local `pm` command can do this. You need the following things:

* A terminal app. (`adb shell` will also work, but then you might just as well use `adb install`).
* A way to get root permission on the command line (usually `su`)
* A copy of the APK on the device, e.g. by downloading it using a web browser.

Open the terminal app, then run:

```
su
pm install -r -d /sdcard/download/foobar.apk

```

Command line options are the same as for `adb install`: `-r` will replace existing packages, `-d` will downgrade if necessary.

---
Tags: adb, installation, apk, terminal, downgrade
---


title: Downgrade an app in Nougat

text:
# Question
Title: Downgrade an app in Nougat
Well, simple. I want to downgrade an app that has been accidentally updated. I've already read this question but it didn't provide me with a straight instruction. I have the APK I want to downgrade **to** so that question is unhelpful to me. It's not a test package (saved from Google Play) so option `-t` doesn't make sense.

Things I've tried so far:

* Run in a terminal (with root)

```
pm install -r -d old.apk
```
* Use adb on a computer

```
adb install -r -d /path/to/old.apk
```
* Brutally replace the apk in `/data/app` and manually run `dex2oat` to force compile it

All of above were to no avail. So I'm quite bothered about this.

I don't want an answer telling me **uninstall the new app, then install the old one**. I want to retain app data without backing up.

# Answer
> 0 votes
This installs the old version without removing the new one: `adb install -r -d /path/to/old.apk`

The `-d` flag is to allow a downgrade. `-t` allows test packages.

You can also uninstall the application, then install the old apk. This may be necessary, for example, if the application data has changed format in the new version and is not backwards compatible.

# Answer
> 0 votes
Use a backup app like oandbackup:

* Back up application data
* Uninstall the app
* Install the older version
* Restore data (not the APK) with oandbackup
* If necessary, force stop the app once (from Settings \> Apps) so it will work with the restored data.

Caveat: if the upgraded version of your app has changed its data format in a way that is not backwards-compatible, there’s no easy way to go back. You would have to figure out a way to convert the data back to the old format.

---
Tags: applications, 7.0-nougat, downgrade, 7.1-nougat
---