# Question
Title: Can't update or download apps without WiFi
I have a OnePlus 3T Oxygen 4.1.7. I can no longer download/update apps on the Play Store without WiFi, I used to be able to until I accidentally checked to always download over WiFi only.

Here are the things I tried to fix it.

* I've already changed: Play Store \> Settings \> Auto-update apps to Auto-update apps at any time. Data charges may apply.
* I've also changed Settings \> Google \> Data Management \> Update Drive-enabled app files - Over wifi or cellular.
* I've uninstalled the Play Store and then reinstalled it as well.
* I've restarted multiple times after each of the above steps.

So far nothing works.

# Answer
I had the same problem where I was unable to download any system updates or apps, apps from Google Play Store without WiFi. Even the apps from MI app could not be downloaded. I found out that I had restricted data usage on the Downloads app from both the SIM cards.

Go to Settings\> Apps\> manage apps\> Downloads\> Restrict data usage. Check both data services.
> 2 votes

# Answer
Clear Data these apps:

* Google Play Store
* Google Play Services
* Settings

One of these apps may contain the data that prevents your device to have additional charges. But I'm not really sure if this will work.

The very best solution I know is to factory reset your device to clear all the settings you entered therein.
> 1 votes

# Answer
If you are trying to update or download any app and selected the setting auto-update over WiFi, then you need to go to the My apps and Update buttons where you will see many apps are queued for the update. You need to cancel the downloading by clicking on the cross sign, after that you will see an update button next to the app. Now, your app is ready for update without any WiFi.
> 1 votes

# Answer
Recently, the location of this setting changed.

Open Google Play.

* Tap on your profile picture (on the upper right hand corner).
* Tap on **Settings** \> **Network preferences** \> **App download preference**
* Then, select **Over any network** and then tap **Done**.
> 0 votes

---
Tags: google-play-store, oneplus-3, oxygenos
---


title: Cannot keep slack app disabled

text:
# Question
Title: Cannot keep slack app disabled
I have a galaxy 20 ultra and I have repeatedly force-stopped the slack app, but it keep restarting on its own. I believe this is happening to some other apps, but I can't recall the others at the moment. Is there something I'm missing here to keep a force-stopped app stopped??

