title: Can't install CA certificate

text:
# Question
Title: Can't install CA certificate
We're trying to set up a new VPN infrastructure and have hit a roadblock with Android. For some reason we are unable to install the corporate CA that's issued the VPN server certs.

My LineageOS 18.1 (Android 11) test device says "Failed to install certificate" if I try installing with Certificate Installer from the file store. It says nothing at all if I try to install from within the Settings app.

System logs give me this parse error, which makes no sense. This is the same PEM-encoded X.509 certificate used with no problems in almost 100 Linux servers as well as Windows, macOS, and iOS VPN clients:

```
03-17 09:33:07.388  3319  3338 I MediaProvider: Using lower FS for /storage/emulated/0/Download/r1_root_ca.crt
03-17 09:33:07.400  1046  1764 I ActivityTaskManager: START u0 {cmp=com.android.certinstaller/.CertInstaller (has extras)} from uid 10113
03-17 09:33:07.403   577   577 I android.hardware.power-service-qti: Power setMode: 5 to: 1
03-17 09:33:07.414  1046  1764 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (1416012)
03-17 09:33:07.437  8437  8437 D CredentialHelper: # extras: 1
03-17 09:33:07.437  8437  8437 D CredentialHelper:    CERT: 2706
03-17 09:33:07.438  8437  8437 W CredentialHelper: parseCert(): java.security.cert.CertificateException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0c0000be:ASN.1 encoding routines:OPENSSL_internal:WRONG_TAG
03-17 09:33:07.440  8437  8437 D CertInstaller: Attempting credentials installation, has ca cert? false, has user cert? false

```

Are there any special requirements that Android has for CA certificates that I'm not aware of? Are there particular certificate elements that cause problems?

# Answer
> 2 votes
Figured it out; we have always left the full OpenSSL output in the certificate file, secure in the knowledge that clients would only parse the contents between `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`.

Apparently Android is the exception to this rule. We removed all the human-readable data, and the certificate was processed successfully.

---
Tags: certificates
---


# Question
Title: How to open some app links in a non default browser
This is what I want to achieve (on Android):

I want all links that are not otherwise linked to an app to open in my default browser (Samsung Internet)

This is the default behaviour and how it currently works.

I then want specific types of link to open in Firefox browser. For example, I would like to register youtube.com app links to open in Firefox, not My default browser.

Is there some way to achieve this?

Is there an app I can install that will allow me to set it to open arbitrary app links, and then forward those to another application (in this case, Firefox)

I have found two apps, "better open with" and "open link with" which sort of achieve this by registering themselves as a browser, and if you then set them as the default browser, they then forward all links onwards to the browser of your choice using some form of rules.

What I would like to do is basically the same thing but without having to register another app as the default browser. Instead I want to get only specific app links to open in my non-default browser.

# Answer
From what I've found, you have to disable Chrome in order to not have YouTube open the tab in the YouTube app.

From other people on Android exchange, they've said they could do this on all other apps, except for YouTube.
> -1 votes

---
Tags: default-applications
---


# Question
Title: Minimal working vibration time on all Android devices
I'm developing a game, I do offer an optional setting with periodic vibrations for a specific game mode. To make this work well, I need a very short vibration.

On my device, 20ms vibration duration works very well but on other devices, it appears to don't vibrate at all, while 50ms works but is too long for my preference. My guess is that some devices have a specific minimum time.

So my question: What is the lowest vibration duration which will work on every device?

# Answer
> 1 votes
**There is no standard for the lowest vibration duration because it's not in the Android specification.** Moreover, **there is no requirement for every Android device to have any vibrators at all.**

According to the Android 13 Compatibility Definition, one of the important thing about vibration is:

> ### 3.8.3.1. Presentation of Notifications
>
> If device implementations allow third-party apps to notify users of notable events, they:
>
> * \[C-1-1\] MUST support notifications that use hardware features, as described in the SDK documentation, and to the extent possible with the device implementation hardware. *For instance, if a device implementation includes a vibrator, it MUST correctly implement the vibration APIs. If a device implementation lacks hardware, the corresponding APIs MUST be implemented as no-ops*. This behavior is further detailed in section 7.

<sup>(Italic emphasis added)</sup>

Other than that, each device is free to determine how the vibrations/haptics are implemented since the specification doesn't set the minimum duration.

Related on Stack Overflow: What is the shortest duration Vibrator.vibrate() can be called with where the device will still vibrate?

---
Tags: vibration
---


title: FastHub for GitHub

text:
# Question
Title: FastHub for GitHub
I've used the FastHub for GitHub Android app in the past, but can no longer find it on the Google Play store. Has it been replaced by the GitHub app for Android?

What are the differences, or any changes, between the two apps (if any)?

Why has the old app been delisted?

Thanks.

# Answer
FastHub Android app was an OpenSource app hostet on Github. The whole repository had been archived (thus discontinued in Spetember 2021). The project does not contain any description why it was discontinued. So we can only assume that the author lost interest on it or something else happened.

But as FastHub is open source it was not lost. Looking at the "Network Graph" (see "Insights" -\> "Network graph") of the project you can see that multiple forks exist, e.g. FastHub-REFastHub-RE(vival) by LightDestory, OctoHub by HardcodedCat and OctoHub by vaginessa.

It seem like OctoHub by HardcodedCat is the main project, unfortunately it has no binary releases, thus the only way to get the app seems to check-up the source code and compile it your self (requires Android SDK).
> 0 votes

---
Tags: applications, google-play-store, developer-options, open-source, development
---


# Question
Title: Copying a folder from Google Drive to Google Drive
How do I copy a folder in Google Drive for Android or Google Drive via Google Chrome for Android?

I tried long pressing the folder but I cannot select the folders. I can only open them and view their contents.

# Answer
> 3 votes
**It is not (yet) possible to copy and paste a folder on Google Drive.**

The Google Drive Help - Organize your files in Google Drive for "Computer" mentions the following regarding copying:

> ### Make a copy of a file
>
> **Important:**
>
> * \[...\]
> * You can’t copy folders, only files.
> * \[...\]

Thus, it has to be done manually:

1. Create a new folder and input a name
2. Navigate to the folder *to be copied*
3. Select one or more files to copy
4. Select "Send a copy"
5. Choose the "Drive" app
6. For "Location", navigate to *the new folder* and select it
7. Tap "Save"

---
Tags: file-management, google-drive, folder-organizer, folders
---


# Question
Title: Android Chrome browser - how to make it always open to BLANK page? And new tab open to blank as well?
When opening Chrome browser on Android (brand new Pixel 2 XL with no root or customization and with all latest updates), it goes to a cluttered page with the Google logo and a bunch of nonsense I'll never use. How do I get this to be BLANK when I open it, and that goes for new tabs as well?

# Answer
Doesn't seem to be anyone out there who can answer this, so I'll post my workaround. Make a home screen shortcut to "about:blank". Using the Nova launcher, you can change the name to "Chrome" and the icon to be identical, and just use that to launch the app.

Unfortunately it still doesn't do anything for new tabs though. I mainly use Adblock Plus browser because Chrome is ridiculously notorious for pushing Google content, and will continue to do so until they add more options for control.
> 4 votes

# Answer
You can use kiwi browser and install Automa extension
> 1 votes

# Answer
Here's how to set it so that when you open chrome, it should go to a blank page.

Open chrome, press on the three dots found in the top right of the screen, go to 'settings' then, click on 'home page' enable the home page option, and change the home page URL to `about:blank` just that, no www or anything.

This way, when you open chrome and you don't have previously opens tabs, you will get a blank page instead of the default one.

According to AndroidPolice there is no way to have the new tab open in a blank page, but he does mention some workarounds that might suit you.
> 0 votes

# Answer
I finally figured it out. Even if you have the default website set, when you open Chrome, it gets stuck on another website that opens up.

* If you open Chrome, you have to hit the "house shaped" button on the upper left and that will take you to the home page.
* In order to get your Chrome to open to the home page, you need to delete all of your tabs. To do this, make sure you are on the home page, and then click on the box on the upper right side. There should be a number in that box, that is the number of tabs open.
* Then click on the hamburger symbol (a line of 3 dots on the upper right) and you will see "close all tabs". You will only see this after clicking the tab box first and then clicking the 3 dots.
* Now your Chrome will open to your default home page.

I was racking my brain trying to figure how why it wouldn't open to default. It's the multiple tabs open!
> 0 votes

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


title: USB debugging from fastboot

text:
# Question
Title: USB debugging from fastboot
my son's Moto G7 Power froze, rebooted, and won't get past the blue android screen. I'm preparing to do a reset but want to back up beforehand. RSA won't connect as we haven't previously enabled USB debugging on the phone. Any ideas how I can do this, since I can't get to the menu to enable?

Thanks in advance.

Hamptonoid

# Answer
Thanks for the help. In the end I forced the factory reset through RSA and fortunately Google had backed up the profile, so once I'd connected to the correct account it restored it all. I didn't even realise that this was a thing (I'd assumed I'd just get photos restored). Cheers
> 0 votes

---
Tags: usb, factory-reset, fastboot, reboot
---


# Question
Title: Unlocking (Xiaomi) Redmi 9A without a Windows PC
Xiaomi provides a tool for unlocking their phones called "Mi Unlock" but only runs on a Windows PC. I only have access to Mac (both Intel and ARM64) and Linux. I don't have Windows.

I already enabled USB Debugging and OEM Unlocking. I can get the device with `fastboot devices` but almost no other fastboot command works.

So what are my options?

* Can Mi Unlock work on an emulator like VirtualBox? If so, what is the recommended Windows version?
* Does anyone know if Xiaomi has a Linux source or binary of the Mi Unlock tool?
* Also, does anyone know why Android Platform Tools don't work? Why can't I just use the command line `fastboot oem unlock`, instead of their specific app?

# Answer
> 2 votes
This looks a bit advertising, but the next best tool for unlocking Xiaomi phones along with Official Mi Unlock is that Unofficial XiaoMiTool V2. It can run on Windows, Linux and Mac OS. XMT2 comes with built in bootloader unlock tool. Works the same as the official one.

---
Tags: xiaomi, bootloader-lock, redmi
---


# Question
Title: Get full log of a whole day from Android
I know of the method of using `adb logcat` to receive logs from an Android device. However, the logs I receive are, at best, only 1 hour old. I need the logs for the whole day, however.

Is there a way for getting the logs of the whole day, or am I restricted to this?

# Answer
Android does not create persistent logs. I assume because at the time Android was developed flash memory was small, expensive and the problem of flash were out because of too many writes lead to the decision to not use persistent logs in Android. So you only have logcat at your service unless specific apps write their own log when active.

