# Question
Title: Is it possible to backup apk from an installed application?
I got some huge games which I don't play regularly but don't want to delete either. Is it possible to backup those apps as apk so that I can install them **offline** later? I'm not talking about backing up only the app data, many tools exist for that purpose. I want the ability to install the app again offline at a later time. Also, this is not necessarily an app suggestion request, any method to achieve this is OK with me.

# Answer
> 18 votes
A very easy way is ES File Explorer from Google Play Store.

**Edit: This app ES File Explorer has been removed from Play Store and is no longer available (the app was sold an the new author added malicious code to the app).**

You can browse to your

* `/system/app` folder (for system apps)
* `/data/app` folder (for user apps; requires root to be accessed)

and copy them to your `/sdcard` (or anywhere else).

Copying multiple files with ES File Explorer is very easy. Just long hold one of the files, then put check marks on all the files you want to copy. Then browse to the folder (on your sdcard) where you want to place them.

Connecting to your computer via your usb cable will allow you to backup your sdcard content to your computer.

**Update (Accessing the protected data/apps area):**

I notice the `/data/` directory is not readable. You can pull any of the content if you know it by name. I'll describe a (cli) solution to get the names and the files. However, the backup tools suggested by Izzy are the easiest way to go.

This is a step by step method to get the list of packages and pull the packages using the commandline:

1. Download and Install the Android SDK package (or see Is there a minimal installation of ADB? for a solution requiring much less space, if you're not intending to develop Android apps). While you'll have access to just about everything in the world (Android), don't be too overwhimed... just focus on an immediate objective, and all the other features can be for a different day.
2. Add a path to these two directories of the package install (`[installedpath]/tools` and `[installedpath]/platform-tools` for a full SDK installation).
3. Now, with the Android plugged in via the usb, run this to get the full list of installed apps:
`$ adb shell 'pm list packages'`
You now have a list the names of all your install apps.
4. Use the `-f` parameter to get the full pathname of a desired package by specifying a search string found in the previous list:
`$ adb shell 'pm list packages -f reader'`
5. Now pull the full pathname of the package you want to get with:

```
 ## adb pull [filepathname] [destination path] ##
 $ adb pull /data/app/com.ebooks.ebookreader-2.apk ~/mybackupdir

```

The steps might appear to be complicated, but they are easier done than said. Once you perform it a few times, you'll find it very easy to pull any app from your device. You can also write a script to do this as your own personal backup utility.

While there are gui alternatives as mentioned in the alternate answer, I strongly recommend looking at the features of the adb commands which includes full backups... the option for users to select precisely what they want backed up and where.

Installing the full Android SDK will give fuller access to components of your android device (from the commandline).

Look at the commands:

```
$ adb -help

```

Look at the backup section (of the help screen):

```
adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]

     - write an archive of the device's data to <file>.
     If no -f option is supplied then the data is written
     to "backup.ab" in the current directory.

     (-apk|-noapk enable/disable backup of the .apks themselves
     in the archive; the default is noapk.)

     (-obb|-noobb enable/disable backup of any installed apk expansion
     (aka .obb) files associated with each application; the default
     is noobb.)

     (-shared|-noshared enable/disable backup of the device's
     shared storage / SD card contents; the default is noshared.)

     (-all means to back up all installed applications)

     (-system|-nosystem toggles whether -all automatically includes
     system applications; the default is to include system apps)

     (<packages...> is the list of applications to be backed up.  If
     the -all or -shared flags are passed, then the package
     list is optional.  Applications explicitly given on the
     command line will be included even if -nosystem would
     ordinarily cause them to be omitted.)

```

You can use the Android Backup Extractor to explore the compressed backup file created by the adb utility.

Restoring the backup to the android is a simple "-restore" command:

```
$ adb restore <file>

```

The Android Backup Extractor provides a way to explore the backup and pick out individual files (such as the apk's as in the OP's objective) to store or preserve.

The explorer package includes a variety of multi-platform tools, such as Java, perl, and cygwin.

You can extract the backup with (using the java extract opton):

```
## this line converts the android backup into a tar file ##
$ java -jar abe.jar unpack backup.ab backup.tar

```

---

Out side of my initial cli answer, the most precise GUI app to accomplish the OP's specific question is AirDroid. It's free, extremely user friendly and intuitive to use.

To use, run the app. It gives a local IP address for typing into a web browser. The link will give you a UI that resembles and Android home screen. Click on the "Apps" icon and select one or more apps to download. You can install or reinstall the Apps using the same interface.

*There are several other GUI alternatives (graphical user interfaces) available, e.g. QtADB (multi-platform) or, for Windows users, also the excellent Droid Explorer by our member Ryan Conrad (see e.g. Full Backup of non-rooted devices; for more, also see our adb tag-wiki).*

# Answer
> 4 votes
There are several apps specialized on this topic. The probably best known is AppMonster, which I use (in the Pro version) for years now, very reliable (and very active dev). For alternatives and more details, please take a look at:

# Answer
> 2 votes
Everyone is suggesting closed source softwares here which are perhaps Adware. One should rather use Ghost Commander File Manager which has an *Apps* section. Copying apps to mounted (accessible in layman terms) storage is pretty straightforward.

# Answer
> 1 votes
I've got 'avg antivirus' installed.I just backup files from it and they get stored as apks.

# Answer
> 0 votes
Why not using SD MAID?

I've been using this tools to backup my Android apps so far. It's lightweight, and easy to use to get the apk from installed apps (without root needed).

Step-by-steps :

1. Download the SD MAID from Google Playstore
2. Open SD MAID menu, swipe from the left side.
3. Choose AppControl to show app that installed on your Android phone.
4. Tap on that application you want
5. Then tap Exports the .apk menu
6. You get you want!

BTW, the default location of the output (APK) will saved in Download folder (internal storage).

> Reference Bartolab, How to Export APK File From Installed Apps on Android

# Answer
> 0 votes
There's APK Export which is good just for that purpose: it's only 112 kB and it's free with no ads or in-app suggestions to get the pro version.

# Answer
> 0 votes
Based on the answer from Mahesh Hegde, I can confirm that Total Commander can also save the apps's APK. It does not require root or any extra settings.

In the main screen, there is the "Installed Apps" section. Simply select and copy the app to any folder in the other tab.

The app is available as a direct download from the developer or from app stores.

# Answer
> -1 votes
You can use App Backup & Restore application to get the backup of application as an apk file.

# Answer
> -1 votes
Then back up your app data after that go to Settings-\>Application-\>-\>Clear data(Clear the app data). After that you can able to get the apk for the selected application with the use of APK Share/Send application.

---
Tags: backup, storage, offline
---


# Question
Title: How to backup apps and data on non-rooted Android without needing a PC?
I know there's ADB backup and Helium and something called Droid Explorer that can help you backup your Android software and data to some extent using a PC, but I want a fully functional non-root, Android-only backup solution (basically, a replacement for Titanium Backup which does it all but requires root). It needs to be able to fully backup and restore apps and data in state. Any ideas?

# Answer
Such a solution cannot exist without having provisions in the OS itself. The default provision in the OS is the Android backup service which apps use to backup their data to Google accounts and which adb taps into when a user makes an app backup request. Any solution outside of tapping into backup service would require breaking apart the security model of Android and tap into the private data of apps. Naturally, such a solution is not going to be available without root access.

So your choices come down to these two:

* use a PC with a software using adb in the background for app backups, or, use an app which requires adb running in wireless mode (such as what Helium requires; adb wireless needs to be started using PC though) so that the app can use adb to backup apps without further needing a PC.
* root the device and do whatever you want with any app and its data without needing the PC.
> 0 votes

---
Tags: backup
---


# Question
Title: How do I recover data from a phone with a broken screen
So, I broke my phone's screen recently, and it had a lot of important data. I cannot see or use the screen, and I want to get all my data off the phone. Can anyone help me with this?

# Answer
> 0 votes
If you are using my phone app, you can get some data. Also, if your phone has already been rooting or debug enabled you can connect via adt.

---
Tags: backup, broken-screen, data-transfer
---


# Question
Title: Flashing Nexus 5 factory image fails on writing userdata
Recently, I purchased a used Nexus 5. I would like perform a full reset, so I’m trying to flash the factory image using Google’s official instructions.

However, I keep getting the message `FAILED (remote: 'Bogus size sparse and chunk header')` for the `Writing 'userdata'` step.

Am I doing something wrong, or is something wrong with the instructions or image from Google?

(Possibly) relevant info:

* I'm running macOS Mojave 10.14 (18A391) on my computer.
* I'm using fastboot from the Android SDK Platform-Tools version 28.0.1, installed using Android Studio 3.2.1.
* I tried the two most recent images of Android version 6.0.1 (M4B30X and M4B30Z), both give the same issue.

The full output of the flashing process can be seen here:

```
$ ./flash-all.sh
Sending 'bootloader' (3124 KB)                     OKAY [  0.310s]
Writing 'bootloader'                               OKAY [  0.516s]
Finished. Total time: 0.923s
rebooting into bootloader                          OKAY [  0.108s]
Finished. Total time: 0.108s
Sending 'radio' (45489 KB)                         OKAY [  1.640s]
Writing 'radio'                                    OKAY [  3.130s]
Finished. Total time: 4.867s
rebooting into bootloader                          OKAY [  0.104s]
Finished. Total time: 0.104s
extracting android-info.txt (0 MB) to RAM...
--------------------------------------------
Bootloader Version...: HHZ20h
Baseband Version.....: M8974A-2.0.50.2.30
Serial Number........: ***redacted***
--------------------------------------------
Checking product                                   OKAY [  0.100s]
Checking version-bootloader                        OKAY [  0.100s]
Checking version-baseband                          OKAY [  0.100s]
extracting boot.img (8 MB) to disk... took 0.037s
archive does not contain 'boot.sig'
archive does not contain 'dtbo.img'
archive does not contain 'dt.img'
archive does not contain 'odm.img'
archive does not contain 'product.img'
archive does not contain 'product-services.img'
extracting recovery.img (9 MB) to disk... took 0.033s
archive does not contain 'recovery.sig'
archive does not contain 'super.img'
extracting system.img (996 MB) to disk... took 7.816s
archive does not contain 'system.sig'
archive does not contain 'vbmeta.img'
archive does not contain 'vendor.img'
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 7137786 4k blocks and 1785856 inodes
Filesystem UUID: aab8dc10-d114-48a0-b9dc-c7ebdd24c79d
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 179200 4k blocks and 44832 inodes
Filesystem UUID: 2d2b45ab-678b-43ba-8b3c-83827764dbc8
Superblock backups stored on blocks:
    32768, 98304, 163840

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Sending 'boot' (9154 KB)                           OKAY [  0.510s]
Writing 'boot'                                     OKAY [  0.776s]
Sending 'recovery' (10012 KB)                      OKAY [  0.564s]
Writing 'recovery'                                 OKAY [  0.832s]
Sending 'system' (1020665 KB)                      OKAY [ 36.364s]
Writing 'system'                                   OKAY [ 69.147s]
Erasing 'userdata'                                 OKAY [ 14.079s]
Sending 'userdata' (4272 KB)                       OKAY [  0.360s]
Writing 'userdata'                                 FAILED (remote: 'Bogus size sparse and chunk header')
Finished. Total time: 133.541s

```

# Answer
I encounter the same problem today :) flash-all script failed when writing userdata

