# Question
Title: Three different APK file sizes for the same version/build app?
I'm getting three different APK file sizes for supposedly the same version/build app:

**Why?**

Which file is the original one and which two are fakes? Could you please confirm that the Evozi downloader is trying to "slip" you a APK version (here: 2.7.2) different from the Google Play store link that you provided (here: 2.7.3) or that both Apkpure and Aptoide are claiming publishing *more recent* publishing dates (here: 08-09-2021 and 14-09-2021) than the original (06-09-2021)? Why is this happening?

**UPDATE 1:** As per request, I've extracted all APKs. The results are even more concerning:

* Version 1 from Evozi: `957 Files, 51 Folders, 24.757.075 bytes`
* Version 2 from Apkpure: `819 Files, 21 Folders, 25.118.159 bytes`
* Version 3 from Aptoide: `4319 Files, 101 Folders, 31.704.315 bytes`

*...4319 files?!*

**UPDATE 2:** As suggested, I used `apksigner` to take a look at the certificates inside the APKs:

Version 1 from Evozi: `957 Files, 51 Folders, 24.757.075 bytes`

```
C:\Users\...\Desktop>java -jar apksigner.jar verify --verbose --print-certs com.starfinanz.mobile.android.dkbpushtan_30044_apps.evozi.com.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=Niels Mathea, OU=IT Betrieb Bank, O=DKB Service GmbH, L=Potsdam, ST=Brandenburg, C=DE
Signer #1 certificate SHA-256 digest: e5067dca4553173a1dd76352a8287b293960119689244ac58d0552703efe4268
Signer #1 certificate SHA-1 digest: b4199718eaa0e676755af77419fb59abf7fece00
Signer #1 certificate MD5 digest: 0a566744818c6fb89f4c900a1502cf1c
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: d878ba65ddcd7bbd0d9fd284f0bc61762c7ecb83ecb6c58c8c138939fb661f7f
Signer #1 public key SHA-1 digest: dbf739ed124f07181b3cdd1867bdd0eb63da3d71
Signer #1 public key MD5 digest: 94fcb9a87a8ec48eed706456a93ab0cd
WARNING: META-INF/androidx.customview_customview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
[...]

```

Version 2 from Apkpure: `819 Files, 21 Folders, 25.118.159 bytes`

```
C:\Users\...\Desktop>java -jar apksigner.jar verify --verbose --print-certs "DKB TAN2go_v2.7.3_apkpure.com.apk"
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=Niels Mathea, OU=IT Betrieb Bank, O=DKB Service GmbH, L=Potsdam, ST=Brandenburg, C=DE
Signer #1 certificate SHA-256 digest: e5067dca4553173a1dd76352a8287b293960119689244ac58d0552703efe4268
Signer #1 certificate SHA-1 digest: b4199718eaa0e676755af77419fb59abf7fece00
Signer #1 certificate MD5 digest: 0a566744818c6fb89f4c900a1502cf1c
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: d878ba65ddcd7bbd0d9fd284f0bc61762c7ecb83ecb6c58c8c138939fb661f7f
Signer #1 public key SHA-1 digest: dbf739ed124f07181b3cdd1867bdd0eb63da3d71
Signer #1 public key MD5 digest: 94fcb9a87a8ec48eed706456a93ab0cd
WARNING: META-INF/androidx.customview_customview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
[...]

```

Version 3 from Aptoide: `777 Files, 21 Folders, 25.059.540 bytes`

```
C:\Users\EPI-SMLM\Desktop>java -jar apksigner.jar verify --verbose --print-certs  com-starfinanz-mobile-android-dkbpushtan-30049-59302957-c297d2d2df90587173f6f8b78fce939d.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=Niels Mathea, OU=IT Betrieb Bank, O=DKB Service GmbH, L=Potsdam, ST=Brandenburg, C=DE
Signer #1 certificate SHA-256 digest: e5067dca4553173a1dd76352a8287b293960119689244ac58d0552703efe4268
Signer #1 certificate SHA-1 digest: b4199718eaa0e676755af77419fb59abf7fece00
Signer #1 certificate MD5 digest: 0a566744818c6fb89f4c900a1502cf1c
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: d878ba65ddcd7bbd0d9fd284f0bc61762c7ecb83ecb6c58c8c138939fb661f7f
Signer #1 public key SHA-1 digest: dbf739ed124f07181b3cdd1867bdd0eb63da3d71
Signer #1 public key MD5 digest: 94fcb9a87a8ec48eed706456a93ab0cd
WARNING: META-INF/androidx.customview_customview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
[...]

```

There is a long list of warnings coming with each APK. Also, as indicated in the comments, Aptoide provided the wrong APK - file size and number of contained files/folders have been updated.

Anyone know what to make of this output?

# Answer
If you have multiple APK files from different untrusted sources it is wise to question their authenticity. You already performed the basic steps for doing so, especially checking their cryptographic signatures using apksigner is the most important one.

From the apksigner output the most important part is the `certificate SHA-256 digest`. APKs that have the same certificate SHA-256 hash are guaranteed to come from the same developer (assuming the keys has not ben lost/stolen, or the developer has sold the project to a different developer).

In your case the versions from Evozi and Apkpure have the same hash but the one from Aptoide is totally different, even the certificate DN is totally different. The reason for that I will explain at the end of this answer, first focus on Evozi and Apkpure.

## Evozi and Apkpure

You know that both versions come from the same developer, but the authenticity of that developer is still unknown. As there is no directory where you can look-up Android developer certificate hashes we have to improvise. So we end up for the certificate SHA-256 and SHA-1 hash (SHA-1 is no longer the best for security but it still costs several thousand dollar and a lot of time to break it) on popular search engines like Google. If you do so you will find plenty of entries for the SHA-1 hash that all belong to download site or threads about the DKB app. And the posts are not all new but go back e.g. to 2017, so the chance is high that both APKs from Evozi and Apkpure are genuine.

**But then the question remains why are they different?**

You have to know that there are several reasons why they are different.

### Different internal version?

Android apps have two version numbers: the `versionName` (a string with arbitrary content) that is displayed to the user and one internal `versionCode` number that is a plain integer number which is increasing at least by one with every new version (no commas, dots, and so on are allowed). To check the internal versionCode we have to look into the decoded `AndroidManifest.xml` of each APK. On a PC I prefer Jadx for doing so.

Evozi version:

```
android:versionCode="30044" android:versionName="2.7.2"

```

ApkPure version:

```
android:versionCode="30049" android:versionName="2.7.3"

```

As you can see both APKs have a different internal and external version as both version values are different.

A lot APK download sites to not gather APK files on their own, instead they rely on user uploads. Also APK files don't contain a release date, therefore those site use the upload date to them as date they display. So the date shown on Evozi and ApkPure is usually days or even weeks after the official release date.

But it would have been possible that only `versionCode` differs and `versionName` stays the same. In such a case there would be two possibilities:

1. Multiple versions had been released without changing the public version number, e.g. because there was a minor bug that had been fixed in the newer version, and the developer decided that this change was too small for a new version number.
2. The Android eco system is very fragmented. Different Android versions and Android hardware with very different hardware is used (e.g. screen size and density). Originally Android APKs were designed to include everything for every hardware configuration but that increased the app size and consumed storage and internet traffic that was partially unnecessary. So Google introduced multiple features to address that problem. Starting from the possibility to provide different APKs for different device types or model up to the newest system that the developer uploads an app bundle and Google generates the final APK file(s) individually for each device model.

## Aptoide

Aptoide in difference to other sites which provides APK files for download is not a download site, instead it is an App store. This means the download they provide on their web site are not the app you have searched for. Instead it is the Aptoide app store app. This explains the different signature, certificate DN and the totally different content of the downloaded APK file.

But the Aptoide APK file you have downloaded is not just the general store app, it is a special version that contains the meta data of the app you wanted to download. Once you have installed this Aptoide app store app an dialog opens and asks if you want to download and install the linked "DKB-TAN2go" app.
> 1 votes

---
Tags: applications, apk, malware, side-loading, authentication
---


