# Question
Title: Using a phone as a game console- HDMI out and USB in simultaneously
I have a pico projector, which I use to display HDMI from my Galaxy S3 via an MHL cable. I recently learned that my phone (and most newer Android devices) can be controlled with USB gamepads, mouses, keyboards, etc. with a USB OTG connector, and I have MegaN64 (a very good Nintendo 64 emulator) on my phone, which works great with my USB gamepad.

I'm trying to combine these two features: I want to be able to provide HDMI input to my projector from my phone, and have a USB gamepad controlling it at the same time. Is there any way to do this? I can't with my current equipment, because MHL takes up the micro USB port, so I can't have anything plugged in at the same time. Even if I had a simple micro USB splitter, as far as I know the micro USB port will not work as a USB port and an MHL port at the same time (PLEASE correct me if I'm wrong).

I know there are wireless HDMI receivers available, like Chromecast, but all of them that I've seen use Wi-Fi instead of Bluetooth, and most only work with certain apps, instead of just mirroring the screen. I plan on using this setup while camping, so sending HDMI over Wi-Fi won't be an option for me.

The only close-to-a-solution I've come up with so far is to connect a controller over Bluetooth: there are a good few apps that will connect a phone to a Wii Remote, but that's not the best controller for some of the games I want to play. I've looked into connecting my preferred (USB) controller over Bluetooth, but I haven't been able find a way to do that.

Is there any alternative to MHL for outputting HDMI which doesn't require Wi-Fi, or a way to connect a USB device over Bluetooth?

# Answer
> 1 votes
Well if the already build adapter doesn't work you can make your own folowing this steps (if you are not able to do all the soldering ask a professional nearby like a phone repair shop) :

**Background** : Samsung made the new 11pin MHL technology on the galaxy note 2 and the S3 (those are the first devices to have it any top shelf phone out after that day have that technology ) ,samsung made it specially to sell it's own Smart Dock station where you can transform your S3 to a desktop ,the smart dock was (may still) sold to companies only for **100$** , the member @its.mahmud on XDA succeeded to make a clone of that device after reading the source code of the samsung galaxy S3 see reference .

**Now How to build a DIY smart dock :**

**pre-required :**