I have managed to solve this issue by manually continue the flashing process:

```
1) extract image-hammerhead-m4b30z.zip

2) cd to the extracted folder

3) run the following commands (one by one)
fastboot erase userdata
fastboot flash userdata userdata.img
fastboot erase cache
fastboot flash cache cache.img
fastboot reboot

```
> 22 votes

# Answer
it's too late for this post, but I'm answering for anyone else finding this post refer to this link http://www.gandalfk7.it/2019/03/24/fastboot-too-old-and-error-cannot-generate-image-for-userdata/ you must update your os platform tools and execute `sh flash-all.sh` after updating the platform set the PATH in your directory as this reference says

do these steps and like the link said and you will make it!

```
-  download the newer platform-tools from https://developer.android.com/studio/releases/platform-tools.
-  Decompress them with #unzip platform-tools_r28.0.2-linux.zip
a new platform-tools folder will be created
then in your folder where you have unzipped the factory default
-  edit flash-all.sh and add this line on top:

export PATH=/home/YOURUSER/Downloads/platform-tools:$PATH

-  in this way the script will search for executables in that folder, using the newer ones.

```
> 2 votes

# Answer
Heads up to anyone that finds this happening on a Nexus 7. Same problem except there's a secondary problem after explicitly specifying platform tools. Force flashing userdata doesn't allocate all the remaining space for userdata. Solution is to resize it afterward before first boot. If you try to resize after first boot you will get stuck in a boot loop and have to reflash everything.
> 1 votes

---
Tags: rom-flashing, nexus-5, fastboot, factory-image
---


# Question
Title: How to make `adb reboot` work like `/system/bin/reboot`?
I have a problem with my device. When I do `adb reboot` then it stuck on boot in a loop.

But, when I do `adb shell` and then `reboot`, it works fine.

I searched over the internet and understand that both have different behavior:

* `adb reboot` works like you plug the phone battery out. Means, it will not close any application, not show any pretty Restarting splash screen.
* `adb shell` `reboot` uses `/system/bin/reboot` executable and it does a soft reboot with closing opened application, showing the splash screen, etc..

To verify that `adb shell` `reboot` execute `/system/bin/reboot`, I have moved the `/system/bin/reboot` to another place and as expected the `reboot` command not working anymore so I put it back after confirmation.

I want `adb reboot` to use `/system/bin/reboot` executable.

**I want to do it from within the Android device that makes it a general solution for all users of the device. I know I can execute `adb shell reboot` but other users will not do this.**

Is there any way of doing this?

# Answer
> 2 votes
Write a script in your PC, look for 'reboot' argument, and execute your own command instead.

I do not know how a Window's compatible script would look like, but this is how a simple bash script would look like.

```
#!/bin/bash
ADB="PATH_TO_RENAMED_ADB_BINARY"

if [[ "$1" == "reboot" ]] && [[ -z ${2} ]]; then         # $1 is the first argument received by adb
    "$ADB" shell '/system/bin/reboot'
else
    "$ADB" "$@"                            # $@ contains all the arguments received by adb
fi

```

Save the script as `adb`, give executable permission to it, rename adb binary with the name `adb_orig`, and then save this script as `adb` where adb is originally located.

---
Tags: adb, rom-flashing, custom-roms, linux, shell
---


title: Insert today's date in Google Sheets

text:
# Question
Title: Insert today's date in Google Sheets
I use `Ctrl`+`;` to insert today's date since my Microsoft Excel times, but how do I do it in Google Sheets app on my Android phone, without a keyboard?

# Answer
> 8 votes
1. Format the cell as a date
2. Select the cell you want to add the date to, and click the calendar icon, the current date is inserted.

# Answer
> 2 votes
I first tried downloading Hacker's Keyboard because it gives you a full PC keyboard on your Android device. In other words, it has a `Ctrl` key. However, I could not get `Ctrl`+`;` to work. I could get other `Ctrl`+\* combinations do their expected functions, but I believe there was an issue with context. The Android keyboard will only popup if you select a text input field. Google Sheets, just like Excel has two input contexts. The first is the selected cell. The second is a cursor in any cell. On Android, I could not get the keyboard to popup while using sheets unless the cursor was in a cell, which made the text input field the formula bar only. The outer "selected cell" context would not call up the keyboard. I believe it would work if you could call up the keyboard in the right context.

I found a workaround that I think is quite tidy. The only issue is that you have to set it up individually for each document on a PC. But once you do set it up, it works very well. The process basically lets you set up a custom formula. In exact terms, we will insert a script on the sheet that will check the value of any cell you edit against a keyword you set. If the keyword matches, it will replace it with the current date and time.

To begin, you will have to open your sheet on a PC and click Tools \> Script editor. Enter the following script in the large text field provided. If you've never done this before and don't have to consider any other scripts you've created, then delete the default text that is already there.

```
function onEdit(e) {
  if (e.range.getValue() == "$new") {
    e.range.setValue(new Date()).setNumberFormat("MM/dd/yyyy HH:mm");
  }
}

```

If you are unfamiliar with JavaScript, I'll give a quick explanation of each of the parts above. `onEdit(e)` is a global function, which basically means it's built in and can be called anywhere in the script. It is run every time a cell is edited. The `e` in the parentheses specifically refers to the active cell. The second link beginning with `if` gets the value of the recently edited cell `e` and compares if it is exactly equal to `$new`. The third line will only run if the second line is true, that is, if the recently edited cell contains exactly the text `$new`. This line replaces the value with a timestamp. `Date()` is also a global function which returns the system time. `setNumberFormat` sets the number format, naturally.

The first obvious thing you can do differently is change the number format to something of your liking. Click here for more information.

You can also change `$new` to literally anything else. In programming, it is common to use a special character like `$` or `_` plus a word to denote a custom variable or function. But since it can be anything and this is for my personal use, I opted for `,n`. It's weird, certainly, but it's fast and easy to type on an Android keyboard and I can't envision any other instance that I'd start a spreadsheet cell input with a comma.

Going forward, I can see myself using the basics of this script to make other custom functions. Things like pinging a web resource for a certain data point that changes frequently first comes to mind. After that, I'm sure there's all kinds of use cases. If you find yourself "building an Library" of scripts you always want to use on every sheet, well it seems there's a solution to having to add the scripts to every sheet.

Credit for the idea and the script goes to this Webapps Stack Exchange answer..

# Answer
> 2 votes
In the support article Keyboard shortcuts for Google Sheets, the use of keyboard shortcuts is possible with an external keyboard.

From the article:

> If you plug an external keyboard into your Android device, you can use the shortcuts below:

It goes on to enumerate the shortcuts. You can enter them with Hacker's Keyboard.

While using Hacker's keyboard, the trick to enter shortcuts is to first enable `Use permanent notification` in its settings.

Then, in Google sheets, select the cell. In the status bar/notification bar of the phone or tablet, click on `Show Hacker's Keyboard`. When the keyboard is shown, press `Ctrl`+`;`. The date will be entered as if you were using an external keyboard.

# Answer
> 1 votes
First, format the column as date, or date & time, like "13/01 0:00". Then, every time you try to edit, a calendar button will be shown on the bottom right.

# Answer
> 0 votes
Enter the formula `=Now()` and press enter.

---
Tags: keyboard-shortcuts, google-sheets
---


title: Watch videos with SUB/IDX subtitles

text:
# Question
Title: Watch videos with SUB/IDX subtitles
I have video files with their SUB/IDX subtitles.

I'm using MX Player Pro but it does not support SUB/IDX subtitle.

> ### SUB/IDX subtitles won't display.
>
> SUB/IDX subtitle is not supported as of yet. It will be supported in the future.

How can I watch videos on my Android device with SUB/IDX subtitles?

# Answer
> 0 votes
Somewhere between Nov 9, 2014 and Apr 17, 2015, MX Player Pro (and also its ad-supported free version) supports both SUB/IDX subtitles.

> Subtitle formats:
>
> * DVD, DVB, SSA/ASS subtitle tracks.
> * SubStation Alpha(.ssa/.ass) with full styling.
> * SAMI(.smi) with Ruby tag support.
> * SubRip(.srt)
> * **MicroDVD(.sub)**
> * **VobSub(.sub/.idx)**
> * **SubViewer2.0(.sub)**
> * MPL2(.mpl)
> * TMPlayer(.txt)
> * Teletext
> * PJS(.pjs)
> * WebVTT(.vtt)