# Answer
> 0 votes
Slack either uses play services APIs or wakelocks to restart itself. If you're rooted, you've got solutions such as the 'super freeze' app, otherwise practically nothing (There exists apps that doesn't require root and does force stop apps automatically after every wakeup but practically since the app restarts itself after a while, you would end up getting even more battery drain)

---
Tags: force-stop, samsung-galaxy-s-20
---


# Question
Title: How to distinguish between SIM cards in a Dual SIM phone?
The Dual SIM management interface at least under Android 10 is badly designed. With two SIMs inserted, esp. when they are of the same mobile operator, I struggle with quickly determining which status bar icon or SIM card list entry refers to which SIM card.

What best practices are available to help deal with this situation?

---

By "badly designed", I refer to these issues:

* The SIM card list in Android settings and the SIM icon list in the Android status bar do not make clear by which criterion they are ordered. They do not make any reference to the concept of a "first" and "second" SIM card, so it is not even clear if there is such a concept at all in Android.
* The freetext "SIM names" that one can assign to SIM cards in Android do not make clear if they are names for SIM cards or SIM card slots.
* At least for some SIM cards, the SIM info screen of Android does not list any information. Neither the card's phone number, nor the SIM card ID (a long number printed on the card), nor any other ID.
* When one connection type abbreviation ("4G", "3G" etc.) is written between the two signal strength indicator icons in the status bar, it is unclear if SIM1 (left icon) or SIM2 (right icon) has the active data connection. Of course, one could remember that the connection type always refers to the icon following it, but one will also forget again …
* On top, the layout of the SIM tray on some phones (e.g. Galaxy Note 9) is counterintuitive as the first SIM card is at the bottom, while in the Android UI, the first SIM card is always listed at the top. The tray has "SIM1" and "SIM2" written on it, but this is very small and easy to overlook.

# Answer
> 5 votes
The following process for installing and naming SIM cards in a Dual SIM phone helped me to identify SIMs clearly and quickly at all times. This refers to a use case when you want to use one SIM for mobile data and the other for phone calls. You may have to adapt that to your use case.

1. Place your data SIM into the SIM 1 slot. Insert the SIM tray into the phone.
2. Give your data SIM a SIM name "SIM1 *Network-Name* Data" in the Android settings. Obviously, change "*Network-Name*" to the name of your network operator, such as "O2" or "T-Mobile".
3. Place your phone SIM into the SIM 2 slot. Insert the SIM tray into the phone.
4. Give your phone SIM a SIM name "SIM2 *Network-Name* Phone" in the Android settings.

### Why and how this helps

By inserting and naming one SIM card after the other in a two-step process, it becomes easy to identify which of the two SIM cards is which in Android, even if both SIM cards are for the same mobile network.

After naming SIM cards, you can in principle swap them in the SIM tray. The SIM names refer to the SIM cards and not the SIM slots, so swapping cards will change the icon position and position in the SIM card list, but will have no effect on the SIM card configurations. So after the initial setup, it would be easiest to always and only identify your SIM card by name in Android, forgetting about which card is in which slot. However, that is not recommendable because there is one exception that requires us to know which SIM card is SIM 1 and which is SIM 2: the signal strength icons in the status bar only use positions (SIM 1 left, SIM 2 right), not SIM names. Due to this, it is best to simply include the SIM number at the start of your SIM name (e.g. "SIM1 O2"). That also makes it clear that SIMs are ordered by SIM number in the SIM list, which is otherwise not obvious.

In addition, it is best to put the SIM used for data connections into the SIM 1 slot. This is because otherwise you'll be confused when trying to figure out to which SIM a single connection type identifier ("4G", "3G" etc.) refers when it appears in between the two signal strength icons in the status bar. The connection type identifier always refers to the icon following it, but you will forget that. Placing the data SIM into the SIM 1 slot makes it unnecessary to remember this, as the connection type identifier icon will then appear *before* the first icon, evidently referring to that first icon and not the second.

In addition, it can be a good idea to include the ending digits of the SIM card numbers in the Android SIM names, for example "SIM1 O2 Data #…5481. That makes it possible to make sure the SIM cards are in the trays they should be, even if both come from the same network operator. It also tells you which physical SIM card is meant for which use, without having to consult other notes in or out of the phone.

---
Tags: dual-sim
---


# Question
Title: Removing the Chinese text "未写入google key和tee key" watermark on the screen
After flashing a custom ROM, there is a watermark in the top-right of the screen saying

> 未写入google key和tee key

I've googled it and have tried several of the solutions suggested, but none have worked. Interestingly, most people get a slightly different variation of this message, in red.

I've removed "FactoryTest" from my phone, but do not have `com.mediatek.factorymode` as some have suggested. I've messed around with my IMEI keys, this did not help. The message also still appears even with the SIM card removed.

Where on the phone could this be stored? My phone is rooted, so if I could locate the file responsible, I could easily delete it.

# Answer
1. Download Minimal ADB and Fastboot on the computer
2. Plug in the phone into the computer, but keep the phone on
3. On the computer, open the terminal/command prompt
4. Enter these commands

```
adb devices
adb shell
pm list packages
pm uninstall --user 0 com.mediatek.factorymode

```
5. Restart the phone and the watermark will be removed
> 2 votes

# Answer
I successfully removed the watermarks with "tee" and/or "google" words in Ulefone Armor 3WT.

Many sources suggested 2 possible solutions:

1. Kill the service name "sdrpmbFloat" from the Developer options (not work for me)
2. Using ADB, delete the package called `com.mediatek.engineermode` or `com.mediatek.factorymode` or `com.android.watermark` (again, it didn't work for me, I couldn't find the packages)

But, I found another solution.

I had to **comment/delete** the line `ro.agui_tee=TRUSTKERNEL` in the file `/system/product/build.prop` (**need root**) just in case that line does not exist in the file `/system/build.prop`.

So, to root Ulefone with MTKroot app: https://www.ayudaroot.com/root/ulfone/como-hacer-root-en-los-telefonos-moviles-ulefone-armor-3wt/ (Spanish)

And where I found a similar solution: https://www.phonandroid.com/forum/threads/ulefone-armor-9-imei-manquant-et-erreurs-tee-google-resolu.208178/ (French)
> 1 votes

# Answer
You can kill/uninstall the sdrpmbFloat view service with root permissions. You should be able to go to Developer Options \> Active Services to disable the service.

Source: https://forum.xda-developers.com/t/ulefone-power-3s-problem.3794521/post-77513923
> 0 votes

---
Tags: custom-roms
---


title: Why do my calls hang up?

text:
# Question
Title: Why do my calls hang up?
Several times a week, the call suddenly ends and says "called ended."

That's it.

That's *all* the information my Pixel 2 gives me.

"Call ended."

Is it a cell network issue? Did the other side hang up? Did my phone think I pressed the hang up button? I cannot tell.

How do I get to the bottom of why my Pixel 2 sporadically hangs up?

The same thing happens to my wife's Pixel 2.

# Answer
Turning OFF "Active Edge" and "Google Assistant" in Settings did the trick for me. All those super-sensitive sensors were disrupting calls: wiggling the phone for better ear position, picking up speaker-phone call, switching ears, squeezing inadvertently during a call, all disrupted and hung up calls. Turning off the settings, under "System" did the trick.
> 0 votes

---
Tags: calls, google-pixel-2
---


# Question
Title: How to make incoming text messages remind me every 2 minutes?
Most notifications I get from my Android are not urgent. But Text messages (SMS) probably are.

I would like my phone to not stop notifying me about Text messages until I finally acknowledge it.

How can I do this?

I'm running the latest "Pixel Experience" mod on a Pixel 4A.

I'm willing to use any app that can do this for me.

Thanks.

# Answer
> 1 votes
You could use an app like **Missed Notifications Reminder** (F-Droid / Google Play) to achieve this, which "allows to monitor notifications from any applications which are important for You and perform sound reminder periodically" (taken from the app's description). I have not tried it myself, so no guarantees how well it works – but going by it's description it should do exactly what you want.

---
Tags: sms, google-pixel-4a, pixel-experience
---


# Question
Title: Why does the number of available CPU cores change when an app is closed?
To find the number of cores available to you in Termux you run:

```
grep Cpus_allowed /proc/self/status

```

This number of cores is limited in a similar way to running `taskset` on GNU/Linux.

I am trying to be able to predict what that will return.

According to the app CPU-Z my phone (Huawei Smart P) has 1 HiSilicon Kirin 659 with 8 cores. According to the app CPU Info 4 cores are running the same speed (480-1709Mhz) and 4 cores are running the same speed (1402-2362Mhz).

After booting the phone and waiting 5 minutes to make sure all startup tasks have been started/completed I started Termux, login through `ssh` and got:

```
Cpus_allowed_list:       0-7

```

Which is exactly what I expect.

But if I press the home key, I get:

```
Cpus_allowed_list:      2-3

```

I thought this might have to do with how hard the cores are loaded, so I switched to Termux again, started 16 `bzip2`s. This does not change the number of cores I get immediately. But after 30s I get 4 cores:

```
Cpus_allowed_list:     0-3

```

And yet later I get bumped back to 2 cores:

```
Cpus_allowed_list:      2-3

```

This behaviour happens through `ssh` whether Termux is in the foreground or background.

The effect of the home key is only when running Termux: If I run CPU Info, then press home and then start Termux, then Termux still has 8 cores:

```
Cpus_allowed_list:       0-7

```

Only when I switch away from Termux using the home key, the app-list key, or the back key does the number of CPUs change.

Software controlled big.LITTLE could explain going from 8 to 4 cores if the limit was not enforced immediately after boot, but only activated later. Since the limit is not activated 5 minutes after boot, I think it is safe to reject this as the explanation. Also it does not explain limiting to 2 cores some of the time when running 16 `bzip2`s.

What is causing the phone to limit me from using 8 cores? How can I tell the phone not to do so? What is causing the limit to jump between 2 and 4 cores at seemingly random intervals?

(On top of this I had expected the cores to run at 100% speed which also does not happen).

The limitation does *not* happen if not run through `ssh` or if run in a `tmux` session where the `tmux` session is started via the terminal on the phone.

# Answer
> What is causing the phone to limit me from using 8 cores?

Linux Control Groups (`cgroups`). Android uses them to control how much resources a process can use. In particular the processes of apps are assigned to different `cgroups` depending on their lifecycle, which usually depends on the app's interactivity with the user.

For instance an app being actively used in foreground needs more processing power than the one staying idle in the background. So Android creates multiple descendant sub-`cgroups` for different states of the app (and non-app) processes:

```
~# grep . /dev/cpuset/*/cpus
/dev/cpuset/background/cpus:0-1
/dev/cpuset/foreground/cpus:0-6
/dev/cpuset/restricted/cpus:0-3
/dev/cpuset/top-app/cpus:0-7

```

`cpuset` is one of the multiple types of `cgroups` Android uses for different purposes.

As you can see that the apps in background are allowed to use only 2 (out of 8) CPUs, those running a foreground service can use 7 CPUs, while the top apps can use all CPUs. Android framework continuously switches the PID of an app between these sub-`cgroups` as the app changes its state.

Note that:

* Different vendors may configure the `cgroups` differently depending on the number of available CPU cores on the device.
* Setting CPU affinity of a task using `taskset` *is filtered to just those CPUs allowed in that task’s `cpuset`*.

> How can I tell the phone not to do so?

The best way would be to modify the code and rebuild the ROM so that it no more uses the `cgroups` (or uses them the way you want). Or simply change the CPU values in the files shown above, hoping that they won't revert back.

But for a normal user this would do more harm than good, consuming more resources and badly affecting the device performance.

---

**Related:**
> 3 votes

# Answer
Summary: the more cores you use the more battery you consume so CPU hotplugging turns off the other cores, and the others do the work which makes them at 100% CPU usage, which also give the best performance and the most balanced one.

It's CPU hotplug It turns on and off the cores when needed or not.

It's running 100% CPU usage because it's like this. Imagine, there's a 4 car, and let's assume the drivers are the cores. You have four lanes and 4 cars of course. Each one of them will take 100 pizzas. You can let one core to do all the work and that's what hot plugging do. Knowing that a car with 50 pizzas consumes a lot less fuel than a car with 100 pizzas you can now see how we can have the same performance and save on fuel: load two cars with 50 pizzas and let them accelerate as quickly as possible to the destination (performance governor). They will get there as quickly as one car with 100 pizzas (same performance), but burn less fuel (battery saving).

If you want to make your phone run at 8 cores then you need to install a custom kernel, use an other CPU governor, use a custom CPU hotplugging, or without installing a custom kernel use an interactive governor, then tweak its parameters. You can search on XDA for Advance Interactive governor tweaks.
> -2 votes

---
Tags: termux, cpu
---


# Question
Title: Why is Youtube draining the battery and what could we do?
A friend of mine just asked me a nice question:

His (stock) Samsung Galaxy S4's Youtube is draining his battery. He said, that he hasn't been in the app today, and this morning he had the phone booting up.

Now, Youtube drained 51% of his battery.

I know, there are many possibilities, to "solve" this, like:

* Rebooting the Phone to get rid of the wakelock
* Terminating the Youtube-app via the Settings -\> Apps menue
* Clearing Cache/Deleting Data
* Uninstalling Updates and deactivating the app

But **besides** these workarounds:

Is there any fix for this issue?

What could one do, if he'd have to terminate the app everytimes he boots up his phone?

Is there even something to do?

**/NOTE**

We try to achieve a better information about what exactly in the YT-app causes the battery drain using Better Battery Stats. Stats will follow.

# Answer
Try to install Greenify.

> It helps you identify and put the misbehaving apps into hibernation when you are not using them, to stop them from lagging your device and leeching the battery
> 2 votes

# Answer
Greenify too, add YT to the app-to-close list when hibernate. You can do it another way. Run battery Doctor and locate YouTube in the list of running apps. Close YouTube, then turn off wifi and screen.
> 0 votes

# Answer
Get LeanDroid, thats the best one ive found (ive tried greenify, sounds great but isnt quite as good) but greenify is more straight forward. LeanDroid, takes more configuring. I am using a S6, my battery life is nearly 3x
> 0 votes

# Answer
Relaunching the YouTube app while offline fixed it for me, try closing and opening it while keeping the WiFi off
> 0 votes

# Answer
Greenify is a good application but the issue is that YouTube drain a lot of battery when you are watching videos and doing anything. I have seen in Greenify that background YouTube not drain battery; if you open it then it start draining battery battery.

So I think disable YouTube app and gets alternative that don't drain battery. for that I suggest NewPipe.
> -1 votes

---
Tags: battery-life, youtube, google-apps
---


# Question
Title: How to disable the "verified links" feature?
With Android 12, Google introduced the verified links feature that requires apps to verify ownership of domains for which they want to handle links. (Handling links refers to the behavior where when you tap a link to the Wikipedia website it will instead open the Wikipedia app.)

This means that third party apps (e.g. third party Reddit or Wikipedia readers) can't "hijack" links anymore, which I however do desire as I trust these applications and want to use them instead of the "blessed" official apps.

Websites are in control of my device's actions. How can I restore the previous behaviour of the Android system trusting all installed applications and asking *me* which apps I prefer to open URLs in rather than a website?

I am open to FOSS apps, Magisk modules and even patches to the AOSP to disable this anti-feature.

# Answer
A good FOSS solution I have found is https://github.com/tasomaniac/OpenLinkWith.

You need to enable its (more or less) experimental browser mode under "App Features" -\> "Set as Browser" and set the app as the default browser.

It then acts very similar to how the old link opening dialog used to work and looks similar aswell:

(This is indeed the app's dialog, not the OS'!)
> 9 votes

---
Tags: default-applications, android-12
---


# Question
Title: How do I download an Android 10 system update over cellular after I already said I want it over wifi?
My Moto G8 running Android 10 asked me how I want to get an update that just became available. I picked wifi only, but then realized I don't have wifi right now. I can't find any UI that would let me change my answer. It just says it's waiting for wifi and only offers me to check my wifi settings or configure "smart updates" which just means automatic download, install, and restart. What can I do?

# Answer
> 0 votes
* Goto Settings
* Goto "About phone" or "Software Update" (depending on your phone)
* Find settings icon on top or setting item that says
* "Download Automatically" or "Automatically Download over wifi"
* **Toggle This once**
* It will prompt you if you wish to use cellular data. If it does not prompt. Then just restart and repeat this process once.

---
Tags: updates, android-10
---


# Question
Title: Prevent keyboard layout change on Google Translate
**Google Translate changes my Gboard layout according to the input language.**

Might be ideal under some circumstances, but not now. Especially without consulting me first. And much more especially if it buries the option to revert it.

For instance: It changes from QUERTY to QUERTZ, when the input is in Deutch.

There is no other layout or languages selected under *Language & Input*

Good and old (and probably never upgrading) **Android 8**, if relevant.

**Google Translate V6.27.0.1** (not updating that one, by the way. Read the comments on the store to understand why)

# Answer
1. Open Google Translate.
2. Press on the profile (usually on the top right), then Settings.
3. Select Keyboard, disable Automatic language selection.
> 1 votes

---
Tags: gboard, google-translate
---


# Question
Title: Obtain a link to a specific email in Gmail Android app
How can I obtain a link (a URL) to a specific email (or the entire thread, if necessary) in the Gmail Android app? I want to be able to click that link and open the specific email.

# Answer
It is not possible without coding up a custom solution.
> 0 votes

---
Tags: gmail, hyperlinks
---


# Question
Title: Force an app to be able to auto-rotate in Android 12
I have some apps, like Spotify for example, which for some inexplicable reason do not allow me to rotate some activities (like the player) into landscape.

I am looking for an app or method that can *force* these apps to follow my device rotation despite that.

Up until Android 12, I used to use rotation manager for this purpose. It wasn't perfect but it did the job.
It no longer seems to function however: Turning on "Forced Auto" still works but it now prevents touches from being registered in any other app which is obviously bad and unusable.
(I have a feeling this might be a new security "feature".)

# Answer
> 1 votes
I achieved what I personally want (always `SCREEN_ORIENTATION_UNSPECIFIED`) using a crude patch to android\_frameworks/base:

https://github.com/Atemu/robot-config/blob/282f7bbf6477dc4c6677ece77d528eff5b833d86/0001-always-have-screenOrientation-SCREEN\_ORIENTATION\_UNS.patch

I'm not 100% sure all of these hunks are necessary or even complete but what it's supposed to do is stub any write access to an activity's in-code representation of its screenOrientation preference such that it's always on the default `SCREEN_ORIENTATION_UNSPECIFIED`.

---
Tags: auto-rotation
---


# Question
Title: Prevent apps from forcing a certain screen orientation cleanly
I currently use an crufty old app from F-droid which overrides the screen orientation using an invisible overlay (I believe) and that works rather well. However, when returning to a forced landscape app from the lockscreen (which is in landscape), android rotates the screen to portrait which I don't want.

I use Spotify and it believes that it knows better than me how I'd like to use my phone and wants to display its playback control screen portrait mode. I obviously need to return to this screen often to change tracks etc.

Is there a better way of doing this? I imagine you'd need something integrated into the SystemUI to get the unlock transition smooth.
I'm not afraid of getting my hands a little dirty with Magisk modules or patches to AOSP components themselves (I build my system from source) but I don't think I'm in a position to be coding something like that myself yet.

# Answer
> 0 votes
Android 12 broke Rotation Manager somehow, so I was forced to find a different solution.

By modifying the Android framework with a terrible patch, I was able to make it ignore an activity's screenOrientation preference: https://android.stackexchange.com/a/246838/283347

---
Tags: orientation
---


# Question
Title: VLC for Android: No connection to local network
All of a sudden, my VLC for Android app just up and stopped showing the local LAN network shares which are Samba running on a Xubuntu 20.04 host. I have no clue to what caused this. I have verified that the share is indeed shared via this on that Linux host that has the samba service activated:

```
$ smbclient -L wilddog
Enter WORKGROUP\XXXX's password:

    Sharename       Type      Comment
    ---------       ----      -------
    samba_share     Disk      Shared Folder
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (XXXXX server (Samba, Ubuntu))
    testprinter     Printer
SMB1 disabled -- no workgroup available
$

```

From the VLC For Android app, all I see now is this:

EDIT: I have rebooted both the phone, and the Linux server, to no avail. I've also restarted the samba server on the Linux server, also to no avail.

What do I need to do to diagnose this?

# Answer
Robert's comment clued me into the fact that the phone itself had somehow gotten into a mode whereby the main WiFI icon that is displayed on the phone did **not** reflect the connection status as it should have IMO. No indication about which WiFI it was connected to was available, *until which time that* I long-pressed onto that icon, and saw that it listed WiFI networks, but was **not** connected. Once I connected to my WiFI network, I was able to then see the SMB shares in the VLC app. See annotated screenshot below:
> 1 votes

---
Tags: linux, vlc, cifs
---


# Question
Title: Where does Keepass2Android store its password files?
I've been using Keepass2Android for a while. I try to store my files in DropBox so I can access across multiple devices. I have noticed that somehow I have some copies of my `mypasswords.kdbx` file that are listed as being in the `content://`. I've searched around and can't find `mypasswords.kdbx` file anywhere on my phone.

In desktop KeePass, I can synchronize two password files that have the same master password, but this doesn't seem to work in Keepass2Android.

Does anyone know where `content://` is located?

# Answer
> 0 votes
My file that's just in `content://` is the one in OneDrive. I know this because there's a password in there that's not in the file I actually want to be using, in `gdrive://(username)/(filename).kdbx`. I opened the OneDrive file from OneDrive into KeePass2Android, and there was the password.

# Answer
> 0 votes
`content://` is where Keepass2Android keeps its local password database(s). You can't access it, maybe you can see it if you root your phone. I think it's safest to choose \[3-dot menu\] \> Settings \> Database \> Export database... and control where it makes a copy.

Keepass2Android has a way to synchronize with an external `.kdbx`. For those who want to manually synchronize (e.g. you're using Keepass2Android Offline), I've created an issue to add the steps to its documentation, and my issue has the steps that worked for me.

---
Tags: applications, files
---


# Question
Title: Can I make Google Play show me ALL reviews for an app?
Google Play on the phone has for long been showing me reviews for the country I reside, which many times aren't really helpful, or sometimes there is simply no review at all to show, for my country.

I used to have a workaround which is to go on the browser, and there it was showing me all reviews.

However, just recently, they completely updated the Google Play interface on the browser too, and the Reviews now appear to behave the same way as in the phone app.

I can't really understand what's the problem or showing ALL reviews, even if they prioritized my country's reviews and show the rest after, but no... they have to completely HIDE many reviews that could be helpful to me...

Is there a way I can force showing all reviews for an app?

# Answer
> 3 votes
On the browser, you still can target specific language for reviews by appending to the url in address bar "&hl=" like "&hl=en" for instance

Update :

If that doesn't work try "gl" instead of "hl" , as detailed there: stackoverflow.com/a/38178785/2488565

# Answer
> 14 votes
No, you can't. Google's policy changed from Nov 21 and AFAIK, there isn't a workaround (VPN doesn't help). Reviews are shown depending on the *place you registered* (see last section of answer)

Making Ratings and Reviews better for users and developers gives the logic:

> We’ve heard from both Play Store users and developers that ratings and reviews could be more helpful. **This is especially true when ratings from one area unfairly impact another** — like when a bug that only impacted a single country negatively affects the app’s rating everywhere; or when **positive improvements in a tablet experience are overlooked because of the number of users on phones**. So we’re starting a multi-quarter program of improvements to make ratings more personalized and indicative of the experience each individual user can expect, and to make them easier to navigate and use for developers

(Emphasis supplied)

> That’s why, starting in November 2021, we’re going to change the ratings that individual users see based on where they’re registered, and later in the year what device they’re using.

Ways to overcome this limitation, I can think of a) developer gives you access to developer play console b) Using sensor tower or some such service and paying for it. Both are not options for an average user