1. A Micro USB 5 To 11 Pin HDMI HDTV MHL Adapter Converter For Galaxy S3 S III i9300 search for it or get it from ebay
2. A 40.2 k ohm resistor (they are sold by lot by you can buy a piece from any repair shop)
3. A USB 2.0 A female to Micro USB B female adapter cable FF (by from near by electronics shop or from ebay **(if you already have a female USB port somewhere else you can use that instead)**
4. A samsung galaxy s3 under JB stock rom.

**Lets start breaking stuff and making new stuff** :

1. Cut the A Micro USB 5 To 11 Pin open and get the mother-ship this is what it looks like this on the 5pin side:

2. As you can see in on the ship where it's written `R1` and there is a rectangle around the resistor ,yo need to take off that resistor ,do so.
3. Replace the removed resistor by the 40.2 K ohm resistor.
4. Cut the A USB 2.0 A female to Micro USB B female adapter open to remove the female USB port (if you already have a female USB port somewhere else you can use that instead).
5. Now solder new 4 wires and shortcut the sense and ground with the 40.2 K ohm resistor as shown is the picture below.

* Optionally you can cover the wires with duck-tap or any plastic material of your choice.
* You can plug a USB Hub to the female USB port you just made to plug multiple USB devices (mouse and keyboard) or two controllers (android natively detect and use one controller only you need a third party app to manage multiple controllers.
* Now you have a USB or multiple USB ports and An 11 Pin HDMI HDTV MHL to plug on your TV.

**Reference :**

**Disclaimer :**

* None Of the component (devices and micro electronics ) used in this unswer are sold by me the links included are here to make it easy to find you can buy them from where ever you want.

# Answer
> 0 votes
if your phone supports Both MHL and USB host protocols you can connect both your projector and a USB gamepad **BUT** you gonna need the proper adapter to do that (see figure bellow)

(***this picture is to show the kind of adapters not to advertise this specific product***)

you can find a lot of those on amazon the price is between 10 -50 $ here is a link or you can search for it on the web using this keywords "`Adapter MHL HDMI / USB / SD for Micro USB`"

# Answer
> 0 votes
This can be done and it's an amazing thing to pull off. I hoped the connection kit device allows for 5 to 11-pin MHL. If so, that device will allow this to work. This would be perfect for an emulation device and would be cheaper and more powerful than any single board computer like Raspberry Pi.

---
Tags: bluetooth, hdmi, game-controllers, mhl
---


title: Links always open google first

text:
# Question
Title: Links always open google first
This just seems wrong. When I click a link in an email (gmail), or anywhere else on Android, it *first* loads a google page then opens the link. Like google is tracking every link I click. Seems inappropriate. Any way to disable it?

# Answer
> 0 votes
As this behavior occurs with every app on your system most likely the configuration of the "Default Application" for `http` and `https` links has been changed.

You can configure all default Applications in the Android **Settings**. The exact path to the Default Applications settings depends on your Android version and device vendor (some vendors modify the Settings menu).

For example on Android 7 you have to open the **Apps** section and then the gear icon in the top right corner. Select the **Browser App** and you can choose which app to use as web browser.

On Android 8 there is in **Settings** the entry **Apps & Notifications** -\> **Extended** -\> **Default-Apps** where you can configure the default Browser app for example.

---
Tags: gmail, google
---


# Question
Title: LineageOS : upgrade nightly to unofficial, switching keys not working
referring to: LineageOS : upgrade nightly to unofficial

@Taknok: Did this work for you? I tried to follow the instructions on the Wiki page you mentioned, but it did not work. I always ended up with the error described above.

I tried to run "migration.sh unofficial" from recovery which resulted in an error message:

> CANNOT LINK EXECUTABLE "/system/bin/sh": cannot locate symbol "\__aeabi\_memset" referenced by "/system/bin/sh"...

I run the same script while LineageOS was running:

```
$ adb shell sh /data/local/tmp/migration.sh unofficial
Official to unofficial migration
Saving backup as /data/system/packages.xml.bak
Done

```

But when I go to recovery to flash my own build it still says:

> Can't install this package on top of incompatible data. Please try another package or run a factory reset

How did you manage to do it?

# Answer
> 2 votes
so, today it worked fine! Here is what I did:

```
# changing to unofficial, unsigned builds:
adb root # This requires an userdebug/eng build and ADB root access to be enabled
adb shell stop
adb push migration.sh /data/local/tmp/migration.sh
adb shell chmod +x /data/local/tmp/migration.sh
adb shell sh /data/local/tmp/migration.sh unofficial
adb reboot recovery
# Now install the official LineageOS install zip

```

Then I modified migration.sh replacing the release\_keys with my own ones and switched back to official.

---
Tags: lineageos, builds
---


# Question
Title: Is there a way to completely disable all Bixby functionality without rooting the S9+?
I would like to get rid of Bixby altogether and preferably reassign the Bixby hardware button to a different function.

Is that at all possible and if so: how?

# Answer
> 5 votes
This article has a useful guide to disabling bixby.

> **Disable Bixby Voice**
>
> Go to Bixby home. Click the three vertical dots then settings. Uncheck Bixby Voice
>
> **Disable Bixby Button**
>
> Go to Bixby home. Click the cog. Uncheck Bixby Key
>
> **Remove Bixby from Home screen**
>
> From home screen, hold down on empty space. Swipe right until you see Bixby home screen. Uncheck Bixby Home.

This other article covers remapping Bixby button. You will have to keep the button enabled. Skip step two in the previous article.

This one is longer, but basically you download an app that will remap the key to what ever action that can be done.

**EDIT**

As of Android Pie (9.0), this guide is no longer accurate to disable Bixby. The Bixby button can still be remapped using bxActions(free) or Tasker beta(paid)(thanks beeshyams) and Bixby Home can be removed from the home screen. However, disabling Bixby completely will most likely require removing via ADB or possibly using Package Disabler Pro+(Paid app).

# Answer
> 2 votes
Yes this can done. I recently updated guide to remove Bixby using adb.

Assuming you've adb installed on your machine, you can run following command to get packages related to Bixby.

```
adb shell pm list packages | findstr "bixby"
or
adb shell pm list packages | grep "bixby"

```

Next step is to uninstall those packages for the current user (that is you). An example for one of the packages:

```
adb shell pm uninstall -k --user 0 com.samsung.android.bixby.agent

```

Do this for all packages and you will have everything related to Bixby removed from your device. I just verified with my S10 Plus device and it works fine.

One caveat is: The application is being uninstalled for the current user (`--user 0`) – not system wide. Root access it needed to do system wide un-installation. This could also mean that whenever you’ll upgrade or factory reset your device, the bloatware would kick in again. Also button remapping might also not be possible.

If this sounds very technical to you, you may want to read the guide for step by step instructions.

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


# Question
Title: How to disable symbols pop-up on long press on GBoard or make the key long-press delay really long?
I am trying to disable the symbol pop-up on long-press on GBoard in Android. My device is rooted. The link here shows how to increase GBoard height above the highest level by changes the preferences file at /data/data/com.google.android.inputmethod.latin/shared\_prefs/ . However, I could fine no such setting for disabling the symbol pop-up. Another way to do this would be to increase the long-press duration to 2-3s instead of the deafult max of 700ms. However, there is again no setting in the preferences file related to this. Any suggestions if this is doable by modifying the system files in a rooted device or by any other method?

# Answer
**Settings**\>**Language & input**\>**Google Keyboard**\>**preference** check there
> 0 votes

---
Tags: root-access, gboard
---


# Question
Title: How to enable picture in picture mode in Samsung Galaxy mobiles?
I have enabled the picture in picture mode option in Youtube App settings though unable to utilize the Pic in pic option. Am I missing anything to enable?

# Answer
Source

Picture-in-picture is turned on by default for all devices running Android 8.0 (Oreo) and above. To turn on picture-in-picture:

1. Navigate to your `Android settings > Apps & notifications > Advanced > Special access > Picture-in-picture`.
2. Tap `YouTube`.
3. Toggle `"Allow picture-in-picture”` ON.
> 0 votes

---
Tags: settings, 8.0-oreo, 8.1-oreo
---


title: Front camera not working on OnePlus 5T

text:
# Question
Title: Front camera not working on OnePlus 5T
Since yesterday my phone's front camera hasn't been working.

* Not working on most apps, including native camera. While touching "switch camera" button in camera application, nothing happens.
* Instagram images from the front camera displays a distorted, stretched image of the rear camera.
* In Dialer keycode(secret code) *#808* for Oneplus devices, "front camera preview" displays rear camera's image. But "camera test" makes the app close(force close) without any error info.
* If I'm not mistaken, during a video call on WhatsApp, the camera froze along with the app, which became unusable until I restarted phone. After that the camera hasn't worked ever since.

What I've tried so far:

* factory reset
* safe mode
* several camera apps
* going back to stable (I was using beta)

Nothing worked. Any suggestions?

# Answer
Tried to fix a possible software problem in any way I could imagine. Nothing worked.

Sent it to OnePlus for repairing and now it is working like new. They had to replace a few components, so it was a hardware problem.
> 0 votes

---
Tags: 9.0-pie, front-camera, oneplus-5t
---


# Question
Title: XIAOMI Redmi 6: how to change or remove the pin of the sim?
I have XIAOMI Redmi 6 phone, model M1804C3DG. Android version: 8.1.0, kernel version: 4.9.77+ .

There is no options in the menu to remove or change the pin of the sim. I have enabled developers options too, but no options are displayed related to the pin of the sim. If I insert this sim in another phone (ios operating system), the options to remove or change the pin is displayed in the menu, and it works: this means the sim works properly.

How to remove the pin, using this XIAOMI Redmi 6 phone?

Thank you

# Answer
1. Go to Settings -\> Additional Settings -\> Privacy.
2. Find SIM Lock section, select the SIM you want to change the pin, then click on "Change SIM PIN".
> 4 votes

---
Tags: sim-card, xiaomi, redmi-6
---


# Question
Title: What is the purpose of "Tracing" settings in Google Chrome Canary?
I use Chrome Canary and I found an option named 'Tracing' in Chrome \> Settings \> Developer options. The option doesn't exist in stable Chrome version and I guess it exists in Beta and Dev releases.

The option has 3 segments (see image)

Here are some checkboxes inside every option:

What is the purpose of this option? Maybe bug reporting or something else?

# Answer
> 2 votes
In software development, tracing is the process of logging information while a program is running or executed. It serves mainly to debug a program.

In case of Chromium (or Chrome I presume)

> When diagnosing performance problems it can be valuable to see what Chrome is doing "under the hood." One way to get a more detailed view into what's going on is to use the about:tracing tool.
>
> Tracing records activity in Chrome's processes (see multi-process architecture for more on what each process is doing). It records C++ or javascript method signatures in a hierarchical view for each thread in each process. This is a lot of information, but sifting through it can help identify performance bottlenecks, slow operations, and events with irregular lengths (leading to e.g. framerate variation).

This is just what is happening with Chrome Canary. The categories selected are those the apps will log information, details while running that will help the developers diagnose potential problems with the app.

---
Tags: chrome-for-android
---


# Question
Title: Is Android Pie vulnerable to ADB server attack?
According to The Hacker News, many Android devices are running insecure remote ADB service:

> ### Thousands of Android Devices Running Insecure Remote ADB Service
>
> Despite warnings about the threat of leaving insecure remote services enabled on Android devices, manufacturers continue to ship devices with open ADB debug port setups that leave Android-based devices exposed to hackers.
>
> Android Debug Bridge (ADB) is a command-line feature that generally uses for diagnostic and debugging purposes by helping app developers communicate with Android devices remotely to execute commands and, if necessary, completely control a device.
>
> Usually, developers connect to ADB service installed on Android devices using a USB cable, but it is also possible to use ADB wirelessly by enabling a daemon server at TCP port 5555 on the device.
>
> If left enabled, unauthorized remote attackers can scan the Internet to find a list of insecure Android devices running ADB debug interface over port 5555, remotely access them with highest "root" privileges, and then silently install malware without any authentication.
>
> Therefore, vendors are recommended to make sure that the ADB interface for their Android devices is disabled before shipping. However, many vendors are failing to do so.
>
> \[...\]

Is Android Pie vulnerable to the ADB server attack as mentioned above?

# Answer
> 0 votes
The attack is unrelated to a specific Android version (including Pie, Q, and beyond), but to **all devices with ADB over network enabled**.

> \[...\] it is also possible to use ADB wirelessly by enabling a daemon server at TCP port 5555 on the device.
>
> If left enabled, unauthorized remote attackers can scan the Internet to find a list of insecure Android devices running ADB debug interface over port 5555, remotely access them with highest "root" privileges, and then silently install malware without any authentication.

This is made worse when some manufacturers/vendors ship the device with the setting enabled.

> Despite warnings about the threat of leaving insecure remote services enabled on Android devices, manufacturers continue to ship devices with open ADB debug port setups that leave Android-based devices exposed to hackers.
>
> \[...\]
>
> Therefore, vendors are recommended to make sure that the ADB interface for their Android devices is disabled before shipping. However, many vendors are failing to do so.

For more information: Malware installed with remote debugging

---

To secure the device, check whether the ADB over network is disabled or not. This setting is available under Developer options, which normally also needs to be enabled first (usually by tapping "Build number" on the Settings 7 times)

To enable Developer options (in general):

1. Go to Settings - About phone
2. Tap "Build number" 7 times (or until any notification about developer option already enabled appears)
3. (If this step doesn't work, check with your device manual or other resources to enable Developer options)

To disable ADB over network:

1. Go to Settings - Developer options
2. Check whether the "Developer options" is enabled or not by toggling the switch on the top. If you don't need any features from this setting, disabling it is recommended. However, if you need some features from it but still need to secure the device...
3. Scroll until the Debugging section, and check whether "Android debugging" and "ADB over network" are enabled or not. Either disable both if you don't need to debug any apps, or just disable "ADB over network" to prevent this attack.
4. (Otherwise, if you need to use ADB over network, just don't forget to disable it when you end the debugging season)

---
Tags: security
---


# Question
Title: What is the meaning of an "eye" system icon on Samsung devices?
This is a Samsung device showing an "eye" system icon on the notification bar.

What does it mean?

# Answer
> 2 votes
AFAIK, it is the Samsung feature which keeps the display turned on for as long as you're looking at it. This is helpful if you're reading something off the display and don't want it to sleep.

The setting/feature can be disabled in Display Settings of the phone.

---
Tags: samsung, notification-icons
---


# Question
Title: Should I be cautious about Huawei-modifications for popular apps?
What's the difference between Booking app on Huawei app store and the version on Google play store. Why Huawei always wants to update Google Play version to their Huawei app store version. As soon as Google Play publish new version. Immediatly Huawei release a newer version than the one on Google play. For example the Google Play version is 12.0.0 Huawei will update it to be like 12.0.0.0.1

Should I cautious of these modified versions of the same app from Huawei? I choose Booking as an example but there are some other apps like CamScanner ect.

# Answer
> 2 votes
> Should I cautious of these modified versions of the same app from Huawei?

We don't know if they are modified versions; and if they were, we don't if Huawei or the legitimate developers modified them. I have not seen any articles accusing Huawei of modifying apps. Even when using only Google Play Store, there may be a difference in the version of an app depending on the device. See below for Booking.com's additional information on Google Play Store

In Huawei's AppGallery Review Guidelines, the following is stated about what developers should do for their apps to be compliant and pass the review on the App content section:

> 4.5 Your app must not be a cracked version of another copyrighted app.

On the user privacy section, it is stated:

> **7. User Privacy**
>
> You must handle user data with caution and ensure your app complies with the laws and regulations of the countries or regions where your app is to be released. The following requirements must be met:
>
> 7.1 Your app must not collect, transfer, or use users' privacy data, such as location and contacts, without the user’s consent or other legal basis in applicable law.
>
> 7.2 Your app must provide anti-virus or security protection functions and privacy notices, and the privacy notices should include the following information: What user data will be collected or transferred, what such data is used for, and with whom such data is shared, and any other information as required by applicable law.
>
> 7.3 If your app transfers users' personal data, users must be informed how and where such data is going to be used.
>
> 7.4 Your app must encrypt users' personal information, such as identifiers and authentication, when collecting, storing, and transferring such information to ensure confidentiality and completeness.
>
> 7.5 During transactions using third-party payment services, your app must not record users' transaction authentication information or disclose users' personal information irrelevant to the corresponding transactions to any third-party.
>
> 7.6 If your app is used to handle financial, payment, or identity information, it must not disclose any of the user's personal data.
>
> 7.7 Your app must not use permissions or data that are irrelevant to the apps' functions.
>
> 7.8 Your app must not modify users' personal data within itself or other apps.

In App Audit FAQ, there is the following quesion:

> **Q11** Is security inspection the same for overseas and China apps?
>
> > A The security inspection on an overseas app features high industry standard, and is therefore more stringent than domestic ones in terms of data acquisition and permission requirements.

If Huawei is modifying apps without their owners' consent, then it will be liable for infringing not just their own guidelines but more importantly other nations' laws.

You should worry about any apps unless you have seen and reviewed their codes. However, none of us has the possibility of doing that with most apps being closed source. Google might be modifying apps from other developers. We are left only with giving or not our trust due to past experience(s) using an app or what we have heard about an app, developers or companies.

---
Tags: google-play-store, huawei
---


# Question
Title: Restore Google Authenticator accounts from ADB backup
About a month ago I accidently dropped my Nexus 4. Altough it dropped from only about half a meter- the screen broke and the multitouch stopped working too. I was lucky (and smart :P) enough to take a backup before it happend, so I can switch to a new device instead of fixing the N4 screen to recover the data on it. However, I enabled 2-factor auth on my GitHub account, and it was connected to the Google Authenticator app. When I enabled it, I was dumb and didn't download the recover keys- the only way to recover the account. It means that resotring the Google Auth app from the ADB backup is the only way to recover my account, but there's a little problem: I have no android device right now, and it may take some time until i'd buy a new one. So, the question is- is there any way to recover my account from ADB backup of the Google Auth app without an Android phone?

Thanks! :)

# Answer
> 1 votes
You cannot get the recovery keys (which are used to create backup codes) from adb backup of Google Authenticator because they do not exist in that backup. Adb backup of Google Authenticator only backup the user preferences of that app.

Furthermore, if you took a single adb backup, hoping all apps would have been backed up that way, than I'm afraid even the user preferences were not backed up. A specific flag is used for Authenticator when backing up through adb. Without that, the app cannot be backed up. You can read more on that in my answer here.

# Answer
> 0 votes
I think the more experienced members here should be able to give a more detailed answer in regards to how to go about the actual migration.

I did manage to find something through search engine, for your consideration: How to Move Your Google Authenticator Credentials to a New Android Phone or Tablet

And mostly, I wanted to also suggest (as you are specifically asking about getting access to Authenticator without a replacement device) using an Android emulator to accomplish this. These are very easy to setup and have root access as a preference toggle, although most are marketed toward the mobile gaming community. One that I have used myself is MEmu.

Just note that when you access through ADB and have a physical device plugged in as well, you will need to push commands by, e.g.:

```
adb -d ...  (to USB device)
adb -s ###.###.###.###:##### ... (to emulator)

```

I hope that helps!

---
Tags: adb, backup, restore, google-authenticator
---


# Question
Title: External Hard Drive to Smartphone without additional power supply
## I) Goal

Use external hard drive *without power supply* \- no hub either - to backup smartphone directly.

## II) Configuration

* Huawei Mate 20 Pro, this \- I own this.
* USB C male to USB A (3.0) Adapter (i.e. OTG adapter), this \- I own this.
* any of the following external hard drives:
    + **WD ELEMENTS PORTABLE 4 TB** WDBU6Y0040BBK-WESN \- I think about buying this.
    + **LaCie Rugged Mini 4 TB** LAC9000633 \- I own this, *brand new & ExFAT formatted*.

## III) Problem

I don't know the power output of my smartphone or the power requirements of those hard drives exactly and am therefore not sure if my goal is achievable. *When I connect my LaCie 4TB to my phone - via said USB-C-A-Adapter or directly via a USB-C-cable - the drive is not recognised and doesn't seem to spin.*

## IV) Known information / How I am trying to solve my problem

According to this and this my goal is achievable, according to this (Android Enthusiasts) maybe not.

I searched the web, but didn't find any official/trustworthy information from the manufacturers, from sellers or from users about the power in or output of either of those devices. The following information regarding the HDDs I found seems somewhat ambiguous:

* WD = 1 watt (WD on Amazon, somewhat trustworthy, but only info about 3TB version, here).
* LaCie = max. 2.9 watt (quite trustworthy actually, here).

My smartphone is able to supply an Apple Keyboard (wired) and an Apple Mighty Mouse (wired) at the same time over said OTG Adapter and a USB hub (hub power supply not plugged in!)... But I don't know the power consumption of those peripherals.

## V) Main Questions

* A) Is my goal really achievable? How?
* B) Is my assumption right, that my **LaCie HDD** won't spin because of power supply issues?
* C) Will the mentioned WD HDD do the job? If no, other suggestions, please.
* D) How do I have to format my drives to be read by Android? (I've read ExFAT should work...)

## VI) Additional, optional Questions

* E) What are the actual power requirements (in watt) of those drives? What is the actual power output of my Smartphone over OTG? Maybe someone with experience (and/or who has these drives) knows those numbers? Don't bother looking into the spec sheets of those drive, there is no information about the power requirements in there.