## logcat

logcat uses a cyclic buffer so the time span the logcat messages cover depends on the number of messages and of course the buffer size used by logcat.

You can change the logcat buffer size in Android developer options menu. The maximum setting is for example on my phone 8MB.

As Android has no other logs this is the your only chance on an unrooted device or without additional hardware.

## With root

On rooted phones you could use an app to access all logcat messages and save them periodically. I don't know such an app but a Termux script running with root permissions this may be possible without much programming.

## Using external hardware

There are micro computers in USB stick format which could be equipped with a Linux system and adb components so that you could carry it with you and use it to extract and save logcat messages every time you connect it to your phone.
> 1 votes

---
Tags: samsung-galaxy-s, 9.0-pie, logging
---


# Question
Title: LINE Messenger backup/restore under microG?
**NOTE**: I see the following similar discussion here: How to restore Line messages from Titanium Backup? Although that discussion offers a suggestion that might partially apply to what I want to ask here, it does not confirm the validity of that suggestion. Therefore, it does not actually answer my following question:

I'm thinking of switching to `microG`, but a stumbling block is `LINE Messenger`. I know that it can run under `microG`, but I also know that it can't normally back up and restore `LINE Messenger` chat history without access to `Google Drive`.

I have an idea of how I might be able to bypass this restriction, but I'm wondering if it actually would be feasible. Here's my idea ...

(1) Under my current non-`microG` Android OS, take a backup of `/data/data/jp.naver.line.android`

(2) Install `microG`, and then install `LINE Messenger`.

(3) Restore the previously backed up `jp.naver.line.android` to `/data/data` under the `microG` OS.

(4) Take periodic backups of `/data/data/jp.naver.line.android` as I use `LINE` under `microG`.

(5) If i ever want to restore my `LINE` history under `microG`, repeat step 3 with the latest `jp.naver.line.android` backup.

A variation might be to only back up and restore one or more appropriate `sqlite` databases that are resident within `/data/data/jp.naver.line.android`, instead of that entire directory tree.

I'm willing to experiment with this approach, but before I do, I'm wondering whether anyone has tried anything like this with `LINE Messenger` under `microG`.

Thank you in advance for any thoughts and suggestions.

**UPDATE**: Thanks to @Andrew-T for the pointer to the other discussion that I missed, which indeed confirms that backup and restore for the database under `/data/data/jp.naver.line.android` can actually be done.

I'm just wondering if anyone has actually gotten something like this to work specifically under `microG`. I'd like to switch to `microG`, but it would give me more confidence to take that step if anyone has already been able to do this in order to get full `LINE` functionality under that OS, including backup and restore.

**FURTHER UPDATE**: That other discussion is more than 7 years old, and sadly, it turns out that the information is outdated. The `/data/data/jp.naver.line.android/databases` directory that is referred to in that article doesn't contain the database that is mentioned. Furthermore, I checked each and every other database in that directory, and none of them contain any chat history.

I also checked all of the other files and directories under `/data/data/jp.naver.line.android`, and none of them contain any chat history, either.

This is consistent with `LINE`'s decision a while ago to stop allowing local-storage backup and to make Google Drive the only location to where chat history can be backed up and restored from. In conjunction with that decision, `LINE` seems to have gotten rid of all local chat history data from its device-resident databases.

So, it looks like I'm out of luck regarding non-Google-based backup and restore for `LINE`.

However, I'll keep this question open for a while longer, in case it turns out that someone knows of another way I can manage Android-based `LINE` backups and restores without Google being in the picture.

**PS**: Hmm ... I wonder if it would be possible to create a fake "Google Drive" service which looks just like Google Drive to `LINE`, but which actually just manages a data store of my own.

I'm going to look into this and report back if I have any luck with this idea.

# Answer
I figured out a workaround!!

I have an old Mac laptop. There is a Mac desktop version of `LINE Messenger`, and that version does allow chat history backups and restores.

So, I can run `LINE` under `microG` and just do the chat backups and restores on the Mac.

Also, I can run an `Automator` script on the Mac periodically when it's idle in order to start `LINE`, and then to issue the appropriate mouse clicks to go to the Settings and initiate the chat backup. This will allow me to keep the `LINE` chats backed up on a regular basis.

Also, I'm guessing that chat backups and restores will probably also be available on the `Windows` desktop version of `LINE`, in case anyone has a `Windows` box and wants to try the same thing.

This is probably the closest I can come to what I was originally asking for here, and it's an acceptable Answer to my question.

Now, I no longer have any obstacles to starting my official move to `microG`.

**PS**: If I want to get fancy, I could write a script on the Mac to initiate the `Automater` script that I described above, and I then could create a `Tasker` shortcut on my `microG` device to `ssh` to the Mac and invoke that script. This way, I could actually initiate the `LINE` chat history backup from my `microG` device.

And I could handle `LINE` chat history restores in these same ways.

**PPS**: And it turns out that the Mac `LINE` implementation optionally allows a proxy to be used between `LINE` and the backup/restore host. If I want to get ***really***, ***really*** fancy some day, I might be able to write my own custom proxy server which emulates a connection to `Google Drive`, but which actually just saves the chat history in my own, personal data store.

That is a longer term project for some possibly never-arriving time in my future when I actually might find myself with a lot of spare time.
> 0 votes

---
Tags: line, micro-g
---


# Question
Title: Is there a way to disable the inactivity screen lock?
And I don't mean the Screen Timeout or the actual phone lock.

I have a Samsung Galaxy A8 running Android 9, and since I found out it hasn't been updated since 2018, AKA before OneUI, I decided to do it.

But since that update, when I don't touch it for a bit, LESS than the ten minutes I set the screen timeout to be, the phone screen get dimmer and lock itself with a 'drag to unlock' message.

It is annoying as I am using a third party program to help me grind in a mobile game, and what it feels like every five minutes I need to unlock the phone screen so that it can keep working. The screenlock must be new because it didn't happen before I updated it. I tried to see how to turn that off, but all I find is the Screen Timeout and the phone's actual lock, same for google searches. I can't find ANYTHING on this screen lock.

Hell, even the 'Don't go to sleep while plugged it' dev setting doesn't stop it.

Edit : Added a picture to show what I am talking about.

# Answer
> 0 votes
The thing that cause this screen to appear is Game Booster. I turned it off and I am on my way to uninstall it forever.

Here's the link to a reddit post related to how to turn this thing off.

---
Tags: lock-screens, samsung-galaxy-a8-2018, android-9
---


# Question
Title: How to recover files from a healthy microSD card in Android?
I accidentally deleted important documents (about 100 PDFs) that weren't backed up yet from a 64 GB microSD card, which is used as the primary storage in my unrooted Android 9.0 smartphone. The microSD card is not encrypted and quite new, but for some reason, I've never been able to access the card from *any* PC when plugged into a card reader - only through the smartphone or when the phone is connected to the PC via USB and only using the MTP protocol. Under Windows, I always get the error message that the card needs to be formatted first.

After the accidental deletion, the microSD card was immediately removed from the phone, so I'm fairly certain that the files are still "healthy". I hope Android and SD cards work the same way as other OSs and common file systems in that normal deletion does not physically remove the data from the storage device, but only from the file table (please correct me if I'm wrong).

QUESTION: **How can I restore my deleted files? Also, is there a way to get RAW access from a PC?**

Any idea why I can access the card only via the MTP protocol from Windows?

For hard drives/storage devices accessible from a Windows or Linux PC, I've been using several recovery programs with mixed success in the past, e.g. Piriform's Recuva, CGSecurity's PhotoRec, and recently also RecuperaBit. I do have the Android SDK platform tools installed and have used ADB before to uninstall apps etc. if that helps. But I have zero experience with this data recovery problem on Android - and I'm also confused why e.g. Windows won't read the card's contents when connected via a card reader.

---

*Small correction:* My poor choice of words seems to have caused some confusion. By

> used as the "primary storage"

I didn't mean to say that Android is running the system partitions (`boot`, `system`, `data` etc.) on the SD card instead of the internal memory. Rather, all apps are set to store their data on the SD card if possible in order to prevent irretrievable data loss in case of a phone brick. This is due to very bad past experiences with Android's security architecture, which is basically a trap waiting to lock users out of their own data.

Furthermore, I can confirm that SD card encryption is an optional setting in my Samsung's Android 9.0 and has **not** been turned on. Hence, the SD card ought to be unencrypted!

Sorry for not being clearer.

---

Here is a screenshot of DMDE showing relevant partition information:

# Answer
> 2 votes
Most likely issue your PC doesn't see the SD card is your SD card reader doesn't support SDXC... 64GB and larger cards require a reader capable of SDXC, where anything smaller capacity only requires SD (up to 2GB) or SDHC (SD version 2.0, up to 32GB) to work. Many older readers or ones built into older equipment only support SDHC, and even though SDXC (SD version 3.01) became a standard in 2009, it wasn't common in readers for many years, even into the mid to late 2010's many budget readers didn't support SDXC.

Getting a new card reader that supports SDXC would likely resolve this issue, something line Kingston FCR-HS4 or similar device would likely do the trick.

---
Tags: external-sd, sd-card, data-recovery, restore, mtp
---


title: Set per-app language with adb shell?

text:
# Question
Title: Set per-app language with adb shell?
I was looking forward to using per-app languages with Android 13.

However, my OnePlus 8T does not feature the necessary settings item for that on OxygenOS 13.

Is it possible to set a different language with an adb shell command?

`adb shell settings get global settings_app_locale_opt_in_enabled` returns `null`, so I'm not sure if it's even implemented at all.

Smartphone is rooted with Magisk.

# Answer
9R user here. my native lang is ua, but I mainly use en. wanted to set ua for one particular app and also was seeking for this option. it seems that oneplus turned it off

https://www.reddit.com/r/oneplus/comments/zfgoy5/just\_updated\_my\_op9\_pro\_to\_oxygenos\_13\_but\_cant/

```
$ ~/w/own [255]> adb shell settings put global settings_app_locale_opt_in_enabled false

Exception occurred while executing 'put':
java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:2562)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1562)
    at com.android.providers.settings.SettingsProvider.insertGlobalSetting(SettingsProvider.java:1516)
    at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:495)
    at android.content.ContentProvider.call(ContentProvider.java:2511)
    at android.content.ContentProvider$Transport.call(ContentProvider.java:525)
    at com.android.providers.settings.SettingsService$MyShellCommand.putForUser(SettingsService.java:384)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:280)
    at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
    at android.os.ShellCommand.exec(ShellCommand.java:38)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:1073)
    at android.os.Binder.onTransact(Binder.java:901)
    at android.os.Binder.execTransactInternal(Binder.java:1331)
    at android.os.Binder.execTransact(Binder.java:1268)
$ ~/w/own [255]>

```
> 1 votes