# Answer
> 7 votes
Open an incognito or private tab and view the store without signing in. On my Android phone this works in Firefox but not Edge or Chrome; on my PC it works in any browser.

---
Tags: google-play-store, app-ratings
---


# Question
Title: How to send BTC from my coinbase account using shell script in android only
Please i am thinking of automating BTC send from my coinbase account to another coinbase user via email. I read coinbase API documentations and the only thing that is close to what I need is the script below:

```
#!/system/bin/sh
curl https://api.coinbase.com/v2/accounts/2ccf394c-193b-5b2a-9155-3b4732659yam/transactions/
  -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c' \
  -d '{
    "type": "send",
    "to": "EMAIL_ADDRESS",
    "amount": "ALL_SATOSHI",
    "currency": "BTC",
    "idem": "9316dd16-0c05"
  }'

```

but it is not working at all when I wrote it in a script named "send.sh" it says "-X" not found, and some other stuffs. Please how can I get this working only in android, all I need is a script that once I execute it I will get the specified Satoshi amount in the coinbase account that has the associated email address specified as the receiver. And there is no API key and API secret specified in the script, I don't know if that is the problem. Please can someone help me provide a solution please, I sincerely appreciate. Thanks!

# Answer
> 0 votes
Well, if you're determined to play with Bitcoin... You seem to be missing a backslash at the end of your second line.

```
#!/system/bin/sh
curl https://api.coinbase.com/v2/accounts/2ccf394c-193b-5b2a-9155-3b4732659yam/transactions/ \
  -X POST \
...

```

---
Tags: adb
---


# Question
Title: Lenovo Tab P11 erased recovery mode, need to hard reset with computer
I erased recovery\_a and recovery\_b, Unnofficial TWRP doesn't work. need a recovery that works. Won't boot into twrp and need a hard reset. Can't access OS but fastboot works. HELP!

# Answer
> 1 votes
If you find yourself in a situation where you follow the guide at https://unofficialtwrp.com/twrp-3-4-2-root-lenovo-tb-j606f/ only to find your Lenovo Android Device in a fastboot-only state, please use Lenovo rescue and smart assistant to flash stock recovery and the stock Android image to factory reset the tablet.

You can download it at https://pcsupport.lenovo.com/us/en/downloads/ds101291

---
Tags: recovery-mode, factory-reset, fastboot, lenovo
---


# Question
Title: Why have all Android TV remote apps stopped working?
As on date, nothing on play store can detect my Kogan TV running stock Android TV 9. The Google TV app is supposed to have a remote now, but it isn't shown for me. The system Android TV remote service on my TV is version 5.1+ (supposedly you need it to be \> version 5).