# Answer
> 1 votes
You can use VLC to view videos with subtitles. Copy the subtitle files on the same folder as the video, then change their names to be the same as the video (don't change their extension).

# Answer
> 0 votes
You can use an application like MKVToolNix on your PC, attach the SUB/IDX file to the video file, make one single video file with hard sub, and after that enjoy watching the video with hard sub on your Android device.

---
Tags: video
---


# Question
Title: Google play services won't run unless you update Google play services
I am constantly getting a notification about every 1 or 5 minutes since I had updated the Google Play Services app. It's a very strange type of notification. It says "Google Play Services won't run unless you update Google Play Services". See the screenshot below :

What is the cause of this problem and how to fix it ?

# Answer
> 0 votes
I have solved the problem myself, like this :
Previously, I had updated ***Google Play Services*** from an APK file. So, this time, instead of updating ***Google Play Services*** from an APK file, I had updated it from the Play Store, and the notification went away.
So, for some reason, updating the app from an APK file was causing the problem.

# Answer
> 0 votes
OK, I have a different solution. Find the the correct version for your phone, Google the APK, download it and install using APK handler. Fixed the problem.

---
Tags: stock-android, google-play-services
---


# Question
Title: Do Apps like Google Assistant work on Blloc Zero18?
Do Apps like Google Assistant work on Blloc Zero18? Because this is a minimalist phone with its own UI

# Answer
> 0 votes
**Optionally.**

From the Blloc site

> Start your smartphone experience differently with Blloc: the real (non-Google) stock Android experience *without any forced Google services*.
>
> Zero18 comes with the Blloc MNML operating system—a distraction-free custom software built on top of Android 8.1

So out of the box there appears to be **NO** Google Services.

Google Assistant, Google Maps, Google Mail, Google Translate all require Google Services to be running on the device.

Therefore from the Blloc help/wiki page: it seems you would need to manually install Google Services (basically flip a special settings switch and reboot) so that the device could get Play Store apps.

I'm unclear/doubtful that some of the deeper integrations of Google Assistant like being able have the phone passively listen for "wake words" to enable a voice assistant would be possible on this device.

You have the option to use alternatives to Google Services

---
Tags: applications
---


# Question
Title: OTA Update Error - "Package expects build fingerprint of ..."
I unrooted and re-installed stock recovery from CWM on my Nvidia Shield Tablet. But when I tried to install an OTA, I got However when I tried to install the update, I got a red triangle error. After checking the log I got an error saying "Package expects build fingerprint of ... or ..., this device has ...."

I can't remember what the fingerprints were, but the first one was something that began with "nvidia/", had a bunch of numbers in the middle followed by an underscore, then it ended with "/release-keys".

However the device's current build fingerprint was exactly the same as the first, ***except that it cut off halfway through***, right after the numbers and the underscore.

Resetting the cache didn't work. How was this error caused, and how can I fix this without wiping my data?

# Answer
I've faced the same issue when trying to update OTA from Android 4.4.4 to Android 5.1 and now from Android 5.1 to a new version.

I'm assuming your phone is rooted and you have a custom recovery installed.

# 1. Find out your build fingerprint.

* Install CID Getter and check the `ro.build.fingerprint` entry.
> (In my case, its value is `motorola/peregrine_retbr/peregrine:5.1/LPB23.13-35.5/5:user/release-keys`)

## Check your value again.

## Double-check it, and triple-check it, it's **very, very, VERY** important to get it right to the last bit.

# 2. Obtain the zip file for your OTA update

Start the OTA update process (settings -\> phone -\> check updates). It will download a file and place it on your internal memory, for instance for me it's `/cache/Blur<long file name>.zip`.

Obtain that file and place it on your computer (I have used my custom TeamWin recovery to do that).

# 3. Check the updater script

Inside this zip file, there will be a file called `/META-INF/com/google/android/updater-script`.

There will be a line similar to the one below:

```
getprop("ro.build.fingerprint") == "motorola/peregrine_retbr/peregrine:5.1/LPB23.13-35.5/5:user/release-keys" ||
getprop("ro.build.fingerprint") == "motorola/peregrine_retbr/peregrine:5.1/LPBS23.13-35.5-1/1:user/release-keys" ||
abort("Package expects build fingerprint of motorola/peregrine_retbr/peregrine:5.1/LPB23.13-35.5/5:user/release-keys or motorola/peregrine_retbr/peregrine:5.1/LPBS23.13-35.5-1/1:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");

```

What's it doing in this case? This line checks for the build fingerprint and aborts the process if it's not *exactly* either `motorola/peregrine_retbr/peregrine:5.1/LPB23.13-35.5/5:user/release-keys` or `motorola/peregrine_retbr/peregrine:5.1/LPBS23.13-35.5-1/1:user/release-keys`.

# 4. Compare your build and the updater script.

Seriously. Check it again.

# 5. Edit the updater script

Delete this line. Place the edited file on the zip file.

# 6. Patch and be happy!

Use your custom recovery to apply the patch without signature verification.

## OBS:

If you have flashed anything that modifies system files -- including, but not limited to, SuperSU and the Xposed framework -- you might need to revert those files to their original state, since the OTA update will perform a check on many system files. In order to revert those files, consult the documentation from whatever you flashed.
> 1 votes

# Answer
This answer isn't immediately applicable to OP's Nvidia tablet, but I'll leave it here in case it's useful to others.

https://mirrors.lolinet.com/ hosts many Motorola stock ROMs. I don't know if the site is trustworthy or not, but I'm using it now.

After you download a stock zip, use https://github.com/dlenski/motoflash2sh to generate a flashing shell script which doesn't depend on the existence of an existing unmodified stock ROM. The resulting script will have `fastboot erase userdata || exit 1`. Remove or comment-out this line if you don't want to clear all data on the phone.

I don't know if you can install those zip files through TWRP.
> 0 votes

---
Tags: rooting, ota-update, system-error
---


title: Dark mode / theme before Android 10?

text:
# Question
Title: Dark mode / theme before Android 10?
How is it possible (via third party app or without?) to enable Dark mode for all apps (Chrome browser, Phone calls app, Messaging app, etc.) on a Android 5 or 6 smartphone?

It's integrated in the OS in Android 10: https://developer.android.com/guide/topics/ui/look-and-feel/darktheme

But how to do this for Android 5+?

# Answer
On Android 10, it's available as a system setting.

However the dark theme can be enabled using "night" resources for example. Meaning switching resources such as styles, colours, themes, drawables, etc according to user's device time.

> This can change during the life of your app if night mode is left in auto mode (default), in which case the mode changes based on the time of day. You can enable or disable this mode using UiModeManager. See Handling Runtime Changes for information about how this affects your app during runtime.

You can force the mode or not using a toggle or something too. Read documentation for more info.
> 0 votes

---
Tags: user-interface, themes, color
---


# Question
Title: how could I view google maps search history? (not location history)
how could I view google maps search history?

I mean beyond . a day or two, so eg a month back or a year back.

I don't mean location history.

# Answer
You can view and search your history on https://myactivity.google.com . There is the option to „filter by date & product“, from where you can select Maps and a period of time.
> 1 votes

---
Tags: google-maps
---


# Question
Title: Sony Xperia Z3 Compact Back and Home buttons not working
# Background

Many people have experienced a bug whereby the Sony Xperia Z3C (compact) no longer has functional home and back buttons. Specifically, the issue involves the buttons highlighted by the red rectangular box in the following image:

# Problem

The problem may be caused by a number of reasons, from hardware issues to software upgrades. A solution is not easily found. As these buttons are essential for using the phone, when they are broken the phone is far less usable.

# Workaround

A quick workaround is to rotate the phone "upside down" so that the buttons flip to the "top" of the screen.

# Question

How do you fix this issue permanently?

# Answer
# Requirements

To fix the issue, you will need:

* A laptop or desktop computer
* A USB cable

Then:

1. Download Universal Android Debug Tools (ADB) onto the computer
2. Install ADB into `C:\Program Files\platform-tools`.

ADB is installed and the phone is ready to be fixed. Another SE answer has details on using ADB.

# Instructions

A message on Sony's forum (since moved) offered the following solution:

1. Enable Developer Mode
    1. Tap **Settings \> System \> About Phone**
    2. Scroll down to **Build Number**
    3. Tap **Build Number** about 7 times
    4. Confirm Developer Mode, if prompted
2. Put the Z3C into USB Debug mode
    1. Tap **Settings \> System \> Developer Options**
    2. Scroll down to **Debugging**
    3. Enable **USB Debugging**
    4. Tap **OK** to confirm, if prompted
3. Plug the Z3C into the laptop or desktop computer
    * ADB must be installed *before* this step
4. Connect the Z3C to the computer using the USB cable
5. Confirm the connection, if prompted
6. Open a command prompt
7. Change to the ADB installation directory by typing:
    * `cd "c:\program files\platform-tools"`
8. Make sure the device is listed by typing:
    * `adb devices -l`
9. Change the overscan settings by typing:
    * `adb shell wm overscan 0,0,0,30`

The screen is shifted by about 30 pixels and the navigation buttons now work. It is safe to unplug the USB cable.
> 1 votes

---
Tags: adb, hardware, touchscreen, sony-xperia-z3
---


# Question
Title: My computer doesn't recognize my phone, neither on ubuntu nor windows
I own an LG-K430T, and I use it to share internet with my Desktop PC through USB tethering. Or I did it for a year straight until today, when my PC isn't recognizing my phone anymore, neither on Windows 7 nor Ubuntu 18.04.2. It doesn't even allow to share files, since there isn't a pop-up(neither in the phone nor the PC), but the phone does charge. I thought it could be my USB cable that worn off, but using this same USB cable with my sister's Huawei, it does allow to share files/internet. Furthermore, I tried with 3 different USB cables and different ports, and my phone still isn't recognized. Then, I tried it on Ubuntu, and to my surprise, it's still not recognized. So, I think it's safe to say the cable isn't the issue, nor the operative system( Also, I restarted both the phone and the PC) Then , In ubuntu, I tried to enable USB debugging followed by lsusb and nothing yet. My phone was last updated in april 2019 and its android version is 6.0, so I don't have a clue about what's causing the issue, although I'd blame the phone..

On windows,I have tried to update drivers of the 'Unknown device' on Device administration, but it says they are already up-to date

**EDIT: Answers to comments: lsusb output:**

```
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 1004:6344 LG Electronics, Inc. G2 Android Phone [tethering mode]
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f9:0413 Brother Industries, Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 04f3:0235 Elan Microelectronics Corp.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

(THE LG PHONE THAT IS TETHERING IS ANOTHER ONE, DIFFERENT FROM THE ONE WITH THE PROBLEM). So, in short, lsusb doesn't recognize it. The MTP option looks already enabled

**Further info**

The other day a guy enabled USB debugging on my phone and got his computer to read its files!(He had a version of Windows). When I got home it worked too in my Windows! Then it downloaded some drivers and asked to reboot, which I did. After the reboot, I tried tethering and didn't work(The option to turn on was there, but when turned on, nothing happened). I thought it was because of the USB debugging and disabled developer options completely. Unfortunately, my PC stopped recognizing my phone. I said, "well, at least I can now share files..." but, surprisingly,when I turned USB-debugging back on nothing happened. Now, there is a difference which I observed between his way of activating USB-debug vs my way. It is that in his way the USB-debugging is shown active both on Settings AND in the Notification Panel(in a permanent way, i.e. it doesn't go if I press "clear all" notifications), while when I activate it,no message is shown in the notification Panel. He must have done it differently to give it more priority or something...

# Answer
> 0 votes
This is one of those things that can be tricky to fix I think, because there are multiple points of failure (getting 2 different hardware devices to communicate over USB through 2 further operating system layers). But as AndrewT mentioned, my guess would be the drivers.

If I remember correctly I've had several episodes before of playing musical drivers + USB cables. I'm pretty sure what ended up happening most often was I'd finally get a successful connection upon switching cables (after focusing on reinstalling drivers over & over for a few hours). I also recall one time, the solution was switching from the USB 3.0 port I was using to a 2.0 port which fixed it instantly after hours of madness trying various drivers and cables.

You said you've tried a few of each of those though. One thing to keep in mind is it can be surprising just how picky your phone can be in terms of the cable you use. A couple times I've tried at least 4 or 5 different (microUSB) cables, switching back and forth and alternating with yet another driver install only for it to keep failing. Then when I eventually desperately dug a spare cable out from the couch cushion or something, it suddenly worked like a charm. I confirmed it on those occasions too by going back to each of the previous cables once I was 100% sure everything was indeed working, and sure enough, they all refused to work; only the weird, thin, chinese crap cable from who knows where seemed to do the trick. Android can be extremely picky, that's sort of the gist of what I've seen anyway.

Your "Further Info" makes me believe even more that it's probably your drivers though, if you know for sure that the connection stopped working following a driver update, and knowing that it DID work prior to that. The final thing I can offer is that I've ran a few LG phones over the years too, and I think they're particularly bad with fragmenting the driver situation with their own driver packages & LG-branded "Control Center" or "USB Tool"-type apps. While the android Universal Drivers have generally worked for most of my phones most of the time, I want to say you should try looking for any & all alternative drivers out there, especially if you can find some from LG's site specifically - that might be simply the only thing that will work, while all of the other usual "Universal" android software packages out there won't (for whatever reason).

But yeah... keep experimenting, try as many different connections as you can in The Trifecta (drivers, cables, USB ports), borrow some friends' cables or computers if you have to. I bet a single lucky one of them will suddenly work like nothing was ever wrong, and likely for no reason, as frustrating as it is.

# Answer
> 0 votes
I had the same issue with my rooted LG G2 D802. I run a heavily modified by me stock KK ROM, Xposed, modified kernel, boot image, busybox, init.d, build.prop, system files, xml, apks, db... and everything you can think of. I like to understand what every single file on my system is and does, and thought I've gone too far and broke things.

Had **Developer Options and Debug USB enabled**, so at least I could see it tru `adb devices` and `adb pull / push` files to and from PC, also `adb shell` to explore it (for conveniece I use ADB Putty https://github.com/sztupy/adbputty/downloads). USB tethering would definitely not work though.

**When in TWRP recovery, phone was recognized** no problem in Windows, and I could browse tru sdcard as usual.

I also tried different cables, computers, usb ports, operating systems, drivers, but nothing. Now I'm reasonably sure **the issue is to be found in some corrupt data inside the smartphone**. I say this because now my device works again in MTP mode and all the other available connection modes.

How did I solved the issue? Unfortunately I don't know exactly.

What I can say is that I was trying to solve an apparently blatant hardware issue, with the screen flickering, freezing to white noise, especially when warm (not even hot), and when fast scrolling. This screen problem happened for the first time about one month ago, the connections issue was more than a year old, so the two are not related.

Disassembled the phone, disconneted and reconnected the screen connector. White noise / freezing problem still there (disabled animations in Developer Options as a work-around to flickering issues).

Entered TWRP recovery, tried the usual stuff Wipe Cache / Wipe Dalvik, noted that `/data` partition was non mounted as r/w (infact `/data/dalvik-cache` was non actually deleted), tried Fix Contexts, rebooted. It took a long time, was rebuilding cache or something else, welcomed by the dreadly dialog

```
UIDs on system are inconsistent
You need to wipe your data partition or your device will be unstable
[I'm feeling lucky]

```

Ok, at this point found many `/data/data` folders empty, so I had to open every app interested and reset things to my likings, not a great deal. Fixing the inconsistent UID thing was a bit trickier, had to read into `/data/system/UIDerrors.txt` to find the culprit app, and changed UID accordingly in respective `/data/data` folder.

After this my system was stable and MTP connection worked again.

I know it's not what you want to read, but with a backup + factory reset you will restore MTP functionality.

---
Tags: usb, tethering, usb-drivers
---


# Question
Title: How to change photo storage path for LineageOS 16's Camera app?
I am running the latest LineageOS 16.0, and have specified `SD Card` as my photo storage location for the built-in Camera app.

When I was using LineageOS 15.1, the app saved photos on my SD card's "DCIM" directory, but in 16.0, the app now saves photos in "Android/data/org.lineageos.snap/files/" (also on my SD card).

Is there a way to change the path back to "DCIM"?

Thank you!

# Answer
> 4 votes
As of right now it is not possible for you to change the path. Android Pie does not allow apps to write/read SD Card public area and only allows apps to access the application private area. That being said inside of Lineage OS Gitlab Repository there are several discussions to fix this problem. Maybe it will be fixed in the future with an update of Lineage or the integrated camera App.

# Answer
> 3 votes
Know this was a couple of months ago, and you may have found the solution. But I came across this very problem and the above info is mostly correct, you need **Open Camera**;

From https://gitlab.com/LineageOS/issues/android/issues/268

> I don't know why Snap can't do it but in Open Camera \> Settings \> More Camera Controls \> toggle on **Use Storage Access Framework** then navigate to /storage/Micro SD card id/DCIM/Camera & Save Location.
>
> That works on S5 G900M LineageOS 16.0 klte build 2019-04-02 + Open GApps Pico + LineageOS Addonsu.

Works on my Samsung Galaxy Note 4 running LineageOS 16.0-20191129-UNOFFICIAL-trlte

---
Tags: external-sd, sd-card, camera, lineageos
---


# Question
Title: LG G5 Apps/services keep crashing . . . Hardware Issue?
for the past few weeks my LG G5 has been unexpectedly restarting, apps have been crashing, and I've been getting messages like "Unfortunately Bluetooth has stopped" but for pretty much every app/service. Also, I've had the phone get stuck on boot loops which has made removing the battery the only solution to getting it to start again.

I've tried restarting the phone, resetting network connections, even doing a factory reset twice, none of which help. Even after the factory reset, before even putting in my Gmail account, I get a message "Google Play Services keeps crashing" and then "Google Duo keeps crashing", repeatedly to the point where I can't even do a internet search due to these messages popping up ever 1 second. If I do anything even a little memory intensive, the phone will restart which makes me wonder if it's a hardware issue with the memory.

I've had the phone for less than a year (It was a refurbished unit that was replaced under a third-party warranty I bought when I first about the phone from Costco). Otherwise the phone is in great condition. Not sure if it's just time to get a new phone. Any ideas?

Thanks.

# Answer
If you did a fatory reset you should have already a data backup(or not), point is maybe doesn't matter if you try to flash a new stock rom, maybe the current one may be corrupt or something, otherwise consider the idea of getting a hardware issue.
> 0 votes

---
Tags: lg, lg-g5
---


# Question
Title: How can I check that my Samsung phone is original and hasn't been modified?
How can I check that the mobile device that I am using has not been altered after leaving the factory?

By this I mean no changes whatsoever have been made to the device. Whether it's the whole OS (firmware)or just a single malicious app installed on system partition.

Is there some way I can check the md5 or sha256sum of the device? And if the firmware for my phone is available on the internet I could compare. Would this work? How could I do this on ubuntu?

Or is there some other way?

# Answer
> 0 votes
The simplest answer is you can't check if they have changed your hardware or not with comparing build numbers. But the easiest way if something is changed or not will come up in an app called CPU-Z it show all the software and hardware informations that the device has. I recommend everyone to give it a try before buying a device because it helps too much. I also realized in settings it has validation option you might give it a go. It will probably ask your details to the vendor and email it back to you

---
Tags: samsung, malware, device-firmware
---


# Question
Title: I deleted the build.prop file but restore the old one but the phone wont boot
PLEASE HELP I missed with the build.prop file but I made a copy of it before.Then I deleted the edited build.prop file and restore the old one then rebooted the phone(Samsung S3 lineage 14.1) but not working!IT shows the Samsung logo then black screen appear.I can access the TWRP so I checked that the old build.prop file is in /system but nothing.What should I do? pls help

# Answer
> 1 votes
If you can access TWRP and you're on lineage. That means that you flashed a custom OS on the phone.

Same way you can get a fresh copy of build prop from the extracted firmware that you flashed because TWRP mainly flashes zip files. Zip files are generally easily extractable by programs like WinRAR.

After getting the build prop from the zip. Copy it to the phones internal storage using a PC while still on TWRP. Then use TWRP native file manager to copy the build.prop to /system/ so that the file address is /system/build.prop and use TWRP chmod option to set the permission of the file to 0644. Reboot the phone and enjoy.

Alternatively you can try to edit the current build.prop if you have the ability to interpret build.prop commands. And then copy it to the phone as similarly as above.

If nothing works here. Just reflash the Lineage OS, clear user data and cache and it will boot as freshly as it once was

Talking about permission 0644, this is a permission that means the owner of the file can read and write the file but, group and others can only read information from it.

When you want to calculate the number, you should understand that this is a 3-digit number for Owner + Group + Everybody respectively (each digit of the number)

The highest value of each digit totals to is 7 to mean all permissions are granted and it can be calculated as 4 (read) + 2 (write) + 1 (execute). 644 means owner has read write access, while others read only

The file is not executable and that's why owner has 6 (4 read + 2 write ) instead of 7 ( 4 read + 2 write + 1 execute)

The leading digit is "always" 0 and it is used for special permissions only

Even though other firmwares can read without this permissions, that is if the permission is less restrictive like 0755, it's safe to set the permission manually to ensure that when the file was written to system, it doesn't have a restrictive permission like 0000 where nothing not even the file owner can read from it

---
Tags: boot
---


# Question
Title: Bootloop after flashing TWRP (Also lost recovery)
So I was going to root this (previsouly healthy) BQ A4.5. Unlocked the bootloader and flashed TWRP from here:

```
$ fastboot oem unlock
(bootloader) Start unlock flow

OKAY [ 32.954s]
Finished. Total time: 32.960s
$ fastboot flash recovery downloads/twrp-3.3.1-0-dendeone.img
target reported max download size of 134217728 bytes
Sending 'recovery' (11342 KB)...
OKAY [  0.378s]
Writing 'recovery'...
OKAY [  0.335s]
Finished. Total time: 0.727s
$ fastboot reboot bootloader
rebooting into bootloader
OKAY [  0.003s]
Finished. Total time: 0.058s
$ fastboot reboot
Rebooting...

Finished. Total time: 0.058s

```

The first reboot to bootloader didn't do anything. Now it's on a bootloop which states:

```
Orange State
Your device has been unlocked and can't be trusted
Your device will boot in 5 seconds

```

Pressing *Volume Up + PowerOn* used to work for recovery (that's how I got into fastboot mode). Now, pressing *Volume Up/Down/Up+Down + PowerOn* doesn't do anything, fastboot stands indefinitely `< waiting for any device >`, and adb always responds with `error: no devices/emulators found` regardless of when it's run. If I press *Volume Up+Down* it turns off. Plugging in USB it turns on. Nothing else seems to respond.

`dmesg` states:

```
[32774.364937] usb 2-7: new high-speed USB device number 59 using xhci_hcd
[32774.514434] cdc_acm 2-7:1.0: Zero length descriptor references
[32774.514450] cdc_acm: probe of 2-7:1.0 failed with error -22
[32774.554519] cdc_acm 2-7:1.1: ttyACM0: USB ACM device
[32777.142205] usb 2-7: USB disconnect, device number 59

```

The disconnect happens before the bq logo appears.

Trash bin time?

# Answer
> 0 votes
Same problem with my BQ M8. Here is how I solved it:

1. With the phone connected via USB, launch CMD to run ADB and test as many times as needed that the PC and terminal can talk to each other with the command `adb devices`. Eventually, after several attempts, it will return the device and number. Possibly stating the work "recovery".
2. Go into bootloader with the command `adb reboot bootloader`. As before, try it as many times as needed until it works (that means you will have to re-run the ADB, and un-plug, plug the phone).
3. Once on bootloader (you can verify because the phone screen is in "Fastboot..." state), you have to launch in your PC the FLASH TOOLS (hope you know how to use it)
4. In FlashTools, select only BOOT and RECOVERY tickmarks, and leave the rest unmarked. Then Press on the DOWNLOAD green arrow
5. Now back in ADB window, use the command `fastboot reboot`. This will restart the phone, and FlashTools will immediately kick in, flashing the BOOT and RECOVERY files back in your phone (it takes milliseconds)
6. The phone will restart and this time you will have it all in STOCK (you'll also have the bootloader locked again).

---
Tags: recovery-mode, twrp, boot-loop, fastboot
---


# Question
Title: uninstall app that was installed under another account
I have an android with an app installed. The app was installed with one account that I have no access to. I removed the account but now I can't uninstall the app. Does that make sense? What can be done?

# Answer
> 3 votes
I just ran into a very similar issue, where I was trying to update an app owned by a different account. The fix was simple: I logged into the play store with the desired account on the web from my desktop, then installed the app from there. The app updated successfully and its ownership switched to the desired account

# Answer
> 0 votes
I had the problem today and I found a solution that worked for me. All I did was remove the account under which the app was installed, reinstalled the app and then re-added the account the I removed. I hope this will help you and others with the same problem. Cheerio!

# Answer
> 0 votes
I had a similar problem

**When we have a problem we can remove the application with adb**

```
# find your package
pm list packages -f | grep [package_name]
# uninstall your package
adb uninstall [package_name]

```

But in my case it did not work. **This was due that I have a Samsung (Galaxy S10) with the application "Security Folder"**, And I forgot that I added this app in the security folder.

*If you have an application of this type, which clone an application in a container in your Android, you must also delete it in the contents of this application because it is installed a second time via another user, used by the application to secure, to be installed a second time on your phone*

---
Tags: applications, accounts
---


# Question
Title: Why does flashing my Tab3, 7.0, 8GB, WiFi (sm-t210) fail with Odin?
I tried several versions of Odin and also several ROM's, yet successfully flashing still seem to fail.

```
<OSM> Enter CS for MD5..
<OSM> Check MD5.. Do not unplug the cable..
<OSM> Please wait..
<OSM> Checking MD5 finished Sucessfully..
<OSM> Leave CS..
<ID:0/005> Added!!
<ID:0/005> Odin engine v(ID:3.1301)..
<ID:0/005> File analysis..
<ID:0/005> Total Binary size: 1397 M
<ID:0/005> SetupConnection..
<ID:0/005> Initialzation..
<ID:0/005> Get PIT for mapping..
<ID:0/005> Firmware update start..
<ID:0/005> NAND Write Start!!
<ID:0/005> SingleDownload.
<ID:0/005> PBL.bin
<ID:0/005> FAIL!
<ID:0/005>
<ID:0/005> Complete(Write) operation failed.
<OSM> All threads completed. (succeed 0 / failed 1

```

Please observe that with the newest version of Odin in the log above 'Get PIT for mapping' and 'PBL.bin' failed.

```
<ID:0/005> Added!!
<ID:0/005> Removed!!
<ID:0/005> Added!!
<OSM> Enter CS for MD5..
<OSM> Check MD5.. Do not unplug the cable..
<OSM> Please wait..
<OSM> T210XXBNI1_T210PHNBNI1_T210XXBNI1_HOME.tar.md5 is valid.
<OSM> Checking MD5 finished Sucessfully..
<OSM> Leave CS..
<ID:0/005> Odin v.3 engine (ID:5)..
<ID:0/005> File analysis..
<ID:0/005> SetupConnection..
<ID:0/005> Initialzation..
<ID:0/005> Get PIT for mapping..
<ID:0/005> Firmware update start..
<ID:0/005> SingleDownload.
<ID:0/005> PBL.bin
<ID:0/005> NAND Write Start!!
<ID:0/005> FAIL!
<ID:0/005>
<ID:0/005> Complete(Write) operation failed.
<OSM> All threads completed. (succeed 0 / failed 1)

```

Please observe with an older version of Odin that in the log above 'Get PIT for mapping' and 'NAND write' failed.

The stock ROM I seem to need for this device 'SM-T210, Tab3, 7.0, 8GB WiFi, has these specs: KOT49H, T210XXBOB1, PHN, build date Feb 3 2015, Android version 4.4.2 Kernel version: 3.4.5-4081557 I'm not sure if it's KitKat or Jelly Bean as both seem to have similar versions of Android. So what's going wrong here?

# Answer
Many times I tried to repair that device, but when the volume up/down buttons start to fail, it is game over. So I had to quit.
> 0 votes

# Answer
As Odin in Windows doesn't seem to work for my device, I tried another application such as Heimdall-Frontend. This application differs from Odin in that it uses the extracted files from a stock ROM where as Odin uses the stock ROM to upload to an connected device. Anyways, I found that from Heimdall all files are successfully downloaded to the Samsung Tab3 device. Yet there was a slight difference between the download of 'system.img' file and all the other 9 files out of the stock ROM. After the download from Heimdall completed, it was released and right after that the Tab3 device goes into reboot. While after the download of all other 9 files, it took a few seconds before the Tab3 goes into reboot. So my guess here is that right after being released, the Tab3 goes immediately into reboot and deletes that way the successful downloaded 'system.img' file. That would also explain as to why there's no change after the successful flashing with Heimdall.
> 0 votes

---
Tags: rom-flashing, odin, samsung-galaxy-tab-3
---


# Question
Title: "Wrong file type, please select again" when choosing a ringtone
I have a Nexus 5, all my ringtones and notification sounds returned to default, and when I try to set any file as a sound I get this message:

> Wrong file type, please select again

I get the same message no matter what file type I choose, including the files that were my sounds until this morning. I tried to delete cache memory and reboot but that did nothing.

# Answer
José Mejuto Was correct in his 2nd Point.

deleting the /.nomedia file has no effect.

* 1: Go to "Settings -\> Apps (All) -\> Media storage"
* 2: Clear Cache & Data
* 3: Change your ring tone or notification tone

Thanks José :)
> 7 votes

# Answer
Today my Nexus 5 starts to do the same, default Ringtone and "Wrong file type, please select again". After several hours trying different solutions I came to the conclusion that the problem is in -or related to- the "Google Play Music" which do not work for local files anymore. I was able to finally get my custom ring tones again to life performing two tasks, but I do not known which one solves the problem because a reboot is needed and I perform both before reboot.

1) In my case in the root of the SD card there was a ".nomedia" file which could prevent multimedia use in this folder and below. So try to delete this file and reboot terminal, then try to set a custom ring tone.

Note: My Nexus is in spanish, and options could have a different name.

2) I suspect that multimedia SQLite database was corrupted in some way, so I went to **Settings -\> Applications -\> "Almacenamiento de medios" (Maybe Media storage? com.android.providers.media)** and deleted data, then reboot.

After the reboot all multimedia data was rescanned and I was able to change the ring tone again.

Note: I had detected that my old custom tone for notifications was gone, the file was gone and I was unable to find it in my storage media.
> 3 votes

# Answer
Copy to existing Ringtones folder on device, go to choose ringtone and select media storage and amongst the device ringtone selection will be your file
> 1 votes

# Answer
Please change your audio file format to .wav; now you give it a try to assign the ringtone. It will work! Since, I had this same issue when I tried to assign a ringtone in an .mp3 file. Then, I changed the .mp3 format to .wav format; it works!
> 1 votes

# Answer
I'm using the Moto G and I had the same problem. Solution for me was to

1. Download a file manager app
2. Save the ringtone `mp3` file in my `music` folder
3. In `settings\ringtones` (in the file manager), select your ringtone from the `music` folder.
> 0 votes

# Answer
I stayed with the original folder named "Ringtones" and just renamed it to "ringtones" \[lowercase\]. Rebooted. Problem Solved
> 0 votes

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


# Question
Title: Can't adopt micro-sd card on Moto Z2 Force
I have a new Moto Z2 Force, bought for the Qualcom Snapdragon 835 and the 6GB RAM, running Nougat 7.1.1. I also have a new Samsung 224GB U3 micro-SD card for it. That operates nicely as an exchangeable card.

I can't find a way to format the card as internal storage, or otherwise adopt it into the device's own storage. Searching for information about this, I'm finding a lot of postings on various forums that advise against adopting a card, because it often gives trouble.

Is adopting a large card as internal storage considered bad practice nowadays?

# Answer
Moto removed the adoptable storage feature from their devices. It's not bad practice; I definitely like it. As for bad practice, I think it's a good thing, but it definitely requires more mindful usage of your device, which a lot of folks aren't used to.
> 1 votes

# Answer
Use a high endurance microSD card! Make routine backups, because everything has a risk of breaking. Statistically, there is a higher risk of gravitational accident \[drop\], aqueous accident \[get wet\], or velocity accident \[vehicle crash\] damaging your phone and causing loss of data, than the risk of a high endurance microSD card losing data.

Samsung has 2x higher endurance than SanDisk, circa 2019.

For ultra high reliability, use industrial grade SLC microSD card. It will outlast the consumer grade MLC/TLC/QLC flash circuits in your phone.
> 1 votes

---
Tags: sd-card, adoptable-storage
---


# Question
Title: How factory reset a android smartphone without using the volume up button
How can I factory reset my android phone without using the volume up button? The phone is a zte android. Seems like recovery mode is missing.

# Answer
> -1 votes
Please specify the phone model for easier help. But as a general concept, phones have recovery mode, factory mode and fastboot mode. All these can be used to reset, with just a few presses or a few commands, and also note entering into recovery mode needs a unique button combination as per the device model you're using. Kindly search a specific key combo for your phone and it could be easier because practically there's no android without recovery mode unless explicitly deleted during an amateur or professionally intended software flash

---
Tags: factory-reset
---


title: Microphone gone from my keyboard?

text:
# Question
Title: Microphone gone from my keyboard?
My microphone (voice to text) option has disappeared from my keyboard. I'm using a Galaxy X-Cover4.

Thanks in advance.

# Answer
Go to settings, Language and input, manage input methods and activate Google Voice Typing as an input method and it will show up again

If there's no any voice input method. That means you should install a relevant voice typing keyboard. Like Google Voice Typing from the store.

Rarely but sometimes keyboards can have a native support for speech recognition. Identify the app that you're currently using for alphanumerical typing and access its settings from language and input settings and try to see whether there's an option for activating voice typing. If it is there good, if it's not, the previous is your only option
> 0 votes

---
Tags: microphone
---


# Question
Title: Low disk storage Space, 47G is used by Bixby Vision
I started getting low disk space a week ago, everyday I clean up cache and data from Apps, even uninstalling apps, but still get the space issue again after a few hours.

I download DiskUsage app and I found that "Vision Provider" is using 47G (Picture attached), I never used Bixby so I'm not sure why it's taking all this space.

How can I delete the Vision provider to free disk space?

# Answer
> 0 votes
Solution is to clear Bixby Vision data: Settings -\> App Info -\> Bixby Vision -\> Storage -\> Delete Data

---
Tags: internal-storage, disk-drive, samsung-bixby
---


# Question
Title: Vital signs of unfamiliar software are present in safe mode: TopBuzz in Galaxy Note8
In **Device Maintenance** system app on Samsung Galaxy Note8, there is a **TopBuzz** cache shown when caches are being cleaned. **Also in the safe mode.** It reappears as a cleanup item every few minutes together with **System cache** item and they show 82 MB to clean up.

Since nothing like that is installed, I originally thought this is a sign of a malware, but after rebooting to the safe mode, the behavior continues and both items are re-appearing every few minutes in 82 MB size.

**Is *TopBuzz* normal part of Note8 built-in software or is it possible that it somehow got into the phone later? How can I determine what is happening here?**

Additional details:

* The phone is not rooted.
* Android 8.0.0.
* 5 anti-virus scanners did not find any issue with **TopBuzz**.
* I reviewed the entire app list in the safe mode and found nothing like that.
* Despite the name on the above screenshot, I did not find a public or hidden cache called TopBuzz using *SD Maid* app. Any other caches shown by *SD Maid* contain only few kilobytes after cleanup, 82 MB is nowhere to be found. But TopBuzz + System cache still show that 82 MB size in Device Maintenance app.

---

Update: Samsung support replied me that "TopBuzz is not a part of their device".

# Answer
> 1 votes
I have a Samsung Galaxy S8 and have the same problem as you with TopBuzz showing up in the storage clean but unable to find it anywhere in my phone.

I tried the SD Maid app but that did not help. However, I did try Clean Master which I have used in the past with my old phones becuse it does work better than the built in storage clean (but uninstall it when im done with it because im sure that it slows down the phone to make you use it from time to time) and that appears to have fixed the problem.

I ran Clean Master, then ran the system storage clean and did not see TopBuzz, ran Clean Master again for good measure and then uninstalled it. It has only been a few hours but I have ran the storage clean a couple times and have not seen TopBuzz at all. If you still have this problem try this out and let me know how it goes!

# Answer
> 0 votes
Samsung support has replied me that "TopBuzz is not a part of their device".
So this is most likely a sign of an utilized exploit where a malware can compromise even non-rooted device.

# Answer
> 0 votes
I'm almost a year late, but I've also recently noticed TopBuzz appearing on that Device Maintenance screen as well, starting a few days after I installed TikTok, about a month ago. Finally guessing at a connection between the two, I did a bit of Googling to discover that TopBuzz and TikTok are both products of the Chinese company, ByteDance (which seems very fond of MidWord-capitalization in their PortManteaus.) Thus, I'm guessing that TikTok downloads with a non-interactive TopBuzz client for producing in-app ads, creating an advert cache labeled TopBuzz.

If anyone can come up with a method for verifying this, I'll add my findings.

---
Tags: malware, cache, safe-mode, samsung-galaxy-note-8
---


title: How to get 2nd IMEI number using adb?

text:
# Question
Title: How to get 2nd IMEI number using adb?
I am currently using this command `adb shell "service call iphonesubinfo 1"` to get IMEI number, but it only returns 1st one.

Does anyone know how I can get the 2nd IMEI number?

# Answer
> 4 votes
Which code to use with service call depends on Android release. On Android 9 `IPhoneSubInfo` method  returns first IMEI while methods  and  return both IMEIs:

```
~$ service call iphonesubinfo 3 i32 1 | grep -oE '[0-9a-f]{8} ' | while read hex; do echo -ne "\u${hex:4:4}\u${hex:0:4}"; done; echo
~$ service call iphonesubinfo 3 i32 2 | grep -oE '[0-9a-f]{8} ' | while read hex; do echo -ne "\u${hex:4:4}\u${hex:0:4}"; done; echo

```

Related: How to check IMSI/ICCID on MIUI10?

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


# Question
Title: how to disable gmail notification sound samsung a50s
I have a Samsung A50s. It is making some sound each time an email arrives in inbox. I am not able to find out how to disable these sounds? How can I do this?

# Answer
Swipe down from the screen so you see the notification in your notification center. Then, hold down on the notification so that it expands. You can edit the notification settings there. Change the priority so that the sound does not occur anymore (if I'm not mistaken, medium or low priority disables the sound)

https://www.howtogeek.com/wp-content/uploads/2018/02/xScreenshot\_20180228-111409.png.pagespeed.gp+jp+jw+pj+ws+js+rj+rp+rw+ri+cp+md.ic.jxvpjJzLUN.png

The show silently switch would help here.
> 0 votes

---
Tags: samsung, notifications
---


# Question
Title: How to avoid WiFi disconnection if Google cannot be pinged?
Say I have blocked google and the sorts with my router. Now Android thinks that the wifi has no connection because it can't ping google and uses my mobile data instead although the WiFi is perfectly fine.

How can I tell my phone to ping some other server in order to check the connection? (root is an option).

# Answer
You can either disable captive portal detection:

```
adb shell 'settings put global captive_portal_detection_enabled 0'
adb shell 'settings put global captive_portal_mode 0'

```

(set to `1` to re-enable), or set a different server. I use e.g.:

```
adb shell 'settings put global captive_portal_http_url "http://captiveportal.kuketz.de"'
adb shell 'settings put global captive_portal_https_url "https://captiveportal.kuketz.de"'
adb shell 'settings put global captive_portal_fallback_url "http://captiveportal.kuketz.de"'
adb shell 'settings put global captive_portal_other_fallback_urls "http://captiveportal.kuketz.de"'

```

This works fine for me on Android 8 (Oreo). For more details (and other Android versions), you can e.g. refer to Captive Portal parameters.

(As for the URLs I use: Mike Kuketz is a security expert in Germany, with focus on privacy. I know him personally and fully trust him. You could also setup your own captive portal server – it's not that hard, but goes a bit beyond our site. See above linked Wikipedia article for details on that if you're interested.)
> 3 votes

---
Tags: wi-fi, google, connection-issues, captive-portal
---


title: Phone not booting after OEM lock

text:
# Question
Title: Phone not booting after OEM lock
Device: Yu Yunique

I flashed stock fastboot ROM (YU OS) and it booted. After that, I did `fastboot oem lock` and the phone not booting. Fastboot doesn't allowing me to flash another ROM too.

I googled about this and it says I need to enabled USB debugging from developer tools. But since the phone is not booting, I am not able to do this.

Can anyone help please?

# Answer
> 2 votes
The phone has less chances of turning on. Especially if the software that resides on the phone has a different and or modified boot or recovery image as compared to the stock images.

Easy and wise option is to reload its Operating System because luckily you have a computer. No matter how MTP or other transfer protocols may fail to work, VCOM which is responsible for preloading the firmware on MTK devices will never fail. This is the final solution for any strangely bricked device.

So. Assuming Your Yu Yunique is Yu 4711. Snatch its stock firmware from here and latest SP Flash Tool from here and VCOM drivers from this mega link

Read on how to install VCOM drivers here and install them to your PC

Extract both the Flash Tool and the firmware with any suitable program like WinRAR.

Run the Flash Tool exe file with a greenish icon and it will open up a window.

Click on scatter loading option. It will open up a pop up window. Guide it to the path where the extracted firmware is and load the scatter file which is a txt document. Can be written something like "MT65XX\_Scatter.txt"

It will show you associations of different partitions to respective files e.g. preloaded, boot, recovery, system etc. uncheck everything and check only, boot, recovery, system, userdata and cache

Turn off your phone. While disconnected from your PC. press download on the Flash Tool and connect your phone.

Wait for it to complete flashing and unplug and enjoy. If it doesn't start flashing repeat the step above with volume down button pressed and held down while connecting the cable.

It must work if everything is done correctly. If the device mentioned isn't your exact phone model. You can tell me your model and I'll give you a link to its stock ROM which you will then use to revive it.

# Answer
> 1 votes
The mistake was to leave "USB debugging" and "Allow OEM unlock" options unchecked. Just make sure both are ticked when phone is on or you have to visit service center. Sadly, no other solution is there.

# Answer
> 1 votes
Reconnect your phone to PC using the USB cable. Then, try re-entering the fastboot mode by pressing the corresponding key combination (may be power button + low volume). Hold it for a few seconds. Once the phone enters fastboot mode, send the command `fastboot oem unlock` from your PC.

---
Tags: fastboot
---


# Question
Title: com.android.incallui: not syncing the contacts
I have xaiomi redmi 7S.

I have seen the application used for calling is `com.android.incallui`

I added some contacts to it. But they are not syncing to the google account.

# Answer
> 1 votes
Understanding Contacts in Android is a very easy thing if you have been using android for a couple of time. The OS manages contacts by working with a few apps. Some which are physical and some which are non physical on the App Drawer.

We have Contacts Storage, a core app that is used to manage a contact database in the system. By adding, deleting and editing Contacts as commanded by Contact User Apps

We have Contacts Provider which queries names of Contacts from the Contacts Storage app or any other Contact Repository. Sometimes this app can Cache Contacts so as to real-timely process Call and Message identification rapidly

We have the Contacts App that can be seen in the application drawer that is used to present the Contacts database alongside with formal editing ways a human can understand instead of the traditional query languages

What's funny, none of these apps is responsible for synchronization of Contacts to Google or anywhere. This is where we have wrapper apps that work across the system and Google to ensure that a well maintained active sync exists

We then have Google Contacts Sync which synchronizes them from the Contacts app and transports them to Google servers and also restores them upon Mail login on a new device. As long as all those apps exist. Contact services work well.

You should note that Phone Services are also Closely related to Contact Services. This is where we find Phone Storage which maintains a call log database. Telephony Provider which offers the native calling service, Phone which shows you calls and gives you options to do on a number and also maintain a physical call history, and Calling Framework (in-Call UI) which themes the calling screen.

Note `com.android.incallui` is not responsible for any synchronization of Contacts to Google

Back to the topic. If you don't see any synchronization to google, ensure Contacts sync setting is active, ensure power saving is off to help in freeing background services like sync and to be sure, force a 'sync now'

if you don't see a name of a person in a call whose name exists in Contacts even though I'm sure `com.android.incallui` (Phone) should be having such access by default. Only a few phones don't treat it so and if you find it needs manual permission confirmation try to allow permissions from app settings and if none of those works wrap issues up and reset the device and you'll start over again

---
Tags: contacts
---


# Question
Title: How can I find out which devices allow installations of up to date custom ROMs easily?
When I purchase an Android phone, I prefer to install a custom ROM on it, instead of using the manufacturer's version of Android. Is there a way for me to quickly figure out if a given phone supports custom ROMs or not? Ideally I want a way to list down every phone that supports custom ROMs by date and price, so that I could quickly figure out which are the latest/cheapest phones that fulfill my requirements.

# Answer
As Irfan and Andy have already said. A custom ROM is just a ROM that is from a third party and has now been developed to boot on your device.

A quick look is every android can boot a custom ROM but getting a ROM that is bug free, that is, if it can at all boot on your device.

Booting a ROM on a phone requires an appropriate boot image containing a kernel that can work on your phone and correspond to hardware files and software apps in the system.

A few years ago before the dawn of android 8, porting a ROM used to need one to port a boot image of the custom ROM by the kernel of the stock boot image, considering the system space and partitions to write boot and system images to respectively, and also maintaining vendor data so as to support the hardware devices like cameras and speakers a phone has.

This made Google to think about a way to make any theoretical system to be compatible with the residing hardware. This made google to isolate vendor data to an independent partition as from Android 8 Go and above.

This made the deletion of or replacement of system files not to render phone's hardware unusable. They introduced Project Treble - a project aimed at developing universal ROMs for Project Treble supported devices.

This only requires flashing of the system partition without touching any other partition. This means a kind of universal boot image is already existing in Project Treble devices and all Treble ROMs have a universal Build Properties file.

One has to unlock the bootloader of the device and then flash a sparse system image from fastboot and the phone seamlessly works

So my recommendation is any device running Android 8 Go and above. All devices succeeding Android 8 have native support for Project Treble ROMs - the easiest way to run custom ROMs on phone

Don't even think about manual porting it can be mostly disappointing. Read about Project Treble and you'll be amazed
> 1 votes

---
Tags: custom-roms
---


# Question
Title: Change default storage location of Screenshots
I have been able to change the storage options for the camera (e.g. from internal storage to external SD). However, I have no idea how to change that setting, or even control in which format the screenshots are saved. Moving the "screenshots" folder to external storage manually had no effect.

I have Jelly Bean 4.1.2.

# Answer
> 1 votes
You can achieve this using Foldersync app.

Add folderpair and select account: SD CARD. Then you can select source by finding your screenshot dir and select target dir on your SD.

It also has full range of advanced options if you don't like how default options work so everything is covered.

Bonus tip: this app can also do backups of your SD (or internal) card to remote storages such as Dropbox, Google Drive, Owncloud, etc.

# Answer
> 0 votes
I don't think you can change this in your phone settings. If you are interested in third party apps then try this app Screenshot and this app Screenshot

*Note: Both are different links.*

---
Tags: external-sd, screenshots
---


# Question
Title: How do you clear share actions bound to ‘copy to clipboard’?
I accidentally set a sharing intent to always copy to clipboard. I know that usually to unbind these defaults, you go Settings \> Apps \> All \> \[bound app\] and hit the 'Clear defaults' button from there, but I've had a look at all the system- or text-related things in there and I can't find anything with such a default set.

In my googling, I found this thread on XDA Developers that describes exactly this problem, but it has no responses.

If it matters, the action in question is the one the Github app uses to share issues.

# Answer
> 8 votes
There are multiple ways to clear "default actions":

* Walking through the list of apps in *Settings→Apps→Manage Apps*, looking at each entry whether it has a "Clear defaults" button, and hit that (not very user-friendly -- and in this special case obviously not applyable, as the action seems not bound to a special app)
* Using a helper app like e.g. Default App Manager or DefaultApp Reset (much more user-friendly -- but not suitable in this case, for the same reason as the previous point)
* Installing another app which uses the same intent (in case of a "homescreen launcher" and the "home" key, another launcher, to give an example) -- not always easy to figure out what app might be fitting for this purpose. This is what lead to success in our case here, by installing Andmade Share
Note: You do not need to keep that app installed. It's the *installation* of the app which "drops" the default. This is also the purpose why the next item works:
* Updating/uninstalling one of the apps currently using this intent (to take above example: that's why you will be asked again when your launcher received an update) -- this point just for completeness :)

# Answer
> 3 votes
Although the solution by Izzy (above) is brilliant, it did not work for me on Nexus 5 running Android 4.4. I ran into the bug after installing a to-do app. Every time I tried to share a page in Chrome, it defaults to Google Keep! Strange, but the problem and the **solution is given here**:

http://www.reddit.com/r/Android/comments/1rcnow/did\_the\_default\_behavior\_of\_share\_change\_in/

Essentially, you just need to go to Settings...Apps, then click the overflow menu in the top right. When it opens, select Reset App Preferences. Other than having to select my default launcher again, it seems to have solved the problem with no side effects.

Credit to tacomonstrous at Reddit for the solution.

# Answer
> 0 votes
Another way is to select a piece of text and tap on share button in the poped-up menu. Then tap and hold on "copy to clipboard", then choose "app info". hooray! that's it.

my android is 7.1.1 and I select a text on a webpage in chrome app, so I see that share button.

# Answer
> 0 votes
It turns out that the app responsible for "Copy to Clipboard" is Drive (as in google drive), at least on my device. Clearing the defaults for that may do the trick!

# Answer
> 0 votes
You need to clear data of **Android Shared Library** from Settings \> Applications/Apps. It is a system app. Clearing its data worked instantly for me.

---
Tags: default-applications, intents, copy-paste
---


# Question
Title: How to make a "system" screenshot with ButtonMapper
Since a recent update of ButtonMapper the functionality to make a "system screenshot" (if you have root) seemed to be replaced by a "app screenshot", which is limited in some apps as Instagram of Snapchat and also makes a very annoying clicker sound. I understand non rooted users prefer this over nothing. But I like to have my "system screenshot" back when I long press the Volume Down button.

I bought the Pro version of ButtonMapper and I have root access. Can someone please tell me how I can assign my "system screenshot" functionality back to long press Volume Down in Button Mapper? I miss it so hard.

# Answer
the developer build this in but you have to know... if you want a system screenshot instead of a limited app screenshot do the following in ButtonMapper:

1. be sure to have root access
2. press the 3 dots
3. select "check for root"
4. now assign the screenshot functionality again to the desired button
5. ButtonMapper is making a "system screenshot" instead of an "app screenshot"!
> 1 votes

---
Tags: hardware, buttons, screenshots
---


title: Is Multi-Boot Possible in Android?

text:
# Question
Title: Is Multi-Boot Possible in Android?
Can you **replace** the bootloader of Android to create a **UEFI-like** environment where you can **Multi-boot** into another Operating System? I've seen several off-brand phones do this but I'm unsure how they do it. There is a phone on the market (I think on Amazon) where users report that their phones don't directly boot into android but give them a choice of booting into "Android Core" and "Android OS". **If** you can actually do this, is there a way of flashing this ROM onto a phone, or are there other steps needed to accomplish this task?

# Answer
> 1 votes
Depends ...

If you are talking of having multiboot solutions on the latest Android 9 and Android 10 versions ... that doesn't seem to be possible currently and there isn't much interest among the dev community in developing these systems for these newer android versions as android from these versions onward's has undergone some fundamental changes.

But for older versions you do have solutions like ...

* efidroid
* multi boot patcher
* multirom

but all of the above are pretty much limited to the devices they support. So you need to do some research to identify if your devices are supported on any of these implmentation's.

Cheers

# Answer
> 1 votes
Yes it is possible. As Irfan mentioned there are hacks which allow, essentially, dual booting with a Linux distro, the list of which is rapidly expanding. Dual booting native Android ROMs is possible as well. Dual Boot Patcher app by xda developer Anik\_khan allows just such a scheme. Additionally devices with A/B partitions certainly can dual boot(although /data is shared). It is also possible to configure a ISO within an Android device that can be bootable via USB, say for a laptop...

---
Tags: boot, bootloader, rom-flashing
---


# Question
Title: How to synchronize my smartphone to my Google account?
Everytime I take photos with my smartphone, I want to synchronize it automatically to my Google account. How to achieve that ?

# Answer
> 1 votes
Hope the following instructions help ...

* Open the 'Photos' app on your device
* click on the 3 horizontal lines on the top left part of the screen(just before the search field)
* Access 'Settings' option from the drawn up menu panel
* You have the 'Backup & Sync' option at the beginning of the list.
* Select that option and setup your backup account.

You have various other options ... you might want to look into each of those and choose one's that you require and you have setup your device to automatically sync photos.

Play around and look into the various settings ... it will reveal options you never thought existed ... improves the quality of your usage to the maximum.

---
Tags: sync, google-account
---


# Question
Title: How to search "My apps" on Google Play or show a text listing?
I have quite a number of Android devices. Not all of them have the same apps. On Google Play, it shows a `My Apps` section that shows a picture with the name of the apps in what appears a random order. I'm not sure how many, but it's quite a few pages where I have to keep clicking "more" to see more of them. It takes me a very long time to find a particular app on the list.

Google Play on the Android (phones and tablets) have a menu item called `Library` which allows you to see your `My Apps`. I can scroll down the huge list that includes pictures, but it takes a very long time to find the app I'm looking for. Sometimes, I get to the bottom and have to start over because I miss it on the list. The Google Play app has a search feature, but it doesn't search just "My Apps", it searches all the apps on Google.

If there is a way to get a text listing of "My Apps", it would be easy to find the app that I'm looking for. The most ideal method would be an `adb shell` command to list the **My Apps Library**. By the way, the **My Apps Library** is a list of the apps on all your devices, not just the individual device you're currently using. One of the purposes of trying to search the list is so that I can better manage the redundant and obsolete apps in my library.

My question is, how to search the list rather than having to scroll down the list?

# Answer
> 1 votes
I had a similar problem. Have not found a better solution then:

1. List all the apps on the Google Play's My Apps website (with repeated clicking show more)
2. Selected all site content with Ctrl + A
3. Copied it
4. Pasted into a text document
5. Search for the keyword there

# Answer
> 1 votes
The apps are listed under My Apps in an order of *Date first acquired*. The app which you most recently acquired is listed on the top.

I was/am in a similar situation wherein I was looking for an app from my library. The app is called *Flamingo* and it was unlisted from the store. That means, it won't come up in the full search on the Play Store, but the app is downloadable if I open the direct Play Store URL or open it from My Apps.

I spent hours scrolling through the list of apps and finally found it. So, long story short, Google Play gives us no way of searching through the My Apps list.

**Partial solution:**

Google Play store on Android now allows us to sort the *Library - Not on this device* in an Alphabetical Order. This makes it much easier to scroll through and reach the app, provided we know the initials of the app's name.

Still, no go when you only remember a partial name and want to do some hit and trial.

# Answer
> 0 votes
I believe to search apps under 'Installed' or 'Library' lists just *can't* be done currently. The option is just not available.

When one tries to search an app, I believe it is safe to assume one will know the name of the app they want to search. If this is the case (knowing the app name), you have an interim solution, which is to use the sort options available in both the above lists (Installed & Library). If one chose the sort option to list apps in those list to an 'alphabetical option', then one could just quickly scroll to the alphabet the app they want to search for in the quickest time.

Until Google wakes up to this missing feature, this is as good as it gets.

---
Tags: google-play-store, adb
---


# Question
Title: how to extend support for EXT4 file system for microSD cards in stock or non lineage / CyanogenMod ROMS
As I am aware after `Android` 4.4 or some sort your storage card is no longer eXposed directly and needs to be carefully interfaced through specific `Mount` points that need to be aware through `vold` system
My question is given this situation and the fact that `ext4` is very complicated in terms of of access and especially with now `SeLinux` sitting on top of it it is somehow still possible to render `ext4` support when it did not exist initialy as has been the case for `lineage` and previous similar OS's that would be the case if the mount points are created at boot time and then `vold` is made aware of them

**what I did**
since I am `rooted` ( `magisk` ) I use `su mount master` and mounted these manually but trying to then use `vold` failed because it was too late I found some articles about how how this was achieved in earlier Android versions upto 5.
after 7.6 Android world has become even more paranoid on security and `seLINUX` couldn't have been more fussier from 7.x onwards Android versions I would like to know if there is a definitive guide about how this can be done .I do not mind recompiling this feature in the kernel. this is a far more rewarding investment then trying to look for custom ROMs and moving away from stock just because you want `EXT4`support
so how do I I add `EXT4`support on stock and similar ROMs for Android versions \> 7.x and do this the right way where all apps can access my partitions. all my partitions are `EXT4` this is quite in contrast to the the second `partition` `app2sd` approach that is used to save space. of course I have that as well but I have two more partitions used for `extSD` ( main external data storage partition ) and one devoted to to another app. totally 3 `EXT4` partitions . first one is the main data partition ,2nd is `app2sd` and third is a special partition devoted to one app. if it matters I am rooted on a Samsung device running stock nougat 7.x.

another thing that I observed and I will update the question accordingly is all of a sudden out of nowhere partitions mounted under /storage are now read only earlier they were not so. I can still read write to them through /mnt/media\_rw I wonder what went wrong because lot of apps depend on accessing my partitions through /storage Mount point.

So just to summarise here are the questions:

* Mount multi `ext4` partitioned external card at boot time, as against manual mounting which I can do.
* Mount it the correct way with the right group ID, so that `vold` gets to know it has been mounted and all apps and process can freely access the partition.
* All external partitions under `/storage` suddenly became read only (internal memory partition is of course read write always). `tune2fs` confirmed that all partitions are clean. Why does this happen and how can it be fixed?

thanks for response. I put this question that sounded like a narrative since I did not have screenshots or logs at hand if that is what you meant in your opening comment in answer. So here's what I am trying to achieve but run into all kinds of errors.
1) Mount `mmck1p2` to `/data/sdext2` and I keep getting error failed to mount ...`mmcblk1p2` on .....`invalid argument` & another similar line
failed..... `/dev/block/vold/public` on .... invalid args. that is via `app2sd` and my `magisk` has global option turned on the same partition is already mounted at boot under `media_rw and storage`

`Bind mounting` camera `DCIM` and many other folders in internal storage fails when target is `/storage/part#` & it earlier worked well. My partitions are clean as per `tune2fs` report . What happened ?

Thanks again. Answering your Q's here :

1) What are currently mounted filesystems (output of mount)?
o/p is too big to fit in here. PFA

2) Output of /system/bin/id?
for normal user

```
uid=10112(u0_a112) gid=10112(u0_a112) groups=10112(u0_a112),1015(sdcard_rw),1023(media_rw),1028(sdcard_r),3003(inet),9997(everybody),50112(all_a112) context=u:r:untrusted_app:s0:c512,c768

```

3) What command exactly did you use to mount mmck1p2 to /data/sdext2? 4) What command exactly did you use to bind mount DCIM folder?