## VII) Disclaimer

I know, these aren't questions directly regarding Android. But,

* first, there is no Stack Exchange Site about Smartphones,
* second, I was sent here by the people of the Electrical Engineering Stack Exchange Site after posting this very question there (and deleting it now),
* third, my smartphone is an android device,
* forth, this might be a Android-ExFAT format problem (?),
* and fifth, the Android community is really competent when it comes to tech questions,

so this is the right place for this, I think... Please don't hate on me for posting my questions here - I shall kindly migrate to another Stack Exchange forum if you know a more suitable one.

Many thanks.

## VII) Update

1. Confirmed by Huawei support: The Mate 20 pro has 1 Ampere / 5 Volt output.
2. Confirmed by LaCie support: Said LaCie Drive - and as it seems every thing hooked up via USB 3.0?! - needs 0.5 Ampere (no voltage info) to function properly. - So why doesen't this work? Too low voltage?

# Answer
> A) Is my goal really achievable? How?

Unsure, see the answer to the second question of item **E**.

> B) Is my assumption right, that my LaCie HDD won't spin because of power supply issues?

Yes. The HDD isn't spinning up because the power supply isn't sufficient.

Another reason would be the HDD being broken otherwise, but this is unlikely the case given your very detailed description of your problem.

> C) Will the mentioned WD HDD do the job? If no, other suggestions, please.

For the same reason as B, this is unlikely. 2.5" HDDs nowadays have a fairly similar power consumption, regardless of brand. Older HDDs and HDDs with higher capacity tend to draw more power, but not making a huge difference.

> D) How do I have to format my drives to be read by Android? (I've read ExFAT should work...)

Nothing. You're done it correctly - exFAT is the right filesystem for them.

> E) What are the actual power requirements (in watt) of those drives?

As given in whatever you've read. Those claimed power requirements are usually correct.

> What is the actual power output of my Smartphone over OTG? Maybe someone with experience (and/or who has these drives) knows those numbers?

So, this is the most tricky part...

I haven't used any Huawei phones, but from my past experiences phones don't output much power (usually less than 2W) to OTG devices. It's likely that your phone is doing the same - not supplying as much power as needed by the HDD.

From previous news (in my local language Chinese - sorry), Mate 20 / Mate 20 Pro is capable of running as a power bank, or "reverse charging". I'm guessing that the claimed 5V/1A output is only achievable in reverse charging, not OTG.

The conclusion is not quite delighting - you have to get some kind of external power supply before you can use your HDDs with OTG.
> 1 votes

# Answer
This is a wild guess but may be worth a try. On my Mate 20 Pro, if I go to 'Developer Options' in the Settings, there is setting for 'Select USB Configuration'. The default option is 1) Charging (which I presume means power on the way in to phone) but there are also options for 2) MTP (Media Transfer Protocol), 3) PTP (Picture Transfer Protocol), 4) RNDIS (USB Ethernet), 5) Audio Source and 6) MIDI.

Perhaps if you try one of these other options with the OTG cable, it may do something?

Like I said, a wild guess based on poking around in Settings since I've had the phone.
> 0 votes

---
Tags: usb, huawei, usb-on-the-go, usb-drivers, formatting
---


# Question
Title: Why can't I see a folder in "/storage/emulated/0" on PC through MTP?
I use a banking app in my Android 8.1.0. All receipts are saved in /storage/emulated/0/*APPNAME*.

I can see the *APPNAME* folder and the receipts on Android if I use an explorer app like Google Files. But if I connect my Android on PC, the folder doesn't show up. I can see the other folders with no problem. Only that specific folder is missing.

What's going on?

(I suspect the devs marked the folder as not accessible through PC)

# Answer
It seems to be a problem related to Media Providers. Due to some bugs in implementation of MTP, database of Media Storage app (*/data/data/com.android.providers.media/databases/external.db*) built from contents of `/storage/emulated/0` isn't updated or is delayed or isn't properly communicated with the client as the files change, so MTP shows outdated / incomplete contents.

In order to force database updation, delete the file and run some media scanner app. Non-root users can delete this file by clearing data of `Media Storage` app.
But be aware, it'll also clear `internal.db` which will make ringtones unavailable and a new database will be built from `/system/media` on next reboot.

See this answer for more details.
> 1 votes

# Answer
Its like bug on computer when connecting to android (mtp) To fix that make a folder then copy the contents of the `APPNAME` Folder to the folder that you made or just move the whole appname folder to the /internal storage directory.
> 0 votes

---
Tags: usb, sd-card, file-management, mtp
---


title: Confusing comments in MTK Droid Tools

text:
# Question
Title: Confusing comments in MTK Droid Tools
Every version on MTK Droid Tools on https://mtkdroidtools.com has a file "files\_for\_delete.txt" with comments in Russian. What's the meaning of that - should't it be in English to let everyone read it? By the way, is this tool an Open Source and available for review? Otherwise how can one be sure that the code is safe?

# Answer
> What's the meaning of that - should't it be in English to let everyone read it?

As stated by @Robert, it was developed by rua1 who is Russian (his/her profile on XDA-Developers).

Using Google translate, here is an excerpt from the first few lines of the file. The comments are explanation of the lines

```
; --------- A list of files to delete from the phone ------------
; comments can be left after the sign;
; the name of the file to be deleted must contain the full path and begin with the /
; spaces in the tail and in front of the sign are allowed;

/system/recovery-from-boot.p; This file interferes with the installation of a modified recovery !!!
/system/media/bootaudio.mp3; sound when downloading on androids 2.2.2 and higher
/system/media/shutaudio.mp3

; Next, the list relevant to the B63M. On the other phones will not do harm. nothing to delete;)

/system/app/caivs.apk; Application that sends paid sms
/system/app/com.android.caivs.app.apk
/system/app/PinyinIME.*
/system/app/KaiXinAccountService.apk
/system/app/KaiXinAccountService.odex
/system/app/RenRenAccountService.apk
/system/app/RenRenAccountService.odex
/system/app/Sogou*.*
/system/app/sogou*.*
/system/app/androidmarketu.apk

; add-ons for B79

/system/app/SmsReg.*; Application that sends paid sms

/system/app/MobileLog.apk
/system/app/ModemLog.*

```

> By the way, is this tool an Open Source and available for review? Otherwise how can one be sure that the code is safe?

From this post:

> You cannot revive/update this tool because no source is available. The original author disappear by the forum. Some users developed some updates about external modules. But it's the maximum that it's possible now and for the future.
> 0 votes

---
Tags: motorola-droid
---


# Question
Title: Why files/directories under Android's root filesystem don't change across different version updates?
I compared 2 devices; one running Android v5.1.1 and other v9.0. So I noticed that files under `/proc` are same in both.
Can anyone explain why there is no difference even though OEM's are different and SDK versions are poles apart?

# Answer
> 2 votes
Android OS has two parts: kernel and userspace binaries, libraries, configuration etc. Android's kernel is taken from Linux, slightly modified and rarely gets major updates in years (other than critical security patches), while the second part gets frequent changes and updates, particularly with version releases.

The procfs is Linux kernel's virtual filesystem which:

> contains (among other things) one sub-directory for each process running on the system, which is named after the process ID (PID)

So it's not directly affected by changes made to AOSP by OEMs or Google itself.

Since Android is based on Linux, its filesystem hierarchy also resembles Linux distributions. So there are least chances of it being changed with Android version updates. What Android (Google or OEM) changes resides mostly in `/system` and `/vendor` partitions. Libraries (native or java), executable and configuration files may possibly change but most of the changes related to Graphical User Interface or Android's internal API's are only within source code and don't reflect at filesystem level.

**ANDROID'S ROOTFS:**