None of the other remote apps can detect the TV over WiFi or Bluetooth - I see review ratings of 2 and 3 all over the place with the same complaint. Is there a fix or a working app or has Google intercoursed everybody as usual with one of their updates, given they apparently retired their standalone remote app for bundling it with the stupid Google TV app, which is bloatware if all you want is a remote (assuming the feature is available, which is isn't for me)?

If at all relevant, I'm using an ASUS ROG phone 5 with Android 12.

# Answer
This problem comes from an update of Android TV Remote Service. In this update they modified the whole communication protocol.

Here is my app, that works even with this update: https://play.google.com/store/apps/details?id=dev.niamor.androidtvremote

If you need, you can contact me by email directly from the app. Thank you.
> 0 votes

# Answer
I have found that the reason the remote tv apps are not working is an update to the android remote tv service on the android tv device. Users are finding that uninstalling the update on the TV device and turning off auto updates seems to solve the problem.
> 0 votes

---
Tags: remote-control, android-tv
---


# Question
Title: Start/Stop Music playing when power is supplied via the USB cable
I'd like to use an old(er) Android phone as a Music Player left always connected in my car. I have an ignition controlled USB socket in the car, and would also connect the 3.5mm jack to the Aux In of the car. Is there a way to set a Music Player (e.g. MediaMonkey) to 'continue' playing when power is supplied to the USB charging cable, and then stop when power is disconnected? The reason I'd like to do this is because the Infotainment system in my car (Mazda CX-5) is horribly slow to start up, and music on USB memory stick or played over Bluetooth from my phone takes 2-3 minutes to start up (whereas music connected via the Aux-In starts up almost immediately). I have Android Auto and that's even worse! I've searched this (and other) forums without finding anything that does this simply.
Thanks!

# Answer
# Bixby Routines

If you have a newish Samsung device with bixby routines (found in advanced settings) then you can create a routine that triggers when the device begins charging that can send the OS's "play music" command, open specific apps, and call actions that those app registered with android. You might need to open the app, and then send the OS's "play music" command.

# Automation apps

If you don't have a Samsung device, then there are apps that can likely solve your problem. An app called ITTT is a well known automation app that may solve your problem. It can detect when your device begins charging, and it can do one of three things: open an app, send the OS's "play music" command, or integrate with specific services, like Spotify, and use reliable platform specific commands such as playing a shuffled playlist.

If ITTT doesn't work, other automation apps may.
> 0 votes

---
Tags: usb, charging, music, automotive-head-unit
---


# Question
Title: How to prevent Android from creating "Android" and "Lost.dir" folders on external OTG storage?
If I either connect my camera using a USB cable via OTG or insert the SD card in an OTG reader connected to the phone, Android creates automatically two folders: an `Android` folder and a `Lost.Dir` folder.

The problems are -

1. That as long as these two folders are on the camera (a Pentax K50), this latter thinks that the SD is not properly formatted and asks me if I want to format it or otherwise I cannot use it again. And indeed if I delete the two folders using my PC, I can then start using the card again. Obviously, I cannot format it.
2. That I cannot delete these folders on the phone without reliably preventing Android from recreating them. Also, the two folders remain on the SD even if I properly eject the OTG storage.
3. That I am going on a trip and I won't be having a PC with me to use to remove the folders.

Given all of the above, how can I then transfer the photos from my camera to the smartphone?

# Answer
> 2 votes
Create two **0-byte files** on the SD Card with these names (case-sensitive):

```
LOST.DIR
Android

```

Optionally, you can make them both read-only and hidden (even though Linux won't follow these rules) so that when you browse the card within Windows, you won't see them. When connecting to an Android device, instead, it will fail to create the folders because of the empty files with the same name (you'll see the 0-byte files, though).

---

Powershell one-liner to create the necessary files (simply change the drive letter `H:` in `$drive = "H:"` with yours):

```
PS C:\> $drive = "H:"; ("$drive\LOST.DIR", "$drive\Android.") | % { if (Test-Path $_) { Remove-Item -Path $_ -Force }; (New-Item -Path $_ -ItemType File -Force).Attributes = "Hidden", "ReadOnly" }; if (Test-Path "$drive\System Volume Information") { Remove-Item -Path "$drive\System Volume Information" -Recurse -Force }

```

# Answer
> 0 votes
The `Android` folder is used to keep data about your apps. Deleting it from the internal storage or external storage (when used as adoptable storage) will cause the loss of your apps' data.

`LOST.DIR` is a folder used to place recovered files during boot. It is usually empty. Deleting this folder is safe.

In your case, you can delete both folders without creating any issues. Delete the folders, then disconnect the SD card as mentioned by @Chrisii. It is a process that you will have to accomplish every time because the folders will be re-created by the Android OS when the SD card is connected.

---

References:

# Answer
> 0 votes
Some Android phones remove the folders if you unmount the SD card before removal. The unmount setting is usually found in storage settings or in the file explorer. The folders will only be removed if they are empty and not in use. (e.g. there are no orphaned, lost, or corrupted files that lost dir is holding on to.)

If this does not work, then your version of Android probably doesn't provide a way to not create them and you are stuck with manually deleting the folders and nothing short of modding your device will change that behavior.

---
Tags: usb, sd-card, usb-on-the-go, usb-mass-storage
---


# Question
Title: ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projects in Android Termux
I'm trying to install numpy in Termux in Android and I'm getting this error :

```
ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projects

```

I tried

```
apt update && apt upgrade

```

And got this error :

```
 CANNOT LINK EXECUTABLE "/data/data/com.termux/files/usr/lib/apt/methods/https": library "libssl.so.1.1" not found

```

The second error happened the second time i run `apt update && apt upgrade` is there any solution?

# Answer
> 4 votes
There was a recent discussion on this subject.

To install the up to date version of numpy (1.22.4), simply run

```
MATHLIB="m" pip install numpy

```

And numpy wheel will be build normally.

Your second error (with `[...]/https`) seems an Internet connection problem, but not sure.

---
Tags: termux, python
---


# Question
Title: How to access sync'd Nextcloud files in termux
I am syncing files to my phone (Fairphone 4) with Nextcloud, and wish to access these files using termux. Currently access is denied, is there a way to set this up to work other than rooting the device or is that the way forward?

# Answer
Unfortunately Termux cannot pass SAF-based storage access (like you would do with a file explorer by selecting - for example - a file using Google Drive app).

But there is an alternative : Rclone. Rclone can give you access to many and many online drives (including NextCloud). It is only a command-line utility.

To install it in Termux, simply run `pkg in rclone`. Then, you need to set the remotes (= online drives) you want : `rclone config`. See the docs to know how to add remotes correctly.

Say you now have a remote with the name "myRemote", you can do whatever you want :

* Copy a file to current local directory in Termux : `rclone copy myRemote:file2Copy.txt .`
* List the files on the remote : `rclone ls myRemote:`
* Etc...

The only drawback, is that you can only access to rclone remotes using a terminal.

There is a way to mount rclone remotes on the device, but you need to be rooted. Check this great answer here if you are interested.
> 0 votes

---
Tags: root-access, termux
---


# Question
Title: Forgot password for android device not able to reset it
I recently bought a new phone and forgot about the old one, and now I can't remember the password for the old device. I tried

1. google findmyphone: didn't work
2. hard reset: asking for the password
3. ADB : USB debugging is on but can't accept the pop up

Is there any way I can reset the password of the device?

# Answer
> 0 votes
OEMs these days store lockscreen password on some separate partition =\> resetting /data and /system doesnt make the phone 'forget' the prev password.

But there is a solution that works on most of the devices (the solution is flashing all partitions without formatting the partitions that store imei). Get the firmware flash tool for your device (eg sp flash for mediatek devices, something similar exists for qualcomm devices too).. A googling in the format "how to flash stock firmware on \<your device\>" would lead you to the right page.

I can't give any specific guide since you haven't mentioned your device model and there exists no generic guide except the outline I mentioned above.

---
Tags: factory-reset, password, locked-out, android-11, vivo
---


# Question
Title: What is Google up to? Google Play Store updating apps even though auto-update is disabled
Recently, I've noticed Google Play Store automatically "updating" apps, even when auto-updates are **explicitly disabled**.

I put *"updating"* in quotes, because all the apps in question don't truly have any updates available (according to the Google Play Store). Yet Google Play Store is downloading updates for these apps, and tools like SD Maid indicate recent "Last update" dates for each of these apps.

This updating is happening to almost every app. It's not limited to 1 or 2 apps, or a few specific developers.

An example is Date Calculator Pro. Google Play Store indicates the last update for that app was the 25th of December, 2020. But I caught Google Play Store updating that app today.

I *suspect* Google changed some policies and either Google itself is pushing updates to non-Google apps, or developers are scrambling to issue new "updates", even when no new functionality is added. But what's really weird is that the Google Play Store does not indicate any recent updates for any of these apps, and version numbers are not incremented.

Those are just my guesses. What's really going on?

# Answer
Apparently, what's happening here is that Google Play support libraries get auto-updated regardless of your update settings. If an app you installed relies on those libraries, an "update" to the app is triggered, even if no code in the app has changed, only some libraries it uses.

Since there isn't a way to stop Google Play auto-updating, there isn't a way to stop these app updates either.

> Google made a change recently to the Play Store and the visibility of certain updates that used to occur silently. Now, when Play Support Libraries are updated, it will cause apps to "update" if the update replaces the support library version an app is relying on, so the app is essentially reinstalled when this happens—but with the only change being the Google Play Support Library version—not the app's code. The support libraries are what brings newer Android API features to older Android versions without having to be on the newer OS version (it doesn't bring everything, but it improves compatibility, allows for a unified experience across Android versions, and does sometimes bring features). So the older the version of Android, the more this is going to happen, since the older the OS version, the more the support libraries have to bring to that older OS version to bring it up to date.
>
> And since Play Support Library updates can't be disabled, neither can the pseudo-update of the affected apps. There's no new code from the developer. It's just Google updating their part, and the app being rebuilt around the new update.

Source + more info: this Reddit post
> 35 votes

---
Tags: google-play-store, updates, security, google, application-autoupdate
---


# Question
Title: How to Flash Patched_Boot.img via termux?
Is there a way to get termux to process Fastboot cmds or flash a patched\_boot.img with out a PC?

# Answer
> 0 votes
no, there is no way to unlock bootloader nor root your device from termux (except for nexus devices). you can however run fastboot commands from another rooted device with Magisk module, or flash partitions with `dd` if termux is running on already rooted device

```
$ su
# ls -d /dev/block/*/*/*/by-name/boot*
# dd if=/storage/0815-4711/patched_boot.img of=/dev/block/platform/11120000.ufs/by-name/boot_a
# dd if=/storage/0815-4711/patched_boot.img of=/dev/block/platform/11120000.ufs/by-name/boot_b

```

---
Tags: fastboot, termux
---


# Question
Title: Is Galaxy S3 always disclosing an WiFi SSID?
I read tons of articles about how is it bad do hide SSID because client devices can disclose the network parameters by constantly "pinging" it when not in range. Ok, here is the client the bad guy, not the access point.

Ok. Then I take my Samsung Galaxy S3 phone, go to the WiFi network settings and do not see any checkbox of the kind "Connect even if SSID is hidden". But my network IS hidden and SGS3 IS connecting to it. Does it mean that SGS3 is always automatically ready to disclose WiFi parameters, no matter whether SSID is hidden or not?

There is a small bit of hope left:

May be the way how the network was added influences SGS3 WiFi client behaviour? Because this network is hidden, I had to add it manually. May be when a WiFi network is broadcasting its SSID and I only have to choose it from the list, the phone behaves then differently and doesn't constantly try to discover the network?

**Please do not write that I shouldn't hide SSID. It will deflect the discussion in an unwanted mainstream direction. There are tons of such suggestions in the Internet.**

So, using the link provided by Andrew T. I found out that Android prior to v9 is always sending probe requests to the not available saved networks, and this behavior was made changeable only in Android v9+.

# Answer
AFAIK hiding the SSID only changes behaviour for initial connection as one has to know the SSID to be able to connect instead of just choosing from the list.

Also the WiFi will at some point confirm its network name to devices who would try to connect to it which could be intercepted by a third party that would try to connect to it.

In my opinion hiding the SSID is just a tiny security by obscurity measure that only protects from everyday users.

Here is some interesting read about the situation with some examples:

hidden wifi ssid: How to know the name of a wireless network with no SSID
> 1 votes

---
Tags: networking, wi-fi, router, security
---


title: Android 9 device does not save network

text:
# Question
Title: Android 9 device does not save network
On an Android 9 tablet:

1. Settings
2. Use Wi-Fi
3. Add network
4. Enter an SSID, and select security None (the Wi-Fi does not require a password).
5. Tap Save

The network is not saved and the tablet does not connect to the Wi-Fi network. The Wi-Fi network works perfectly with half a dozen or so other devices.

Could anyone shed some light on this?

# Answer
Let me answer my question per the suggestion of Andrew instead of deleting it.

The solution I found:

1. Tap Advanced options when adding a network
2. Select Yes for Hidden network

I think I missed the saved network when I posted my question. The network was saved on this tablet but it was on a separate list at the bottom:
> 1 votes

---
Tags: wi-fi, networking
---


# Question
Title: How can I reduce lag/crashes when mirroring a screen with scrcpy?
Scrcpy lags or crashes when mirroring a screen. How can I reduce this?

https://github.com/Genymobile/scrcpy

# Answer
The docs say "It may be useful to decrease the bit-rate and the resolution:"

`scrcpy --bit-rate 2M --max-fps 15 --max-size 960`

--bit-rate 2M - reduce the bit rate being sent (amount of data per second, affecting the image quality of the mirrored screen) (default 8M)

--max-fps 15 - reduce the number of frames per second (reducing the data per second) (default 60+?)

> This \[fps adjust\] is officially supported since Android 10, but may work on earlier versions.

--max-size 960 - make the maximum width or height 960 (the other dimension is scaled down, preserving aspect ratio). This reduces the number of pixels sent (if your display is \>960p). (Default native res?)

These factors seem to reduce the load on the host CPU and the amount of data needing to be reliably sent between the guest and host over USB/wifi. It seems to reduce lag and crashes.

https://github.com/Genymobile/scrcpy
> 3 votes

---
Tags: adb, scrcpy
---


title: are android 10 adb commands gimp'd?

text:
# Question
Title: are android 10 adb commands gimp'd?
`adb shell settings put secure sysui_nav_bar "\"key(82:file:///storage/emulated/0/zzz/menu.png),key(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_ime;key(120:file:///storage/emulated/0/zzz/screenshot.png)\""`

what the heck is wrong with this adb command!?

i get tons of errors! on my Mac Mini Server 2012 via Bootcamp via Windows 10 Pro

for a moto g stylus 2043-4! May 12th 2020. Android Debug Bridge 30.0.1 installed via powershell via chocolatey.org

82:file:///storage/emulated/0/zzz/menu.png : The term '82:file:///storage/emulated/0/zzz/menu.png' is not recognized
as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:52
+ ... sui_nav_bar "\"key(82:file:///storage/emulated/0/zzz/menu.png),key(84 ...
+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (82:file:///stor.../0/zzz/menu.png:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

home : The term 'home' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:147
+ ... .png),key(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent; ...
+                                                              ~~~~
    + CategoryInfo          : ObjectNotFound: (home:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

recent : The term 'recent' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:152
+ ... ey(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_im ...
+                                                            ~~~~~~
    + CategoryInfo          : ObjectNotFound: (recent:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

menu_ime : The term 'menu_ime' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:159
+ ... e:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_ime;key(120 ...
+                                                          ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (menu_ime:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

120:file:///storage/emulated/0/zzz/screenshot.png : The term '120:file:///storage/emulated/0/zzz/screenshot.png' is
not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:172
+ ... nt;menu_ime;key(120:file:///storage/emulated/0/zzz/screenshot.png)\""
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (120:file:///sto.../screenshot.png:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException```

# Answer
> 2 votes
To answer the headline question, no, Android 10 does not have "gimped" ADB commands, assuming you mean "restricted" or "crippled".

If you wrote this script, you're in the best position to debug it. If you put it together from several sources, some of which may have been for Windows and some for UNIX, you may well have the use and escaping of quote characters mixed up. Windows-style and UNIX-style command lines have *different* handling of quotes.

The best advice is normal for debugging: cut down the problem as much as possible and find ways to do its component parts before you try to put the whole thing together. Writing a complicated command may be good for your ego, but that does not impress computers ***at all***.

---
Tags: adb
---


title: Use a different adbkey

text:
# Question
Title: Use a different adbkey
The `adb` command uses `~/.android/adbkey` by default.

Is there any way to specify a different key that should be used, either on a per device or per adb instance basis?

The functionality I'm looking for is similar to `ssh -i /path/to/keyfile ...`

I'm aware that I could just rename/move the files around or add a key to all devices but that's not the solution I'm looking for.

# Answer
> 0 votes
Persistent searching found the original code change that added public-key authentication to ADB. That says:

> On the host, the user public/private key pair is automatically generated, if it does not exist, when the adb daemon starts and is stored in $HOME/.android/adb\_key(.pub) or in $ANDROID\_SDK\_HOME on windows. If needed, the ADB\_KEYS\_PATH env variable may be set to a :-separated (; under Windows) list of private keys, e.g. company-wide or vendor keys.

However, this does not appear to work with recent versions of adb and Android.

## Experiments

I used adb 1.0.41 from platform tools 31.0.2-7242960, running on Windows 10, with a Samsung Galaxy A52s 5G running Android 12. At the start of the experiments, I had the device authorised for USB debugging, and `adb shell` working fine. I put the device out of my reach while leaving it connected, so that I would not enable a new key by mistake.

1. Stop the adb server with `adb kill-server` and rename my .android directory as .android.original. Run `adb start-server` to generate a new key pair in a new .android directory, and then run `adb devices` to verify that the device showed up but was not authorised.
2. Stop the adb server. Set the ADB\_KEYS\_PATH environment variable to the full pathname of my .android.original directory. Start the adb server, and then run `adb devices`. Result: Device is displayed, but not authorised.
3. As #2, but setting ADB\_KEYS\_PATH to the full pathname of my .android.original\adbkey.pub file. Result: as #2.
4. As #2, but setting ADB\_KEYS\_PATH to the full pathname of my .android.original\adbkey file. Result: as #2.
5. Restore original: stop the adb server, remove my .android directory and rename the .android.original directory back to .android. Start the adb server, and then run `adb devices`. Result: Device is displayed, and shows as authorised.

Looking at the device screen after completing the full set of trials, it had a stack of dialogs, all offering the chance to accept the new adb key. I hit "Cancel" on all of them.

If anyone with a collection of old Android devices and old adb versions wants to experiment some more, I'd be interested to see the results. I'm reasonably satisfied that it doesn't work with modern adb.

### Something that won't work

The ADB\_VENDOR\_KEYS environment variable is not the answer, unless you work for a device manufacturer and have access to engineering ("eng") builds of Android.

---
Tags: adb
---


# Question
Title: Can a Samsung receive OTA updates normally with a systemless root?
If a systemless root is done, will software updates still appear in settings/show up as a notification that there is a new update available?

In case it does show up, can you download and install the update directly from the settings app even though the phone is rooted?

From what I read, systemless roots are great because they allow you to update a rooted Android without unrooting it. Is this the case or have I misread something?

Another thing I was curious about is if you root your Android via systemless root, would the phone status stay "official" or will it be "modified"/"custom"? And would a factory reset unroot a phone that has been rooted via systemless root?

# Answer
No, no matter how you root your device, you won't get Android updates unless you flash a newer rom on Android which may cause you to have to wipe your phone. It also depends on what you use, if you use Magisk, KingoRoot or CF-Autoroot, then it may hide the root, but all jailbreaking apps try to hide the root so that you don't get stopped from using apps.

* Edit: Factory resetting removes root, but depending on your oem, they may always be able to tell if you root your phone. Like if you have a Note 3 that is rooted, it starts up and says Void Warranty on the top left. Samsung will always know that you rooted your device, even if you remove the root.
> 1 votes

---
Tags: samsung, ota-update, systemless-root
---


# Question
Title: How do I format my SD card via terminal/Termux?
I'm running a MIUI 12.5.5 xiaomi.eu ROM on a rooted Redmi Note 9 Pro. I'm trying to format my 128GB micro SD Card via Settings \> Storage \> Format SD Card, but this causes the device to reboot. I suspect it's something to do with the ROM, so I'd like to format it via terminal or Termux if needed.

How should I proceed? Also, should I format it to exFAT or FAT32?

# Answer
**WARNING:** for devices with **UFS** flash memory **only**

* from MIUI

```
mkfs.exfat /dev/block/mmcblk0p1

```
* from TWRP

```
mkexfatfs /dev/block/mmcblk0p1

```

(`mmcblk1p1` for devices with eMMC flash memory)
> 0 votes

---
Tags: external-sd, terminal, termux, formatting
---


title: Cannot Unlock Bootloader on Fairphone 4

text:
# Question
Title: Cannot Unlock Bootloader on Fairphone 4
I have been attempting to install /e/ OS on a Fairphone 4 in accordance with these instructions: https://doc.e.foundation/devices/FP4/install and I am stuck on Step 6 of **Unlocking the Bootloader**. No matter what I do, I get results like this when attempting to use the `fastboot flashing ...` commands:

```
./fastboot flashing get_unlock_ability
FAILED (remote: 'Unrecognized command flashing get_unlock_ability')
fastboot: error: Command failed

```

I've gone through multiple Troubleshooting guides. None have helped. Here are some of the notable details and things I have tried:

* I've tried on both MacOS and Windows, the result is the same.
* I've tried multiple different USB-C cables with both MacOS and Windows.
* I've tried installing the tools using Homebrew on Mac, then uninstalled, and installed using the official Android Studio process. The result is still the same.
* I've gone through and switched out the default driver on Windows for the Google one, as recommended here: https://www.reddit.com/r/fairphone/comments/slk2qd/e\_installtion\_troubleshooting\_guide\_fastboot/ the result is still the same.
* ADB works perfectly.
* The device "lists" perfectly:
```
./adb devices -l
List of devices attached
XXXXXXXX               device usb:2097152X product:FP4eea model:FP4 device:FP4 transport_id:14

```
* I have done the OEM unlock process.
* Fastboot can clearly see the device when I boot to fastboot (`./adb reboot fastboot`):
```
./fastboot devices
XXXXXXXX      fastboot

```
* Version information in case it helps
```
./fastboot --version
fastboot version 33.0.2-8557947
Installed as /Users/XXXXXXXX/Library/Android/sdk/platform-tools/fastboot

```

I'm clearly missing something, but I've gone over the instructions and various troubleshooting guides in detail and I cannot figure out what I missed. Does anyone have any ideas?

# Answer
> You are in the wrong `fastboot`, `fastbootd` (with the d at the end!) is fastboot in userspace, what you want is the *"real"* fastboot also called bootloader.
>
> Either select *"Reboot to bootloader"* in fastboot**d** or reboot the phone with `fastboot reboot bootloader`.

Thx @ hirnsushi
> 4 votes

---
Tags: fastboot, bootloader, fairphone-4
---


# Question
Title: How can I see the transfer speed when transferring files with Bluetooth?
I transfer files with Bluetooth between a Google Pixel 6 and a Samsung Galaxy A8+. How can I see the transfer speed when transferring files with Bluetooth?

# Answer
Short Answer: You can not see speed when transferring files via bluetooth.

Long Answer: Android OS by default does not have an interface for Bluetooth transfer speed or show it during the data transfer. In most cases only transfer progress will be available.

Bluetooth Broadcast Receiver only exposes RSSI or link quality and you need to do your own calculation of speed for each RSSI range.
> 1 votes

---
Tags: bluetooth, file-transfer, data-monitoring
---


# Question
Title: Unanswerable "Allow access to phone data" prompt that comes up once per second
When I plug my Samsung Galaxy S9 phone into the Renault Zoe car, I get a flood of prompts about whether or not I want to allow access to the phone data. Cannot tell how many times I allowed that in the past, but my phone seems to forget it.

Now, that behavior has changed a bit because the prompt disappears before I am able to click it. It also comes back the next second and the next and the next. The error is new and I have had my car in over a year without problems.

Can I get rid of the prompt? Is there a way to make the phone understand that I want to give access to the car once and for all?

# Answer
> 1 votes
Seems like you car tries to access the phone using MTP protocol (the standard file exchange protocol also used by Windows and the other OS if you connect a phone via USB).

If you get multiple prompts this means your car is connecting multiple times (or tries to) or the USB connection is unstable (defect cable?).

If it is just the car trying to access the phone data again and again then you may be able to bypass the prompts by enabling USB phone data access by default.

You can enabled MTP by default in Developer Options menu (hidden by default can be enabled usually by tapping build number in phone info four times).

Search in the developer menu for `USB configuration` and change it to `MTP (Media Transfer Protocol)` or a similar named item that belongs to the MTP/data mode.

---
Tags: samsung-galaxy-s-9, android-auto
---


# Question
Title: Facebook app not compatible on Android 4.3
Facebook was crashing on Huawei Y530-U00 on Android 4.3, so I wiped it and tried to install it again. Play Store says that "Your device isn't compatible with this version".

I tried what is being said in the Facebook support: https://www.facebook.com/help/instagram/231705083624002 but it didn't work.

What can I do?

# Answer
> 0 votes
You could try installing an APK manually.

1. Go to **Settings → Security** and enable installation of apps from **unknown sources**.
2. Visit APKMirror and click the blue download button. Once the download finishes, click the notification and install the app.

If that doesn't work, you could try the above process again with Facebook Lite, although it looks significantly worse, and may or may not work properly (possibly depending on the country you're living in).

After you've finished installing APKs, **you should disable installing apps from unknown sources**.

* Go to **Settings → Security** and disable installation of apps from **unknown sources** -- this is important to do, because else you could be tricked into installing a malicious app.

# Answer
> 0 votes
Well, the app simply is not compatible with your device, I don't see a direct fix for that but as workarounds, there might be a couple of tries.

1. Download the older version which is the latest version that supports the phone in question. Disable the auto-update if you went with this approach. The problem with this approach is that you'll have to find an older version APK source, **but such APK sources are not official usually, so beware and use the APK carefully.**
2. Use a normal browser like Google Chrome and bookmark the Facebook page as an icon on the home screen like an application. In Chrome, this could be done by opening the menu on any loaded page and clicking on "Add to home screen".

Notice that the second approach that I recommend and got some advantages over the app anyway. For example,

* Using the browser is much less power wasting compared to the app due to my experience.
* Also the browser is the full site so all features and options are there especially the new ones immediately when they're added.
* Also, I sometimes need to see the site like a desktop user's view, and that is possible via Chrome and some other browsers as well like Firefox and UC. Even *built-in* browsers support such features.
* As a disadvantage (noted by @iBug), a browser uses more data on cellular so more fees. Although I never experienced this and I browse Facebook a lot but it makes sense.

# Answer
> 0 votes
As existing answers have mentioned about installing manually from the APK, **the latest Facebook version that still supports Android 4.3 is v281.0.0.36.124 (APKMirror)**, which was released in August 2020 and has a variant for Android 4.1+.

Further version after that, v282.0.0.40.117 already upgraded the minimum requirement to Android 4.4+ instead.

However, *there's no guarantee that the app will still work if there's a breaking change on the server-side, which the end-users can't do anything about it.*

---
Tags: 4.3-jelly-bean, facebook, compatibility
---


title: AOSP x86 adb secure

text:
# Question
Title: AOSP x86 adb secure
I'm trying to build a custom ROM with secure access via adb. My goal is to secure the android image so that it can only be accessed with a certain adb RSA key pair.

When I build AOSP with 'user' variant, adb doesn't work, cannot connect to it in x86, always get 'connection refused by host', but when I build it with another variant (userdebug or eng), adb connect with no restrictions.

How can I secure adb in order to allow connections only from clients that uses certain RSA pairs?

# Answer
> 0 votes
You can find information about this on the AOSP pages about adding support for a new device. Briefly, it goes like this:

1. Create a key pair with `adb keypair`.
2. Put the keypair into your source tree.
3. Set the build variable `PRODUCT_ADB_KEYS` to point to the directory containing the key pair.
4. Do your build.
5. To connect to this build, once it is running on device or emulator, set the environment variable `ADB_VENDOR_KEYS` to point to the directory with the key pair.

---
Tags: adb, security, custom-roms, android-x86, aosp
---


title: How do I remove share menu suggestions?

text:
# Question
Title: How do I remove share menu suggestions?
Every time I use the share feature to share a photo in Android 7.1.1, it suggests people who are not in my contacts and contacts I have not spoken to in years. My phone can't be rooted and the suggestions I've found, such as disabling direct share, do not seem to be available in recent versions of Android. I don't want to share photos to so unsubscribe@spam.com email I used once or to some person I'm not in contact with.

How do I remove share suggestions or disable them entirely? I would rather just choose the app to share with and then select the recipient from within the app.

Edit: I've also found that older versions of Android had a feature to long-press and drag suggested share items to pin them to the top pf the menu. This no longer appears to work either. Please help get these people off my share menu.

# Answer
> 2 votes
> older versions of Android had a feature to long-press and drag suggested share items to pin them to the top of the menu

Some newer Android versions also have a feature to long-press on a contact name and hide it, e.g. it works on my Google Pixel 6 that runs on Android 12:

---
Tags: 7.1-nougat, share-menu, file-sharing
---


title: Color os: Phone corrupted after update

text:
# Question
Title: Color os: Phone corrupted after update
I just updated my oppo find x2 neo from android 11 to 12. However the phone tries to power on a few times, and then goes to recovery mode. Online update does not work (it says "no updates found.")

Is there a way of fixing this without losing all my data?

# Answer
There is no way to fix it. You have to factory reset :(
> 0 votes

---
Tags: oppo-coloros
---


title: How to Disable Double Tapping?

text:
# Question
Title: How to Disable Double Tapping?
My Galaxy S2 asked me to double-tap and drag to unlock (instead of just dragging) and every time I try to tap anything, one tap only makes a yellow box appear around the app or file or whatever, which is really difficult to deal with and annoying.

# Answer
Go into the device settings, then from **My device**, choose **Accessibility**. From that menu, press **TalkBack**, then click the switch in the top-right corner to turn TalkBack off.

After tapping something once to get the yellow box (and the spoken description of what the thing is), double-tap anywhere on the screen to click the highlighted thing.
> 2 votes

# Answer
The steps to disable double tap to unlock

1. Go to Applications
2. Go to Settings
3. Go to Accessibility
4. Select Talk Back and turn off Once the talk back has been disabled.

you do not need to keep on doing double tap.
> 1 votes

# Answer
On some Android phones, you can disable TalkBack by holding Vol+ and Vol- for a few seconds.
> 1 votes

# Answer
On Samsung Galaxy Y Plus (GT-S5303), follow these steps to remove the double tap:

1. Go to Settings
2. Choose My device
3. Tap Lock Screen
4. Go to Screen security lock
> 0 votes

---
Tags: samsung-galaxy-s-2, lock-screens
---


# Question
Title: Can't unlock bootloader or go to download mode in Samsung Galaxy M11
I have Samsung Galaxy M11 (SM-M115F/DS). I want to install TWRP in it. But I can't unlock the bootloader or go to download mode. I already enabled OEM Unlock.

I saw on some sites that on this device I have to press both volumes up and down to go to download mode or unlock the bootloader but actually, nothing happens. It only goes to recovery mode with power and volume up. There it has a "Reboot to Bootloader" option.

When I go there, I get this

When I give the options to start, I return to recovery mode.

# Answer
> 0 votes
1. Make sure that you have backed up your files because all of your data will be wiped.
2. Make sure that adb and fastboot are installed on your PC.
3. Download the TWRP image file.
4. Enable USB debugging from developer mode.
5. Connect your phone to your PC and open cmd.

Enter the following command:

```
adb reboot bootloader

```

Or simply go to fastboot mode (like what you did in the second picture). Then connect your phone to the computer and open cmd (if you already didn't).

Type the following command and hit enter

```
fastboot flashing unlock

```

If you got an error, try this command (used for older phones):

```
fastboot oem unlock

```

If you get a confirmation screen on your device, press the Volume Up button to highlight Yes and press the Power button to select it. This will begin the bootloader unlocking process, which shouldn’t last more than a couple of minutes.

Then again, reboot to bootloader. Type following command:

```
fastboot flash recovery <path to your twrp image file>

```

Done!

# Answer
> 0 votes
I really dont know but i have the samsung m12. In adb you should do

```
adb reboot download

```

or

```
adb shell
reboot download

```

thats how i got it to work on my m12

Maybe this is useless but when flashing such images flash the `vbmeta.img` too maybe to be safe. I dont know.

---
Tags: samsung, recovery-mode, twrp, bootloader-lock, download-mode
---


# Question
Title: E3004: This package is for device: gprimeltexx,fortunafz,grandprimelte,grandprimeltexx; this device is
I am trying to flash LineageOS 18.1 GO custom ROM on my Samsung Galaxy Grand Prime. The model is gprimeltexx, and TWRP works. When I try to flash the ROM, it gives me this error:

```
E3004: This package is for device: gprimeltexx,fortunafz,grandprimelte,grandprimeltexx; this device is .

```

So it says that it is for my model, but it says "This device is ." So it doesn't report any model. Is there any way to fix that?

# Answer
> 3 votes
> in TWRP terminal type 'setprop ro.product.device gprimeltexx'

This fixed my issue. Now all the roms I tried to flash now see my Samsung Galaxy Grand Prime as gprimeltexx.

Thanks everyone for help

---
Tags: samsung, rom-flashing, lineageos
---


# Question
Title: How to (re)mount an FUSE partition and set (or change) its options, especially permission-wise?
**Note:** If you don't mind reading all these, jump to "The Questions" section.

## The Actual Problem

I have write permissions problems with both my external (i.e. external SD card) and internal storages on my rooted Android box (i.e. it's ViperOS ROM, if it helps) (mounted at `/storage`), especially the external one. The behavior on terminal and GUI is, strangely, different.

(External storage problem only) Using either Termux or internal Terminal app, when I try to do any write operations from a non-root user (e.g. create a directory, remove a file), I get "Permission denied" error (From a non-root ADB user, however, I never get errors). Storage permission is not a problem here, as it's granted.

Using GUI, the only problematic operation is removing directories (whether empty or not), and as a result, moving directories also (i.e. actually, they get copied, but the source is not removed). Even renaming directories is possible. All file operations are possible, too.

However, there's a different between where the *problematic* operation is done: from the laptop with phone connected to it, the operation fails; but from an app (e.g. default Files app) inside the phone (without any root permissions), it gets done, but it shows it failed (!).

## What I Tried

These are all permissions problems (oh, really?!). To make things easier, I'll focus on external storage (i.e. external SD card) only. It is located (i.e. mounted) on `/storage/9B6C-CF9F/`.

**Note:** Because the results of ADB and internal terminal are somehow different, and it seems the results of internals are more reliable, so I'll post them instead. Also, keep in mind, `#` means the command is being run as root. Unrelated stuff is replaced with `...`.

Initially, I ran `stat`:

```
# stat /storage/9B6C-CF9F/
  File: `/storage/9B6C-CF9F/'
  Size: 8192     Blocks: 16  IO Blocks: 512 directory
Device: 19h/25d  Inode: 0    Links: 4
Access: (755/drwxr-xr-x)    Uid: (    0/    root)   Gid: ( 9997/everybody)
...

```

And immediately I realized that only root have write permissions on `/storage/9B6C-CF9F/` (i.e. my external storage). Tried `chmod`. No errors. Worked? No. `stat` is the same as before, meaning no permissions was changed. Why?! I tried to figure it out:

```
# mount | grep /storage/9B6C-CF9F
/dev/fuse on /storage/9B6C-CF9F type fuse (rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other)

```

The problem is here: The mount point is of FUSE type, and I know little about it. So:

## The Questions

1. How to (mount or) remount an FUSE partition, possibly with one or more specified options, especially permission-wise options (like `rootmode`), using `mount` command (on Android)?
2. How to find the location of the actual device behind that FUSE filesystem, in `/dev/` directory (Is there any underlying device at all)?

Other questions:

1. (If you've read the past two sections,) Is there an alternative way to fix the mentioned permissions problem?
2. If root has only write permissions to my external storage, then how applications write data to it?

## Notes

* While I was reading the man-page of `fuse` on Fedora, I found that there are some FUSE mount options regarding permissions, like `rootmode` and `umask`. However, the problem is, I don't know how to mount it with these options, and how `/dev/fuse` knows where to find my external storage (or even internal).
* There is a discussion on where Android's `fstab` is located. I have found it on my device, however, there is no line pointing to `fuse` type. The only related lines I could find are:

```
# cat /fstab.sc8830
...
# VOLD : fstab_dt_otg.sc8830
/devices/sdio_sd/mmc_host/mmc1*           auto         auto defaults                            voldmanaged=sdcard1:auto,encryptable=userdata
/devices/20200000.usb/usb*            auto         auto defaults                            voldmanaged=usb:auto
...

```

What does these mean? Are they related or not? I don't really know. Also, no file named `fstab_dt_otg.sc8830` exists there (i.e. on `/`).

# Answer
how about trying to chang the mask setting?

```
mount -t vfat -o umask=0000 /dev/block/mmcblk1p1 /storage/9B6C-CF9F

```

remember to change device block reference to your external sdcard
> 0 votes

---
Tags: permissions, mount
---


title: Why is fast charging unreliable?

text:
# Question
Title: Why is fast charging unreliable?
I have a variety of fast charge plugs and cables as well as an Anker power bank and a Nitecore NB10000. They support up to 3A @ 5V, 2A @ 9V and 1.5A @ 12V (i.e. 15W-18W). I believe the S10e is limited to 15W charging speed (1.67A @ 9V).

No matter what I use (even using the official Samsung plug and cable) on my S10e, the charge speed seems completely variable. I'm testing with both 3C Battery Monitor and an in-line USB power meter.

The fastest speeds I see at 5V are about 3W-5W with all power sources. Every now and then by plugging and re-plugging I can get it to switch to 9V and then it will charge at 9W. How is the charging voltage negotiated by the phone?

Another issue is every now and then the phone thinks it has moisture in the charging port (using exactly the same bone dry connector as the last 30 mins) and will be stuck like this every time I plug it in for 5 minutes. How is the moisture determined and how do I reduce the false positives?

# Answer
> 2 votes
This is Samsung's fault but also potentially the fault of the charging bricks.

Samsung implements outdated and disallowed proprietary charging methods "Qualcomm Quick Charge 2.0" respectively Samsung "Adaptive Fast Charge" instead of using the standardized USB-PD (Power Delivery) which is included in "Qualcomm Quick Charge 4.0".

These methods are slower and less reliable than USB-PD.

The issue is that some chargers also attempt to support disallowed proprietary charging protocols instead of supporting USB-PD as they should be according to the USB-C spec. For example Anker's PowerIQ3 technology cycles between PD, QC 3.0/2.0, Samsung, and Apple modes in an attempt to fool older phones to work with it. This doesn't actually work.

This means that when a charger is connected to a Samsung phone, it initially negotiates USB-PD first and charges at full speeds according to the spec. However the phone will then decide to check the D+ and D- lines for a proprietary charging method, and that causes the charger to drop out of USB-PD mode.

This is why you are getting slow speeds.

When the power brick and the phone implement multiple proprietary charging modes in addition to USB-PD everything goes wrong. Proprietary methods were disallowed in the USB-C spec for this very reason. If the phone simply stuck with the spec and implemented USB Type-C current, USB PD, and USB BC 1.2, you'd get consistent and correct behaviour all of the time and not have to wait hours for your phone to charge.

USB-PD should always win but the way the complicated proprietary charging mode switching Anker have built into these chargers you end up losing out. If the phone simply did not implement these disallowed proprietary charging methods and only used followed the proper spec you wouldn't have these issues.

---
Tags: charging
---


# Question
Title: Need later Samsung-specific posts to get a photo from dropbox to Gallery
Can't believe how hard this is and the lack of recent posts with current menu options. I have a photo modified on the PC, saved in dropbox and cannot set it as my wallpaper on my Samsung S8. Every help post found shows options not on current apps. Dropbox has very limited options, hold and press doesn't help, and select and download icons produce blank screens.

# Answer
> 0 votes
The current Dropbox does not "have limited options". It just may not be able to place exactly where you want, because of privilege concerns. I'll demonstrate how to get a photo to the "Downloads" folder, for example, where it can probably be able to be incorporated from whatever your wallpaper app is.

1. Start Dropbox and find the file within its folder hierarchy.
2. From its upper "hamburger" menu, which is short to start, scroll to "Export".
3. Choose the first option "Save to device".
4. In the upper left menu, it will have probably given "Documents" as a target.
5. From its down arrow dropdown, select your device name.
6. Scroll the device folders available to find your "Download" folder, select it.
7. Drill further or more if you like, finally, hit the "Save" button.

---
Tags: photos, downloading, gallery, dropbox
---


# Question
Title: 2016 Colornote saving manual backup in .doc format
I saw in Import data from ColorNote app? that I could open the `colornote.db` file that was stored on `/data/data/com.socialnmobile.dictapps.notepad.color.note/databases/` with a DB SQLite browser. I think it must be outdated because there is no databases folder but files and cache folders instead.

Therefore, I did a manual backup and I saw that the backup file was given a name of `(whatever).doc` extension. And when I opened that `.doc` file, I saw strange characters.

How can I open that file correctly?

# Answer
> 0 votes
Whenever you make a manual backup from your notes the app prompts a *master password* to protect and **encrypt** your backed up notes.

So that's why you see weird characters in that `.doc` file.

If you want to open it on your computer you have to find out which kind of encryption was used on it and with that master password you can decrypt it.

**EDIT**: Colornote uses AES-128 encryption.

# Answer
> 0 votes
It is worth noting that .doc and .backup files are identical to ColorNote. The current version's import function stupidly will not allow you to choose .doc files to import as a backup. Renaming my backup from .doc to .backup allowed me to successfully import an autosave, which as far as I can tell do not have master passwords associated with them.

---
Tags: backup, colornote
---


# Question
Title: How do I unpair my Bluetooth Headphones from my phone without access to my phone?
I've a complex problem.

My phone refuses to turn its screen on. Its touch screen has proven to still work, but it just simply refuses to open the screen.

I bought a new phone, but my problem consists of the fact that my wireless headphones are still paired up through bluetooth to the phone that wont open its screen anymore.

I dont remember how to navigate to the bluetooth screen in the settings with a black screen.

My problematic phone is an Allview P6 Qmax. My headphones are a Panasonic RPBTD5K.

I would like to know if its possible to use... Maybe a third party program, thats capable of unpairing my problematic phone from my headphones.

Or if my headphones have a command to unpair from what they're paired with.

Thanks.

# Answer
I've found that I can long press the power button on the headphones to unpair them from the phone. Thanks me.

Anyhow, if anyone here does know the answer to some third party program or some other solution to unpairing bluetooth devices from unresponsive phones, please comment for future visitors.
> 4 votes

# Answer
The headphones probably connect to the last device they were connected to. Just move your phone away a certain distance so that the headphones are out of reach for the bluetooth to connect. Then connect the headphones to a different device, to stop it from automatically connecting to your broken phone.
> 0 votes

---
Tags: headphones
---


# Question
Title: Badge icons disappear when clearing notification
I have a Samsung Galaxy S22. Overall I'm happy with it, but there is this one annoying feature. After I clear a notification, my badge icon which shows the nunber of unread emails for example disappears too. I'm using Nova Launcher Prime. But I think this is rather a Android / Samsung issue.

I've seen this asked in the past for older phones, but couldn't find any useful answers.

Can this be solved with a 3rd party app?

# Answer
> 0 votes
The main problem is because the notification counter reads directly from the notifications tray - even though in the app, you may have unread messages/notifications etc. It's the way Android handles things in most cases. You can get an app that can log your notification history, to see if you've missed anything. I've used Nova Launcher on lots of devices (Samsung,LG, Oneplus, Xiaomi) and they all behave this way. I cannot be 100% however, that ALL android phones do this.

---
Tags: notifications, notification-badges
---


# Question
Title: Is it possible to set Android app permissions globally or in batches?
On android 10, is it possible to select multiple apps and to set their access or security permissions all in one go, rather than having to select each app individually?

For context, I have a device with many rarely used apps, and Google keeps removing their permissions automatically.

The setting for telling android not to do this seems to be per app, not per device. The device is old and slow so going to each app individually is a chore.

# Answer
For each app, you have to change the permission in App settings, or you can change it overall based on the brands.

For that, follow https://support.google.com/android/answer/9431959?hl=en#zippy=%2Cautomatically-remove-permissions-for-unused-apps
> 1 votes

---
Tags: permissions
---


# Question
Title: Is there a way to call/invoke a (private) Java function in an app?
Is there some tool that can be used in ADB shell or something similar (without root possibly) that can invoke a function in the app, while it is running?

# Answer
> 5 votes
## Rooted device

On rooted devices private function in apps can be called quite easily (in most cases) using a tool like Frida. Frida is like a mixture of a "scriptable debugger" and Xposed framework with the difference that you don't have to deal with low-level code like regular debuggers and the disadvantage of Xposed that when changing your scripting code you don't have to reboot the whole phone.

Frida allows to write JavaScript code that is executed within the app and you also have an interactive shell for finding or creating class instances, calling functions and so on. Frida is like a Swiss-Army-Knife for reverse-engineering and third party app debugging.

## Unrooted device

On an unrooted device and an app that is a regular release app (not a debug build) you can't invoke a function within the app without modifying the app. For example you could try to decompile the app using apktool, modify the Smali code to execute the function e.g. if a certain UI button is pressed and recompile and resign the app with a new certificate. But be aware that Smali is a very low-level language - so even if you are familiar with Java and Android development modifying Smali code will be challenging

---
Tags: shell, java
---


# Question
Title: MicroSD card works fine on Mac and digital camera but Android phone wants to format it
I have two identical 64 gig microSD cards I bought three weeks ago. They both work fine in my Canon IXUS camera and they both work fine in my year-old M1 MacBook Air.

But only one works in my new Redmi 10C phone. The phone prompts me to format the other one.

I use the same USB C to USB A and USB A to microSD adapters on both. I've tried removing and re-inserting several times. I've swapped them from device to device several times. The same one consistently works on the laptop and camera and not the phone.

I have a hunch it may have been removed without ejecting. When I had Windows laptops they would prompt me to fix media that had not been ejected. I'm wondering if macOS does not do this. Perhaps because such media always uses a FAT format and not any Apple format, for maximum compatibility across devices. I don't have access to any devices at the moment besides these three.

Is there perhaps some way to get a more detailed technical diagnostic about what could be wrong with the microSD? Using either the phone or the Mac?

# Answer
I found a counterintuitive solution!

I tried to check and repair the microSD cards' extFAT filesystems on my Mac using the commandline tool `fsck_exfat`. I was surprised that this failed and it also failed on my good microSD card which resulted in both cards now not being recognized by the phone though both still worked perfectly on the Mac and the camera.

While hunting for answers on why the attempts to fix the exFAT failed on the Mac and whether I could do anything like `fsck` on a non-jailbroken Android, I came across some comments that fsck is not necessary on modern Android because the system checks all drives on boot-up.

This gave me the idea of powering off the phone, connecting the SD card via the usual pair of adaptors, then powering the phone back on.

This actually worked and both cards are now working 100% on phone, camera, and laptop.
> 1 votes

---
Tags: sd-card, file-system, formatting
---