```
1   mount -o,rw /dev/block/mmcblk1p1 /storage/extsd
2   lp=/sdcard/logger.txt
4   ls./mnt/media_rw
5   ls /mnt/media_rw
6   mkdir -p $_/extsd
7   mount --bind /storage/extsd  $_
8   ls $_

```

with above run from terminal I am able to see files from terminal only. if run from `adb` I get the same situation
. Thought `adb` would be persistent but ain't the case. after that I tried to invoke vold with the hope it would make my mount persistent and visible but no luck there either

```
dreameltemtr:/ # /system/bin/vold
/system/bin/vold
Aborted
134|dreameltemtr:/ # /system/bin/vold --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:
r:fsck_untrusted:s0
ntext=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0              <
SELinux selinux_android_compute_policy_index : Policy Index[2],  Con:u:r:magisk:s0 RAM:SEPF_SECMOBILE_7.1.1_0003, [-1 -1 -1 -1 0 1]

```

also to `mount partition` \# 2 via `app2sd` there is a `mount` script that the app writes to `/system/bin/etc or /data/app2sd` dir's depending on the opts you choose. It uses the similar approach except that
-- I used its own binary for the bind mount functionality
-- I will do periodic tests to see if certain partitions get mounted
-- It will run these periodically ( kind of patched many scripts together ) hoping that one will work
-- I attempts to mount via block device ( /`dev/block/mmcxxx`) as well as `vold` ( `/dev/block/vold/nnn`)
Here is that script & you will see what I just said . Again PFA since there is a ceiling to max chars on a post.