Android's root filesystem is extracted from RAM disk which is a part of boot partition. `boot.img` that also contains kernel binary is built along with ROM (Android OS for a specific device). Starting with Android Pie for non-A/B devices, contents of RAM disk are moved to `/system` partition, making `system.img` essentially the root filesystem. See System-as-root.

* One important file in root directory is `/init` executable binary which is the very first process started by kernel. It's the supervisor of all subsequently starting and stopping processes. `/*.rc` files are its configuration files.
* Some other necessary binaries are included in `/sbin`.
* `/sepolicy` is the SELinux policy file that's loaded before starting any services and processes on boot.
* `/cache`, `/data`, `/dsp`, `/firmware`, `/persist`, `/odm`, `/system` and `/vendor` are mountpoints where different block devices are mounted. Last three contain most of the Android OS stuff while `/data` contains settings and user's media. `/system` has a partial rootfs hierarchy of a standard Linux distro. `/cache` holds temporary files. `/dsp` (directory or symlink to `/vendor/dsp`) and `/firmware` (directory or symlink to `/vendor/firmware_mnt`) hold some read-only firmware related to SoC (Qualcomm) and `/persist` (directory or symlink to `/mnt/vendor/persist`) has configurations that are rarely changed.
* `/config`, `/mnt` and `/storage` are also mountpoints of virtual filesystems to manage mounting of SD cards and external storage. Details here.
* `/proc` is a pseudo filesystem as stated above. `/sys` is also a similar filesystem. `/dev` is also a virtul filesystem (`tmpfs`) which is populated from `sysfs` and contains interfaces to all available devices.
* `/acct` is one of Android's `control group` implementation to control load-balancing of CPUs. Other cgroups are mounted on `/dev/memcg`, `/dev/cpuctl` and `/dev/cpuset` to control usage of hardware resources.
* `/root` is the traditional `home` directory of Linux's `root` user, not used on Android.
* `/default.prop` is a file or symlink to `/etc/default.prop` which contains some of default Android System Properties.
* To retain compatibility, `/sdcard` is a symlink to `/storage/emulated/0`, `/bin` to `/system/bin` and `d` to `/sys/kernel/debug`. The traditional Linux's configuration directory `/etc` is a symlink to `/system/etc`.

Almost all of this filesystem hierarchy is the backbone of Android OS and there are very least chances of it being largely affected by Android's internal changes that occur to native services/daemons or Java-based framework.

For more details: ANDROID DEVICE PARTITIONS and FILESYSTEMS

---
Tags: updates, file-system, kernel, android-versions, android-sdk
---


# Question
Title: Just rooted and can't enable premium messaging
When I attempt to enable it, it's stuck like in the picture.

I then receive the message: `Free Msg: Unable to send message - Message Blocking is active.` I've tried other messaging applications, but I can't get it to work. My phone is a Xiaomi Mi Mix 2S.

# Answer
> 0 votes
You probably need a root hider or root disguise. That is probably checking to see if you have root access and if so won't compete.

---
Tags: root-access, sms, permissions, xiaomi
---


# Question
Title: Cant move apps to my sd card. Please help me with this as i have 29 gb available and i cannot shift
I have a tablet with less space. I have an sd card with 29 gb available but I can't move all apps to sd. I downloaded phone2sd but it said no movable objects. If root is the only way please tell me how to root myself. Thank u

# Answer
> 0 votes
Typically this will require root to accomplish. However depending on your tablet, on the newer version of android there is a capability to format the sd to the type for your tablet and will combine it with your internal memory.

---
Tags: applications
---


# Question
Title: How to remove this annoying mobile data pop up?
Whenever I toggle off mobile data, this pops up. Does anyone know how to remove it? It occurs every time I toggle it off.

# Answer
You could use a package disabler app, find out the name of the package(some apps will show the packages, use adb, or by Google Search) and then disable that message. Most package disabler apps require root but some don't.
> 0 votes

---
Tags: mobile-data
---


# Question
Title: Can access Fastboot, but it isn't working. Software issue?
First of all, thanks for taking the time to read this. I know it's a long post, I'm just trying to be as detailed as possible.

I've a Moto G XT-1032 that stopped working a couple days ago. It has the original battery, original software. USB debugging mode wasn't enabled. It didn't came with an original charger, so I have been using a Samsung Galaxy Tab one. The phone is almost two years old.

This is how it all started: It had low battery. When I got home it connected itself to the wi fi, and tons of whatsapp messages came at the same time. It went off. I thought maybe it had drained the battery. Plugged it in to charge, didn't get the led on, and the battery showed 0% for an instant. Then the phone turned itself on, got the M logo and then the screen went black (like... some sort of backlight is on, but the screen is just black) I turn it off, and it goes back on. No battery image, straight to the M logo, and then black screen. I tried holding power + vol down keys for more than 120 secs, finger pain is the only I got. It can access fastboot mode, but doesn't matter which option I pick, normal powerup, recovery, factory... I select them and then press vol up, but it just goes to the white screen with the M logo, then black screen.

When I plug the charger, and go to fastboot mode, it doesn't show battery charging. Just says battery low (or battery ok). When I plug it to the computer via the usb cable, and access fastboot, it shows battery charging (and it went from low to OK, so it actually charges). The computer doesn't detect the device at all. First time I plugged it, it tried to install drivers, but failed. I downloaded them from motorola's page. If I open motorola device manager, it tells me there aren't updates for my phone... So... I guess it's recognizing it? But I still can't see it. Windows only shows me my C and D drives, but not the phone. Tried different usb cables, different usb ports. Nothing changes.

I sent it to a service, they tested the battery and charging port, they said those were fine. But didn't find the problem.

Any ideas? Suggestions? Thanks in advance!

# Answer
> 0 votes
Since you can start the device and able to enter the Fastboot recovery mode, you can easily flash the stock MotoG ROM. That's all you need to do to factory-reset your device (however, if there is *data* on your device that needs to be backed-up, that's a different story and perhaps deserves a different post:-))

This is the relevant MotoG forum post for your reference. Summarily, you need two things: The stock MotoG ROM to flash to your device and of course, the MotoG drivers (since you say that your PC is able to detect the MotoG, I guess you already have the drivers installed).

As mentioned in that forum, just download and extract the stock ROM and run the `flashall.bat`. Your MotoG phone will be as good as new!

# Answer
> 0 votes
It sounds like the OS went corrupt. You said you can access fast boot, can you access recovery mode? If so try performing a factory reset through there. To see your phone in fast boot mode you will need to download fastboot to your computer and while in fastboot run command "fastboot devices". If you get a device id then the stock rom flash method mentioned before will work, but is slightly more involved and I like to use that as a last case scenario.

---
Tags: battery, fastboot, motorola-moto-g
---


# Question
Title: I Have an LG P769. I am trying to root it and it is not working
Forewarning: I am not exactly an expert on this type of thing.

I have tried several things, but the problem seems to be that I cannot get into the bootloader via "adb reboot bootloader" or by pressing any of the physical buttons.

I have gone through most of the steps I can find on the internet, but all of them require that I first get into the bootloader. Here is what I am getting:

```
(ME): adb devices
List of devices attached
338A000600000001015D7E810201F01?        device
(ME): adb reboot bootloader
(PHONE): reboots, but not into bootloader
(ME): [any of the following:] "fastboot OEM device-id"; "fastboot reboot"; "fastboot devices", and so on
< waiting for any device >
[crashes, and I have to reopen the PowerShell]

```

As of right now, I think it might be an issue (or intended 'feature') that the phone has. If anybody can help me out with this, I would be very grateful. Thanks!

\[I will be sure to update this with any details I remember or am asked for, and with updates.\]

# Answer
For Lg devices you must use a flash tool similar to Samsung's Odin. A good site to download required files is enter link description here. If you can't figure it out from that site just google search those tools and there's plenty of tutorials.
> 1 votes

---
Tags: adb, root-access, fastboot, bootloader, bootloader-lock
---


# Question
Title: Creepy caller blocked, but still gets through to my voicemail
I gave my phone number to someone who turns out to be unstable individual...crazy dude. I blocked him from my android phone, blocked from calls and messaging. Somehow he managed to call me, doesn't show the call on my call log at all..never heard or was alerted of the call. And he then left a voicemail and when I go through the menu to get the callers number it is silent..blank. How is this happening? And how can I block him all together? Seriously, this guy is freaking me out. Help please if you can.

# Answer
Blocking phone numbers on Android is not possible...

The work-around that developers use is a redirection to the voicemail number, redirecting calls to voicemail is the only option...

HOWEVER, From the Voicemail side & Mobile service provider's side, things can be blocked !

* Call your service provider and request the number to be fully blocked from ever connecting at all.. .