# Question
Title: How does one transfer data from an iPhone 6 to a Pixel 6 pro that has already been set up (without a reset)?
So this is not the first time I turn on my Pixel 6 pro. When I connect the devices with a cable (this https://www.amazon.com/gp/product/B071G6NLHJ/ref=ask\_ql\_qh\_dp\_hza) no options appear so it is unclear what to do next to transfer the data and the video I was watching doesn't suggest what to actually do:

https://www.youtube.com/watch?v=i1IPSE2avCE

and I've tried a bunch of things like google one etc but the contacts and the videos from my iphone 6 s are NOT on my pixel.

What do I need to do to get this to work?

---

this never happens (https://support.google.com/pixelphone/answer/7129740?hl=en#zippy=%2Ccopy-data-from-your-old-phone-with-a-cable-recommended):

> When asked to “Copy Apps & Data,” tap Next and then Copy your data.

---

I also tried google one but I don't see my contacts or videos form my iphone on my pixel. Why?

# Answer
honestly the main take away is to do it once during setup of the phone.

Will post it as a community answer since I'm not too happy that I had to download a third party app and that it doesn't seem to be using the cables I bought...I used the `Send Anywhere (File Transfer) app`. Instructions in video here: https://www.youtube.com/watch?v=MEdVU96bol8 in text:

1. download `Send Anywhere (File Transfer) app`
2. choose the videos, photos, contacts etc from the iphone
3. choose the pixel to be a receiver
4. get the code from the iphone put it in the receiver then click send

done...or at least I hope the transfer happens. Going on right now.
> 0 votes

---
Tags: data-transfer, ios
---


title: Fastboot Device not Detecting my Device

text:
# Question
Title: Fastboot Device not Detecting my Device
I'm following this tutorial about how to unlock bootloader on Moto. My device is a Moto G5, and my computer has windows 10.

On the command line, I can type

```
adb devices

```

and it returns my device. I then do

```
adb reboot bootloader

```

and it turns my phone into bootloader mode. But when I do

```
fastboot devices

```

it returns a blank line. According to this source (the second answer), I need to update some the "Unknown 'Android' device". However, I don't have anything like that. The closest I have is Other devices-\>Fastboot potter S. Do I update this driver? If so, how? If I choose "Search automatically for updated driver software," it doesn't find anything. If I choose "Browse my computer for driver software" and then "Let me pick from a list of available drivers on my computer", I have to "Select \[my\] device's type from the list below." but I don't know which one I'm supposed to choose.

How do I fix this problem with fastboot devices? What drivers am I supposed to update? How do I fix them?

If this question is better suited on another stackexchange such as superusers on account of it's being more about windows than android, let me know. I tried asking it there first, but the "android" tag said that the question would be off topic.

# Answer
> 1 votes
Got stuck at the exact same point when I had this problem! I figured out I could follow the instructions on this page (https://developer.android.com/studio/run/oem-usb), and once I downloaded and installed the right driver, the device showed up when I ran

`fastboot devices -l`

then I just did `fastboot reboot` and everything worked : )

---
Tags: fastboot, bootloader, windows, bootloader-lock, motorola-moto-g5
---


# Question
Title: Where is "su" addon package for rooting LineageOS 17 and newer?
On the current LineageOS Extras Download, you can see `su` packages for versions up to LineageOS version 16. Where are the newer packages?

# Answer
This functionality was discontinued. The de facto method of achieving root in newer LineageOS releases is Magisk.
> 9 votes

---
Tags: root-access, lineageos, android-10
---


# Question
Title: Can I read data and IMEI of a phone that can't be powered up?
I have an old Android phone Kyocera Hydro Icon C6730, which is stuck in powering up, while being connected to the power strip. Its battery is also old and I'm not sure if it is still working correctly. I have removed the SD card from the phone, and am thinking about parting away with the phone.

* Can a computer read the data stored in the phone without it being powered-on or started? If yes, is it done by connecting the phone to the computer, via a USB cable, treating the phone as a USB storage device?
* Is it still possible to read off the IMEI of the phone? (I saw an 18-digit DEC number and a 14-digit HEX number, both with bar codes, in the back inside the phone, under the battery. It looks like this photo below. Is the HEX number listed there IMEI?)

Thanks.

# Answer
One of the numbers on that label inside your phone should be the IMEI number.

IMEI numbers are typically represented using decimal, and when represented in decimal, are 13 or 15 digits long, plus 1 Luhn checksum digit, for a total of 14 or 16 digits, respectively. Of course, like all integers, they can be represented in any base, including hexadecimal.

As for the actual data on the phone, I know of no easy way to get the data off the non-volatile memory chip(s) without providing power to the device and having it, at the least, enter recovery mode.

BTW, if anyone is interesting in reading about Mr. Luhn and his scientific research, Wikipedia is a good place to start.
> 2 votes

---
Tags: internal-storage, battery, power-on, imei
---


# Question
Title: how can I stop my screen randomly turning on?
I have my phone on charge though that probably isn't relevant

I notice from time to time my phone screen turns on

I googled re that and found this

https://www.howtogeek.com/255696/how-to-disable-androids-ambient-display/

But I see no 'ambient display' option there

I have Android v 6.0

# Answer
The ambient display option is apparently completely invisible when you do not have a lock screen set. So the way to solve this is:

1. Set up any arbitrary lock screen. On my fairly Vanilla Android 10 system, that's Security→Screen lock.
2. Disable "Ambient display". This feature has had multiple names over time and the settings apps differ on on different brands of phone, but in my case, it's Display→Advanced→Lock screen display→Ambient display→on/off slider at the top. It might be different on your system, but I'm pretty sure you can at least ignore all the tutorials that tell you to go into Google Assistant settings.
3. Disable screen lock again, if you want. The ambient display setting still applies, you just can't change it when no lock screen is set.

After many instructions that only included step #2, I finally found the answer here (archive).
> 0 votes

---
Tags: screen
---


# Question
Title: Pixel 3's mp4 videos don't have thumbnails in Windows 10
My Google Pixel 3 phone saves videos as mp4 files that have no thumbnails in Windows Explorer.

(This screenshot shows files on my PC that I'd moved via USB from the Pixel 3.)

Apparently many other Pixel 3 owners report this same annoying situation; the problem isn't specific to my device.

How can I make my Pixel 3 generate thumbnails properly?

# Answer
That videos don't show a thumbnail in Windows Explorer is because you look at the files via USB and Media Transfer Protocol (MTP).

If you would copy the video to a local hard disk Windows Explorer is capable of showing a thumbnail. But if the file is on a connected device that is accessed via MTP, thumbnails are disabled because of the disability of the MTP protocol:

The main difference between a local file and a file on an MTP device is that on a MTP device you can only read the complete file, not the first may be 100KB like it is possible on any local disk: MTP is a file oriented protocol instead of block oriented protocol as it is common for other file-systems.

That means if Windows Explorer wants to create thumbnails on it's own it has to completely download the whole file - and that for every file!

So why does thumbnail exists for pictures?

The MTP protocol bases on Picture Transfer Protocol (PTP) which defines a command to receive pictures in a scaled quality. That makes it possible to request an image in a very low resolution which can be used as thumb nail. As the protocol is designed to transfer pictures it seems like Android does only implements scaled image retrieval for image files like JPEG.
> 2 votes

---
Tags: windows, video, thumbnails, mp4, google-pixel-3
---


# Question
Title: Live Transcribe & Notification offline languages
I can not find it anywhere. Is **list of languages supported for download and offline transcribe** published somewhere?

When I check languages on my current old phone, none of them are shown as available for download.

It would be very helpful to use transcribe without an internet connection, but I don't want to risk buying a new smartphone with 6 GB RAM to find out I can't download my language.

Thank you very much :)

# Answer
On Google Pixel 3a, **the languages that are available for download and offline use are:**

* English (Australia)
* English (United Kingdom)
* English (United States)
* French (France)
* German (Germany)
* Italian (Italy)
* Japanese (Japan)
* Spanish (Spain)

This is consistent with the Play Store's listing as of an update on May 11, 2022.

> ### What's new
>
> • Transcribe offline in English, Japanese, German, Italian, Spanish and French. More to come.

However, as the question has mentioned, offline use is only available on certain devices:

> ## Use Live Transcribe offline
>
> ### Download languages for offline use
>
> **Important:** You can download languages for offline use on Android devices with at least 6GB RAM and on all Pixel devices. Not all languages are available for offline use.

On Nexus 5 with only 2 GB RAM, languages are not available for download.
> 0 votes

---
Tags: downloading, languages, accessibility, offline
---


# Question
Title: 12 months needed to change Google Play country because must first create profile first?
According to Google Play Help - How to change your Google Play country, the following means 12 months are needed to change one's Google Play country, because one must first create a payments profile, and then wait 12 months first. Correct?:

> ### How to change your Google Play country
>
> If you move to a new country you may want to change your Google Play country. Your Google Play country determines what content you see in the store. The apps, games, and other content in the Store can vary by country.
>
> * You must wait 12 months after initially creating a payments profile before you can change your Play country. You can only change your Play country once per year. If you change your country, you won’t be able to change it back for one year.

# Answer
It turns out the resolution to this problem will probably involve deleting other profiles that one had previously created. Here's a slice of my discussion with the chat person of Google:

> 8:18:22 AM Katherine: As an alternative, we will once close the old profile, so that the new profile is updated on the Play Store.
>
> 8:18:40 AM Katherine: Not to worry, you'll have 29 days to re-open a closed profile. In case, if you will need the old profile, you can contact us again to re-open the profile.
>
> 8:19:20 AM 積丹尼 Dan Jacobson: But next year when I go back to Taiwan I will still need the old one ...
>
> 8:20:11 AM Katherine: Once you get back to Taiwan, you can get back the old profile re- activated."

(So I did what she told me and in the end it worked.)
> 2 votes

---
Tags: google-play-store, google-account
---


# Question
Title: How to recover a deleted file from /data partition on a rooted phone?
I factory reset my rooted Android M phone but now I realize that there was a file in the ***/data*** directory which I need.

Is it possible to create an image (.img or something similar) of the /data partition so that I could run some recovery software for ext4 on that image? I have a little knowledge about ADB.

# Answer
First to clarify `root` and `data`:

* Root directory `/` of Android devices is a read-only pseudo (temporary) filesystem (`rootfs`) that lives in RAM and is vanished when device is powered off. When device is powered on, it's again extracted from `initramfs` that lives in `boot` partition along with kernel.

On newer devices with system-as-root, `system` partition is mounted at root `/`.

* `/data` directory is a mountpoint, where largest partition, usually named `userdata` is mounted. This partition contains all user apps, their data (settings, databases, caches, temporary files etc.), system apps' data and all other configurations we make through `Settings`. `/data/media/0` is the directory that we see as `/sdcard` or `/storage/emulated/0` through emulation.

> ... there was a file in the /data directory which I need. Is it possible to create an image (.img or something similar) of the root directory ...

If a file is deleted from `/data`, you need to create a dump of `data` partition, not that of root directory.

You can do that in multiple ways described below. All require **root access**.

---

***But first of all, see this answer to make sure your data is recoverable.***

In short, recovery is more or less possible only if ():

* Your deleted data hasn't been `TRIM`med or `discard`ed.
* And you haven't done a factory reset on encrypted `/data` partition.

What you should do immediately:

* Switch off phone to make sure the deleted data isn't overwritten.
* Don't install data recovery apps on device, it can do more harm than good.
* Mount the filesystem (if required) in recovery mode (or on PC) only with `ro,nodiscard` options.

---

## FINDING BLOCK DEVICE:

In order to access the `userdata` partition, you need to find its block device. If you have root access, you can do so from mounted partitions:

```
~# mount | grep 'on /data'
/dev/block/mmcblk0p... on /data type f2fs (rw,nosuid,nodev,...)

```

On Qualcomm devices, it's located at `/dev/block/bootdevice/by-name/userdata` (symlink). For MediaTek (`MTK`) and other SoCs, the path is slightly different. You can find all block devices or `by-name` directory using `find` command:

```
~# find /dev -type b
~# find /dev -type d -name 'by-name'

```

Or by hit and trial:

```
~# ls -d /dev/*/by-name
~# ls -d /dev/*/*/by-name
~# ls -d /dev/*/*/*/by-name

```

**Note:**

## CREATING PARTITION DUMP:

**DISK DUMP (`dd`)**
Once the block device is known, you can use the `dd` command from:

* ADB shell (OS or custom recovery)
* A terminal emulator app like Termux

Since the `userdata` partition is the largest partition (all other partitions are hardly using 5GB out of total storage), you can't dump it to your internal memory. An external SD card with larger capacity is needed.

To create the dump:

```
~# dd if=/dev/block/bootdevice/by-name/userdata of=/path/to/ext_sdcard/data.img

```

**ADB**
If you don't want to use an external SD card, you can also dump the partition directly to PC. First you need a working `adb` setup, running as root. Then it can be used in multiple ways:

```
~$ adb exec-out dd if=/dev/block/bootdevice/by-name/userdata > data.img

```

* Make sure your `adb` binary (on Windows or Linux) supports exec-out.

But you may end up with corrupted data when writing a whole large-sized partition to `STDOUT` of terminal because there are issues with line break types (`CR` and `LF`). Also `STDOUT` or `STDERR` from the programs involved could possibly be added to the file if not directed to `/dev/null`. Even a single wrong byte may render filesystems un-mountable. See this question for reference.

To avoid unwanted characters, use `stty raw` and/or `dos2unix`:

```
~$ adb shell 'stty raw && dd if=/dev/block/bootdevice/by-name/userdata' > data.img

```

But the most straightforward way is:

```
~$ adb pull /dev/block/bootdevice/by-name/userdata data.img

```

See this answer for more details.

**STREAM OVER TCP**
To avoid the terminal-related complications described above or if for some reason `adbd` cannot be run as root, it's also possible to create a minimal TCP server for data transfer. Forward the port from phone to PC and run a `netcat` TCP server in listening mode:

```
~$ adb reverse tcp:1024 tcp:1024
~$ nc -v -l -p 1024 </dev/null | pv -ab >data.img

```

On phone:

```
~# cat /dev/block/bootdevice/by-name/userdata | busybox nc 127.0.0.1 1024

```

**USB TETHERING (RNDIS)**
To avoid using ADB at all, USB tethering can be used to provide network connectivity:

```
~# cd /sys/class/android_usb/android0
~# echo -n 0 >enable
~# echo -n rndis,adb >functions
~# echo -n 1 >enable

```

* You may also change other files like `{iSerial,iProduct,iManufacturer}` and `f_rndis/{ethaddr,manufacturer,wceis,rndis_transports,max_pkt_per_xfer}` in the above directory if required. * On new devices you might need to use `/config` interfaces instead of `/sys`. Some relevant hints here.

Add IP address:

```
~# busybox ip rule add lookup main
~# busybox ip address add 192.168.1.1/30 dev rndis0
~# busybox ip link set rndis0 up

```

On PC add IP manually (there's no DHCP server):

```
~$ sudo ip address add 192.168.1.2/30 dev usb0
~$ nc -v -l -p 1024 </dev/null | pv -ab >data.img

```

On phone:

```
~# busybox nc 192.168.1.2 1024 </dev/block/bootdevice/by-name/userdata

```

In the same way it's also possible to use `rclone rcat` to transfer the dump over WebDAV or FTP or SFTP. See How to stream an encrypted backup of the entire device to remote host?

**USB MASS STORAGE (UMS)**
This method is useful if you don't want to create a dump of the partition, but instead access partition directly on PC. See my answer to Why can't I see Android storage as a partition on PC? for methods on how to enable UMS thorough `/sys` or `/config` interfaces.

Once done, `userdata` will appear as a partition on Linux PC just as we connect a USB drive. If `/dev/sda` is the hard disk drive, usually `/dev/sdb` will be the `userdata` partition. You can find that by using `blkid` command:

```
~# blkid | grep userdata
/dev/sdb: PARTLABEL="userdata" PARTUUID="..."

```

You can run recovery programs directly on the block device or mount the filesystem (if needed) or may also create a dump.

## HOW TO RECOVER DATA?

There are basically two ways to recover deleted data as mentioned in this answer: carving method and through the filesystem.

Recovery tools mostly don't need mounting filesystems but if it's required, it needs to be done on Linux PC because Windows doesn't support `ext4` or `f2fs` natively, hence the tools aren't easily available AFAIK.

*If anyone has been able to successfully make block/journal level access to Linux/Android filesystem for data recovery on Windows through Ext3Fsd or any other driver, let me know so that I can update the answer.*

On Linux you can use tools like extundelete to recover data using filesystem journal:

```
~# extundelete --restore-all data.img

```

Or to recover data directly with UMS:

```
~# extundelete --restore-all /dev/sdb

```

Since you have done a factory reset which erases the filesystem, consider carving method using tools like TestDisk or `scalpel`:

```
~# testdisk data.img

```

In the same way you can use any other data recovery tools. See the ArchWiki on File Recovery for more details.

---

**RELATED:**
> 27 votes

# Answer
Based on this question I did use the method described above:

```
~$ adb exec-out dd if=/dev/block/bootdevice/by-name/userdata > data.img

```

But there is an issue, the image will be encrypted if the data is not decrypted first. File and folder names will be gibberish.

The only way I got decrypted data was via TWRP, because it asks for decryption password on start.

And then I was able to copy the data via mtp.

I know this may not seem on topic on how to recover files, but this question is getting a lot of traffic and the proposed solution has a drawback and I'm not allowed to comment right now.

Edit: The original answer does how a way to access the decrypted information that I had not seen.
> 0 votes

# Answer
Where exactly in DATA ? Is it in the emulated SD Card ?
If it's in the emulated SD Card, you could remove your external SD Card and mount the device under USB Mass Storage mode... You can the use free recovery software like Recuva ccleaner.com/recuva

However if your file is not in the emulated SD Card, you'd need to backup the Data partition as you mentioned.

To do that, you can either use the device itself to run a DD or CAT command to write the data to a .img file on your SD Card..

**On Device**
Using Terminal Emulator

* locate your -by-name partition directory

getprop ro.frp.pst

( This will get the /dev/block/platform/DEVICE/by-name directory for frp - change the name to data )
You can just use /data otherwise.

```
dd if=/data of=/sdcard/data.img

```

If = Input file - Of = Output file

You could also use ADB

**Via Computer**

* Install ADB ( not the entire SDK but just ADB )

Using command prompts or power shell

```
adb shell dd if=/data of=/sdcard/data.img

```

You may need to locate your correct directory.

Then you can Mount the .img on a PC and do the recovery.. I'm not sure how to mount the .img file if the partition is ext4 so that's as far as this answer goes.

You can alternatively use an App called Disk Digger .. It has the capability to scan the data partition live, .. Root Access is needed
> -2 votes

---
Tags: adb, root-access, data-recovery, ext4
---


# Question
Title: How to take full image backup of partitions or eMMC?
I have an Archos 55 Platinum here. There is also a unofficial TWRP, if this might help. I would like to make a backup of the storage of the phone, like `dd` for any partition, so I can inspect the content later.

Also, I don't want to root or flash anything, nor install apps.

Is there a way that allows me to run TWRP via fastboot instead of flashing? Any ideas how I can proceed?

# Answer
> 7 votes
Yes you can boot in TWRP if bootloader is unlocked:

```
fastboot boot /path/to/twrp.img

```

Then you can simply `dd` whole eMMC or individual partitions. You need some extra memory (on external SD card) to backup whole eMMC or `/data` partition. Smaller partitions (including the biggest one: `system`) can be backed up to internal memory i.e. data partition.

**For Qualcomm SoC:**
(for MTK devices, path is slightly different)

```
dd if=/dev/block/(bootdevice/)mmcblk0 of=/path/to/external-sd/emmc-backup

```

For single partition:

```
dd if=/dev/block/bootdevice/by-name/userdata of=/path/to/external-sd/data-backup

```

In order to come up with shortage of space, instead of using SD Card you may save backup files directly to PC using `adb shell` or `exec-out`. Thanks to @Izzy:

```
adb exec-out dd if=/dev/block/(bootdevice/)mmcblk0 > emmc-backup.img

```

Make sure your `adb` binary (on Windows or Linux) supports exec-out. Also take care that unwanted non-printing terminal characters don't get included in output.

There are also other methods like `adb pull`, UMS or streaming over network. For details see How to recover a deleted file from /data partition?

**PS:**

Another way to save space and to speed up backup process is to backup only the contents of mountable filesystems instead of whole partition image. Particularly `userdata` and `system` are larger partitions but they aren't usually completely filled. Mount them and create backup archive using `tar` so that zeroed out portion of these partitions isn't backed up.

Make sure to preserve all file permissions and attributes (whatever applicable depending on filesystem etc.) including classic UNIX file mode and owner, ACLs, XATTRs and SELinux contexts. These options are supported by `tar`. Otherwise things might get messed up. See more details in How to stream an encrypted backup of the entire device to remote host?

---

**RELATED:**

# Answer
> 0 votes
Based on this question I did use the method described above:

```
~$ adb exec-out dd if=/dev/block/bootdevice/by-name/userdata > data.img

```

But there is an issue, the image will be encrypted if the data is not decrypted first. File and folder names will be gibberish.

The only way I got decrypted data was via TWRP, because it asks for decryption password on start.

And then I was able to copy the data via mtp.

I know this may not seem on topic on how to recover files, but this question is getting a lot of traffic and the proposed solution has a drawback and I'm not allowed to comment right now.

---
Tags: adb, backup, twrp, fastboot, partitions
---


# Question
Title: Prevent play store from showing me updates on an application installed through another store
Recently Amazon disabled all in-app purchases from their apps distributed through the Play Store.

As I'm a frequent user of the kindle app, and not a fan on switching to my browser instead of in-app purchases, I've opted to install Amazon AppStore and through it the Kindle for Android app.

Now, though, the Play Store always displays an update available for the Kindle for Android app.

What I would like, is a way to tell the play store not to try and manage this application.

I've already disabled automatic updates, but the issue with this is that every time I touch "Update all applications" I have to deal with a popup to confirm I want to ignore KFA updates.

It's not that big of a deal, but i'm wary of mistake on my part later down the line.

EDIT: My phone is not currently rooted, and the manufacturer enforces a factory reset to unlock the bootloader. As it stands I'd prefer not to have to root the phone (Xiaomi Mi 9T Pro)

# Answer
> 2 votes
With root access via magisk, you can use this module to exclude an app from play store updates

https://github.com/yuk7/playstore-excl-upd

---
Tags: google-play-store, amazon-appstore, kindle-for-android
---


# Question
Title: Don't use Google and APKPure misbehaves - how do I update apps?
I have RedMi 3s (Android 6.0.1) phone. Also, I don't like Google, don't use their email and don't work with a Google account - so I don't use the Google Play Store.

For a few years, I have been using the APK Pure app to update all of my other apps. But - a while ago (perhaps early this year?) - somehow, it kind of stopped working. That is, it recognizes the apps that need updates, but never manages to actually get the updates going.

So what I'm looking for is another method/venue/app for routinely updating my apps. Preferably - one in which I don't have to actually press "INSTALL" for every single update, but I'm willing to live with that.

Alternatively, if I could someone overcome my APK Pure issue, that would be good too.

Any ideas?

Note: Manually updating individual apps works fine.

# Answer
Eventually, Aurora Store worked for me. It's an app which access Google Play without requiring the user to have an account there or to provide his credentials.

On the other hand, APK Pure stopped misbehaving on mi MI 9 SE. Not sure if the problem was on my end or with the APK Pure app itself.
> 1 votes

---
Tags: applications, updates, redmi, apkpure
---


title: Links don't open in apps in Android 12

text:
# Question
Title: Links don't open in apps in Android 12
My phone is an LG-V60 (model is LG-V600TM). I'm on Android 12.

I've seen this posted many times but every solution seems to refer to things I'm not capable of doing on my phone (or I'm missing it) so I hope you can help.

When I click on a link from any source (I've tried Chrome and Discord), the link always opens in Chrome (my default browser) and not in the apps I have configured to open those links. This functionality used to work so I suspect my phone automatically upgraded to Android 12 and that's where this stopped working.

So for example, if I click on a link that starts with `www.reddit.com`, I expect it to open in "rif is fun". If I click a link that starts with `twitter.com`, I expect it to open in Talon. Yet in neither case does this happen.

I've checked my "Opening links" screen in "Default apps" probably 20 times now trying different things and nothing works. I'll put some screenshots below but I think everything is configured correctly.

I saw a post that said I have to verify the links for every app, but if so where do I do that? I tap the links in the "Opening links" page and nothing happens. Some of the screenshots I saw on Android Central for this don't look like my phone.

Is there something I'm missing? Any help is appreciated.

# Answer
Google has added a mechanism that prevents Android to open with non-official / third-party apps: Verify Android App Links and Digital Asset Links.

Since Android 12 such verified app links are enforced:

> Starting with Android 12, Google now only allows “verified links” to be opened in external apps. Verified links allow app developers to ensure that only their app can handle links from their domain. If a link is non-verified, Android 12 will open it in the default browser, instead of showing you the app selection dialogue. But thankfully there’s an app called Better Open With that lets you get around Android 12’s new link handling behavior. (source)

### How app links are verified

Android queries a file named `/.well-known/assetlinks.json` from each used domain and this file defines which apps are allowed to open links to this domain.

For example the file `https://twitter.com/.well-known/assetlinks.json` allows only two apps to open links to that domain: `com.twitter.android` and `com.twitter.android.lite` (the signing certificate fingerprint is also mentioned).

As Talon is not mentioned here Android ignores it when you open a link to a path some where on `https://twitter.com/`.

I don't know if it is possible to manually bypass or disable this check system wide or for certain apps.

### Regular web links

> On Android 12 and higher, clicking a web link (that is not an Android App Link) always shows content in a web browser. On devices running previous versions of Android, if your app or other apps installed on a user's device can also handle the web link, users might not go directly to the browser. Instead, they'll see a disambiguation dialog to chose between browser and app(s) (source)
> 5 votes

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


# Question
Title: Samsung Galaxy A51, please enter your PIN code. AGAIN?
From my employer, I've received a smartphone Samsung Galaxy A51. Almost at everything I want to do with it, I need to enter my PIN code. I would like to use my smartphone without needing to enter my PIN code again and again and again and again ...

In my own smartphone, also a Samsung, but a Samsung Galaxy A6+, there I don't need to enter my PIN code that much.

I've been looking in the settings, but I don't find where to modify that configuration.

Does anybody have an idea?

# Answer
Fingerprint? Face unlock? If you have a fingerprint use it. If not then use face unlock. Fingerprint is more secure than face unlock.
> 0 votes

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


# Question
Title: How to fix "Google Play Services won't run unless you update it"?
My device is a Sony Xperia Z and it's running Android 5.0.2. It prompted me to update my Google Play Services, and when I followed the notification it delegated me to the Play Store to update it. However it would seem it is already updated.

My current version of Google Play Services is 7.8.93.

(Click image to enlarge)

The notification keeps coming back and I can't seem to find a solution. How do I get rid of this notification permanently?

Here's a look at the notification :

(Click image to enlarge)

# Answer
`Settings > Apps > Google Play Services > Notification settings > off`

`Settings > Apps > Google Play Store > Notification settings > off`

That's it.
> 1 votes

# Answer
Each time I have reset my phone, exactly the same thing happens. I cannot update individually only Google Play Services as it goes into an infinite loop of popups saying that you cannot Update until you Update.

The solution which worked every time is to go to the Google Play Store into the *Apps and Games* (sometimes called differently depending on the version) and doing a *Update All*. Obviously, it may update more than you want but that is the only reliable way that worked on Android 7.0. Hopefully, this can work (or some similar steps) for your version too.
> 0 votes

# Answer
No 'guru' here, running LG tablet w/Android v5.0.2, updated software yesterday and was unable to 'update' Play Services, altho I was constantly reminded to do so. Finally, for some reason, I decided to move Play Services App button to a different location and, when I did, it updated automatically and (I hope!) OK. Notification is gone.
> -1 votes

---
Tags: google-play-services, sony-xperia-z
---


# Question
Title: Magisk 25+ on a custom ROM: ramdisk + vbmeta, but no boot.img
According to the release notes in Magisk v25 there was significant rewrite. The installation instructions advocated now say flashing Magisk in recovery is

> This installation method is **deprecated and is maintained with minimum effort.** YOU HAVE BEEN WARNED!

Instead they're pushing a new "Patching Image" method.

My device has a `vbmeta` and a ramdisk, but I don't understand what they mean with `boot.img`. What is that?

I'm flashing LineageOS with Micro G, which has

* `lineage-18.1-20220703-microG-instantnoodlep.zip`

There is no boot.img there, and even in the zip there is no `.img`. So how do you get the patched method working with a custom ROM that isn't an `.img`? All the instructions say is

> If your device has boot ramdisk, get a copy of the `boot.img`.

But it doesn't say where to get the `boot.img`?

# Answer
> 0 votes
Here is what I did that worked.

* Install TWRP
* Download payload-dumper-go
* Run `go build`
* For your `lineage` or `lineage-microG` distribution which is a `.zip`, run `unzip MyDownloadedImage.zip`
* Inside you'll have your `payload.bin`, you need to run

```
./payload-dumper-go ./payload.bin

```
* This will output a directory like `extracted_20220713_181918/` inside which you'll have your `magisk_patched-<number>_<hash>.img`

After that you must use `TWRP` to flash the patched image.

1. Push this file over to your phone with

```
adb push ./boot.img /sdcard

```
2. Run with `Magisk` and patch that `boot.img`, this will create a new patched file under `Download` as `magisk_patched`. **IT DOES NOT REPLACE THE `boot.img`.**
3. Reboot into TWRP.

1. Click `Install` (top left)
    2. Click `Install Image` (bottom right)
    3. Browse to `Download` (should be `/sdcard/Download`)
    4. Select the `magisk_patched-<number>_<hash>.img`
    5. Select `Boot`
    6. Swipe to confirm

---

# Not using TWRP?

If you're not using TWRP, you can manually flash `boot`, by

1. Pulling the image down from your phone,

```
adb pull /sdcard/Download/*.img

```
2. Flashing with `fastboot`, like

```
fastboot flash boot /sdcard/Download/magisk_patched.img

```

---
Tags: lineageos, magisk, micro-g
---


# Question
Title: 64GB SD card shown as 2TB after inserted to Samsung Galaxy S9+
I installed a 64GB memory card in a Samsung Galaxy S9+ and copied about 30GB of data to it. A couple of days later, the phone shows a notification saying "Can't open SD card for writing" or something like that. When the card is in the phone, it shows that it has around 30GB used. I can even see the photos in the gallery app but can't read or write to it.

I inserted the SD card into a Linux machine, ran `df -h`, and it says it exists but it doesn't have a partition. I then set up a Windows 10 VM and opened it. In it, it says "There is something wrong with this drive, do you want to format it?" (I know sometimes it says "scan and fix", but now it didn't and I don't know why). I tried with Autopsy which also sees it as 2TB and I don't have enough storage space to try and pull some data out of it.

I really need to pull that data, can anyone help? Or at least point to some data recovery tools (preferably for Linux)?

One more question: would `dd_rescue -A -d -D -b 512 /dev/sdX /dev/sdX` work? I don't want to try unless sure because the card and the data are not mine and I don't want to lose any of it.

# Answer
Sounds like corrupt MBR to me. Do a little research on data recovery I found a how to geek article pointing towards ZAR, only on windows though. Hope this helps.

Article:https://www.howtogeek.com/232931/how-to-recover-images-off-a-corrupted-sd-card/

ZAR download: https://www.z-a-recovery.com/download.aspx
> 0 votes

---
Tags: sd-card, data-recovery
---


# Question
Title: how to connect and disconnect from WiFi using ADB (not a root user)?
I found this project which allows me to connect to a WiFi through ADB commands not being a root user. I was wondering if anyone knows how to disconnect also from ADB and not being a root user.

**UPDATE**:

I've been recently trying:

```
C:\adb>adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
adb server is out of date.  killing...
* daemon started successfully *
Starting: Intent { act=android.intent.action.MAIN cmp=com.android.settings/.wifi.WifiSettings }
Warning: Activity not started, its current task has been brought to the front

```

and

```
C:\adb>adb -s serial_number shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
Starting: Intent { act=android.intent.action.MAIN cmp=com.android.settings/.wifi.WifiSettings }
Warning: Activity not started, its current task has been brought to the front

```

I also found doing this type of command:

```
adb shell input keyevent 20 & adb shell input keyevent 23

```

I can navigate and click. The problem seems to be that I always finish in a different state so the next time I input the command

```
adb -s serial_number shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings

```

I start in a different place and start clicking elsewhere. I've tried returning home, but that doesn't fix the issue. Is there any way to start always from the same point inside the WiFi settings?

Thanks!

# Answer
You can use

```
 adb shell cmd -w wifi connect-network
```
command followed by these parameters if needed :
```
-  connect-network  open|owe|wpa2|wpa3 [] [-m] [-d] [-b ] [-r auto|none|persistent|non_persistent]
    Connect to a network with provided params and add to saved networks list
    open|owe|wpa2|wpa3 - Security type of the network.
     - SSID of the network
        - Use 'open' or 'owe' for networks with no passphrase
           - 'open' - Open networks (Most prevalent)
           - 'owe' - Enhanced open networks
        - Use 'wpa2' or 'wpa3' for networks with passphrase
           - 'wpa2' - WPA-2 PSK networks (Most prevalent)
    -m - Mark the network metered.
           - 'wpa3' - WPA-3 PSK networks
    -d - Mark the network autojoin disabled.
    -h - Mark the network hidden.
    -p - Mark the network private (not shared).
    -b  - Set specific BSSID.
    -r auto|none|persistent|non_persistent - MAC randomization scheme for the network

```

For example. If you want your device to connect to wifi with ssid home with wpa2 authentication and password as 12345678, you should enter

```
adb shell cmd -w wifi connect-network home wpa2 12345678

```
> 1 votes

---
Tags: wi-fi, adb, usb-debugging, command-line, debug
---


title: Backup of Music Playlists

text:
# Question
Title: Backup of Music Playlists
I’m trying to make a backup of my music playlists, that I've created using the Samsung Music app on my Samsung Galaxy A6 (Andriod 10). So far I’ve not been able to locate where these playlists are stored, and neither a way to extract them. Most forum questions about this problem either hold old outdated answers, or none at all.

Does anyone know a way to extract Music Playlists (preferably as a text file)? Or by using some app for it?

Regards

# Answer
> 1 votes
I still don’t know where the files are stored, but for others with same wish for text file-backups, the app: "***Playlist Manager***" can do the job.

It basically has a "*Share A Playlist*" function which allows you to share in text format.

# Answer
> 1 votes
I have been using Playlist Backup on older Androids, and it works well. It creates a text file for any playlist backedup and can be found in the "PlaylistBackup" directory. Please confirm if it works on newer phones.

# Answer
> 0 votes
**"Manage Playlists"**
in *Settings* of **"Samsung Music"** offers the ability to export and import playlists (text files, more details below).

---

The availability of this feature seems to be dependent on the Android version. My old Samsung phone has **Android 10**, the new one has **Android 12 (Android 13 now)**.

Both have the same **Samsung Music App V 16.2.27.5** installed. Higher versions also have this functionality.

**Only** on the **Android 12+13 phone** I could find

> Samsung Music: `...` 》 Settings 》Manage Playlists 》Export My Playlists

and

> Samsung Music: `...` 》Settings 》Manage Playlists 》Import Playlists

---

**Hint:** Settings can be found in the three dots menu (`...`) on the upper right corner of the Samsung Music App.

The playlists are stored in `*.m3u`format in the internal memory, directory `Music`. This is an editable text format.

---

**How to backup / restore Playlists:**

1. **Use case I: New phone**
I was able to transfer the playlists from the old to the new phone by using Samsung Smartswitch. Just ensure the music is on the target phone before running the Smartswitch (use TotalCommander with WiFi plugin etc to copy it). Also important: After copying, run Samsung Music App and give it the time to discover the music on your target phone. Then finally, run SmartSwitch on both phones to transfer apps + settings.
2. **Use case II: Same phone, new SD card**
Recently got a bigger micro SD card and transferred the files via PC using a card reader. I figured out that you can back up all your playlists as described before. Then, shutdown the smartphone and swap the SD cards (insert the new one with all the files in the same folders on it). Boot the smartphone, then go to `...` 》Settings 》Manage Playlists 》Import Playlists and import all playlists backed up to internal disc earlier. After that you will see the old playlists with 0 files as well as new ones with the correct file references in it. Seems the Music App fixes the card ID in the playlists when you import them on the fly. You may now delete the old playlists with 0 files in them.

---

Note: In most cases this works fine, but I found that in a few cases the exported playlist cannot be reimported, possibly due to lame programming in the code of the music app. In those cases import ends up with an error (0 files imported).

---
Tags: samsung, backup, file-transfer, music, media-files
---


# Question
Title: How to list all apps with a specific permission in ADB?
I want to list all apps with a specific permission. For instance, output the package names of apps with the `VIBRATE` permission. The apps with a specific permission then be revoked or enabled as instructed here.

`adb shell 'pm list packages -e'` outputs all packages.

# Answer
You can try this:
`adb shell cmd appops query-op PERMISSION`
For example:
`adb shell cmd appops query-op READ_CONTACTS`
> 0 votes

---
Tags: adb, permissions
---


# Question
Title: Is it possible to get my headset to initiate a recording app and record my voice?
I have a set of Sony headphones with a single button and microphone. I also have a Samsung SC-04F running Android 5.0, unrooted.

I want to be able to press the button on my headset once and record my voice. When I press the button again, the recording stops.

Ideally this can happen regardless of what ever other app I happen to be using. So, if I'm listening to music, pressing the button will start the recording app. I guess it should probably pause the music, and then ideally return to music playing when I stop.

I've looked at options for apps that claim to allow recording via the headset microphone. But, this one for example, seems to require that the app already be running. I've also looked at headset button control apps, and I can get it to open a voice recorder app, but not actually start recording.

Is what I'm trying to achieve possible?

# Answer
> 2 votes
I can't say too much here, but this thing may be achieved by an app called Tasker. Many users say it god of android. To function on every aspect of requirement, it needs root access. In your case, it **does not require root access.**

You can use its capability to achieve that certainly. This is wiki page of that app.

**Edit :** As OP said that he has hands on Headset Button Controller. This app is also supports *tasks* created by Tasker app. Steps to Achieve this -\>

> 1. Open Tasker App. Go to Tasks tab. Click Plus(+) to add a task Record. Now edit the task to get it function what you want.
> 2. Click **+**, then click on Media , then Record Audio.
> 3. Give the file name of your recorded file. Select your source ( In this case Microphone). You can select format on your choice.
> 4. Now link this task with that app. Open app. Click on one of interaction that you want (Single click is your choice in question).
> 5. Now choose *Tasker task* and select the task (Record) as you created in Tasker app.
> 6. You are good to go. Try it.

I tested it by myself. So, it must work. On more out of Tasker, use WiKi as posted above.

# Answer
> 1 votes
It is certainly possible, as:

A.There are non root headset button controllers:

https://play.google.com/store/apps/details?id=com.kober.headsetbutton&hl=en\_GB

B. There are non root sound recorder apps:

https://play.google.com/store/apps/details?id=com.andrwq.recorder&hl=en\_GB

So something that combines the functions of both is possible. However, I fear there isn't such an app availible (or if it is it is hidden in the depths of the play store for a reason, poor quality), you could write your own (which would be beyond the scope of this forumn, not to hard though, may I suggest: https://developer.android.com/training/index.html )

# Answer
> 0 votes
I have searched for this topic almost for a month, and the following was the answer by SoloPilot on Stack Overflow (provided the device is not rooted).

> Sorry, but I think it can't be done for hardware reasons.
>
> The Android headset jack has 4 connections: Tip=LeftAudio, Ring=RightAudio, Ring2=Ground, Sleeve=Mic. (I may have Ring2 & Ground reversed). The HeadsetHook button sends its signal by shorting out Ring2 and Sleeve. So, while pressed it will short out the mic. Can't do PushToTalk."

# Answer
> 0 votes
It is possible when the recording program is running in the background. I am also looking for the same information, and find this app: OSMTracker for Android™.

The related discussion: Issue #60 - Pressing a headset media button should start recording voice

---
Tags: audio-recording
---


title: Backup and restore app data via adb

text:
# Question
Title: Backup and restore app data via adb
I have a app installed on my old phone with a lot of settings and data that I want to transfer to my new phone. So I tried using `adb backup`:

```
$ sudo adb backup -f org.secuso.privacyfriendlynotes.ab -apk
org.secuso.privacyfriendlynotes
WARNING: adb backup is deprecated and may be removed in a future release
Now unlock your device and confirm the backup operation...

```

Which worked fine:

```
$ ls -la
...
-rw-r-----.  1 root   root   5057212 Jul 16 10:59 org.secuso.privacyfriendlynotes.ab

```

But then to import the data on my new phone, I tried using `adb restore`:

```
sudo adb restore org.secuso.privacyfriendlynotes.ab
WARNING: adb restore is deprecated and may be removed in a future release
Now unlock your device and confirm the restore operation.

```

I unlocked and confirmed and the phone said "Restore starting..." and then "Restore ended", so everything seem fine. But the data was not restored.

Comparing `/data/data/org.secuso.privacyfriendlynotes` on both phones clearly shows that my data wasn't restored at all.

I realize that `abd backup` and `adb restore` are deprecated. What are the alternatives now? (I don't want to use Titanium Backup etc. I only use open source software.)

Is there an official alternative way to do this?

# Answer
> 1 votes
The only workaround I could think of was a combination of `adb pull`, `adb push`, `restorecon` and `chown`:

```
APP_ID="org.secuso.privacyfriendlynotes"

# Backup (RUN WITH OLD PHONE CONNECTED)
adb pull "/data/data/${APP_ID}"

# Restore (RUN WITH NEW PHONE CONNECTED)
APP_OWNERSHIP=$(adb shell stat --format "%U:%G" "/data/data/${APP_ID}")
adb shell mv "/data/data/${APP_ID}" "/data/data/${APP_ID}_backup"
adb push "./${APP_ID}" "/data/data/${APP_ID}"
adb shell restorecon "/data/data/${APP_ID}"
adb shell chown -R "${APP_OWNERSHIP}" "/data/data/${APP_ID}"
#adb shell rm -rf "/data/data/${APP_ID}_backup"

```

It does require root though.

---
Tags: adb, backup, restore
---


# Question
Title: How do I disable notifications for a second Gmail account?
I have two Gmail accounts, one that I use for mailing lists and signing up for online services and whatnot, and the other one for more important stuff like work and friends.

I'd like to set it up so that my phone doesn't play the notification sound when an email comes in for the mailing list account. I only want to hear notifications for the account that has the more important email.

I can't find any setting to differentiate notifications between the two accounts.

Is this possible, and if so how?

# Answer
This is what I did in Android 4.1 and Gmail:

1. Open Gmail
2. Tap the Overflow menu (three vertical dots) and select **Settings**
3. Tap the account for which you *don't* want to get notifications
4. Uncheck the **Notifications** option

That should be all you need to do.
> 16 votes

# Answer
An Update for Android 12 or 13 Beta. Both versions were tested and confirmed.

1. Open Gmail App on your Android phone.

2. Choose the account to view.
3. At the top left there are 3 lines, tap the 3 lines.

4. Scroll down to Settings and tap Settings.

5. Choose the email you want to change.
6. Tap Notifications.

7. You have a choice of All, High Priority only, or None.

Once you make your choice, you're done and can back out of settings.
> 2 votes

---
Tags: notifications, gmail
---


# Question
Title: Too much "APP_NAME keep stopping" pop-ups
*Note*: Some Android texts below are translated to English by me. So if something looks familiar to the text in English Android but do not match exactly, could you please highlight it to me.

I have **non-rooted** Xiaomi Redmi Note 8 Pro MIUI Global 11.0.3.0 Android 9 PPR1.180610.011 (not mine, I am just helping for my relative). It have started to produce pop-up windows with the following text: "*APP\_NAME* keeps stopping" First error (after each reboot) is from "Google Play Services" (and it cause the almost the biggest number of the errors). Then the same errors are coming from "App Vault" (almost the same amount as "Google Play Services" but I have disabled "App Vault"), "Security", "msa", "Google", "Emoji Keyboard", "Messaging", "Weather", "YouTube"... The details of the error are the same for all errors and are placed below.

My assume that the problem was caused by the cache cleaning performed using MIUI Cleaner.

So I have started searching for the ways to fix this. I have read ma-a-a-any things. I have found several suggestions to fix "Google Play Services" by cleaning cache but I cannot do it using the usual list of apps because it keep closing because of the same error. I have tried `adb` but `adb shell pm clear com.google.android.gms` are refusing to work without `root` access.

Could you please at least suggest an idea how to deal with this. Also the ideas how to disable (at least temporary) such pop-ups are also very welcomed.

Bonus question: I have backed up the `Android` directory using the `file transfer` USB mode. Also I have run `adb backup -all` but not all application was backed up. I have seen some suggestions for rooted devices. But maybe is there any other way to back up every application without `root`. I know about some all-in-one toolsets that are needed to be installed. However, I prefer enter the commands by myself than some third-party software installation if it is possible.

The details of the error message (I have kept border lines on both pictures):

(Sorry for the photo quality, I was fighting with the tons of the messages.)

**UPDATE 1**: Fighting with the errors I have managed to uninstall Google Market updates and clean its cache. Then the app list and app pages stop closing because of the errors. However the pop-up keeps appearing after all cleaning actions with "Google Play Services" :(

# Answer
Well try uninstalling the Google Play Store and Google Play Services's updates. If you can't or it doesn't work, then you can try disabling the Google Play Services (and if it still shows it then the play store itself), and using the Aurora Store instead of the Play Store.
> 1 votes

---
Tags: 9.0-pie, miui
---


# Question
Title: What should I do after I install 128 GB of storage on my android?
I install 128 GB extra storage on my android.

The thing is, most of those spaces are empty.

I cannot, for example, move my most space hoarding apps over there.

I can move files but I have no idea which file I should move.

My phone is POCO X3 NFC

I am using MKIUI Global 12.0.7 Stable

Some says I should integrate the flash card with my normal ssd. However, I do not see such option in settings

I installed https://play.google.com/store/apps/details?id=com.a0soft.gphone.app2sd

It says I can move app but I need to format SD card as internal by going to

Settings \> Storage \> SD card

Well, in settings there is no menu called storage.

It seems that in APP there should be a button that say Change.

I see no such button.

I can go to manage apps and I am supposed to see this

I don't. My typical screen shen I click manage apps look like.

See. No change button. I should format my SD as internal. I do not see any such option. I can format my SD but there is no option that it's formatted as internal.

# Answer
> 3 votes
Your device comes with (fast) 64/128GB UFS Flash Storage. moving apps to (slow) MicroSD Card requires formatting as adoptable-storage (and makes Internal Storage unused).

In case you really need more storage for apps consider rooting your device. (Along with several disadvantages) you get ability for `mount`ing single apps to MicroSD Card manually.

Partition MicroSD card to exFat and Ext 4 for link2sd?
How to bind mount a folder inside /sdcard with correct permissions?

---
Tags: xiaomi-pocophone-f1, flashdrive
---


# Question
Title: Restore WhatsApp backup from other phone (two phones, two phone numbers, same Google account)
I have a complicated backup situation. An Android phone A with a (defunct) SIM card of phone number 1, logged in to Google as Google user G, has active WhatsApp chats. On a new Android phone B, with a spare SIM card using a different phone number 2, but logged into the same Google account G, also has active WhatsApp chats.

Giving up phone A and phone number 2, to use phone B with phone number 1 (using a new SIM card from the same provider), the desired goal would be to merge both WhatsApp chats into a unified WhatsApp chat history for phone number 1 on phone B.

As I already researched that it is not possible to merge two different WhatsApp accounts, we want at least to secure, backup and restore the chat history, including all media (photos and videos) from the recent years from phone A, phone number 1, to phone B, phone number 1.

As the WhatsApp migration guide does not cover this exact case with two different phones and two different numbers but using the same Google account, I am reluctant to put the new SIM card into phone B, fearing to lose the desired chat history and media, either getting the wrong backup (from phone number 2 chats) or no backup at all (as it happened with another replacement device despite having backed up to Google Drive).

Will it help to uninstall WhatsApp to make sure the latest backup is guaranteed to come from the right source? Thus:

1. uninstall WhatsApp from phone B (deliberately giving up phone number 2 chat history),
2. turn off phone B,
3. explicitly turn on "back up to Google drive" feature on phone A
4. explicitly "sync" accounts in Android settings
5. uninstall WhatsApp on phone A
6. turn off phone A
7. put the new SIM card for phone number 1 into phone B
8. turn on phone B
9. reinstall WhatsApp on phone B,
10. verify phone number 1 for WhatsApp on phone B,
11. choose to restore WhatsApp backup from Google Drive onto phone B. 12ff. Only after everything works, put phone number 2 SIM card into phone A, turn on phone A again, reinstall WhatsApp and verify for phone number 2.

Is this the correct way to go?

# Answer
> 0 votes
I can now confirm from personal experience, that the steps described above have lead to successfully restoring two distinct WhatsApp backups on both phones respectively, using only the full backups stored in Google drive, without having to use manually exported chat history files.

After a further examination of settings and system notifications, also on another phone where a similar backup attempt had failed, I see the important difference of both cases is to make sure that backups are actually created and saved. To do so, I had to allow WhatsApp to create backups and access Google Drive and make that there was enough storage space on the phone and that the phone is either connected to an unmetered network connection (like WiFi) or has a mobile data plan and has settings to allow to upload large files using the mobile connection.

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


title: Silence notifications but not calls

text:
# Question
Title: Silence notifications but not calls
During my night time, I would like to silence all app notifications, including text messages, emails and news alerts.

On the other hands, I do not want to silence calls. This is because calls after midnight are far less frequent than notifications, and they are probably intentional and urgent.

**Is there a way to silence every notification except a phone call?**

# Answer
Yes you can simply turn off/reduce your volume to 0 for the notifications and only keep the ringer volume as required.

You can do this under settings\>sounds(As you have not specified any os details or the device make or model I can only give you a common answer)
> 1 votes

# Answer
You can also use a custom "Do Not Disturb" profile now, which allows calls by anyone or just from contacts.
> 0 votes

---
Tags: notifications, nexus-5, ringtone, silent-mode
---


# Question
Title: Android stuck in Boot animation after flashing GSI
I flashed Pixel Expirience GSI with TWRP by pushing it to the storage and flashing it as system img(with TWRP).
The problem, it’s now stuck in a Google animation which came after the Sony logo.
I would like to shut it down.
I already tried

```
adb reboot but
error: device unauthorized

```

And pressed the power off button 1 min and nothing happened.
EDIT:
I tried to install some GSIs, but they were stuck at the costum Romes Loading animation.

1. I installed the Firmware with Emma
2. Locked it to update to Android 11 and unlocked it again
3. Installed TWRP and booted into it
4. Wiped system and userdata
5. Pushed to system.img file from the custom rom to my device into /sideload/
6. In TWRP install-System Image—\> Pressed on the folder and on the system.img
7. It installed successfully
8. Rebooted
9. Stuck in Loading animation\

(PixelExpirience == A Google G with loading bar, LineageOs == The blue line with the bubble)\

No crashes or so what, it just hangs in there for ~20 min and than I turn the device off with volume(+) and Power button.\

I know Sony Xperia 1 is not officially supported for project treble, but since this thread(https://forum.xda-developers.com/t/mars\_soms-v220313-pixel-expierence-android-12-gsi-patches.4097433/) requires Pixel Experience GSI I thought it should be possible to run GSI on Sony Xperia 1.
Any idea what I might have donne wrong or are there other GSI roms I could try.\

*PixelEX = PixelExperience\_Plus\_arm64-ab-12.1-20220613-UNOFFICIAL.img 3.7 GB<br>LineageOS = lineage-19.1-20220613-UNOFFICIAL-arm64\_bvS.img 2.0 GB*

# Answer
I was able to power it down again by pressing Volume(+) and Power button 5sec
> 1 votes

# Answer
I final solved it. Sony Xperia 1 Exactly what I did:

# Installing stock firmware, will be different from device to device

1. Power the device off
2. Plug it in while holding Volume(-) until a green light appeared.
3. Open Emma(Sony Xperia Firmaware flash Application)
4. Flashed Android 9
5. Boot until I got to the welcome screen( just to check if the Firmware flashed successfully

# Installing the important Files

1. When there https://developer.android.com/topic/generic-system-image/releases
2. Downloaded the right files for my device (Arm64)
3. Unzipped it —\> system.img and vbmeta.img

# Installing the files

1. Powered my device off and booted into fastboot
2. went to the download directory and
*I don’t know why but these two commands, error the first two times when I tip them. Important(when the command errors, press the fast boot button, because my device at leased, tried to escape into a green light mode, but just because it switches to the green light mode does not mean that you should stop it, only if it errors and wants to go into the green light mode.)* \

`fastboot` flash system\_a system.img
`fastboot flash system_b system.img`
(both)
`fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img`
`fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img`
3. Wipe the phone
`fastboot -w`
4. Restart
This worked for me
> 0 votes

---
Tags: rom-flashing, boot-loop, sony-xperia, pixel-experience
---


# Question
Title: Termux API does not ask for permissions and hangs
I try to use termux-api to perform some actions, specifically I want to use termux-usb to run some libuvc code.

However none of termux api programs even ask for permissions to run.

For example if I run

```
termux-camera-photo test.jpeg

```

It just hangs, same for `termux-usb -l`

It is Samsung Galaxy A31, Android 10.

# Answer
> 1 votes
I needed to install Termux-API via f-droid rather that pkg install - and thus it gets the permissions and pops the question.

if you install termux-api via command line tool `pkg install termux-api` \- it fails.

If you install it as an app from f-droid - you can give permissions for example to use camera as to regular app, and `termux-usb` actually pops-up the question to use the device and thus giving permissions.

---
Tags: permissions, termux
---


title: Revert volume button behavior

text:
# Question
Title: Revert volume button behavior
I recently "upgraded" against my will from Oreo to Pie, and two problems that weren't there came up:

* The volume button used to change the notification volume. Now it changes the Media
* The icon right below the level indicator used to expand two other columns of levels, enabling me to control the media and ringtone level. Now it opens the settings instead.

Is there a way to revert these stupid changes ?

I imagine XPosed must have a module for that...

# Answer
One XPosed module, **GravityBox**, fixed both my problem (credits to beeshyams).

After installing it (if you are lucky), do mark under **Media Tweaks**, ***Force ring volume control*** and ***Expanded volume panel***

Tested only on GravityBox \[P\], but probably valid for any version
> 0 votes

---
Tags: volume
---


title: How to view/edit a long URL?

text:
# Question
Title: How to view/edit a long URL?
I have a long URL displayed in the URL box of Chrome on Android 11. I would like to view and edit it. When I use a pencil tool, only the last part of the URL is visible and accessible for editing. How to scroll left to the beginning of it? I tried two fingers with no effect.

# Answer
It mostly depends on the keyboard you use.

* If you use Gboard, there is no `HOME` key. But, you can use its Text Editing feature. The top arrow key mimics the `HOME` key. See recording below.
* If your keyboard has a `HOME` key like PC's keyboards do, then pressing the key will send you to the beginning of the URL.
> 6 votes

---
Tags: chrome-for-android, editing
---


# Question
Title: How to open downloaded Kindle files in Android?
I have downloaded the Kindle app from Google Play Store and installed it.

I have some Kindle files downloaded from the internet. How can I open them using my Kindle app?

# Answer
If you have the Kindle app installed, just open it and it should show a selection of the books you've purchased from the Kindle store.

Books that haven't been downloaded to your device yet are available via the "Archived Items" menu option that pops up when you press your device's `Menu`, you should be able to select and download any books there.

If you've downloaded Kindle compatible books from elsewhere on the internet, then if you move them into the "Kindle" folder on your SD card, they should appear in the listing of books when you open the Kindle app.

You have two options to do this:

* Plugging your phone into a PC and mounting the SD card as an external drive,
* Using one of the many Android file manager apps that are available from Google Play Store.
> 16 votes

# Answer
The easiest way to do this is to email the file to your Kindle email address.

When you setup your Kindle, Amazon assigns your Kindle account an email, \[something\]@free.kindle.com. Attach it to an email and send it there. Done.
> 0 votes

---
Tags: kindle-for-android
---


# Question
Title: All the built in notification tones are now gone after clearing the Media Storage app's data
The Album app on my phone fails to detect some of the pictures I have after I moved them. I tried clearing the Album app's data but it didn't do anything. After looking around the internet, I found that one way to refresh media apps is to find the Media Storage system app on the Settings and then clear it's data. After I did that, I noticed my notifications on some messaging apps stopped having sound. When I tried to select a new notification tone for it, I found out that all the default ringtones and notification sounds are missing. Is there a way to get this resolved like maybe there's a directory where these tones are placed in the system, or am I SOL?

EDIT:
After digging around, I found my notifications, ringtones, and alarm sounds are still in `/system/media/audio/` but for some reason the ringtone selection dialog doesn't detect them. They don't have a `.nomedia` on the folder so it can't be that. Is there a way to force them to be rediscovered?

# Answer
I had the exact same issue, I can't remember why but I know I cleared my media storage when trying to fix something. Of course, the guide I was blindly following never mentioned that it would silence my alarms as a byproduct

Using the search `"Media Storage" android tones gone`, I found some good resources that led me to the ScanMediaPlease app, which forces the process to reindex the stuff. The app worked where rebooting failed for me.

### Resources
> 0 votes

---
Tags: notifications, 5.1-lollipop, sony-xperia, ringtone
---


# Question
Title: Android device connected to PC, detected, but no folder, no files
My previous Lenovo tablet with Android 7 had no problem with this procedure:

1. I connect it via a USB cable to a PC with Windows 7.
2. I select the device (tablet) in the Windows Explorer.
3. I open the (virtual) folder **“Internal shared storage”** (or the other, “SD Card”, as I had the SD card inserted in it, too).

Then I sow directories and files on the tablet, and I was able to copy them from tablet to PC and vice versa, rename them, delete them, and so on.

In my new tablet Lenovo with Android 11 and the same PC with Windows 7, I am able to perform only first 2 steps – then I see only an empty window, no folders in it (i.e., no “Internal shared storage” or other directory / file in it).

When I try to copy a file to that empty folder, I obtain the message as

> It is not possible to copy the item.
> The device stopped to respond, or is disconnected.

Is it something bad with settings? Is it possible to fix it?

*Note:*

I may go around and copy files from the tablet to the USB stick and then from the USB stick to the PC, but this is so annoying and slow…

(The USB stick is connected with a short converting cable to the same USB port on the tablet as the USB cable connecting the tablet and PC in the previous step 1.)

# Answer
> 1 votes
Android 11 default behavior after connecting to the other device via a USB cable is

* **No data transfer**

(In the *non-developer mode*, there are no settings for changing this safe default behavior.)

It means, you have to change it *again and again after every connection*.

---

So, after every connection, you may follow (for example) these steps:

* If you don't see notifications, swipe from the top of the screen to open them.
(If needed, scroll notifications up until you will see the section title “Silent”.)
* Beside other notifications you will see the text

> Android System - Charging this device via USB ᐯ
* Tap on the down-arrow symbol to the right of this text to open the menu. You will see something as
* Following the instruction under the (already displayed) text, tap for more options.
* You will be redirected to the “USB Preferences” in the “Settings” screen, where you may select the option “File Transfer”:

---

*Note:*

If you have enabled *Developer options* (see Enable developer options), then you may change the default behavior:

* In the *Settings* select *System → Developer options*.
* locate the *Default USB configuration* and tap on it:

After it, you will see similar options as in the previous picture, and you can select *File Transfer* to *automatically select this mode after every connection via a USB cable.*

But note that it is *not safe for connecting to unknown devices.*

---
Tags: windows, usb-connection-mode, lenovo
---


# Question
Title: How to delete data from an uninstalled app?
My Android 8.0 phone is showing the 32 GB is full. I have deleted videos and stuff but I wonder if apps that I uninstalled have not deleted their data. How to find out?

# Answer
> 2 votes
For apps you have installed you should have some sort of app manager to view the app info --\> storage, which you should probably clear data/cache before uninstalling. Supposedly you could re-install an app and clear the data.

Alternatively install an app to help you clean up junk like "SD MAID" and use its CorpseFinder to find orphaned files, you get a list so you can go through and choose which files you want or not want and bin them I believe.

I've personally used ES File Explorer, which is better, but apparently it only seems to be available from 3rd party websites now as Google has removed it from the play store for "click fraud".

---
Tags: storage
---


title: Developer options suddenly disappeared

text:
# Question
Title: Developer options suddenly disappeared
At the same time, the developer options suddenly disappeared on all the android devices that I used to test. I didn't do a reset or anything. Not even turning off all these devices. Why did it happen? am i hacked? maybe there are people who want to prevent me from completing the application that I made by making me confused because suddenly logcat can't connect, ON ALL ANDROID DEVICES I USE..

# Answer
Go to Settings-\>~About this device~-\>(scroll down)Build number.
Click on it.

If it says: nothing,
try clicking on it seven times, to become developer again.
If it says: “you are already developer”,
this means the developer options should be enabled, try to find them via the settings search function.\

I do only know very little about hacking, but it seams very unlikely that someone disables developer options during an attack.
Maybe your app trigger something, or your rom does not allow you to install self build apps.(*sometimes devices, which where given to you by schools have such options disabled*)
> 0 votes

---
Tags: developer-options, android-studio
---


# Question
Title: How to install a certificate to Work Profile user
I would like my app on Work Profile user (https://www.android.com/intl/en\_us/work/) to connect to a server with a cert. Since Work Profile user shares Settings with Owner user, I installed a cert from the Settings (Security -\> Install from internal storage/SD card). My app of Owner connects to a server with a cert correctly, but for Work Profile, it cannot.

Would you please tell me how I should do in order to make Work Profile recognize a cert?

Environment : Android 5.x on Nexus5 / 9

# Answer
> 3 votes
## Related: Android 10 and 11 CA Cert on Work Profile

---

To install a user ca certificate into work profile you will need root access.

### Installing user certificates into work profile:

1. Install an exported certificate normal way
2. Get a root shell

```
adb root; adb shell

```
3. Verify certificate and hash is installed.

```
# an example would be 1000_CACERT_*
ls /data/misc/keystore/user_0/<CACERT>

```

```
# example: 81c450f1.0
ls /data/misc/user/0/cacerts-added/<xxxxxxxx.0>

```
4. Move them to the work profile

```
cd /data/misc/keystore/
mv user_0/<CACERT> user_10/

```

```
cd /data/misc/user
mkdir 10/cacerts-added
mv 0/cacerts-added/<xxxxxxxx.0> 10/cacerts-added/

```

---
Tags: multi-user, certificates
---


# Question
Title: Apps will not auto start on Android 9.0 Pie
I bought a cheap Blackview BV5900 running on Android 9.0 (I assume a custom ROM) as I needed something rugged and with long battery life for testing purposes. I'm struggling to find any answers as to why apps won't auto start when they are supposed to. The app in question primarily is Grandstream Wave - Video which is effectively a SIP client. It auto starts just fine on an old Samsung Galaxy V6.

I've tried various auto-start apps to see if I could get around it, but it would seem they fail to load as well on boot, so they don't do the task they are intended to perform. I've been in contact with the manufacturer and their answer is it just won't do it.

As it's a test phone I'm quite happy to root it, although I'm completely new to Android, I'm sure I'll find enough info to get started with a bit of googling.

What I'm after is a bit of help on what to look for and how to find it. From what I gather, the app is looking for a `BOOT_COMPLETE` message of some sort, so I'm guessing that is disabled somewhere? Any answers, please assume I know nothing, you will be correct.

**EDIT 11May2020**

Tried the shell command as requested here \- no Joy. Result from shell below. Not sure whether this just means I don't have enough privilege to run it or it's disabled in some way?

```
Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED flg=0x400000 pkg=com.grandstream.wave }
Security exception: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000
    at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:21774)
    at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:22411)
    at com.android.server.am.ActivityManagerShellCommand.runSendBroadcast(ActivityManagerShellCommand.java:690)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:174)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:16434)
    at android.os.Binder.shellCommand(Binder.java:634) at android.os.Binder.onTransact(Binder.java:532)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3551)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3397)
    at android.os.Binder.execTransact(Binder.java:731)

```

# Answer
> 0 votes
This would not be a complete answer to your problem. But if you suspect that BOOT\_COMPLETED broadcast is disabled for some reason, you can try to send it manually using adb shell and see if your app starts up.

It better to send the broadcast directly to your app by specifying its package name. If you do not know the package name of your application, first you need to find it. To get a list of all installed packages in your device, you can use following command.

```
$ adb shell pm list packages

```

After finding the package name of your app from the output of above command, you can use following command to send the broadcast to your app, and see if it starts after it received the broadcast.

```
$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p <com.your.apps.package.name.comes.here>

```

In above command replace `<com.your.apps.package.name.comes.here>` with your app's package name.

# Answer
> 0 votes
This problem is due to the fact that in all firmware on all smartphones the application autorun is disabled

This problem is solved very easily with root access. You just need to fix one line in the **/system/build.prop** file:

* ro.freeme\_freemanager=1
* ro.hct\_autostart\_manager=1

In these lines you need to change 1 to 0. You can edit the file /system/build.prop with Total Commander or anything else.

Tested with success on BV5900

---
Tags: applications, 9.0-pie, auto-start
---


# Question
Title: How can I remount an external storage SD card?
My external `sdcard1` has disappeared leaving only `sdcard0` emulated. I have looked in device/storage, and the folder is indeed gone. How can I mount or remount my external storage `sdcard1`?

# Answer
> -1 votes
One way would be via USB using an SD card adapter, I have one myself that I use for all my various devices, PC, Tablet and so on. Especially handy when I am taking photo's to my PC.

---
Tags: external-sd
---


# Question
Title: Undoing MagiskHide or updating magisk without the GUI (perhaps by using magisk --install-module)?
I have magisk installed on my phone – binary & daemon version 22.0:MAGISK (22000). It is great. I had to install MagiskHide to enable a banking app that otherwise did not work.

I used the option to rename the MagiskManager binary to something else to prevent it from being detected – which was required for the (evil!) banking app to work. I now wish to update Magisk and install another framework. Unfortunately, whilst I can see the renamed binary to the gui / UI on my launcher, if I tap on it, it doesn't open – the shortcuts to "Modules" and "su" and so forth are still there, but the binary doesn't work.

If I log in via adb shell, I can call `su` and all works that way. Other apps that rely upon root don't show the permissions dialogue if I did not previously authorise them – unfortunately, because I updated `termux`, that includes it and su just hangs.

In a root shell, `magisk` and `magiskhide` all work – I have disabled magiskhide but still cannot open the manager application.

If I install the latest version of Magisk from github, it cannot connect to the daemon and offers to flash an image.

I am therefore in a bit of a pickle. I would like to know:

– Can you run `magisk --install-module <path_to_latest_magisk.zip>` to get it to update itself? Would that bring the gui back? – If not, can I manually undo whatever magiskhide did to rename or hide the MagiskManager gui?

One option I have yet to try is flashing the latest magisk zip via twrp but I am slightly worried that having two versions of magisk is likely to be a BadThing™...

EDIT: Here's what the (renamed) Magisk Manager binary looks like – none of the buttons work and nothing appears in `dmesg` when I tap them:

# Answer
So, it transpired that `MagiskHide` had successfully hidden Magisk from itself. I:

1. Logged in via `adb shell` and got root
2. Ran `magiskhide disable`
3. Uninstalled the stub app shown below
4. Downloaded the current magisk .apk from the github repo
5. Rebooted (normally) and installed it
6. Found that magically my previous version of magisk was detected, and I could thus update it.

Phew!
> 1 votes

---
Tags: root-access, magisk, root-cloak
---


# Question
Title: What is the equivalent of UEFI/BIOS in Android?
I'm having the hardest time finding the name of Android's equivalent of the Unified Extensible Firmware Interface (UEFI).

Maybe they are specific to each manufacturer? I am specifically looking for the one used with Samsung Galaxy phones. Is there an open source specification for interfacing with Android phone hardware, similar to how UEFI and BIOS work?

The closest thing I have found is **Replicant OS**. The description says "Replicant is a fully free Android distribution running on several devices". If it can run on many devices, would that mean it's using the same firmware 'interface' across many devices?

# Answer
The firmware is more related to hardware (and hardware type/architecture) than to software/OS. OSes must support that hardware/firmware but the firmware is not part nor exclusive of the OSes.

ARM is the typical architecture where Android runs and yes, it varies a lot by the manufacturer.

Replicant OS is geared towards ARM-based hardware and, according to their FAQ, is currently supported in few devices and some of them only partially, I imagine because getting support for a specific device depends on how "open" the manufacturer is about it. And there are limitations because there are lots of proprietary stuff that's needed for full support, there are features *missing without non-free firmware*. Definitely not as easy as your typical PC.
> 2 votes

# Answer
Arm is not as standardized as x86, quite fragmented in fact. On Qualcomm platforms, it tends to be PBL -\> XBL (or SBL) -\> ABL (or ABOOT) but it's dependent on the board. There is no effective standard yet like UEFI. Arm SystemReady hopes to tackle this problem if the manufacturers try to adopt it.
> 2 votes

---
Tags: bootloader, device-firmware
---


# Question
Title: Remove work profile from personal device
According https://support.google.com/work/android/answer/6191949?hl=en:

> 1. Go to Settings \> Accounts \> Remove work profile.
> 2. Tap Delete to confirm the removal of all apps and data within your work profile.
> 3. Ensure that the policy app ("Device Policy") is uninstalled and not present on your device.

My Samsung Galaxy S10 with Android 11 doesn't have Settings \> Accounts. The closest I can find is Settings \> Accounts and backup \> Manage accounts. But then when I click on the Work profile, select an account, and click Remove account. I get "This change isn't allowed by your admin." What do I need to do to remove the Work profile from my personal phone?

# Answer
> 3 votes
The option you are looking for is "uninstall work profile", not "remove account". If you use the search bar in your settings menu then it should come up.

I just did it and it worked perfectly. I had the same problem as you do. I will try to add a screenshot to demonstrate.

# Answer
> 1 votes
I ended up contacting my previous employer. They had to remove the profile on their end via the administrative UI.

# Answer
> 1 votes
Probably irrelevant to the original question based on newer OS version, but thought I'd mention it for reference. On Samsung S7 running Android 8, I had to go into the Workspace (app) section, for the workspace created for that work profile, and uninstall the workspace from the workspace app settings. Only then was I also able to remove the MDM app that set up the workspace. There was no workspace settings with the Settings app.

---
Tags: samsung, work-profiles
---


# Question
Title: App is available for my device, but I can't install it?
How should I understand the following situation:

https://play.google.com/store/apps/details?id=pl.greenway.evcharge&hl=en&gl=US

> This app **is available** for *some of your devices*

An app is available, but I can't install it because Install button is disabled.

# Answer
This is a bug in Google Play for web / PC / Edge / Windows 11.

When you analyse a source code of the *Install* button, you can see the following:

For some weird reason (a bug?) Google Play adds the following:

```
 data-disable-idom="true" disabled=""

```

to the `<button>`'s code.

Removing this fragment and closing Dev Tools allows user to click *Install* button and continue.

Nothing unusual happens next. User goes through the regular: *Verify, it is you* \+ password + device pick + *App will be soon installed* path and naturally app is installed in about next 3-5 minutes.
> 1 votes

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


# Question
Title: cd into the external sd-card directory using adb shell
I have a Samsung Galaxy Tab 2 (actually, many of them) and I need to regularly push some files inside the **external physically removable** SD card of my tablets.

Android handles internal and external storage as follows:

```
/storage
  ├ emulated/0/ /* this is the internal storage partition */
  └ 9102-ABF4 /* this is the external removable SD card partition */

```

I thought I could find this path by browsing to the folder which is not named `/emulated` inside `/storage` since the other one is the one I want.

I want, using device's shell through adb, to navigate to (using command cd) a directory that I don't know the path of (`9102-ABF4` written above, located inside `/storage/`)

# Answer
If your Android is 6 or above, and if your are connected through USB cable and your Android have USB debugging enabled, and if you have installed:

```
sudo apt install adb perl

```

put in a Linux terminal:

```
adb shell sm list-volumes public | perl -lane 'print $F[-1]')

```

This will show the micro SD card identification, example:

9102-ABF4

I made several scripts to automate send and receive files from Linux to Android and from Android to Linux:

https://github.com/wachin/adb-send-files
> 2 votes

# Answer
I don't believe adb shell supports tab completion. It makes reference to a directory in a command, but if you don't know the path you will need to use `adb shell ls` command to list the directory before using the path in an adb push command. For example, `adb shell ls storage/9102-ABF4` will let you explore the external SD card that is on your device.

In terms of changing the working directory on your terminal, I don't believe you can do this because adb does not support interactive mode like nslookup. You are using a shell (adb shell) within a shell (bash, PowerShell, cmd, etc).
> 1 votes

---
Tags: external-sd, shell
---


# Question
Title: How to access the Emoji keybaord on a new Samsung Galaxy S22+?
I bought a new Samsung Galaxy S22+, but I don't see the Emoji keyboard. I think it should exist on my phone, but I don't see anywhere how to access it.

My input method is 'Samsung Keyboard', and under 'Languages and types', I have English(US).

**How can I enable it or how to access it?**

# Answer
> 2 votes
It is pretty hidden, but this is the solution: When the keyboard is open, press long on the comma (',') button to the left of the space bar. Then, you'll have the option to choose different keys, one of which is the emoji symbol, **press it**.

Then, the emoji symbol key will replace the comma one, and you can use it to open the Emoji keyboard.

---
Tags: samsung, keyboard, samsung-galaxy-s
---


# Question
Title: Mobile data works on Gmail but not on any browser on Pixel 4a 5G
I have a Pixel 4a 5G running on the latest Android 12 as of 7/22/22. With mobile data and background mobile data enabled in apps, I can make phone calls and check Gmail, and yet, no browser works: Firefox, Chrome, Duckduckgo. They spin or put a loading bar and eventually say "no network connection".

I've reset the networks and reloaded the base system (system reset), but nothing changed.

Any ideas?

# Answer
> 1 votes
Turns out that my problem is with 5G. The phone reports a connection with 5G. However, the 5G connection will not work with Google Voice, nor any app other than Gmail.

I must set the preferred network to LTE to get the phone to work properly. I thought initially that it worked without setting the preferred network to LTE, because the tower at the place where I live has no 5G coverage whatsoever, so the connected network was LTE. The minute the phone connects to a 5G signal, the data service drops out for Google Voice, and all other apps including browsers.

Found a fix.

1. I turned off WiFi.
2. Go to the SIM. Set the preferred network to LTE.
3. Let the phone connect to mobile data.
4. Turned on Airplane Mode.
5. Checked the browser to assure that there was no internet connection.
6. Dismissed the tab, and shut down the browser completely.
7. Turned off Airplane Mode.
8. Waited until the phone reported connection to mobile data (icons at top).
9. Brought up the browser (WiFi is still off), and typed in search. Voila, the browser now functions properly on mobile data.

Summation: I don't know if the phone I have is defective, or if my carrier has a problem. I would like the phone to work properly on 5G, though, it's why I bought this model.

I'm leaving this up in the hopes that anyone having the same problem won't have to suffer as I did.

---
Tags: browser, connection-issues, mobile-data, google-pixel-4a
---