4) What are exact error messages? –
exact messsages are 2 lines from `app2sd` `gui` attention box

```
- Failed to mount /dev/block/ mmcblk1p2 to /data/sdext2 invalid argument <br>
- Failed to mount /dev/block/vold/public/179:34 to /data/sdext2 invalid argument<br>

```

On the last part where I cant write to external `partitions` mounted under `/storage` That instance of ROM install was abortive . It caused repeated `boot-loops` after 10 mins so I just restored my `Nandroid` backup. So I cant dig out more details .

# Answer
I don't think I understand your question fully. It's not clear what and how you have tried so far and faced what constraints or limitations in achieving what you want to. But precisely answering your questions:

> Mount multi `ext4` partitioned external card at boot time, as against manual mounting which I can do

Mounting external SD card is handled by `vold`. You can disable that in `fstab` and define an `init` service or put an `init.d` script to mount the partitions on boot the way you want.

> Mount it the correct way with the right group ID, so that `vold` gets to know it has been mounted and all apps and process can freely access the partition

Since Android 6, in Portable Storage mode, `vold` mounts external SD card at `/mnt/media_rw/[UUID]` and then emulates that to `/storage/[UUID]`. Apps with `WRITE_MEDIA_STORAGE` permission (which is mapped to GID `media_rw (1023)`) have filesystem level write access to external SD card. But third party apps cannot write to SD card because the said permission has `signature|privileged` protection level. Emulation makes it possible for apps to read whole SD card but write only to their private directories. Also apps may use Android APIs (like SAF) to save files on SD card. See details in How to move files to external SD card?