Alternatively ( if you don't use voice mail )

A workaround i found using the call setting....

• Change your voicemail number,
It is called ( redirect on unanswered ) an can be configured in the call settings.

I changed my number to +610 and it allowed the change. . The voicemail ( redirect service ) will redirect the call to a non existent number like +610 and then end the call ( They'll hear - "This number is not connected" ) .
> 0 votes

# Answer
This would be a network / mobile provider solution, they would be able to blacklist a number for you and prevent it from connecting, there are blocking options on android phones, but these don't stop calls connecting and voicemails being left.

You have blocked on the phone, which is great, and that is why you were not notified of the incoming call at the time, the mobile provider does still deal with a call if the phone does not answer it.

As others have noted, mobile network provider would be the best step forward, there is scope for blacklisting a number, alternatively another good suggestion is consider getting a new number.
> 0 votes

# Answer
Simple answer, contact the phone carriers account holder for that line, if it's not you. Either you or they need to call carrier and inform them you would like to block a phone number on your account.

This is s true call block.
> 0 votes

---
Tags: call-screening
---


title: command on adb waits forever

text:
# Question
Title: command on adb waits forever
I can successfully execute ADB commands, but if the command has no output the command line just waits there and does not let me enter a new command until I press ctrl-c, the commands do work however. Is there anyway to prevent the command line waiting forever until I press ctrl-c?

Here is an example of what I mean. I have entered this command, and the command line waits there forever until I press ctrl-c

I am using Windows xp and the phone I am using is an HTC Incredible

# Answer
> 2 votes
@Swing's solution works, but requires more information to be useful.

Running

```
netstat -nao | findstr 5037

```

will display all connections on port 5037, which is the TCP port that ADB daemon runs on.

Terminal should output something like this:

```
  TCP    127.0.0.1:3592         127.0.0.1:5037         ESTABLISHED     9984
  TCP    127.0.0.1:3603         127.0.0.1:5037         ESTABLISHED     6204
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       9904
  TCP    127.0.0.1:5037         127.0.0.1:3592         ESTABLISHED     9904
  TCP    127.0.0.1:5037         127.0.0.1:3603         ESTABLISHED     9904

```

The last column of numbers (like 9904) is the `PID` or `Process ID` that is running on the port that ADB uses. In some cases ADB doesn't end its previous process and cause future instances to hang/wait like you described.

If you're on Windows, open `Task Manager`, click `Details`, and find the matching ID in the `PID` column. Right click the process and end it, and try your adb command again.

# Answer
> 1 votes
use this command to find out if port 5037 is used by another process:

```
netstat -nao | findstr 5037

```

if in use, kill that process, than try it again.

---
Tags: adb, command-line
---


# Question
Title: How to stop music apps from playing when connected via Bluetooth to my car/headset/receiver?
We recently bought a used Toyota Prius that has Bluetooth installed with the JBL audio system. Whenever my phone (stock Nexus 4 running 4.4.4) connects to it, the car sends a "play" command that automatically starts the most recently used music app (Google Play Music, Pandora, etc.). It doesn't matter if no music app was open on the phone, the command opens it up and it starts playing no matter what, and there's no way on the car to stop it from sending the command, as mentioned here. Is there a way to stop this from happening?

# Answer
There's a Bluetooth connect & Play app that can intercept the incoming "play" command. While it was originally designed to let you start a specific music app playing when a specific Bluetooth device connects, you can instead select "STOP music from playing" to keep any app from starting when the car connects.
> 16 votes

# Answer
Go to Settings, Applications, Application Manager, and then Modify System Settings. Find the player that is starting (for me it's Samsung Music) and switch the toggle to OFF.
> 2 votes

# Answer
Another work around if other method fail, if the android phone always use the same music player to autoplay when bluetooth is connected. Just create a silent mp3 file and rename it AAA.mp3, this will ensure it will be the top of the file list. make it like 5 minutes or 1 hour, whatever you want. file size will be bigger though.

In my case, it will always use the default music player to autoplay. So i just put only that silent mp3 in the playlist. It will still autoplay, but a silent audio. Then I just turn on my favourite music player or podcast.
> 0 votes

---
Tags: music-player, bluetooth-audio
---


# Question
Title: Nexus 4 won't charge or boot (red light)
I have been reading a bunch of articles on ways to fix this "red light" issue. My issue seems a bit different from most articles as the red light does not show up when I plug in my charger. Articles I have read seems like most "red light" appears when they have the charger plugged, but my issue is that the red light only shows up when I have my charger plugged AND holding down the power button for several seconds. Without holding down the power/power+volume down button, the red light doesn't blink at all.

What I have tried:

* Unscrewing the two screws for the battery, as some article has stated it was a design flaw where the screws tighten causes the battery connector to not work.
* Replaced battery with a new one, nothing different, still unresponsive phone.
* Left charger plugged into phone for 24 hours, phone does not get warm/hot so I doubt the charger is even charging the phone. (no red light)
* Used Qi wireless charger, phone got really warm but still nothing.

If anyone had this issue and solved it, please inform me on how you did so. I'm not sure if it is a battery issue or some other component but would like to get to the bottom of this. Before this happened, my phone was being charged using a car charger and I noticed the charger was loose so the charging indicator kept blinking on and off rapidly. I believe that may have drained the battery to 0% but I did replace the battery with a new one and issue was not fixed. Hope the seller didn't send me a dead battery as well.

# Answer
I am having the same problem, with no red light when charging a nexus 4. I changed the usb cable and it charged.

The problem came back however. I just noticed that if I held down the buttons *while* inserting the cable, the red light came back on.

After a while, it started blinking, and charged fully.

I use my nexus4 for development, so it is on for days even weeks in a row, which is not good for the battery.

Also most computer usb sockets dont provide half the current that a dedicated usb charger does, and that is what flattened the battery.

It would be nice if I could bypass the battery completely, since this one is always tethered to the workstation.
> 1 votes

# Answer
My experience is that it happens, if the batteries are old *and* they are completely depleted. Probably somehow the characteristics of such batteries changes so, that the power of the system can't handle it. With load batteries it would work, even if they are old.

You can power on a Nexus4 with no batteries, purely from USB, but it will be very unstable and will power off after some seconds. This is another modus what its power system can't handle.

Now the problem is, that typically only the Nexus4 can load a battery. If the methods of @DominicCerisano's excellent answer don't work, you might try to re-charge the battery without the device, roughly so ( https://www.youtube.com/watch?v=EIazSD44WKc ). This video doesn't show a battery re-charge without the phone, but a battery test. But external recharge works on the same way (instead of the measurement unit, use a simple power source. *Avoid reverse polarity!*)

In general, if your batteries aren't very good, use a dedicated charger without a PC. Most PC motherboards are incapable to give the required power. There are many differences in quality even in the dedicated chargers; you can play with them by experience. Even some usb *cable* can harm the charging, particularly the thin ones.
> 1 votes

---
Tags: battery, charging, nexus-4
---


title: Unable to delete anything in telegram

text:
# Question
Title: Unable to delete anything in telegram
My question is that I am unable to delete any message or photo in a group chat.

# Answer
> 0 votes
EDIT It might be worth having a look at telegram today, they have announced some new features, including the unsed/delete anything.

Details are here: Unsend Anything

If you are in a channel, then the behaviour you have highlighted would be expected, you would be able to reach out to the creator and ask them to delete the message(s) or discuss being given access rights on the channel.

As per Telegram FAQ: The creator of a channel can broadcast messages, delete any messages, add members (the first 200 only), remove members, change the channel's name, profile image and link, as well as delete the channel completely. The creator can also add and remove administrators to help manage the channel.

Have a look at Telegram's website here for more information: What can administrators do?

---
Tags: telegram
---


# Question
Title: How do I access to my WhatsApp backup in Google Drive?
My phone was stolen and I was unable to reclaim my number from my telco. Therefore, I'm not able to log in to WhatsApp with my stolen number. There are very important messages and contacts that I have to retrieve, and I knew that the backups were in Google Drive, but I can't locate the backup file.

Any help that I can retrieve my chat history from Google Drive?

# Answer
> 1 votes
There are commercial Products that claim that they are able to extract Whatsapp backups from Google Drive:

## Elcomsoft Explorer for WhatsApp

Extract and Decrypt Android WhatsApp Backups from Google Account

---
Tags: backup, whatsapp-messenger, google-drive
---


# Question
Title: Install and update app without play store
If I install an app on Android outside Play Store. Will it ever be updated? How so?

# Answer
If you app is not available in any store app you are using there will be no updates. If you want to update it you have to install a newer version of the app's APK file manually. If the app is available on Google Play or a different app store the situation is different:

On **Android 7 and below** there is only the Google PlayStore which can update an app. If the manually installed app is also available on PlayStore you can open it in the PlayStore App and install an available update. Once you have done this Google PlayStore will continue to include this app to the apps it will look for updates.

Other app store apps can also provide updates for apps, however the user has to manually confirm such updates (similar to a downloaded apk file that is installed).

**Starting with Android 8** the user can configure which app is allowed to install other apps. Therefore alternativ appstores can provide an store app that can check installed apps for updates and install them accordingly.
> 2 votes

---
Tags: google-play-store, updates
---


# Question
Title: How can I uninstall a device admin if the Deactivate button doesn't work?
I am trying to uninstall CM Security. It's a device admin, so I go to Settings, Security, then Device Administrators, and try to uncheck the box next to CM Security, then a screen comes up listing the privileges the app has. The options are Cancel and Deactivate. When I click Deactivate, the button depresses, but it does nothing. I can click it as much as I want, and nothing happens. How can I deactivate a device admin when this problem occurs?

# Answer
Try booting your device into safe mode.

You can do this by holding the power button until the shutdown menu appears, and then hold the "Power off" option until your device asks to boot into safe mode. There will be a watermark on your screen when you boot into safe mode to show you it worked.

When you boot into safe mode, only system apps are allowed to run. You should be able to deactivate the device admin from there, because no app can prevent the process from running.

*Warning: all non-Google sync accounts are reset when you boot into safe mode (no idea why). This means you might need to enter your dropbox/onedrive/other account credentials.*
> 2 votes

# Answer
There may have been a change to the app in the last four years that allows this: On my Android phone, I went to Settings, Security, Phone Administrators. Button Savior was listed as a screen lock with a checked box on the right. I touched the check box and the listing disappeared. I was then able to go to Apps, Uninstall/Disable Apps and press the Button Savior app to uninstall it.
> 0 votes

---
Tags: sony-xperia-z, device-administrator
---


# Question
Title: How to turn off WhatsApp incoming message sound in Redmi Prime 2 / MIUI 7.1?
I've turned it off in

* Setting \> Notifications \> App Notifications \> Whatsapp \> Sound & vibration
* Whatsapp \> Settings \> Notifications \> Conversation Tones

And it still sounds. At one point I even tried to turn off all WhatsApp notif, but it STILL sounds even when no notification shown.

I just recently noticed this because usually I put my phone in Silent Mode. But now I'm waiting for a phone call, I can't do that, and suddenly noted how annoying this thing is.

# Answer
One of the sound to play in the whatsapp settings is Silent. That should work and leave notifications still appearing. Indeed extremely quitr confusing.
> 1 votes

# Answer
Download 1 second silent audio from the internet and set that as you message tone.

Link: http://www.minidisc.org/charman/downloads.html
> 0 votes

---
Tags: notifications, whatsapp-messenger, miui
---


# Question
Title: Can I find which app is making certain DNS requests?
So I've been using pihole and my Android 7 phone is making some unexpected requests to DNS for a particular domain. Is there an app or technique I can use to find which app is initiating those request. It seems the Java level DNS cache won't have that info.

I'd guess one needs to intercept requests to the phones DNS service (\*), recording the requested domain and the requesting app; are their hooks in Android to do that?

I don't have root. Any help appreciated.

(\* - yes I know what this acronym means!)

# Answer
> 0 votes
Try Net Monitor. It shows network connections of installed apps.

---
Tags: applications, dns
---


# Question
Title: Disable autostart on boot and restrict background execution
Is there any way to disable autostart apps at boot time? I need to disable some of them (not all) like Facebook, etc to get quicker boot time. I'm asking how to do this on Android 9.0.

# Answer
> 13 votes
Without getting into the details whether or not one should stop autostarting apps, and what could be the consequences as discussed in a plenty of other answers, here are my simple solutions which may work without any third party apps, at least on Android Pie.

## ROOT SOLUTION:

Apps use `BroadcastRceivers` to listen for broadcast ACTION\_BOOT\_COMPLETED so that they can run on boot. Broadcast receiver is an app component that can be disabled with root privileges.

Using Package Manager list all broadcast receivers listening for BOOT\_COMPLETED:

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

```

It will give a list of broadcast receivers in format `package_name/component_name`. See `dumpsys activity broadcast-stats` and `dumpsys activity broadcasts` for more details.

Now to disable a component:

```
~# pm disable <package/component>

```

There are apps like `Autostarts` (*com.elsdoerfer.android.autostarts*) and `SD Maid` (*eu.thedarken.sdm*) which can do same for you. File `/data/system/users/0/package-restrictions.xml` can also be edited directly to disable apps or their components, but it's not recommended.
It's possible to disable multiple broadcast receivers of an app, and a single receiver can also possibly listen to multiple types of broadcast events.

## NON-ROOT SOLUTION: (non-universal)

In order to receive `android.intent.action.BOOT_COMPLETED`, apps need android.permission.RECEIVE\_BOOT\_COMPLETED which is a normal permission and hence can't be revoked by user.

However there is a *hidden* permission management framework, named `AppOps` that provides a slightly more fine-grained control of (permission-like) operations. OP\_BOOT\_COMPLETED is one of those but it's not a part of AOSP, ***only added by some custom ROMs*** like LineageOS. If you are on one of such ROMs, you can control the autostart behavior through `adb shell`:

```
~$ appops set <package> BOOT_COMPLETED deny

```

Now the app won't be allowed to receive BOOT\_COMPLETED broadcast. There are apps like `App Ops` (*rikka.appops*) which can do same for you. Some custom ROMs have built-in front-ends to AppOps with different names like *Privacy Guard*, *AutoStart Manager* etc.

Please note that AppOps:

> is not generally intended for third party application developers; most features are only available to system applications

So its usage without root may be disallowed or get harder in next Android releases.

---

Both of the above methods can stop apps from starting on boot only. An app can listen for some other broadcast events too and it can keep on restarting if killed, or run in background continuously (as a service) if it's designed to be so. See `dumpsys activity services` for more details.

A slightly different approach would be to stop apps from running in background by using OP\_RUN\_IN\_BACKGROUND (introduced in Nougat) and/or `RUN_ANY_IN_BACKGROUND` (introduced in Pie) which are part of AOSP:

```
~$ appops set <package> RUN_IN_BACKGROUND deny

```

They don't have an equivalent manifest permission, but there is an experimental permission with same name.

# Answer
> 0 votes
Some devices require root access to manage auto start permissions... However Android 5.1 Allows this via Auto Start settings in Security.

* Open Settings \> Security
* Open Auto Start Settings
* Disable the app from Auto Starting

This option should be available on any system with AppOpps

Also If Not On Android with these settings

* Open Settings
* Open Apps
* Open the desired Application
* Select Permissions
* Disable Auto-start permission

---
Tags: applications, processes, background-process, auto-start
---


title: VPN disconnects immediately

text:
# Question
Title: VPN disconnects immediately
My android phone connect to VPN then immediately disconnects, I tried most of VPNs on Google Play Store but it's not working.

OpenVPN connects barely and disconnects in less than 1 minute, my network is good and I can connect VPN on my laptop with my network.

```
01:06:43.695 -- EVENT: CONNECTED info='ir443391@nl.ovadd.com:800 (134.19.177.20) via /UDPv4 on tun/10.11.3.202/ gw=[10.11.3.201/]' trans=TO_CONNECTED
01:08:09.304 -- EVENT: DISCONNECTED trans=TO_DISCONNECTED 01:08:09.321 -- EVENT: CORE_THREAD_INACTIVE
01:08:09.322 -- Tunnel bytes per CPU second: 0
01:08:09.323 -- ----- OpenVPN Stop ----- –

```

# Answer
> 0 votes
Is your Android phone killing apps from the background? Check for background activity manage, battery optimizer or a similar option in your device settings and disable it for your VPN app.

---
Tags: vpn, openvpn
---


title: Monthly OTA update

text:
# Question
Title: Monthly OTA update
When the monthly security OTA update is being applied, does the android system verify the integrity of the system partitions and system apps ?

# Answer
Depends. If it is an incremental update, then yes, it does check vendor, system, boot and other partitions to pass an integrity check before applying an update. On the other hand, if it is a full update (1.5GB or so) then it will overwrite the main partitions and hence won't need an integrity pass.
> 0 votes

---
Tags: ota-update
---


# Question
Title: Mute Phone Audio when Headphones are Unplugged
I only ever unmute my phone when my headphones are plugged into it. I'm looking to automate this process. Here's what I want to happen:

```
if (headphones are unplugged) {

  mute all audio on the phone

} else {

  play audio through headphones

}

```

I've heard of automation apps like Tasker and Task, but I don't really know how to use them, or even if this is possible.

# Answer
I am using Macrodroid and Automate to demonstrate what you ask.

## With Macrodroid

You will need to create 2 macros.

**1st macro: Headset plugged**

* In the Trigger tab, select Headphones Insert/Remove, then choose Headphones Inserted followed by Any.
* In the Actions tab, select Volume Change, then give the appropriate permissions. Set the level of each audio stream (see below picture on the left).
* Give the macro a name, then save it. It will look like the picture on the right.

**2nd macro: Headset unplugged**

* In the Trigger tab, select Headphones Insert/Remove, then choose Headphones Removed.
* In the Actions tab, select Volume Change, then give the appropriate permissions. Set the level of each audio stream to 0 (see below picture on the left).
* Give the macro a name, then save it. It will look like the picture below on the right.

## With Automate

* In the Interface section, select "Wire headset plugged?", then link its `IN` with the `OK` of the "Flow beginning" block.
* In the Camera & Sound section, select "Audio stream mute state" twice.

1. Click on the first block, set the state to `Unmute`, select an audio stream, then click Done. Link the `IN` to the `Yes` of the "When wire headset plugged" block, then Link the `OK` to the `IN` of the "When wire headset plugged" block.
    2. Click on the second block, set the state to `Mute`, then select an audio stream. Link the `IN` to the `No` of the "When wire headset plugged" block, then Link the `OK` to the `IN` of the "When wire headset plugged" block.
* It will look like the image below. Give your flow a name then save it, then click on Start.

**Note:** I have selected Music stream for this example. Only the music will be muted/unmuted. Add more blocks for the other audio streams (voice call, alarm, system, etc).
> 2 votes

---
Tags: audio, automation, headphones
---


# Question
Title: Can I use an USB Ethernet adapter to connect Sony Ericsson Xperia Active to a wired Ethernet LAN?
Due to my profession I have to connect to wired-only LAN-attached devices (like managed switches, routers set-top-boxes, etc.) frequently to access their configuration interfaces via Telnet/SSH/HTTP. I am totally tired of carrying a bag with a laptop with me wherever I go.

Now I am planning to buy an Android smartphone and feel like I'd like it to be Sony Ericsson Xperia Active which is pretty tough (I need it very much as my phones fall from my hands/table/pocket hundreds times a year), reasonably robust and stylish.

It would simplify my life significantly if I could connect it to wired Ethernet networks.

Is this possible?

I don't mind using a hack or a custom firmware like Cyanogen Mod. I've already got a USB NIC based on ASIX AX88772 chip (which is detected by Ubuntu out of the box and, AFAIK, is also compatible with XBox, PS3 and Apple Macs).

# Answer
Not an answer but a good alternative. Buy this inexpensive wifi powerbank.

This is practically a very portable wifi router. I bought and use one and so far its great. Can also be an inexpensive Mifi device using a 3G dongle, and a backup battery for your phone.
> 1 votes

# Answer
You can do one of these things :

1) By an usb to ethernet cable.

I dont know about Sony Xperia Active but you can use the Nexus 7 or Samsung S4 and a usb to ethernet cable (like rj45) plus an otg cable. For method view the following video.

2) By Usb internet or pass through.

On some android devices like mine (htc 816g) there is an Usb internet option in settings which helps you to use the computer's internet (Only windows), on your phone. For method view following video.

v=gcFDGkTd83Y&feature=iv&src\_vid=zEpyImojbsU&annotation\_id=annotation\_1409430545
> 0 votes

# Answer
To my experience on sony xperia smartphones internet through ethernet adapter works flawlessly on devices like z, z2 z3 z ultra m5 only until android lollipop 5.0.2 afterwards there seems a change in software which disables this function ality fortunately ut is easily possible to downgrsde. Newer models like z5 may have lost this functionality atleast for lollipop and there you may not be able to downgrade depending on the original firmware
> 0 votes

# Answer
Here's a full list of compatible devices: What Xperia devices support USB Host or USB OTG?

I think that OTG Ethernet adapters will be unsupported for a few years because of some Android security issues which may require some extra work, and because they are "less" important features (not everyone who owns an Android device needs an Ethernet adapter). Some examples of exploited vulnerabilities are shown here:

MTPwn

OATmeal on the Universal Cereal Bus: Exploiting Android phones over USB
> 0 votes

---
Tags: networking, usb-host-mode, usb-peripherals, sony-xperia-active
---


# Question
Title: smbv2 samba sharing between Windows 7 and Android stopped working for MyUser, but it works for admin
I used 2 apps that can connect from Android (Nougat) to PC (Windows 7). Hitherto that worked perfect. Now I get user authentication problem when I try to connect from Android to PC with "username" credentials. But I can connect without issues using administrator.

It tells me that there is a user specific setting that changed. I didnt change anything. What setting is this? Any idea?

# Answer
If you are using a local user connection go to manage-\>users and reset the password. Maybe the user's password is blocked. there is a windows mechanism that if someone tries to connect X times using bad credential the user turned to be blocked.
> 1 votes

---
Tags: applications, 7.0-nougat, file-transfer, file-sharing, cifs
---


# Question
Title: What sepolicy context will allow any other context to access it?
I am on a bootloader locked Sprint Samsung Galaxy S7, `eng` `boot.img` flashed to phone with SELinux `permissive`, which gives root `adb shell` from where I can change system partitions, debloat, install Xposed etc. But the kernel is very bad and has RAM leak, and eventually, the phone slows to a crawl. So I unrooted by installing the stock kernel and disabling `DM verity` to allow a modified system to boot up.

Now, SELinux is enforcing, but I want it to be permissive which will never happen with the stock kernel. I realize that `secontext` is defined at kernel build times and allows certain things to run.

Another option is to have a higher context to do things like `supolicy --live` to patch SELinux policy and get full root access with stock kernel. I'm trying to execute a script in the `data` directory created by my app, but unless `seenforcing=false`, it doesn't get executed.

I know by using root you can `chcon` a file/directory. So what is the (source) context that will allow to:

* Set mode to permissive, or
* Modify the SELinux policy, or
* Execute a script on boot without avc denials

Or what is the (target) context that will allow any other (source) context to execute the script?

# Answer
**ROOT USER AND SELINUX:**

User `root` (with UID 0) is the super user in Discretionary Access Control (DAC) implementation of \*NIX operating systems. DAC is **allowed by-default** i.e. anyone can access anything unless UIDs, GIDs and permission mode restrict something. So `root` can do anything because it's the kernel's *SUPER USER* who isn't denied anything.

SELinux is Mandatory Access Control (MAC) which is **denied by-default** i.e. no one can access anything unless a policy rule is defined to allow the access. So there is no *SUPER CONTEXT* which is allowed to do anything, whatever the UID is. You have to define a rule to allow any operation you want to perform on your device.

Please note that Access Controls (DAC or MAC) are enforced by kernel at back end, who is the actual *operating system*.

**HOW SELINUX IS ENFORCED ON ANDROID?**

SELinux policy rules are defined when building ROM and saved as a binary file `/sepolicy` (or as `split-policy`). This policy is loaded by `init` (the very first process started in kernel's SELinux domain) before starting any services/daemons/processes on boot. Kernel starts with SELinux `permissive` if built with option `SECURITY_SELINUX_DEVELOP=y` (which is the default as discussed here and here). After loading policy, `init` \- when still running with kernel's context - sets SELinux `enforcing` (depending on ROM build type and kernel parameter `androidboot.selinux` ()) and then switches to init's own context. From here afterwards, even `init` isn't allowed by policy to revert back to `permissive` mode (, ). Neither the policy can be modified even by `root` user ().

However there is one exception to above said rules. On `userdebug` or `eng` builds, `u:r:su:s0` \- which is the context `adb shell` gets when `adbd` is run as root () or when `/system/xbin/su` is executed () \- is allowed to do anything, including setting SELinux permissive ().

But on a final production (`user`) build of ROM, the only way to `setenforce 0` or to modify policy is to take control of booting process before SELinux is set `enforcing` by `init`. That's what rooting solutions like Magisk do by replacing/patching `/init` and `/sepolicy` in RAM disk (`boot.img`). Magisk runs root processes with context `u:r:magisk:s0` which is allowed by patched policy to do anything.

Once you have rights (granted by DAC and MAC) to play with SELinux policy, you can define new SELinux policy rules as explained here.

**Coming to your question:**

> selinux is enforcing but I want it to be permissive which will never happen with stock kernel

No. SELinux is set `enforcing` by `init`, not by kernel, except if built with `SECURITY_SELINUX_ENFORCING=y` option ().

> a higher context to do things like `supolicy --live` to patch selinux policy

There is no higher context that is allowed to do anything. You can't set mode to `permissive` and can't patch policy on `user` builds.

> what is the (target) context that will allow any other (source) context to execute the script?

As said, there is no **higher** source context that can do anything to others. Likewise there is no **lower** target context that lets others do anything.
Also when executing a script, there isn't necessarily a single target context. Every file that the script uses (binaries, configurations, logs etc.) may have its different context label. And typetransitions can change source contexts too.
If you want to modify policy, you can get all `avc denials` from kernel log and then define new SELinux rules accordingly:

```
~# dmesg -w | grep avc:

```

**Solution:**

Since you are already on `eng` build, only replace kernel binary (`zImage`) in your `boot.img` if you want to replace kernel. Otherwise you get stuck by using `init` and `sepolicy` from `boot.img` of a `user` build.
On `eng` build:

* `/init` doesn't set SELinux `enforcing` on boot ()
* `/sepolicy` allows root `adb shell` to do anything including `setenforce` and `load_policy` as explained above

If your kernel is built with `SECURITY_SELINUX_ALWAYS_ENFORCE`, you can't set SELinux `permissive` once set `enforcing` ().

**RELATED:**
> 4 votes

---
Tags: rooting, terminal, selinux, init.d
---


# Question
Title: How determine if Java object is null or not in Tasker?
I want a Tasker task that reads SMS from a particular person and extracts some information out of the latest message.

For example, I get a lot of messages from my bank due to the transactions I make. At the touch of a task, I want to know my latest bank balance. Normally, I would get the latest SMS from my bank and find out the balance from it. I want Tasker to do this.

I am aware that Tasker can read messages when they arrive. But we have to make a profile that does it. This is not my use-case. It's more on-demand.

Here is the task I tried to create to that effect:

```
Flash Roam (10)
    A1: Java Function [ Return:cr Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ]
    A2: If [ cr !Set ]
    A3: Flash [ Text:Ok Long:Off ]
    A4: End If

```

I am unable to ascertain if `cr` is null or not.

What is the correct way to check it? Or is this even possible in Tasker?

# Answer
There are two ways you can do null checking of Java objects.

---

The first way, direct from the userguide, is checking of the object `Equals null`:

> # If
>
> A Java object can be directly referenced in a condition. Null-value objects are replaced with text representation `null`.
>
> Examples:
>
> ```
> If, arr[0][0] eq 45
> If, arr[0].length > 3
> If, lightlevel Equals null
>
> ```

The problem with this is that the *string* "null" will also match the condition. In your case, that's not a concern, but my second method provides a way that can distinguish between the two for other cases.

---

The second way takes advantage of Tasker's built-in error checking. If you have an object and need to check whether or not it's null:

1. Use a Java Function action. For "Object or Class", use the object in question, then for "Function" select "toString {String} ()"\*. Lastly, make sure "Continue Task After Error" is checked. You don't need a return value here.
2. Follow the Function with an If action, which tests if the variable `%err` is set (or isn't set).
3. If `%err` is set, the object is null. Otherwise, it's not null.

`%err` will not be set if the object is the string "null", because `"null".toString()` is perfectly valid code.

* If your only option in the Function list is "assign {...} ()", then you're working with a primitive type - a number, boolean, or character. Those can't be null, so checking is unnecessary.
> 3 votes

---
Tags: sms, tasker, java
---


title: Vibrate only when I'm away

text:
# Question
Title: Vibrate only when I'm away
Is there an option or app where I can set that my phone only vibrates for notificaciones if I haven't used my phone in the last 5 or 10 minutes, but if not just be silent. I don't to miss my notifications but when I'm with the phone I don't want that it vibrates meaningless. I'm running Nougat.

# Answer
The comment made by @Izzy is correct; you can accomplish it with automation. I am using MacroDroid to demonstrate it.

**Assumptions:** The screen is off (when the screen is on, you are using the phone).

1. In the Trigger tab, in the Device Events section, select Notification, then Notification Received. Choose `Any Application`, on the next screen, click OK.
2. In the Action tab, in the MacroDroid Specific section, select "Wait Before Next Action", then set it to 5 minutes (or any appropriate time length).
3. In the Constraints tab, in the Device State section, select Device Locked/Unlocked, then choose Device Locked.
4. Give the macro a name and save it. It will look like the image below.

When the phone receives a notification from any app when the screen is off, it will wait for the amount of time set then vibrates.
> 1 votes

# Answer
upto my knowledge, there is no app is available in the market. It can be done by creating one application using Accelerometer sensor functionality, which was an inbuild sensor in many of our mobile phones.
> -1 votes

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


title: Dirty Flash Android Kernel

text:
# Question
Title: Dirty Flash Android Kernel
Will it be an issue if I dirty flash android kernel? I am trying out a few kernels for my phone and I want to make sure that dirty flashing won't affect the efficiency of the kernel. If it does, what is the method to flash a new kernel without losing data and apps?

# Answer
> 1 votes
Use twrp to flash the kernels. Always keep a flashable zip of the stock kernel, in case you face any problem. I have seen requirements of many kernel developers that, you need to be on stock kernel before flashing the custom one. So, before flashing another custom kernel, it is always recommended to flash the stock one, then flash the custom one.

---
Tags: kernel
---


# Question
Title: Commands run on terminal but throw errors in shell script
I created a .sh script which sets app permissions on Android devices. If I push the script on `/sdcard` and run it through `adb shell` with command `sh ./test.sh`, the following error occurs on each permission:

```
Bad argument: java.lang.IllegalArgumentException: Unknown permission: android.permission.WRITE_EXTERNAL_STORAGE

```

Here is my Script:

```
#!/bin/bash
pm grant com.android.camera2 android.permission.RECORD_AUDIO
pm grant com.android.camera2 android.permission.CAMERA
pm grant com.android.camera2 android.permission.ACCESS_FINE_LOCATION
pm grant com.android.camera2 android.permission.WRITE_EXTERNAL_STORAGE
pm grant com.android.camera2 android.permission.READ_EXTERNAL_STORAGE

pm grant com.android.chrome android.permission.CAMERA
pm grant com.android.chrome android.permission.ACCESS_FINE_LOCATION
pm grant com.android.chrome android.permission.WRITE_EXTERNAL_STORAGE
pm grant com.android.chrome android.permission.READ_EXTERNAL_STORAGE
pm grant com.android.chrome android.permission.RECORD_AUDIO

```

So every time the same command for different permissions and different apps. If I'm using these commands manually on `adb shell` it works.

I don't have root permissions and the device OS is Android 8.1.0

# Answer
Apparently there seems no reason for this, except the possible problem with line endings which often happens. On \*NIX operating systems (including Android), lines end with Line Feed (LF; `\n` or `0x0A`) while on DOS/Windows with Carriage Return + Line Feed (CRLF; `\r\n` or `0x0D0x0A`). On Mac, only `CR` is the end-of-line marker. So some text editors may encode wrong line breaks in shell scripts:

```
~$ cat -v /sdcard/test.sh
#!/bin/bash^M
^M
pm grant com.termux android.permission.WRITE_EXTERNAL_STORAGE^M

```

Here `^M` is the visual representation of `CR`, which can be fixed with `dos2unix`, `sed` or `tr` utility:

```
~$ dos2unix /sdcard/test.sh
~$ cat -v /sdcard/test.sh
#!/bin/bash

pm grant com.termux android.permission.WRITE_EXTERNAL_STORAGE

```

Now the problem should be resolved.
> 1 votes

---
Tags: adb, permissions, shell, command-line, scripts
---


# Question
Title: Android Market app throwing "a server error has occurred" error message
I have Samsung I5500 Galaxy 5 running on Android 2.2. I don't know when this error started, but when I open the Market application, it throws the following error:

> A server error has occurred. Retry, or cancel and return to the previous screen.

I have tried a factory reset, but it didn't solve the issue.

How to fix this issue?

# Answer
**TL;DR:** Google has ended the support for the Android Market app. Users need to migrate to the Play Store app by installing the compatible version (skip to the last section).

---

### Background

According to Android Authority, Google has ended Android Market support for Android 2.1 Eclair and below:

> On June 30, devices running Android 2.1 Eclair or lower will no longer be able to access, or install other apps from, the Android Market.

In a different article, they also stated an opinion that the Android Market app would no longer be supported on "newer" versions:

> Google also mentioned that it will continue to support “later versions of Android Market for as long as feasible.” Exactly what that means is anyone’s guess, but I think it’s safe to say that the company will eventually end support for Android Market on other versions of its operating system — and probably sooner rather than later.

The Play Store app is supported on Android 2.2 Froyo, and by default, the Android Market app should be automatically updated on supported devices when it's opened:

> If you still have the Android Market on your device for whatever reason, it’s probably best if you upgrade it to the newer and much improved Google Play — provided you are running Froyo or newer. As soon as you open the Android Market app, a window will pop up saying that a new version is available for download. Then just follow the directions on your screen, and in a minute or two the Android Market will be replaced by Google Play.

---

### The issue

However, according to some reports (, ), the Android Market shows an error message "A server error has occurred. Retry, or cancel and return to the previous screen." since at least 8 March 2018, preventing it to be updated to the Play Store app, and thus making it dysfunctional.

---

### The fix

While the Android Market app cannot update itself, users are still able to install the Play Store app by downloading and installing the APK.

APKMirror listed all variants for the Play Store app, including for Android 2.2 Froyo. The latest version available on there is 4.9.13.

> Version: 4.9.13 (80290013)
> Package: com.android.vending
> Min: Android 2.2 (Froyo, API 8)
> 3 votes

---
Tags: google-play-store, 2.2-froyo
---


title: Remove app on my home screen

text:
# Question
Title: Remove app on my home screen
I have a Samsung Galaxy Prime 7 or vice versa and I can't remove a app on my home screen when I push the app there's uninstall or remove and there's a trash can but I can't do it

# Answer
Could you especify what error are you facing while trying to remove the shortcut? With more information, we'll be able to help you to solve this issue. But you can try some of the steps below:

1 - Drag and move the shortcut to the "trash can" icon in the upper corner of your display.

2 - Long press the shortcut and it may show an popup with a few options like "uninstall and remove", if the remove option is available, the click on it.

3 - Try uninstalling the app which the shortcut belongs, and reinstalling it again, but make sure to disable the "Add Shortcut to home screen" option in the settings.

If those methods didn't work, follow the steps I told you in the first lines and send more information about what issues you're having while removing the shortcut.

Awaiting for your answer...
> 1 votes

---
Tags: samsung
---


title: How do I enable USB debugging from TWRP

text:
# Question
Title: How do I enable USB debugging from TWRP
After a series of idiotic events on my parts, I have ended up with full software wiped (including stock os) without USB debugging or any roms to flash. I am able to access TWRP but pretty much nothing else. If details on the events are needed to help, I will gladly disclose them. Immense thanks to anyone who attempts to help.

# Answer
Your concern right now should be to flash a working ROM in your device. That can be done easily using TWRP. Connect the device when booted into Twrp to PC, and the PC would see it in MTP mode. You can then copy flashable files to internal storage from PC. TWRP, in addition, comes with USB Debugging enabled, so you can do sideloading as well.

Alternatively, you may have to rely on some MI flashing tools, but I don't have an idea of how they work.

Regardless, if your OS is wiped out there is no point thinking about enabling USB Debugging there, because it cannot help you flashing a new ROM. ROM is flashed only via recovery or low-level boot environments, such as fastboot. Furthermore, the concept of USB Debugging assumes there exists a functioning OS (recovery or fully-fledged Android) which would receive the debugging commands. There exists no Android OS, so it is futile to think about USB Debugging.
> 1 votes

---
Tags: twrp, nexus-5, unbricking
---


title: Have I been blocked?

text:
# Question
Title: Have I been blocked?
My Whatsapp is showing a "Last seen" date for one of my friends, but my message didn't get delivered, as it's only showing one tick. Does this mean I've been blocked?

# Answer
According to the Whatsapp FAQ:

> There are a couple of indicators that you may be blocked:
>
> * You can no longer see a contact's last seen or online in the chat window.
> * You do not see updates to a contact's profile photo.
> * Any messages sent to a contact who has blocked you will always show one check mark (message sent), and never show a second check mark (message delivered).
> * Any calls you attempt to place will not go through.
>
> If you see all of the indicators above for a contact, this could mean that the user is blocking you. However, there are other possibilities. We have made this intentionally ambiguous in order to protect your privacy when you block someone. Thus, we cannot tell you if you are being blocked by someone else.

I believe the fact that you can see a "last seen" status is an indicator that you have not been blocked.

Update: **Per my own testing with a friend I have verified that once you are blocked, the "last seen" text completely disappears.** It seems the person you are contacting did not block you and has simply stopped using whatsapp for the time being, since you can see they haven't been on since the 11th but your message hasn't reached them.
> 8 votes

---
Tags: whatsapp-messenger
---


# Question
Title: How to delete a date and time tab in setting to prevent user from changing it?
(Please understand me about my broken English.)

I am a student in South Korea.

I am making a quite restricted Lenovo tablet, to make it a perfect education device. The goal is to "help" students to study hard.

To do that, I have to prevent the users from changing the system time in the "Settings", Because changing system time is a easy way to pass my time-dependent application block.

So I am trying to delete the date and time menu from the system settings, to keep only auto time:

By an experience of deleting a guest mode in the system, I think I should use the Buildprop app. But I don't know, what I should delete and change in the system.

Of course it's okay not using Buildprop.

I have a rooted device and my Android version is nougat, 7.1.1.

I'm sorry for using broken English and thanks for reading this. Have a good day!

# Answer
> 2 votes
Please understand my awkward English (I am writing with an English dictionary.)

As you can see comments on this question, I have solved this problem by FireLord's help, but it not perfect, because I am not good at Android.

This question is similar to this. Refer to this first.

*In summary, my simple solution is this:*

1. Using Settings Editor (needs Xposed Framework)
2. Using My Android Tools or Elixrs 2 apk (needs root permission)
3. pm disable with adb

In my case, a approach of using 'pm disable' with adb is not working. (adb asks me a correct package name. I command `adb shell pm disable com.android.settings.˜˜˜.`. I don't know correct reason)

And, I can't use the approach of 1. using Settings Editor, because my financial app blocks Xposed Framework.

So I have solved by (2) using my Android tools:

1. * installed apk -\> activity menu -\> find 'Setting' apk under System tab
2. * disable components you want by toggling these. Such as display, language ...(needed root access)

I think many Setting component is named 'setting$example'.

But *you should learn by trial and error*, disable 10 packages and test by opening Setting apk and again, again to get a result you want. (You should backup first before testing)

In my case, it's easy to hide display, language tab and etc (just disable one proper package).

But the "Date and time" tab is never disabled.

So I disabled 'SystemSettings' (I've hidden the whole system category in the Settings), 'SubSettings' to block approach of all menu from Search in settings (it blocks many Activity. Should check after disable!) and 'SettingActivity' in Clock apk to prevent the appearance of the date and time menu.

It is hard to say a correct and perfect solution because of my broken English and deficient knowledge about Android. What I want to emphasize is this: *you should learn by trial and error*, and then you can get a result what you want.

Thanks for reading and to FireLord.

---
Tags: 7.0-nougat, system, delete
---


title: where app's settings are stored?

text:
# Question
Title: where app's settings are stored?
Where are stored the settings of the apps in Android (6)? I'd like to modify something in Librera app:

* Disable the bookmark box
* Hiding words in top left corner

# Answer
By design of the Android OS on a regular phone you can't modify settings of an app other than by the app itself. Therefore the best way is to search for an option in the "Librera app" itself.

If there is no option to change what you want you may have a chance if the app allows app backup via Android Debug Bridge (`adb`). In such a case you can perform a backup of the data of the app to your PC, decrypt it there (using Android Backup Extractor), modify it, re-pack it to a backup file and then restore it using `adb`.

Only on rooted devices you can directly access the app-private files in which the data is stored.

Update: I have checked the Libera app (com.foobnix.pdf.reader). It declares `allowBackup="true"` therefore the outlined way using `adb backup com.foobnix.pdf.reader` should work for this app. However you still need to understand the settings file format and last but not least there have to be a setting that does what you want.
> 1 votes

---
Tags: settings
---


# Question
Title: How to create a copy of a file immediately when it's created?
I have an Android app that will create a file in `/data/` and immediately delete it. I want to know how can I catch this file or create a copy or even disable user permissions to delete a file? I have root access to the device.

# Answer
You can achieve this using `busybox inotifyd`. Your kernel must be built with `CONFIG_INOTIFY_USER=y` for this to work. You can confirm with:

```
~# zcat /proc/config.gz | grep INOTIFY

```

Or the existence of `/proc/sys/fs/inotify` directory. `/proc/config.gz` may not exist on all devices depending on kernel build configuration.

Let's say `/data/data/com.xyz/files/` is the directory you want to watch. Write a script to execute when a file or directory is created in the given directory:

```
#!/system/bin/sh

# remove first argument: EVENT
shift

# create directiry to backup files
mkdir -p /sdcard/backup/

# copy newly created file/directory
[ -e "$1/$2" ] || exit
cp -av "$1/$2" /sdcard/backup/

```

Place the script at `/data/local/tmp/copy_it.sh` and `chmod a+x`. Now execute:

```
~# inotifyd /data/local/tmp/copy_it.sh /data/data/com.xyz/files:n

```

Note `:n` at the end of line, which is the event that reports that a file/directory is created in watched directory. However watches are not established recursively.

For more complex operations, use `inotifywait` from inotify-tools as explained here.

**RELATED:** How to identify the app/process which re-mounts partitions R/W, creates files and changes file permissions?
> 1 votes

---
Tags: adb, file-system, linux, shell
---


# Question
Title: How to solve USB debugging error when connecting my mobile with my laptop?
When I connect my mobile phone to my laptop, it is not recognised by Android Studio

# Answer
It happens because of the problem of software, just go to device manager option in system. Find the software related to USB , just update that software. After that just restart the android studio it will be fixed i hope so.
> 1 votes

---
Tags: hardware
---