# Answer
just attempt to delete the setting and create it afterwards.

delete settings:

```
adb shell settings delete global settings_app_locale_opt_in_enabled
Deleted 0 rows

```

create it and assign the value:

```
adb shell settings put global settings_app_locale_opt_in_enabled false

```

confirm it's in place:

```
adb shell settings get global settings_app_locale_opt_in_enabled
false

```
> 0 votes

---
Tags: settings, languages, oxygenos, android-13
---


# Question
Title: keeping apps and data through LineageOS upgrade
I have a Samsung Galaxy Note 3 and I am in process of upgrading LineageOS from 16 to 18. The instructions indicate to wipe the data partition in step 8. Will this remove my installed apps and data? I know how to do a backup and restore using adb but I wondered if there is a way to upgrade lineageOS and keep the apps and data without backing up and restoring.

# Answer
> 2 votes
According to the changelog for LineageOS 18,

> Please note that if you’re currently on an official build, you DO NOT need to wipe your device, unless your device’s wiki page *specifically* dictates otherwise, as is needed for some devices with massive changes, such as a repartition. (emphasis mine)

While the Instructions for upgrading the Note 3 (hlte) as mentioned in the original question specifically says

> 8. Wipe your data partition (this is usually named “Wipe”, or “Format”)

So I think the answer is definitively **No**

As additional evidence, I tried an upgrade to 18.1 on a second backup phone I have without doing the data partition wipe and it will not boot properly.

So for those upgrading a Note 3 (hlte), please do a backup of everything you want to have after the upgrade. I use ADB to do this but many people use a custom recovery to do a nandroid backup

---
Tags: updates, lineageos, data
---


# Question
Title: How to view the year of a date in Google Calendar for Android
I would like to know, something very easy. How do I figure out the year of a section of the scrollable list of days I am viewing in the Google Calendar app for Android?

Here is a screenshot.

>

I don't see the year anywhere.

Any ideas?

Thanks.

# Answer
**Google Calendar only displays the year *when it is not the current year.***

Compare the following screenshots when it is not the current year (previous year and next year)

with when it is the current year.
> 1 votes

---
Tags: google-calendar, accessibility
---


title: How to delete file completely?

text:
# Question
Title: How to delete file completely?
It's not a duplicate, because this question isn't about shredding files that already deleted, it's about deleting them in the first place in a way that recovery software wouldn't find it.

I delete photos, but this software FindMyPhoto still recovers them. I think photos are really deleted, and those that restored are thumbnails, because when I restore them they doesn't look that sharp. I delete photos through the Gallery application. I tried to clean Gallery app cache, that doesn't help.

I tried to use firmware (preinstalled by manufacturer) that cleans Android of junk (like cache etc), but the application above still finds it. And I don't know how to completely remove the files. It's like I've got a device with undeletable files and starting really hate Android (it's really betrayal and annoying behavior).

So if you could recommend some application may be (preferably from a well known company or free software, like those from F-Droid repository) I would appreciate it. Thanks.

# Answer
MIUI Gallery creates thumbnails in

```
/storage/emulated/0/Android/data/com.miui.gallery/files/gallery_disk_cache/full_size
/storage/emulated/0/Android/data/com.miui.gallery/files/gallery_disk_cache/small_size

```

Some versions of MIUI Gallery do not even delete thumbnails when pictures are deleted.

Unlike for user apps MIUI does not provide the Clear Data button for system apps. The Clear Cache button does not wipe app data, therefore one need 3rd Party app to Clear Data (Link2SD can do it)

Once you deleted files from

```
/storage/emulated/0/Android

```

such apps like FindMyPhoto and similar stop working, as they don't really undelete files.
> 0 votes

---
Tags: file-system, files, delete, cleanup
---


# Question
Title: Disable location indicator on network access permanently on LineageOS/Android 12
The status bar location indicator on Android 12 also gets shown for network and connectivity access.

This results in it being visible every few seconds on my phone. For me, that defeats the purpose of a location indicator, as it becomes normal to see it popping up every so often.

I've found that the developer options contain an option to disable that exact behavior.

The problem is that this option keeps resetting itself all the time. I would like to keep this disabled or find a way to periodically disable the option, e.g. by Tasker.

Does anyone have an idea to keep this disabled?

If it helps somehow, my phone runs LineageOS, is rooted, has Xposed installed, and I have a license for Tasker. If there is some way to change the developer setting via a script, I am open to it.

# Answer
> 1 votes
You can use `adb shell` (or Tasker/... with root) to disable the location indicator:

```
cmd device_config put privacy location_indicators_enabled false default

```

It won't be gone completely, but displayed as normal icon like the Wi-Fi or cellular indicator.

If you also want to disable the camera and microphone indicator use:

```
cmd device_config put privacy camera_mic_icons_enabled false default

```

It's not persistent though and needs to be applied in once in a while (I set it to once an hour)

---
Tags: lineageos, notification-bar, developer-options, location-services
---


# Question
Title: How do I add a Google Assistant command to a button on the homescreen?
I'd like to add a widget/shortcut/whatever to the home screen that would allow me to execute a google assistant command as if I had said it.

For example, "Turn off the Livingroom TV".

This would be extremely useful, as it would allow me to dedicate a page in my launcher to home automation tasks. Sometimes it's not reasonable to use my voice (baby on lap for example) and while I'm aware I can hold the home button then click the keyboard icon, I was hoping there was a quicker/easier way.

Although I'd prefer a general answer, I'm using an LG V30+, running Android 8.0.0 if you have any more specific ideas.

# Answer
> 4 votes
Since asking this question, Google has release an app called Action Blocks which does literally exactly what I'm asking for in this question.

With it, you can create "actions" which are either from one of the predefined examples or you can type in arbitrary text which would be parsed as if you typed (or said) it into google assistant directly. These actions can be attached to the homescreen as widgets.

It's not the fastest application in the world, and it's still a bit buggy at time of writing, but it's also only about a week old so I imagine it'll get more solid over time.

---

Another new alternative that has come to the surface since writing this answer, is the Home Assistant integration. Those with a technical inclination will likely prefer this method. For me, it's been vastly more reliable than google's action blocks and far more customisable and was easy to set up seeing as I already run a home assistant server (though admittedly not as easy as action blocks).

# Answer
> 1 votes
There is Assistant Shortcuts app on Google Play. I haven't tried it myself, but I think it is a possible solution to your request.

# Answer
> 0 votes
If you create a routine in the Google Home app, you can then add that routine to your home screen on your device. No need for extra apps other than the official Google Home app.

---
Tags: home-screen-shortcuts, google-assistant
---


# Question
Title: How to make a full local backup of my phone
I'm trying to find a way to have a full backup of my phone (apps, settings, data, life universe and everything...) but from what I read on the internet tools such as Titanium and Helium backup are not working anymore on new phones (mine is running on Android 12) so I didn't even bother, also I can't use methods that require rooting since that will void my warranty and the phone is only few months old.

I tried running this command:

```
adb backup -apk -obb -shared -all -system -f fullbackup.ab

```

But after a while it stops (at around 17-19 GB, always a different number), creating an incomplete backup. The first time after a backup I tried extracting it but the process exited saying it was an incomplete archive.

I read that this might be cause by active apps, I tried closing them but it didn't help (guess it's some system app), I also found that sometimes it might be caused by not setting a backup password, but that didn't work either

So I would like to know if there's either a better way to fully backup my phone in 2023, or how to make `adb backup` work.

Thanks

# Answer
There is no method to make a full backup of android smartphones. It is always only a partial backup, be it `adb backup` or google drive.

I recommend to manually backup your files from ADB:

```
adb pull -a /sdcard

```

You can backup apps with Google as explained here. Also Swift Backup or Google One can backup app data of some apps.

For `adb backup` it's important to know only apps that allow it in `AndroidManifest.xml` can be backed up with ADB.

You can split backup into packages. Only backup apps that you know. you can try `list_app_labels.sh` or list packages from cmd line:

```
adb shell pm list packages -3
adb shell pm list packages -s

```

for example

```
adb backup -f chrome.ab -apk com.android.chrome

```

AFAIK Helium can do this, but you can also try another automated script for splitting backup into packages.

**Beware:** even in case app data is backed up for single packages, it's not guaranteed it will restore on other devices.
> 6 votes

---
Tags: backup, android-12
---


# Question
Title: Google Fit not tracking/importing activities accurately
I've recently noticed that the Google Fit app has been *extremely* off when recording OR importing activity, but especially importing. I tracked several walks recently where my watch (Fossil Q Explorist) would report almost exactly with another app on my phone (Strava) in terms of distance, time, and steps (see screenshots).