This whole phenomenon is deeply integrated in Android framework - Java and native. So if you want to change this behavior, you need to modify Android source and rebuild ROM. Or don't rely on `vold` and mount partitions yourself with correct permissions as I mentioned earlier.

> All external partitions under `/storage` suddenly became read only

There can be multiple possible reasons, you can check kernel log or Android log to see what exactly happens when you do `mount -o rw,remount`. Mounting read-only can be a sign of errors due to flash chip degradation. Or may be the partition(s) simply reached their maximum mount count, so you need to run `fsck`.
> 2 votes

---
Tags: rom-flashing, mount, partitions, selinux, ext4
---


# Question
Title: How to tell when Google Play Store credit will expire?
For Google Play Store credit that ***does expire***, how does one see when it expires?

For credits that do ***not*** expire, see this QA.

# Answer
If you go to Google Wallet payment methods you can see your Google Play credit, how much has an expiry date and when it expires.
> 3 votes

# Answer
There is a new way to check if have any Google Play credit is about to expire.

Here is how to check:

1. Launch the Google Play store
2. Go to menu options and looking for Payment method option
3. Once you land on payment method option, you should be able to see more detail on your expire credit

I hope this helps, cheers.
> 1 votes

# Answer
FAQ says it expires 1year after the date of your most recently completed survey
> 0 votes

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