However, when this activity is imported into Google Fit (in this case, presumably from the watch, but it's occurred just with Strava imports as well), the distance and step counts are *much* lower, roughly 60% or less in some cases. Does anyone know what the cause is or how to fix this?

I wouldn't be so miffed, but

1. This is a widely used application run by a company with plenty of resources
2. I can't find bunches of other people with this problem
3. Google Fit is my only tracking option to earn $$ from my health insurance, so taking 15k steps to earn 10k is pretty annoying
4. Google Fit has even retconned itself and changed activities again afterward (screenshot included)
5. I feel like I've tried everything, including:
    * uninstall/reinstall the app
    * sign out/back in
    * wipe data
    * enable all permissions for Google Fit
    * track with other apps to ensure accuracy
    * import from another Google Fit device (watch)

Pixel 6 Pro, Android 13, Fossil Q Explorist (most recent update)

|  |  |  |
| --- | --- | --- |
| **Strava** | **Google Fit (almost immediately after finishing activity)** | **Google Fit, viewing the same activity the next day** |

|  |  |  |
| --- | --- | --- |
| **Fossil Q Explorist 1** | **Fossil Q Explorist 2** | **Fossil Q Explorist 3** |

# Answer
> 1 votes
I did find a solution, but it relates specifically to this situation in the fact that it *requires you to be using a smartwatch or other tracking device or that you track all activity through another app* to track your fitness data.

The idea here is you **don't** want Google Fit to do any automatic tracking, as it seems that's where the inconsistencies are introduced. To do this, you open the Google Fit app, open the "Profile" tab (with the icon of a person at the bottom right), tap the "Settings" gear, then disable "Track your activities."

After this, you can use other apps (Strava, Fitbit) that feed data into Google Fit and Fit will assume their data is correct since it can't overlay its own incorrect data on top.

More useful: you can still use the Google Fit app on a wearable (smartwatch, Wear OS), as this activity will show correctly within the Fit app on your phone now and match what you tracked it to be on your wearable.

In my specific situation, I ended up moving completely to the Samsung Health tracking app on a Galaxy Wear 4 Classic, then using Health Sync (3rd party) to sync the activity to Google Fit. I tried using Google's Health Connect Beta, but Samsung Health doesn't sync steps yet with this service.

---
Tags: gps-tracking, fitness, google-fit, wearable
---


# Question
Title: Increase brightness when display is too dark to recognize anything
Any mechanism that **doesn’t require seeing the display** would be good. When I’m outside under sun and the phone brightness is at low level, I simply can’t recognize anything. The only currently feasible way is to remember where the slider will show up and operate it blindly. Better would be if it could be done by using

* the hardware buttons,
* swipe gestures,
* motion-based gestures or
* voice recognition

to name a few examples. It only needs to **set brightness to maximum** as any finer adjustment can be done using the slider as a subsequent step.

This question might be related to Make screen brighter when phone is raised? though (given that the question didn’t receive any response in the 4 years) I’m making the requirement broader (not limited to “raising the screen”) in the hope there might be a solution with a different approach.

The phone in question is Google Pixel (2016, upgraded to Android 10).

# Answer
You can try to use Edge Gesture to set a gesture to increase/decrease the screen brightness. Download the app, give it the necessary permission.

Set `Pull and Slide` (i.e. for the left edge) to `Brightness control`.

It is possible to combine the app with automation apps such as Automate or Macrodroid if you really want to create flows or macro that set the brightness to 100% immediately via gestures.

**Disclaimer:** I am just a user of the aforementioned apps.
> 1 votes

---
Tags: screen-brightness
---


# Question
Title: What are these buttons on the edge of my Pixel 5 / Android 13 screen and how do I remove them?
There is a button menu on the edge of my stock Pixel 5 / Android 13 screen that do nothing and are constantly in the way, but I can't figure out how to make it go away. Probably the same problem that is preventing them from launching an app is also preventing configuration.

I don't know what these buttons are called, so I haven't been able to search the web for a solution. So here is a screenshot. The buttons are on the center-right edge of the screen:

The buttons are the icons of apps I have installed. They show up not just on the home screen, but on every screen of every app. I can move the position of this menu around the screen by dragging it, but it is otherwise inert.

Is this an add-on app that you recognize, that I might uninstall to make these go away? Thanks!

# Answer
> 10 votes
**Those are *accessibility shortcut* buttons.** They are used to quickly *toggle* (i.e. switch off/on) the related accessibility features.

To configure these, go to the Accessibility settings:

1. Open Settings
2. Navigate to Accessibility
3. Tap the related accessibility app (e.g. 3rd-party apps under "Downloaded apps", otherwise scroll below for built-in accessibilities)
4. Tap the shortcut switch to show/hide the shortcut button

---
Tags: menu, android-13
---


# Question
Title: How do you set gboard as the default spell checker in Android v12
I have a Samsung S22 running Android v12 on it. I can't seem to set the default spell checker as GBoard. There does not seem to be an option to change this from Samsung Keyboard to GBoard. The moment I click on Samsung Keyboard, it seems to take me to the settings page for the Samsung Keyboard.

# Answer
Based on this article from Android Police, it seems you may be able to set Gboard as the default during the installation of the app.

If you've already installed it though, Samsung specifies these steps to change your default keyboard (and therefore spell checking service):

Open the **Settings** app and select **General Management**.

From there, select **Keyboard list and default**, then tap **Default keyboard**.

There, you should see Gboard listed and be able to select it.
> 0 votes

---
Tags: samsung, gboard, spell-check
---


# Question
Title: How to browse, an organized, textual list of commands that can be issued to Google Assistant
I was wondering whether there is any way (my guess, is that this would be almost like an exhaustive dictionary) to go though a textual list of all the Google voice commands you can issue to the Google app or to the Google Assistant app.

Where can I find such a list? Can I find one on the system (perhaps, even within, the Google Assistant app itself, or, alternatively, within a special (related), app on the system)?

Thanks

# Answer
> 1 votes
Because of the nature of the Google Assistant, there is no exhaustive list - it tries to determine the meaning in any request and fulfill it as best as it can. That being said, the Google Support page has a good list of basic requests that can be fulfilled. Specifically relevant to an Android phone, they provide this list:

# On Mobile Devices (phones and tablets)

### Communicate

* Calls: Call Mom. Call Bob on speaker phone. Make a video call
* Duo: Call Mom. Call Living Room Smart Display.

### On phones only:

* SMS: Text Mike "See you at 5."
* Emails: Send an email.
* WhatsApp: Send a WhatsApp message to Sam.

### Get around your device

* Change settings: Turn on WiFi. Increase the volume. Decrease the brightness.
* Control your phone: Turn on the flashlight. Take a photo.

Note: Whether Google Assistant can take a photo for you depends on your device manufacturer.

Find things in your apps: Search for tablets on Amazon. Search for Kanye West on Twitter.

* Find photos: Show my pictures of the beach.

### Plan your day

* Alarms: Set an alarm for 7 a.m.
* Reservations: Make a reservation for 2 at \[restaurant\] on Friday.

### Get things done

* Shopping: Add cereal to my shopping list.
* Donate: Donate $5 to \[organization\].

Tip: To do two things at once, connect two requests with "and." For example, you could say "Hey Google, turn off the lights and turn on the TV." For now, you can only do two things at once if you use Google Assistant in English.

# Pixel phones (Pixel 4 and above)

### Take, search & share photos

* "Show me my photos from New York"
* "Take a selfie." Then say "share this with Ryan"
* "Take a picture in 10 seconds"

### Manage your phone’s settings

* "Turn on the flashlight"
* "Take a screenshot"
* "Turn on Do Not Disturb"
* "Turn on Bluetooth"

### Make calls or send messages

* "Call Mom"
* “Answer call” or “Reject call”
* "Tell Tina I will be five minutes late"
* "Text Adam, Don’t forget to get milk on your way home"
* In a chat thread, say "Reply, I’m on my way"

### Open apps

* "Open Translate"
* "Search for yoga classes on YouTube." Then say "Share this with mom"
* "Find hotels in San Diego on Maps"
* "\[Artist name\] on YouTube Music"
* "Show me emails from Michelle on Gmail"

### Open websites in Chrome

* Ask Google Assistant to go to a site in the Chrome app.
* "Go to \[site name\]"
* "Open \[site name\]"

### Search in your apps or websites

When you have an app or website open in Chrome, ask Google Assistant to help you complete tasks, like finding a video to watch or searching for a message. It works seamlessly with many apps and we’ll continue improving app integrations over time. For example:

* With the YouTube app open, say "search for cat videos."
* With the Google Photos app open, say "show me New York pictures." Then say "The ones at Central Park."
* With a recipe site open on Chrome, say "Search for chocolate brownies with nuts." -With a travel app open, say \[hotels in Paris\]

---
Tags: google-assistant, google-voice, voice-command, google-voice-actions, voice
---


title: Camera Roll Upload to OneDrive Stalled

text:
# Question
Title: Camera Roll Upload to OneDrive Stalled
Upon the odd occasion, the WiFi connected Android device stalls on uploading the photos to the `Camera Roll` folder in One Drive. This folder and the corresponding synced OneDrive are hitherto up-to-date.

The fix offered by Microsoft didn't apply, neither did the troubleshooting guide. How to upload the photos?

# Answer
Go in To the OneDrive app and click on the "**For You**" Tab.

If there is an "Uploading" text link showing, click on that to view the file (s) that are queued. Those which cannot be uploaded to the server from the camera are marked with a red **X** on the right. Click these to retry the operation, a circular progress arrow spinner should indicate the operation in progress.

If there is no response from either retry or "Uploading", try renaming the existing OneDrive Folder to `Camera RollOld`. Stop the backup by navigating to Settings on the OneDrive "**Me**" Tab, and click "Camera Backup." Then click "TURN OFF BACK UP," after which navigation to "Camera Backup" turns it on again. Then retry the "Uploading" text link to check the sync progress as above.

Once the files are synced, it's safe to rename the folder back to `Camera Roll`.
> 1 votes

---
Tags: sync, onedrive
---


title: APK backup with data Anybooks app

text:
# Question
Title: APK backup with data Anybooks app
Non-techie here. I have a Samsung Galaxy J7 Pro and installed the Anybooks app which is now discontinued. Since I had downloaded 1 GB of books, I need to migrate the app and data to a new phone.

The Anybooks app stores user data in the cache. I have tried APK backup apps and Samsung Smart Switch, but only the APK is backed up without the crucial user data.

How can I back up the app and data?

# Answer
> 2 votes
I am sorry but the app AnyBooks (anybooks.free.books.novels.ebooks.download.gp) has the entry `android:allowBackup="false"` in it's `AndroidManifest.xml`.

Your Samsung j7 pro should run Android 9 which means it should respect this entry for adb backup and backup to Google Drive/Cloud.

As you have already tried Samsung smart switch this means there is no way to backup or migrate the data, unless your phone is already rooted.

Note that rooting the old phone is not an option because in the rooting process all user data will be erased in a way which makes recovery of the data impossible.

---
Tags: samsung, backup, data-recovery, apk
---


# Question
Title: How can I unset Google Translator as default translator
I am having a problem. If I select a part of a web pages in my browser, I could tap on translate and then choose between various translators (including DeepL). I accidentally set Google Translator as default and now there aren't any other translators. The only thing I can do now is choosing Google Translator. I would like to undo my false selection of Google Translator as default. How is this possible?

# Answer
I am sorry for the inconvenience caused by my question.

I could set DeepL as default translator via the application of Twitter. After having set DeepL as default translator application I reset the application of Mozilla Firefox via the application settings. Still Google Translator was used as translator when choosing translate in the context menu of a selected text in the application of Mozilla Firefox. It turned out that I didn't choose Google Translator as default translator. Using Google Translator as default translator seems to be the application of Mozilla Firefox' default behaviour.
> 0 votes

---
Tags: default-applications, google-translate
---


title: Android apps won't update automatically

text:
# Question
Title: Android apps won't update automatically
I wonder why my apps won't update by themselves.

The phone is Samsung Galaxy S23 Ultra and the Android OS and the Play store have been updated to the latest version as of March 30, 2023.

In the Google Play setting, the App download preference is 'over any network', and the 'Auto-update apps' is 'over any network'. So I expected all apps to be updated automatically, but 16 updates are pending now.

It has happened since I first bought this device, so I should have to select 'update all' manually every time.

Is there a fix for this?

# Answer
> 1 votes
According to the Play Store Support page, the most you can do is enable the "Over any network" settings you've specified. Although not controllable by you, there are details on the Support page for Managed Google Play accounts (accounts that are managed through your work or school) that says app updates are queued and can take up to 48 hours to update after being added:

> It can take up to 24 hours for an app update to be added to the update queue. After an app is added to the queue, it will be updated automatically the next time the device is in the maintenance window, if the network constraint is met. As a result, it can take up to 48 hours for an app to update after you set a maintenance window.

This page also specifies that the device waits until certain conditions are met:

* The device is connected to a Wi-Fi network. (or meets the setting for network requirements)
* The device is charging.
* The device is idle (not actively used).
* The app to be updated is not running in the foreground.

So if you have a managed account on your phone, it's possible your organization is setting this window to be longer. Otherwise, it could be that your phone is not being deemed "idle" by Google Play. A restart may help, as well as a look at any apps that are running frequently in the background and may be preventing the phone from appearing "idle."

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


# Question
Title: What is this S-outline with 2-dot eyes icon on Samsung lock screen?
Sometimes the touch screen on my Samsung Galaxy A72 stops working and when I reset it via the buttons, this icon that looks like S-outline with 2-dot eyes pops up on the lock screen.

What is this?

# Answer
This icon bothered me for a few days but finally got the answer.

It's the icon for System UI. In my case it came on because the phone was recently restarted. It would stay on screen for a few seconds then disappear.

Go to settings -\> notifications -\> advanced settings -\> notification history, you should be able to find it when you click on system UI.

Hope this helps.

P.S: My phone is a Samsung A03s but should apply across the board to other Samsung phones

This is how it looks on mine:
> 1 votes

---
Tags: samsung, lock-screens
---


# Question
Title: What does this "gear with a ladybug" icon mean on Samsung devices?
Samsung Galaxy Tab S8 Ultra, this icon (a gear with a ladybug? The sun holding the letter T?) suddenly appeared on my "swipe to unlock" screen.

Now the touchscreen is unresponsive and can't enter recovery mode. The only thing I can do is a soft reset.

# Answer
It's a notification icon for "USB for file transfer". I see it only if the USB cable is plugged in between the phone and the PC, while I restart the phone.

Reference: The Complete Guide To Icons on Android Devices
> 1 votes

# Answer
It can be also a notification for Android System, e.g. after the device restart while finishing a system update.
> 0 votes

---
Tags: samsung, notification-icons, samsung-galaxy-tab-s8
---


title: Sort contacts by Hanyu Pinyin

text:
# Question
Title: Sort contacts by Hanyu Pinyin
I have tried the Google contacts app, the Samsung contacts app, and the Asus contacts app.

Only the latter will sort Chinese contacts in Hanyu Pinyin order, without requiring the entire phone to be switched from English to the zh-cn locale.

Else they get sorted by radical (Unicode order).

If one sets the entire phone to zh-tw locale, one gets Zhuyinfuhao sorting.

Anyway throughout the experience we see the very short sighted assumptions that certain people speak certain languages and prefer certain sorting orders without getting any choices in between.

No, I'm not talking about first name versus last name. Nor am I talking about establishing custom pronunciations for each and every contact.

Anyway the user, me, prefers the English interface to his Android phone. However he has learned Chinese using Hanyu Pinyin. That's how he expects his characters to be sorted by. It is unfortunate that various Android app developers would have never imagined such a combination, for some reason.

And yes, even if one day one could just change the interface language of the contacts app, that would still also be too much of a sacrifice. Why should interface language be related to sorting method in the first place? Sure it's a good guess for the majority, but for the minority it's a hardwired nightmare.

Also, choosing English as interface language means it's anybody's guess which the user's preferred Chinese sorting order might be. So why not give the user the freedom to choose?

Android 13.

Sure, you might say, "See https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare and build your own app." But I don't want to build my own app, or root my phone.

# Answer
> 3 votes
Holy smokes, by switching around the Android system language sub order (language #2), I stumbled on the answer. Of course it's totally undocumented so we will just document it here:

We simply put the zh-cn local at rank number two:

This fixes the problem for both the Samsung contacts app, and the Google contacts app. And in fact it even distinguishes that surname 曾 is Zeng, not Ceng!

Sure, it's not the total control that we want. But at least it's a workaround for now!

---
Tags: contacts, locale, chinese-language
---


# Question
Title: There is no Armenian in Logitech K480 physical keyboard language list
I have a Samsung Tab A8 (Android 12). Recently I bought a Bluetooth keyboard Logitech K480 to go with it. For English, the keyboard works as expected, however I noticed that there is no Armenian language when I am typing with Logitech K480 there are no layouts.

Is there a way to add/install Armenian so I could use it with the physical keyboard (without 3rd party apps)? As I see it, it is a software thing since the keyboard sends the same signals only the mapping is different.

If not, is there a way to do such a thing with 3rd party apps?

# Answer
> 0 votes
On Android additional keyboard layouts are provided via Key Character Map files. 3rd party apps can have such files built-in. You should take a loot at More Physical Keyboard Layouts app that provide some extra layouts. It's free and open source.

---
Tags: samsung, languages, external-keyboard
---


title: Share as file on filesystem?

text:
# Question
Title: Share as file on filesystem?
Various apps have a "share" functionality which opens up several providers of media/means to share some piece of content (e.g. send over WhatsApp and many others). Is it possible to have a "sharing provider" which simply saves the shared content as a file on the device filesystem?

My main interest is sharing text, but not just that. I don't particularly care about the encoding/structural format - but do say something about that if you can.

# Answer
Yes, this is definitely possible!

My recommended tool to accomplish this is Solid Explorer File Manager by NeatBytes.

In addition to being a great file manager, it also creates a ***Share target*** named `"Save to..."` for saving any content as a file in your storage. I've personally used it for this purpose hundreds of times, and it works quite well.

Another tool that may interest you is the wonderful ShareListener by Red Apps LTD. It's a simple tool without any UI of it's own that is:

> A simple app that registers itself as a Browser. When opened, the link is then shared and can be opened with any apps that listen for the share intent.
>
> Useful for apps that don't have a share functionality but allow users to click on links.

*Source: Google Play store description.*

Since it needs no primary UI of its own, here is how it looks to the user:

*Source: Google Play store screenshot.*

The magic of ShareListener is that when you try to share a link. Many apps will only allow you to open a browser. ShareListener will allow you to share links with non-browser apps, including Solid Explorer! When used in conjunction with Solid Explorer's ***Share target***, you can quickly save any link to storage instead of opening it in a browser.
> 2 votes

# Answer
There are at least two such apps/sharing providers that I am aware of.

The first and less universally-relevant is available on newer Xiaomi phones; it is the File Manager application (or one closely related to it); in the "Share..." options, it appears as a yellowish folder, with the caption "Copy To". When chosen, it lets you select among the internal storage, (possibly) any SD card, and some remote options which are irrelevant to this question. After having navigated to a relevant folder, you press the Paste button available at the bottom of your screen.

The more universally-relevant option is an application called X-plore, by Lonely Cat Games. It's also a kind of file manager app, which feels a bit more Norton-Commander-ish with a single pane than Windows-Explorer-ish. Its icon has a silvery wrench over a dark-gray-and-organe background, and the caption is also "Copy To". You then use the X-plore file tree UI to choose where to write the file.

This was all reported based on behaviors on my own phone, which is currently a MI 9 SE.
> 1 votes

# Answer
Send to SD card is a very simply app that does exactly that. Not updated since 2015 unfortunately.

I also found Share to File System which I haven't tried and has only 1k downloads and last updated 2018.
> 1 votes

---
Tags: file-system, files, share-menu
---


# Question
Title: Force the phone to beep when a specific e-mail arrives, even on silent mode?
My phone is usually in silent mode and I keep it that way because in my country, phone service providers spam A LOT with both SMS and phone calls. But sometimes I receive important e-mails, I'd like to have something that makes it beep, even on silent mode, when a specific e-mail comes.

Is there a way to do that?

# Answer
Tasker can achieve this fairly easily, with basic instructions coming from this reddit thread.

1. Create a new task in tasker using Event -\> Notification
2. Set your email application as the "Owner Application"
3. Set additional email options (such as notification title for sender name)
4. Go back, and select "New Task"
5. Give it a title, then select Audio -\> Notification volume and set it to a level above zero

This will leave your notification sounds on until you disable them again, but alternatively, for step 5 you could use One of the options under the Alert actions to create a one-time alert.
> 2 votes

---
Tags: email, silent-mode, alerts
---


title: Control older android phone on PC

text:
# Question
Title: Control older android phone on PC
I have an older Android phone (Samsung Galaxy S6) that I'd like to fully control using my PC (Microsoft Surface 8 with Windows 11). It's my "spare" phone and I want to install apps on it that I don't want to install on my "regular" phone, however it needs to be linked to my google play store account so an Android emulator won't suit my needs.

Ideally, I'd like to plug one end of a USB or similar cable into the phone, with the other end plugged into the PC and control the phone within a "window" in Windows just like I would any other app.

The main use case is controlling google play store apps on the phone. Other features like file management, use of the phone's texting/phone capabilities etc. would be nice, but not essential.

A free solution would be nice, but I don't mind paying a little for the service.

I'd prefer to not invest in any hardware unless it's commonly available (e.g. I have various USB cables, an old OTG cable etc.).

I'd much prefer a wired solution to avoid lag, however a wireless solution would be OK as long as it's responsive enough given the age of the hardware.

I have researched solutions like AirDroid and similar products but they all have various limitations like the age of the phone, requiring specific phone models, only allowing specific 3rd party apps etc.

I also saw this link here but it was from 9 years ago and surely there is something better these days: control android device from pc

Is there a solution that fits my needs?

# Answer
> 0 votes
Thanks to the commenters, scrcpy does what I need perfectly.

---
Tags: applications, google-play-store, remote-control
---


# Question
Title: My Android TV seems to be rebooting frequently in sleep mode and causing ADB to be disconnected, why?
This is the log I got from `adb logcat` when the TV is at sleep mode:

```
03-05 00:50:40.242  9534  9647 I uicksetsdk.son: Starting a blocking GC Alloc
03-05 00:50:40.242  9534  9647 I uicksetsdk.son: Starting a blocking GC Alloc
03-05 00:50:40.271  9534  9647 I uicksetsdk.son: Alloc concurrent copying GC freed 19943(12MB) AllocSpace objects, 29(3092KB) LOS objects, 49% free, 2295KB/4590KB, paused 110us total 28.982ms
03-05 00:50:40.671  9986  9986 D LIBIWPRIV: Ethernet_WoPacket  ifc_set_Ethernet_listen_port
03-05 00:50:40.671  9986  9986 D MTK PowerHAL: ACFGGGGGGGGGGGGGGGGGGGGGGGGGGGGG : AM_BRDCST_MSG_PRE_POWER_OFF
03-05 00:50:41.178  2902  9975 I BatteryStatsService: In wakeup_callback: suspend aborted
03-05 00:50:41.179  2902  3203 D AlarmManager: Wakeup history#0 Wakeup alarmType=RTC_WAKEUP package=com.mediatek.agent wakeups=1 alarms=1 whenElapsed=0 when=2023-03-04 23:47:47 nowRTC=2023-03-04 23:47:47 workSource=null uid=1000 tag="*walarm*:mtk.intent.rtctimer.set.bgm"
03-05 00:50:41.179  2902  3203 D AlarmManager: Wakeup history#1 Wakeup alarmType=ELAPSED_WAKEUP package=android wakeups=3 alarms=3 whenElapsed=-21s956ms when=-21s956ms nowRTC=2023-03-04 23:48:10 workSource=null uid=1000 tag="*walarm*:DeviceIdleController.deep"
03-05 00:50:41.179  2902  3203 D AlarmManager: Wakeup history#2 Wakeup alarmType=ELAPSED_WAKEUP package=android wakeups=4 alarms=4 whenElapsed=0 when=0 nowRTC=2023-03-05 00:50:32 workSource=null uid=1000 tag="*walarm*:DeviceIdleController.deep"
03-05 00:50:41.179  2902  3203 D AlarmManager: Wakeup alarmType=ELAPSED_WAKEUP package=android wakeups=5 alarms=5 whenElapsed=0 when=0 nowRTC=2023-03-05 00:50:41 workSource=null uid=1000 tag="*walarm*:DeviceIdleController.deep"
03-05 00:50:41.180  2902  2980 W AlarmManager: Unrecognized alarm listener com.android.server.DeviceIdleController$4@2730dbf
03-05 00:50:41.225  9810  9990 W adbd    : timed out while waiting for FUNCTIONFS_BIND, trying again
03-05 00:50:41.225  9810  9990 I adbd    : UsbFfs: connection terminated: monitor thread finished
03-05 00:50:41.225  9810  9810 I adbd    : UsbFfs: already offline
03-05 00:50:41.225  9810  9810 I adbd    : destroying transport UsbFfs
03-05 00:50:41.225  9810  9810 I adbd    : UsbFfsConnection being destroyed
03-05 00:50:41.268  9810  9811 I adbd    : opening control endpoint /dev/usb-ffs/adb/ep0
03-05 00:50:41.268  9810  9811 I adbd    : UsbFfsConnection constructed
03-05 00:50:41.437  9993  9993 D MTK PowerHAL: for GCM case,update port info
03-05 00:50:41.437  9993  9993 D MTK PowerHAL: wopacket Sony behavior(for GCM case,update port info)
03-05 00:50:41.437  9993  9993 D MTK PowerHAL: enable WoPacket before power off
03-05 00:50:41.437  9993  9993 D MTK PowerHAL: XXXXXenter: AP 7668 a_nw_wlan_set_ip_and_port_to_driver
03-05 00:50:41.437  9993  9993 D MTK PowerHAL: XXXXX AP first clear all ethernet port
03-05 00:50:41.437  9993  9993 D LIBIWPRIV: Ethernet_WoPacket  ifc_clear_listen_port
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: XXXXXXXXget valid Ex v4port 40918
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: (WOWL)tcp v6 port2 = set_wow_tcp 0 8008,8009,1900,40918
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: XXXXXethernet tcp port0 is 8008
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: XXXXXethernet tcp port1 is 8009
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: XXXXXethernet tcp port2 is 1900
03-05 00:50:41.438  9993  9993 D MTK PowerHAL: XXXXXethernet tcp port3 is 40918
03-05 00:50:42.273  9810  9991 W adbd    : timed out while waiting for FUNCTIONFS_BIND, trying again
03-05 00:50:42.273  9810  9991 I adbd    : UsbFfs: connection terminated: monitor thread finished
03-05 00:50:42.273  9810  9810 I adbd    : UsbFfs: already offline
03-05 00:50:42.273  9810  9810 I adbd    : destroying transport UsbFfs
03-05 00:50:42.273  9810  9810 I adbd    : UsbFfsConnection being destroyed
03-05 00:50:42.338  9810  9811 I adbd    : opening control endpoint /dev/usb-ffs/adb/ep0
03-05 00:50:42.339  9810  9811 I adbd    : UsbFfsConnection constructed
03-05 00:50:42.976  9993  9993 D LIBIWPRIV: Ethernet_WoPacket  ifc_set_Ethernet_listen_port
03-05 00:50:42.977  9993  9993 D MTK PowerHAL: (WOWL)udp port = set_wow_udp 0 5353
03-05 00:50:42.977  9993  9993 D MTK PowerHAL: XXXXXethernet udp port0 is 5353
03-05 00:50:43.341  9810  9994 W adbd    : timed out while waiting for FUNCTIONFS_BIND, trying again
03-05 00:50:43.341  9810  9994 I adbd    : UsbFfs: connection terminated: monitor thread finished
03-05 00:50:43.342  9810  9810 I adbd    : UsbFfs: already offline
03-05 00:50:43.342  9810  9810 I adbd    : destroying transport UsbFfs
03-05 00:50:43.342  9810  9810 I adbd    : UsbFfsConnection being destroyed
03-05 00:50:43.388  9810  9811 I adbd    : opening control endpoint /dev/usb-ffs/adb/ep0
03-05 00:50:43.389  9810  9811 I adbd    : UsbFfsConnection constructed
03-05 00:50:44.391  9810  9995 W adbd    : timed out while waiting for FUNCTIONFS_BIND, trying again
03-05 00:50:44.391  9810  9995 I adbd    : UsbFfs: connection terminated: monitor thread finished
03-05 00:50:44.391  9810  9810 I adbd    : UsbFfs: already offline
03-05 00:50:44.391  9810  9810 I adbd    : destroying transport UsbFfs
03-05 00:50:44.391  9810  9810 I adbd    : UsbFfsConnection being destroyed
03-05 00:50:44.458  9810  9811 I adbd    : opening control endpoint /dev/usb-ffs/adb/ep0
03-05 00:50:44.458  9810  9811 I adbd    : UsbFfsConnection constructed
03-05 00:50:44.515  9993  9993 D LIBIWPRIV: Ethernet_WoPacket  ifc_set_Ethernet_listen_port
03-05 00:50:44.515  9993  9993 D MTK PowerHAL: ACFGGGGGGGGGGGGGGGGGGGGGGGGGGGGG : AM_BRDCST_MSG_PRE_POWER_OFF

```

ADB is highly possible to be disconnected after the last line is printed.

Android version: 10

Kernal version: 4.19.75

Because everytime this happens I see different PID for PowerHAL, I guess the TV is actaully being rebooted fequently?

Does anyone know what could possibly be the reason, or how can I troubleshoot this issue?

# Answer
> 1 votes
Figured it out myself.

The TV has three modes for remote power on:

1. Off
2. Through network
3. Through application (ADB)

If you choose the third option, the TV periodically "pre-power on" itself so that the user can send an ADB command to it to actually turn on the screen, which causes my HDMI cable periodically receiving signals of a new device.

(still not sure why the TV can't be always "pre-powered on")

But if you choose the second option, everything is fine.

---
Tags: adb, mediatek, television
---


# Question
Title: Google Calendar, shortcut to get you to the current day while scrolling
I wonder whether there is a shortcut (or, alternatively, any quick way) to get you back to the current day (the one we're in in the month we're in in the year we're in) on Google Calendar.

The quickest way I can think of is clicking on the square in the middle of the bottom part of the screen and flicking to where the date widget is on the desktop (if you clicked on it to open Google Calendar it will be the current page), memorizing the date, and returning to Google calendar, scrolling to the given date, while keeping it in mind.

I wonder whether there's a quicker way.

I thought, maybe, from the application menu there could be an entry for current date you could click on, but I couldn't find it (so maybe there is a more efficient way).

Perhaps the best option is just minimizing the app and clicking back on the date on the desktop. Is this the best way to do it?

Thank you for your help.

Thank you for your answers.

Thanks.

# Answer
> 1 votes
From Google Calendar Help - View your day, week, or month,

> ### Go to a specific day
>
> \[...\]
>
> **Get back to today:** At the top right corner, tap Jump to today .

---
Tags: google-calendar, accessibility, user-interface, date-and-time, menu
---


# Question
Title: How to view the link's URL before opening it in a web browser?
I'd like to see what URL I'm going to visit **before** opening it in my browser. What setting or app allows me to do that?

If there's no such setting, an app that adds an entry to the following box would also be OK.

PS. Some links trigger this menu. Long URLs are truncated, so this solution is sub-optimal.

# Answer
EDIT: After using my original solution for a while, I came to the conclusion that it does not satisfy my needs: Using it to see and use the link URL took too much time.
So I developed a new Android app with a single purpose, namely:

* Copying the link to the clipboard, and
* Display the link target in a toast.

The app is available in Google Play as **Copy Link to Clipboard** (https://play.google.com/store/apps/details?id=nl.robwu.copylink); below are two screenshots of the app in action.

---

Original answer below

I figured out that I used the wrong keywords. Searches for "URL preview", "link preview", "view link", etc. didn't yield anything useful. So, I went to look for URL unshortener apps.

The Unshorten It app by LeoCardz (Leonardo Cardoso)

* Adds an entry to the contextmenu of each link.
* Adds an option to the "Share Link" menu.
* Shows up in the URL intent screen.

Furthermore, it is fast, the UI looks great and it doesn't contain any ads or nagging donate requests.

One minor issue: One cannot directly visit the URL without first tapping on the "Unshorten" button. After tapping that button, the URL is resolved (ie. unshortened if needed), and the result is displayed below the blue button. From there, you can share it, or open it in another browser, or just go back to the original app.

(I've evaluated two other apps, Unshorten by Tea and Toys and Short URL Evaluator by Nicolas Smith, but they didn't show up at the URL intent screen, which was a minimal requirement to me)
> 2 votes

# Answer
I had the same problem and found URLCheck, an open-source app that is available in both F-Droid and Google Play. It registers itself as a browser (so it shows up in the URL intent menu or you can set it as your device's default browser), shows you the link, and then gives you a menu to open it in any "browser" on your device other than URLCheck itself. URLCheck also has a bunch of optional features you can choose to enable, including unshortening.
> 0 votes

---
Tags: browser, hyperlinks, url
---


# Question
Title: How can I view downloaded .txt files as UTF-8 in Chrome on Android 13?
We download many UTF-8 encoded .txt files.

Later in the e.g., Northwoods, far from the Internet, we find they are unreadable.

Yes, we could simply open them in a different app, but we wish to keep using Chrome. No, the files don't contain byte order marks. Yes, there is no problem on Android 8, but things are much different on Android 13. As we observe, the `content://` URI does not pass character set information, so the browser can only assume it is latin1.

How can I view downloaded .txt files as UTF-8 in Chrome on Android 13?

# Answer
It turns out on Android 13, in Chrome, one must manually navigate to

```
file:///sdcard/
```
and then via the directory tree to select the file.

Note, that the final "/" is important. Without it, you will still trigger a web search (G icon) instead of being allowed to access the file system.

Indeed, you might need to type this in letter-by-letter: `f i l e : / / / s d c a r d /` as simply pasting might not bypass the web search.

If successful, certainly do save it as a bookmark as I have.

In fact, a better way is to go into your bookmarks and pick an old unused one and then edit the contents to put the file:///sdcard/ right in there and that ought to give you a bookmark that won't get hijacked to web search. If you don't have an old unused one then make a junk one.

Voila, mojibake gone!:

Images taken on Samsung Galaxy, Chrome Dev 113.
> 12 votes

---
Tags: chrome-for-android, offline, character-encoding
---


# Question
Title: Chrome cannot play videos on MSNBC news site
I am stuck on this issue. My Samsung Galaxy A7 Lite tablet (SM-T220) running Android version 13 and Chrome 111.0.5563.116 has a strange issue. Until a few weeks ago I had no issue playing MSNBC news videos. Click, unmute, and play without issue.

Cannot connect this issue with an upgrade, so this could be the issue but, one day suddenly a few weeks ago, MSNBC videos will not play when accessed through their website (https://www.msnbc.com/).

Any other website videos play as they did and should. Just MSNBC will not play. (No, I do not want to use the MSNBC app, sorry.)

Chrome Version 111.0.5563.110 (Official Build) (64-bit) on my laptop (Debian 11) still plays MSNBC videos. Chrome on my desktop (ArchLinux current) Chrome plays properly. (None of the installs have any extensions installed.)

I have tried various Pi Hole settings for my Samsung A7 client with no love.

I have tried what I think is everything. Any suggestions on what to try/test/adjust would be greatly appreciated.

# Answer
> 0 votes
I am going to agree with Andrew T. post. Due to that post I checked my cellphone (Samsung 8? running Android 9 with Chrome 111.0.5563.116) and it will not play MSNBC videos either. So it leads me to believe that there has been an update to the MSNBC website that has broken video playback. However, on both devices, my tablet and my cellphone, MSNBC "Live TV" plays. This leaves me with one option (as I see it) to wait . . . patiently . . . I'm getting older, HURRY UP MSNBC, fix your code!!

---
Tags: chrome-for-android, video
---


title: Chrome tabs flicker and appear blank

text:
# Question
Title: Chrome tabs flicker and appear blank
I'm using chrome 106 on Lenovo tb3-710i android 6.0.1 LineageOS custom rom. Chrome tabs at the top flicker constantly and appear in a white blank block shape. How can I solve this problem?

# Answer
I solved the problem by installing an older version of chrome (version 94) that's made for android 5. It was my android version before switching to LineageOS.
I also went to chrome app in google play and unchecked "enable auto update" from the three dots at the top so that it doesn't update by itself.
> 0 votes

---
Tags: 6.0-marshmallow, chrome-for-android, lineageos
---


title: notification dots missing - Samsung S22

text:
# Question
Title: notification dots missing - Samsung S22
An S22 of my friend's has changed appearance overnight and now the app notification dots are not displaying on the home page icons, but the icons at the top of the screen are showing, which they apparently were not before. How can I re-enable the dots and hide the top-of-screen icons?

# Answer
> 1 votes
Commenter Andrew T. gave me an answer.

Ultimately, long-pressing the background of the home-screen took me to the edit screen for the page, and there was a button in there to adjust the settings. Within that menu was a switch to enable the notification badges for the different app icons. I believe the notification icons were still present in the notification bar at the top of the screen, but we determined that was a success.

---
Tags: samsung, notifications, home-screen-shortcuts
---


# Question
Title: How to mount a partition on an Android device that can be read by USB on a computer when plugged in
I have a tablet that I'm doing some hacky work on. This tablet comes from the factory with a small storage partition called USERDATA, that's about 5gb. It also comes with a large storage partition called SDCARD, which is about 20gb. The 20gb partition is USB plug and play, and as soon as the tablet is pugged in, I can access it with RW permissions on a PC.

I need to flash the system partition with a modded system partition, which I have done successfully. The problem is, for some reason the modded system partition doesn't automatically mount the SDCARD partition. I'm able to mount it using the typical:

```
mount -o rw /dev/block/...

```

This works, but I no longer can access this partition on the PC over USB.

Based on the little bit of stuff I've found that seems related, it seems that there's a way to configure a daemon process that enables MTP for specific partitions.. But I can't find anything that explains how to go about it.

Any insight on how to mount a partition that allows USB access would be greatly appreciated.

# Answer
> 0 votes
On some Android OS, you'll find A and B partitions on the drive in question. And from what I think, you haven't flashed it the way it's supposed to.

And on, for example, Chromecast with Google TV, you can only use FAT32 (strange because on most Android devices, you can read/write with exFAT). As long as you use exFAT, devices like PS4, PCs, tablets/phones, and even some TVs.

I always use exFAT for different device interactions, because it works beautifully. But it hasn't been Microsoft's main filesystem even though it's around 10 years old or soon will be, but they're sticking to NTFS (I guess it's more security safe, and a file safe copy thing, I don't remember, long time since I went through this)

---
Tags: usb, partitions, mount, usb-connection-mode
---


# Question
Title: How to make phone boot automatically upon battery insertion (unlocked bootloader and root: yes)?
By battery insertion I mean current flowing on the battery pins, **not** the micro USB port.

**Description**

The phone in question is a Samsung Galaxy Xcover 4, the **bootloader** is **unlocked**, and I have **root access**. Its intended purpose is as a kiosk device that will be sealed inside an external hard plastic enclosure. This means that the power button is unavailable for booting the phone. The phone is powered directly from the wall by means of a custom-made battery eliminator PCB, and I need the micro USB port for host mode UART communication, which means it will never be charged/powered via the micro USB port.

**What has been attempted so far**

As mentioned, the device is rooted, so I've tried modifying the BOOT partition image and flashing an updated one. The modifications I've been looking at pertains to the program

```
/init

```

in the root directory. and its associated

```
/init.rc
/init.samsungexynos7570.rc
/...

```

files. For example, I was able to make the phone boot upon receiving charge via the USB port by overwriting the contents of the file

```
/system/bin/lpm

```

with the script

```
#!/system/bin/sh
echo b > /proc/sysrq-trigger

```

because /system/bin/lpm is referenced in a service specified in the charging section of /init.rc. I was also able to make it boot via USB port charging by removing the existing "on charge" triggers in the init.\*.rc files, and simply adding

```
on property:ro.bootmode=charger:
    trigger late-init

```

For more details about what I did, see this link. But this is **not a solution for me** because I want to make it boot simply by powering the battery pins, not the micro USB port (which is preoccupied with being in host mode, so it definitely can't be charged).

**Further thoughts**

However, since modifying the /init.rc file changed its behaviour even while "off" (i.e. it now boots upon micro USB charging as opposed to not), this seems to tell me that the phone is never really completely off when "off", and that the /init program is constantly running as long as there is enough charge on the battery pins (please derail this thought train asap if this is completely wrong). Which would mean the kernel and the /init program should start automatically when there's sufficient charge on the battery pins. So my thinking was to simply add something along the lines of

```
trigger late-init

```

or

```
start <my_service>

```

(where *my\_service* for example could be the lpm script I mentioned above) in an early init trigger stage, so that it would boot simply by virtue of the /init program running. But so far I've had no luck.

Does anyone know whether something like this would possible? Thanks for your time.

# Answer
I soldered the pins of my Nexus 7 2012 Gen 1 and the device did start up. The soldering simulates an always-pressed power-on button.

However, I tried the same with the Nexus 7 2013 Gen 2 and it turned itself off again because the button was always pressed. So I needed to solder a capacitor and a resistor in series to simulate a short button press. This worked for me, but the software solution would be more elegant.

I could measure only a few uA when the battery is plugged in so I can't imagine a part of the bootloader powering up on the mentioned devices. My idea is now to solder the power supply directly to the micro USB port as for data only 2 pins (USB2.0) are used. USB Pins: https://www.giga.de/downloads/microsoft-windows/tipps/usb-anschluss-farben-stecker-bedeutung-und-erklaerung/ (German)

Then the device will start up with the lpm script or the `fastboot oem off-mode-charge 0` change.
> 2 votes

# Answer
Buy a USB-C hub with power delivery (PD), then you can charge and use all the USB's out there, or HDD/SSD.

I've done this for a Samsung Galaxy A30s and I use one on my Chromecast with Google TV, and as long as the file is under 4GB (FAT32) like music or movies, but struggling with not getting 4K and there's no 6 channel movie player to get because I think Google hasn't connected 6 channels to other than "Streaming services", not even VLC?
> 0 votes

---
Tags: battery, charging, boot, power-on, kiosk-mode
---


# Question
Title: Manually updated Google Play Services. Will it continue to autoupdate iteself?
Due to an investigation of battery drain, I manually updated Google Play Services from ApkMirror (to V. 23.13.12 beta).

If I'm not wrong, I recall that Google Play Services update itself when new stable version is out (or is updated with Play Store?); will it continue to update also if I updated it manually? If not, what to do, to have it regularly updated?

# Answer
> 0 votes
It didn't autoupdate (there was and update of Google Play Service yesterday 3 April 2023, on Play Store). I had to uninstall update on Google Play Service, then it autoupdate itself.

---
Tags: updates, google-play-services, application-autoupdate
---


# Question
Title: How to play 5.1 audio direct to speakers?
I have an audio file recorded in 5.1 surround sound. I'd like to play this from my Android Device.

The issue I have is the various Android devices I have (tablets/phones) all contain the standard 3.5mm jack, which I *think* means stereo only! I'm not after a simulated surround sound, I need access to the outputs! Maybe it's possible via the USB?

My exact requirement (if it helps) is to end up with 4 outputs. Front-left and front-right as a stereo pair and back-left and back-right as a stereo pair (I don't need the sub-channel). However, being able to somehow split the signal so each goes to its own speaker is also fine, I can worry about the rest. The focus is on how the Android device can provide this signal(s).

The device I want to connect to is External Sound Card With USB 5.1 (note it's USB input). Maybe with the new USB DAC input?

# Answer
There are many ways you can get the audio out.

**Through wire:**

1. Head phone jack - you clearly said it can deliver only two channel audio.
2. USB - You can use an OTG adapter and plug in a 5 channel USB sound card and get the 5 channel audio out.
3. USB Type C may have this support native.

**Wireless:**

1. Bluetooth - if the A2DP profile is supported (will be supported from v2.0 onwards) you can stream audio in stereo - again not good enough for you.
2. Screencast protocols like Miracast or DLNA might support as it can be considered as a HDMI connection over Wi-Fi. These should support 5 channel audio.

Of course for all these you have to have a player which has appropriate codec support (usually AC3).
> 5 votes

# Answer
In stock Android, it's not possible to have more than two audio channels (stereo) via USB as documented here.

The 3.5mm jack, as well as Bluetooth, do not support more than 2 channels either (although enhanced aptX (Bluetooth) does support 5.1 surround sound, it's not yet supported by Android).

You can connect an external sound card, it may even work but you won't have 5.1 output through your Android's USB port which means you could only have virtual surround sound on an external sound card.
> 3 votes

# Answer
I don't know what possibilities were available back in 2016 when this question was first posted, but today I managed to get multi-channel audio working on my Android 12 TvOS tvbox with a USB 7.1 channel external soundcard.

I used the docs from https://source.android.com/docs/core/audio/implement-policy and edited `/vendor/etc/usb_audio_policy_configuration.xml` to add a multi-channel output to the config. (As shipped, the config only supported stereo.) I basically copied some info from the HDMI policy. Here's a diff showing what I changed. Note that you'd need root access to make these changes on your box.

```
--- /tmp/usb0.xml   2023-04-04 08:53:35.572497487 +0100
+++ /tmp/usb1.xml   2023-04-04 09:18:15.012439753 +0100
@@ -21,6 +15,11 @@
             <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                      samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
         </mixPort>
+        <mixPort name="usb_multi output" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_QUAD AUDIO_CHANNEL_OUT_5POINT1 AUDIO_CHANNEL_OUT_7POINT1"/>
+        </mixPort>
         <mixPort name="usb_device output" role="source"/>
         <mixPort name="usb_device input" role="sink"/>
     </mixPorts>
@@ -38,7 +37,7 @@
         <route type="mix" sink="USB Host Out"
                sources="usb_accessory output"/>
         <route type="mix" sink="USB Device Out"
-               sources="usb_device output"/>
+               sources="usb_device output,usb_multi output"/>
         <route type="mix" sink="USB Headset Out"
                sources="usb_device output"/>
         <route type="mix" sink="usb_device input"

```

For reference: I have an H96 Max V58 tvbox, and used this StarTech USB soundcard. https://www.startech.com/en-us/cards-adapters/icusbaudio7d

Also note: this soundcard also has SPDIF input and output. The SPDIF out carries the front left/right channels too, same as the analog output. That turns out to work perfectly for my purpose. I'm using Edifier S350DB for my front speakers; this is an active speaker set with 2 bookshelf speakers and a subwoofer and I'm using TOSlink optical cable for the connection. My original setup was

```
 (back of room)         (front of room)
   Projector
       |
     HDMI
       |
     TVbox ---> SPDIF -> front speakers

```

Now it's

```
 (back of room)         (front of room)
   Projector
       |
     HDMI
       |
     TVbox
       |
      USB ---> SPDIF -> front speakers
       |
      RCA -> rear speaker amp

```

I added a simple stereo amp and pair of passive bookshelf speakers for the rear surround channels, and use this with Kodi (version 20) set to use a 4.0 speaker configuration. In 4.0, the rear channels are actually coming out the output labeled "center/sub" on the StarTech box.
> 2 votes

# Answer
You could try this app: USB Audio Player PRO.

The developer claims to have built its own USB audio driver and thus supports multi-channel streams: USB audio driver in USB audio player/recorder pro and audio evolution mobile.
> 1 votes

# Answer
Multichannel support exists, but from what I can tell, it's not necessarily standardized. I still can't confirm to what extent it is supported, but my limited understanding suggests that only external devices designed with Android in mind would be able to work with multi-channel support, and would otherwise either not recognize the extra channels, or just duplicate it over to those channels.

It's a shame that Android doesn't have a way to actually manage audio streams or channels, but it seems that has more to do with the way external sound devices are implemented more than anything.

https://source.android.com/devices/audio/usb
> 1 votes

# Answer
Others have suggested that USB audio only supports stereo (2-channel) audio streams, and that 5.1 could be achieved using 3rd party applications. The reference to it only supporting stereo is outdated (Android 5.0, 2014). This limitation is no longer present. The Android USB Audio HAL supports up to 8 channels (7.1).
> 0 votes

# Answer
Via normal miniplug stereo output, you should be able to feed into a Dolby-enabled system which separates the encoded extra channels from the stereo output. That's not true discrete multichannel, but it sounds OK to me on my home stereo.

I"m also looking to try to get this from an Android in an outdoor portable music situation, hopefully via Bluetooth.
> 0 votes

---
Tags: audio, music
---


# Question
Title: How to use Nearby Share to send files from an Android phone to a Windows PC?
I occasionally need to transfer files from my phone to my PC. Connecting a wire is much hassle and Bluetooth transfer is slow. It seems Nearby Share allows sharing over both Bluetooth/Wi-Fi, whichever is available. Both my PC (Asus Windows 10) and Android device (OnePlus Android 12) are connected on the same Wi-Fi network, so I should be able to take advantage of it for fast file transfer.

Both my PC and phone are running Nearby Share. Yet, when I try to send a file from the phone to the PC, it is stuck on the "scanning" step. The phone does not detect my PC as a possible recipient, even when my PC is set to "I can share or receive content from: Everyone nearby". I am not sure what other setting needs to be changed.

**Question:** How to transfer a file from an Android phone to Windows PC using the built-in Nearby Share feature over Wi-Fi when both devices are connected over the same Wi-Fi network?

# Answer
Android just launched the exact feature I needed as a new dedicated application for Windows: The New Nearby Share Beta App for Windows | Android

It requires a Google login which I'm not a big fan of. But at least this is an answer to the original question in case anyone is looking for something similar.
> 2 votes

# Answer
You can't. The Nearby Share in Android (made by Google as a system utility in latest versions of Play Services) and the Nearby Share in Windows are two different software utilities.

An alternate way should be using MixPlorer to set up an FTP server from Android and connecting it to Windows File Explorer (make sure to increase the FTP timeout in MixPlorer since the default is 5 mins afaik)
> 1 votes

---
Tags: wi-fi, file-transfer, windows
---


# Question
Title: Set ringtone to start from a specific point
I recently got my Nexus 5 and I would like to know if there is any way that I can set a ringtone to start from a specific point from a track that I have on my phone.

Is there any way that can help me do that, considering that I don't want to cut the track to the point that I want my ringtone to start from?

# Answer
Well, I don't think that can be done! Why don't you use several MP3 cutters to cut the song over to the appropriate place you like?

There is a load of song cutter apps available over the Play Store, as well as software also available for PCs. I have tried searching over the Play Store and got several apps names MP3 cutter which can help you out with cutting the ringtone to a specific point and then then you can set that as your ringtone.
> 2 votes

# Answer
There are two ways to create custom ringtones.

1. Through an Android app from the Play Store
2. Real player MP3 cutter which cuts the MP3 from the desired starting time (from where to start) and the end time as well (till where it should play)

Now for this-

> \[...\] considering that I don't want to cut the track to the point that I want my ringtone to start from?

is completely irrelevant because without specifying/cutting the start time, how will the audio file start to play as all the audio/video files start from 00:00?

The audio file cannot randomly start anywhere you like. It has to have a point where you need the song to start (00:00 till the end but not from 2:50 till the end).

**Ex**:- Suppose you have a Beethoven audio file in which you want the phone to ring from **4:00** till **4:35** i.e. 35 seconds then with the help of an MP3 cutter, you will set the starting point from **4:00 and ending point to 4:35** . After you have set the slider, then you need to cut that particular portion and it will be set as 00:00 to 00:35. This song will not replace the original Beethoven song but will add an extra song of just 35 secs as a ringtone.
> 1 votes

# Answer
Not a complete answer, but an important detail: I discovered that from a song length of 1:30 (90 seconds), Android seems to pick a fragment from the middle of the song instead of the beginning. So, if you cut your own ringtone and expect that it starts from the beginning, it must be less than 1:30 in length. 1:29 is fine.

(checked with a Galaxy S10)
> 0 votes

---
Tags: nexus-5, ringtone
---


# Question
Title: Why can't banking apps be backed up and restored?
Last night, I messed with the system and lost everything. Had to wipe the phone and do the whole ceremony that comes after.

But the worst part was not restoring every single app, or restoring the trillions of permissions the system denies: The worst part is the **banking apps**. These apps lose permission that Titanium doesn't recover, and **I have to go to the bank to recover it. Personally.**

I live far from the city, and it happened to two banks.

Tired of this.
By far, not the first time.

I suppose the banking app uses a unique identification that the phone provides.
It's not the fingerprint (already tried Props), it's not the MAC address, and it's not the email.

So: how does the banking app identify the phone, and how do I spoof this identification? How do I keep it the same across wipes?

# Answer
The banking apps don't identify your device. Instead, they use cryptographic keys:

When registering your device, the app generates an asymmetric key pair (RSA or Elliptic Curves). Alternatively the bank uses a symmetric (AES) key, that is "generated" by a key agreement protocol between bank and the app. The key (pair) is generated and stored inside the `AndroidKeyStore`, a special security service that uses security hardware which allows to generate and store cryptographic keys. The public is sent to the bank or used to encrypt stored data of the app on the Android device.

These keys never leave the security element (ARM TrustZone, Google Titan, or Samsung Knox), they can only be used by the app that has generated it (stock device) but not extracted, so a backup is impossible. With root permissions, you can also talk to this security service so that every app with root permissions can make use of the stored keys, again extraction or backup is not possible.

Therefore, if an app makes use of this key store, you can't do what you want, the data and the app is bound to the device no matter what you do or what permissions you have (e.g. root).

Only in case the banking app uses the key to decrypt locally stored data, there would be a theoretical possibility to hack the app, use the key to decrypt the locally stored data, and then transfer the data to a new device, generate there a new key pair and re-encrypt the transferred data. But that requires individuals to hack each banking app which would take even a skilled hacker a few hours up to a few dozen hours.
> 4 votes

---
Tags: applications, security, backup, restore
---