# Question
Title: Copy contacts to sdcard from android 2.3
how to copy my contacts from my sony ericsson wt19i android 2.3 to sdcard? I tried to do this by adb, but does not work. I do it like this: `adb devices`

`adb shell`

`su`

`mount -o rw,remount rootfs /`

`chmod 777 /mnt/sdcard`

`adb pull /data/data/com.android.providers.contacts/databases/contacts2.db /mnt/sdcard/tmp/contacts2.db`

an error appears:

adb: not found

what should I do?

# Answer
Thanks to @Firelord for generously helping me out when I got out of my depth. The problem description and notes about the solutions have been made using his comments as reference.

**Problem:**

That is because after you've issued `adb shell`, you're in Android's system shell and cannot use `adb pull` any longer, as the client ADB binary you invoked exists on your development PC, not on the connected device itself. The device acts as a server with the development PC as the client. The client issues the commands and the server responds to them. The server itself cannot issue the command.

The ADB on-device itself can also act as the client, with 2 caveats:

1. ADB from device to same device needs ADB to be running in wireless and loopback mode.
2. The other device, supposedly the "server", must initially be connected via OTG to the ADB client (later client & server) device so that ADB can be restarted there in wireless mode.

**TL;DR**

If you're running `adb` from the `platform-tools` directory of the Android SDK install, try issuing `./adb pull` instead of `adb pull` in case you are on Linux, and, I suspect, similar with Windows. ADB is probably not in your PATH variable. The terminal remembers the folder history 1 level down, and the local folder by default is not included in the PATH variable.

SOURCE: This question on StackOverflow.

**Resolution:**

What you should do after the `chmod` command is enter `exit`, followed by `adb pull...`. The `exit` command should drop you out of the system shell back to whatever terminal/prompt you were using adb in on your PC, from where you can safely use `adb pull`.

**Alternative Resolution:**

You could also use `cp` instead of `adb pull` after `chmod` to copy the database file. They have the same usage pattern, and `cp` is definitely available in the shell session.

**Notes:**

1. I have a niggling issue with the way in which you use `adb pull` to copy files from your `/data/data` to your SD card, which could easily be accomplished with a root explorer or `cp` in a shell session.
2. Ensure that you have issued `adb root` prior to this entire set of commands under **Resolution:** so the adb daemon runs as root and can access `/data` and its subdirectories.

*PS:*

From @Firelord's comment, `adb root` will only work if you have set the `ro.secure` property in your `build.prop` to `0` instead of `1`, where `1` is usually the default with the exception of some debug-enabled custom ROMs. In that case, take the `cp` alternative.

3. I have personally faced this issue and avoided mixing up ADB and shell sessions from then on.
> 0 votes

---
Tags: adb, contacts, 2.3-gingerbread
---


title: What does CWM back up?

text:
# Question
Title: What does CWM back up?
I made a backup using ClockworkMod Recovery v6.0.4.7d of my Samsung I9305 (it runs a rooted stock Android 4.4.4). I selected "Backup and restore" and then "Backup to /storage/sdcard1". The resulting image was of about 7GB.

Does this backup contain:

1. The firmware?
2. My modifications to the firmware such as root, Xposed Framework, installed Xposed modules, etc.?
3. My installed apps?
4. App data?
5. Other data I had stored on the internal SD card?

And finally, is compression utilized?

# Answer
> 7 votes
According to: https://wiki.cyanogenmod.org/w/ClockWorkMod\_Instructions#Making\_a\_backup

> ClockworkMod's backup/restore feature will generally only back up the `/system`, `/data`, `/cache`, `/sd-ext`, and `/dalvik-cache` areas. Other partitions such as `/emmc`, `/sdcard`, and `/media` won't be backed up.
>
> In fact, the backed up system will typically be saved to the `/sdcard/` partition in the `/clockworkmod/backup/` directory, which, depending on your device, may or may not be actually located on a physical removable SD card.

According to your question:

> 1. The firmware?

Definitely Yes.

> 2. My modifications to the firmware such as root, Xposed Framwork, installed Xposed modules, etc?

Definitely Yes.

> 3. My installed apps?

Definitely Yes.

> 4. App data?

Definitely Yes.

> 5. Other data I had stored on the internal SD card?

Definitely NO, `/sdcard` is not backed up, because of there would be a CWM backup. Read: http://forum.xda-developers.com/galaxy-s3/help/how-to-backup-internal-sdcard-t1999853

Hope it help

# Answer
> 6 votes
To add to other answer, your back up has ALL the information in your back up image as the phone has when you took back up

* `/system` refers to your ROM
* `/data` refers to your data created by apps both that came with phone and user installed apps (`/data/data`)
* `/data/cache` (the cache) refers to app data stored for quick access
* `/data/dalvik-cache` (the Dalvik cache) refers to storage where optimisation information of your apps is stored
* `/sd-ext` refers to external SD card (all CWMs do not by default save this)

Other partitions mentioned are not backed up. Compression happens if you enable it (IMO, not worth the extra time it takes, given you can always store it in external SD (by choosing it) or pull it to your PC)

---
Tags: clockworkmod-recovery, nandroid
---


# Question
Title: How to find how many hours an Android phone has been used?
I want to know if there is a method that can tell me how many hours an Android phone has been used. Just like we have cheat codes that we used for Nokia phones; they tell us the hours (regardless of factory reset). Any alternate for Android?

# Answer
> 3 votes
Go to Settings → About phone → Status, scroll to bottom and you will be able to see Up time.

I think this feature is available on Android 4+.

# Answer
> 1 votes
Try typing this code in your dialer: `##786#` or `*#*#786#*#*`

If that doesn't work, install "Launcher Pro". That app can show you hidden menus of your phone, which are the same menus that those two dialer codes should bring up.

# Answer
> 0 votes
QualityTime is a good app that can track how long you use your device daily and weekly. It can also track how long you use individual apps.

---
Tags: settings, dialer-codes
---


# Question
Title: Recovering Erased Audio on Android cellphone
Thank you in advance, for any help on this. A friend was raving about 360 Security to install on my droid cellphone, I thought I'd try it, he uninstalled CM Security, and then installed the 360 Security.

WHAM, when I went to my Sound Recorder app, EVERYTHING was gone!! To clarify this was not downloaded music that was missing, this was my music that I would write and record with the Sound Recorder app installed on my cellphone. I tried the link suggested in the post below for a free trial on Dr.Fone the Wondershare.net/data-recovery/android website, and at step four it quit working, it showed a pic of my phone and the laptop communicating via the USB cable, but nothing came up on my laptop screen, nor cellphone, and the next button would not proceed to the next step. Thank you for any suggestions for recovering my erased sound recorder, data. Hoping it's possible!

# Answer
Try taking your sd card out and using recovery software like recuva on your PC... You may also take it to a professional data recovery store, but they typically charge a lot. Data recovery apps for android also exist but I cannot vouch for any... Spend your money carefully!

**\[EDIT\] POSSIBLE SOLUTION(S):**

---

SOLUTION ONE:

Download **ES file explorer** (free) on your android phone from Google Play. Search both the internal memory and SD card for the missing files... (Tip: There are plenty of tutorials on YouTube)

---

SOLUTION TWO:

Take your SD Card out and connect it to your computer with a SD card reader. Use a data recovery software:

Windows:

- Testdisk (FREE) \[http://www.cgsecurity.org/wiki/TestDisk\_Download \]
- Recuva (PAID/FREE) \[https://www.piriform.com/recuva \]
- GetDataBack (PAID/FREE) \[https://www.runtime.org/data-recovery-software.htm \]

---

SOLUTION THREE:

Use data recovery apps on your phone:
- Disk Digger (PAID/FREE) \[https://play.google.com/store/apps/details?id=com.defianttech.diskdigger \]

---

SOLUTION FOUR:

Take your phone to a **Data Recovery Store** (CAN BE EXPENSIVE!)
> 0 votes

---
Tags: data-recovery
---


# Question
Title: Apps on SD-Card moved back to device storage after being updated?
On my Samsung Galaxy S5 (running Lollipop 5.0), I noticed the following behavior:

* I moved some apps to my external SD-Card storage.
* Every time, Google Play Store tells me to update one of these apps, they're getting moved back to the device's storage - and I have to push them back again to the SD-Card.

Did anyone encounter the same issue (or is this maybe just my phone)? This behavior does not show up on my old Galaxy (Android 4.1.2 - apps keep their place there, even after being updated).

Since I think, that it's very annoying to check whether apps should be moved to the SD-Card again, can somebody please tell me, how to stop this behavior or automate app2sd for specific apps?

**Edit**: I did not root my phone

# Answer
> 1 votes
The problem is you don't have you SD card selected as the default installation location. Which makes the app install back onto the internal storage.

To fix this got to `Settings > Storage > Preferred install location` then select SD card. After you update it will install app on the SD card by default.

---
Tags: google-play-store, 5.0-lollipop, app2sd, samsung-galaxy-s-5
---


# Question
Title: Facing some problem with my android mobile
I'm using android 5.1 lollipop, the issue is when i turn my data ON,am not getting instant notifications from few apps like hike,Twitter, Instagram. In the mean time am getting notifications instantly from WhatsApp and Facebook ,I checked my running apps and I found that those applications are not running in my RAM. So someone please help me out.

# Answer
So if I understand correctly you say that your apps don't run in the background and reload new notifications.

This might be because they are blocked from auto starting. To allow them to auto start go to `Setting > Security > Auto-start Management` Then allow those apps to auto start. One the top of the screen it should say how muck are allowed and denied auto start.

Also if you are rooted and you have an app like battery doctor that blocks auto start and disable that service. Or any other app that does the same thing.

This will allow you app to start and run in the background and it should reload any new notifications.
> 0 votes

---
Tags: applications
---


# Question
Title: My Sony Xperia E4g is locked by android device manager and I can't
How do I unlock my phone if I've forgotten the password

# Answer
You don't ... Factory reset is the only way I found, after I broke the screen in frustration. Yay.
> -2 votes

---
Tags: locked-out, android-device-manager
---


title: Executing a script

text:
# Question
Title: Executing a script
I'm new to Android and trying to find the simplest way to run a 2 line script that deletes files from a specific directory.

I Googled the topic and created a file that I called `test.sh` which has 2 lines:

```
 #!/system/bin/sh
 delete Android/data/mydir/*.dmp

```

I copied this file to an Android device and managed to create a shortcut to this file. Now I want to execute this script whenever I click the shortcut but I'm unable to make it work!

I would appreciate any hints to get this going.

Thanks!

# Answer
In your script you forgot `#` , and what is more the command to **delete** is not `delete`(as you wrote) but `rm`, along with at least one option:

* `-r` for recursive
* `-f` for force
* `-v` for verbose

so try

**For a single file**

```
#!/system/bin/sh
rm /path/to/file/filename.extension

```

**For a group of files @ location by extension with wildcard:**

```
#!/system/bin/sh
rm /path/to/file/*.extension

```

**A straight up clearing of a directory:**

```
#!/system/bin/sh
rm /path/to/directory-containing-files/*

```

Alternate to **clear that directory of files and directories as well**, with verbose to see what's being deleted

```
#!/system/bin/sh
rm -frv /path/to/file/*

```

**To delete the directory itself**

```
#!/system/bin/sh
rm -fr /kill/that/pesky/directory

```

You must have `root` privileges to modify anything in `/system` and/or `/data` folder.

The exception would be `/data/local` directory which you should be able to access/modify within as peon user.

If `selinux` is enforcing **you will NOT be able to modify anything** in `/data` with the exception of the previously stated exception even if `su`.

This with the exception of laying out the proper path to `sh` in your script is not really an android question.

**Your normal practices in scripting on a Linux OS should mostly carry over as long as you use the correct path to `sh`.**

You can create that script in regular `sdcard` storage space and execute by running

```
su
/sdcard/./yams.sh
I like yams. They're nummy.

```

**If you get a permission error, denied etc.,** then

```
chmod 755 /path/to/script.sh

```

and again run as `su`

**You can alternately run**

```
su -c /sdcard/yams.sh

```
> 2 votes

# Answer
You can use Script options

Has more privileges if you have a rooted phone You can choose the script via the inbuilt file manager, and can choose various options, as seen And yes there's no command as delete Use

> rm -rf

instead as suggested above Also if you are trying to delete the data created by an app i.e inside **data/data/example.app/DataToDelete**

You will need to have Superuser privileges or only that particular app can delete its own data.
> -1 votes

---
Tags: scripts
---


# Question
Title: Where are my AVD's and how do I mount them
This is my first post so apologies if this a stupid question! I have had a quick google but came up with no solution.

I've just created my first avds but cant find where the user data images are stored (my os is ubuntu 14.04).

I would be very grateful if someone can let me where they are. And even more grateful if they could tell me how to mount them.

Thanks for any replies.

# Answer
> 1 votes
### To find directory with AVD emulators:

Follow these steps:

1. Open your home directory
2. Press `Ctrl`+`H` to unhide hidden folders and files.
3. Choose folder `.android`

Your AVDs should be in `avd` folder inside `.android` folder

### To mount any AVD emulator

From: Is there a way to mount Android .img to access the AVD (Android Virtual Device) contents?

> You can just mount the device in Linux:
>
> ```
> sudo mount -o loop ~/.android/avd/<myvirt>/sdcard.img <destdir>
>
> ```

Hope it help

---
Tags: 5.0-lollipop
---


title: Samsung S3 - Device Memory Damaged

text:
# Question
Title: Samsung S3 - Device Memory Damaged
I have a Samsung S3 GT-i9300 which has an error on booting up. It goes through the Samsung splash screen then displays the following:

> **Device Memory Damaged**
>
> The data partition has been corrupted. You need to reset your device to factory defaults. This will erase all your data.

I really don't want to delete the data and am looking to recover the media from the device. I'm not bothered about getting the phone working again really.

I can boot into download (ODIN) mode, but this doesnt really assist (or does it?). I can also boot into recovery mode but I get the following errors also:

```
E:failed to mount /data (Invalid argument)
can't mount '/data'(Invalid argument)
E:failed to mount /data (Invalid argument)
E:Can't mount /data/log/recovery_log.txt

```

The device shows in Nautilus on my Ubuntu system but fails to mount. I can select the option to 'Apply update from ADB' and running adb devices shows as:

```
$ ./adb devices
List of devices attached
4df74280146d3071    sideload

```

Is this of any use to me? Is there a way I can get into the storage to salvage what's there. Can I load a custom rom without deleting everything, or if I do delete everything is there a way to recover the deleted files?

# Answer
> 2 votes
You could get the same version of your operating system as flashable zip-file for the recovery mode and flash it, or use Odin to flash a kdz-file of it. If the files you'd like to get back are not in the system folder (like music or images) there is a chance they will still be there with the flashed system. Just don't do any formatting prior to flashing!

# Answer
> -4 votes
What worked for me was to restart the phone and the damaged message went away!

---
Tags: adb, data-recovery, stock-android
---


# Question
Title: Delete original pictures/videos from phone and not have Google Photos automatically delete the online copy
I have Google Photos app enabled to automatically backup all my photos and videos to my Google Photos. My question is, once they are on the drive how can I delete the original from the phone without having it deleted on the Photos?

# Answer
> 3 votes
After the photos have been backed up, in the Google Photos app you can delete the photos by selecting the photos you want to delete and then pressing the three dots in the top right corner and selecting "**Delete device copy**".

This will delete the copy on the phone, but leave the copy stored online safe.

# Answer
> 2 votes
Adding to Whitebear's excellent answer for deleting photo by photo, there are two other ways.

1. You can delete photos from the "Gallery" app and that will delete photos from your device only (though I am unsure of the effect if you set up Photos to display cloud photos in Gallery)
2. You can use the "Free up device storage" option under the Settings in Photos - this will go through and delete all synced photos that it can. I believe this is a new option, as I had to update the Photos app to make this available.

---
Tags: sync, backup, photos, google-drive, google-plus-photos
---


# Question
Title: Emulator not responding. How to troubleshoot?
I waited a long time to get the home screen in the emulator, but i didn't get it. How to proceed from here?

# Answer
> 1 votes
the reason is your haxm is not working is that, that your AVD and HAXM both must be configured to use same amount of memory(not sure if lower memory in avd will work).

you can change HAXM memory by reinstalling it(could not find any better method). during installation you will be asked to enter the desired amount of memory.

and you can change the avd memory from avd manager by clicking on the icon and then editing the avd by clicking the pencil button in the right, then go to advanced settings and you will see the memory option(might need to scroll on lower resolution screen)

# Answer
> 1 votes
Maybe you can try to use an emulator snapshot.To use a snapshot with your device, open the AVD manager from the Android Studio menu by selecting Tools→Android→AVD Manager, edit the AVD by clicking on the Edit symbol, then check the “Store a snapshot for faster startup” option.

This will save a snapshot of what the memory looks like when the device is running. The emulator will be able to restore the memory in this state without booting the device.

Besides, when you create a new virtual device, you can set its CPU type similar to your development machine(e.g. If your machine use a particular type of Intel x86 CPU, then set your virtual device's CPU to x86 architecture). Also, installing HAXM will help accelerate the speed. You can find it on https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager.

What's more, you can try to use GenyMotion instead of the original AVD.

Finally, running apps on your real device will offer you a more efficiency way to test the code.

In your case, it seems that your HAXM memory configuration(max 1024MB) cannot fullfill the AVD(1536MB) according to the screenshot. So you could adjust the HAXM max memory configuration by running the HAXM installer again. When the installer prompted to adjust the max memory size, set it to a number bigger than 1536MB, such as 2048MB. Then reload the AVD, the HAXM would run correctly, and the speed will improved efficiently.

# Answer
> 0 votes
use genymotion emulator. It is fast comparing to general emulator. Program execution is fast than general emulator.

# Answer
> 0 votes
Things you can try,

* Your AVD RAM size is higher than that of the HAXM's maximum RAM size. You can see in the log that,

```
emulator: AVD RAM size = 1536
emulator: HAXM max RAM size = 1024
emulator: You might want to adjust your AVD RAM size and/or HAXM configuration to run in fast virt mode.

```

So you need to adjust and set your virtual device's RAM lesser than that of max HAXM RAM size. I would suggest 512mb or 768mb for your AVD.

* The first startup can take a while, especially on a slow machine but otherwise try running the adb logcat command to see the log output. That will help you determine what the problem could be.
* Delete the emulator and create a new one
* Un-check the 'Snapshot' option and restart your emulator.

---
Tags: applications, emulators
---


# Question
Title: Not able to flash recovery on my Shield Tablet K1
Important note: I used a Mac whilst doing this.

Also Important: I have the Android 6.0 update installed.

I got a Shield Tablet K1 for Christmas and attempted to root it. However, I'm having a lot of issues with it, and I'm worried I've messed up the recovery part of the tablet.

First, I unlocked the device, and set it up. This worked fine.

I went to flash the tablet with TWRP for the Shield Tablet, which I obtained from here: TWRP Shield Tablet

I used the command "fastboot flash recovery ", and it looked like it had completed.

However, **it appears it has not completed.**

Booting into Recovery Mode using "adb reboot recovery" brings me to a screen with the android lying on the floor, with a red triangle over him.

Attempting to go into recovery mode using the down volume key & the power button, usually brings me to the Nvidia boot screen, where the brightness increases after a few seconds but then it just sits there until it eventually reboots.

Then, after attempting to reflash the stock recovery.img that I got from here: Shield Open Source Drivers and Images it still gives me the a) red triangle and laying dead android or b) nvidia bootscreen that sits for a long time before rebooting.

I am completely lost. I can't tell why this isn't working - it should by all means be working, yet nothing is flashing.

If anyone can fix this, it will be much appreciated.

# Answer
> 0 votes
The shield's bootloader got overwritten during the Marshmallow OTA, and it is no longer backward-compatible (Lollipop ROM won't boot on this bootloader, and older recoveries neither).

The reason why you can't manage to boot into recovery is because the bootloader is preventing you from doing it.

When using `adb reboot recovery`, Android has already booted up, and, as a consequence, overwritten the recovery with the stock one. That brings you to the stock "android lying on the floor" recovery.

A developper at XDA made an EXPERIMENTAL Build for the shield tablet and shield tablet k1. (See here). Please use this at your own risk. Also note that Chainfire's SuperSU doesn't work with it.

If you want to root your tablet, you are not forced to do it by recovery. Give a this shot.

---
Tags: recovery-mode, twrp, nvidia-shield
---


title: Advanced camera settings on Nexus 5

text:
# Question
Title: Advanced camera settings on Nexus 5
I have a nexus 5, with android 4.4.4. How can i change advanced camera settings? (iso, shutter speed etc...)

# Answer
> 2 votes
The stock camera app doesn't allow such manual adjustments, so you'll probably need a 3rd-party app such as DSLR Camera Pro $3, Shot Control $3 with a free demo or Camera FV-5 $5 with a free demo. This will let you manually adjust the shutter speed, aperture, ISO, etc like a DSLR.

# Answer
> -1 votes
you can adjust ISO by going to setting, then advance, and then enabling the manual option. In the camera screen you can click on the +/- icon. -2 is ISO 800 and 0 is ISO 100.

Cheers!

---
Tags: settings, camera, nexus-5
---


# Question
Title: WhatsApp chats disappeared after Android Operating System Update
I am having a Moto E XT-1022 (1st generation) 2014 model. In order to update its OS from 4.4.4 to 5.1, I had to make 500MB space available so I deleted all WhatsApp database backup files without copying them elsewhere as I knew from my own experience that WhatsApp had nothing to do with Android OS upgradation process since I had already upgraded the same android from OS 4.4 to 4.4.4 and my old Samsung even before that without losing any of my WhatsApp messages but unfortunately, this time all my chats are gone after OS update.

As I thought, WhatsApp tried to take the backup automatically on 3 AM like any other day, but it's not working either. Now I'm left with a possibly corrupt file `msgstore.db.cypt8` (size: 103.62 MB). I read somewhere in here that there is a possibility of mending the corrupt backup and regenerating it afresh if the key can be extracted somehow. So is there any ray of hope for me?

PS: Mine is a non-rooted device.

# Answer
> 1 votes
The only one that can help for this kind of issue is WhatsApp. You may want to contact support@whatsapp.com (Source: https://www.whatsapp.com/contact/) and see what they can help you with.

> I just can't afford to lose my three years' important data.

This is the root of your problem. Any important data that you can't afford to lose shouldn't be stored as instant messages, you should have copied over any important data elsewhere.

---
Tags: whatsapp-messenger, data-recovery, 5.1-lollipop, motorola-moto-e
---


title: How to copy ringtones to Galaxy Ace 2?

text:
# Question
Title: How to copy ringtones to Galaxy Ace 2?
*Gingerbread on board :-).*

I try to customize ringtone, so I copied files to "/system/media/audio/ringtones". Depending on the app, either the copy is forbidden or the copy is ignored.

Next try -- as with Galaxy Ace, I created directory "/mnt/sdcard/media/audio/ringtones" and copied the files there. This worked, however Android does not pick them up when selecting audio for a ringtone.

When I first customized my phone (around 2 years ago) I used the app "Tone Picker" to help the system to select the customized audio, maybe something was changed in the app, I don't know, however this also does not work.

I would prefer to copy somehow the files without need of external application anyway.

So how to do it?

# Answer
> I try to customize ringtone, so I copied files to "/system/media/audio/ringtones". Depending on the app, either the copy is forbidden or the copy is ignored.

It is because system partition is always mounted in read-only mode by Android. To edit anything in that partition you'd have to remount the partition in read-write mode. And in order to remount the system partition you would need root privileges. Once you've them, see the answers for Getting mount's usage suggestion when attempting /system remount or Can't remount /system in rw

> I created directory "/mnt/sdcard/media/audio/ringtones" and copied the files there. This worked, however Android does not pick them up when selecting audio for a ringtone.

For some reason unbeknownst to me, if you move sound files into the Ringtones directory you would've to restart the Android in order to see those files as available ringtones through Settings app.

That however, is not the case if you use an app to set the ringtones.
> 2 votes

---
Tags: 2.3-gingerbread, ringtone, samsung-galaxy-ace-2
---


title: Can't format microSD card

text:
# Question
Title: Can't format microSD card
I am trying to format a microSD card which was previously used in a Windows Phone. Currently the microSD card is in a Samsung Galaxy Ace Plus (GT-S7500) running Android 2.3.6. I have tried erasing the memory from the Settings menu and now I have plugged the USB and givin it a go from Ubuntu.

Every time I try to format (or manually delete) data, every file and directory seem to stay put.

I thought it could be a microSD card corruption problem, but as I type

```
sudo fsck -a /dev/sdc

```

The only warning message I get is:

```
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.

```

Then I issue the command one more time and the check is fine.

Is there anything I can do to format this microSD card?

Update: Running `gparted` I get this error:

```
plain floppy: device "/dev/sdc" busy (Resource temporarily unavailable):
Cannot initialize '::'
mlabel: Cannot initialize drive

```

# Answer
This is due to a bug in fsck.

```
 # fsck.vfat -v -a -w /dev/sda1

```

The above command automatically write changes to disk.

*The dirty bit is set and cleared in the kernel, when mounting and unmounting a device;*

or if its not working try this HDD Low Level Format Tool.This will help you format microSD completely.
> 0 votes

---
Tags: formatting
---


title: USB adapter for sim card

text:
# Question
Title: USB adapter for sim card
Is it possible to hook up a sim card through a USB adapter, to plug into the micro USB port of my galaxy tab e? I received it as a gift, and there is no sim card slot, WiFi only. If it exists, where would I be able to find one?

# Answer
Yes if you google "usb adapter for sim card" you will find one http://www.bestbuy.com/site/camera-memory-cards-usb-drives/readers-adapters/abcat0404007.c?id=abcat0404007 you can then use this USB to Micro-USB cable to plug your adapter into the micro usb port on your tablet http://www.amazon.com/amp-USB-Micro-USB-Cable-Ft/dp/B002HMWQE2
> 1 votes

---
Tags: samsung-galaxy-tab
---


title: What is "systemless root"?

text:
# Question
Title: What is "systemless root"?
Chainfire (the developer of SuperSU), has come up with a new style of rooting devices on Android 6.0 Marshmallow and above. This is "**systemless**" root, and is all the rage right now. So, just in case anyone feels curious, I thought there should be some information about "systemless" root here for future reference.

**The main question:**

What is "**systemless**" root, exactly?

This question has 2 ancillary questions, which are:

1. Where is it more applicable over traditional "**system-based**" root, and how is it different from it?
2. Is it better than traditional root? If so, how?

A comprehensive answer to the main question along with the ancillary questions will be preferred.

# Answer
**Main Answer:**

Systemless root is a rooting method/procedure developed by Chainfire (the developer of the popular root management app SuperSU) which involves a modified boot ramdisk image. The superuser `su` binary becomes a kernel inclusion instead of existing under `/system/xbin/`, like in normal system-based root.

**Ancillary Answers:**

1. *Preference of systemless root over traditional root:*

It was initially suggested by Chainfire to be useful for Nexus devices from Marshmallow onwards to prevent rooted users from having to reflash the entire stock system, boot and recovery partitions before undertaking even a minor OTA update, which has since become more important as Google has introduced the policy of pushing out monthly security updates through OTAs, and flashing the entire device every month is tedious at best.

Systemless root eliminates the heavyweight system partition from the flashing equation, allowing the devices with systemless root to be updated just after reflashing stock recovery and boot.
2. *Pros of systemless root over traditional root:*

* Utility when OTA updating devices as mentioned above.
    * The modified boot image gets rid of the "Tampered" screen on Android bootup from Marshmallow onwards, if the device has a non-stock partition, most commonly recovery.
    * No exploits required. Systemless SuperSU can technically be flashed as a boot image through fastboot, although it is normally done by flashing a zip in a custom recovery, which automatically patches the on-device boot image to make the necessary modifications to support systemless root.
    * It works with an `SELinux Enforcing` security condition, while traditional root needs `SELinux Permissive` on Android 5.0 and up.
    * It *unintentionally* circumvents Android Pay and Android for Work root restrictions, which work with traditional root.
3. *Cons of systemless root over traditional root:*

* Quite buggy and is still in BETA stage, although it is being actively developed and is definitely usable (from personal experience). **Edit:** No longer buggy and the default rooting method on Android 6.0.1 and up when using SuperSU.
    * Some custom kernels like LeanKernel refuse to work with systemless root as they need traditional root for functioning properly. **Edit:** Most custom kernels now recommend systemless root, a well-known such kernel being ElementalX.
    * Some root apps may not work with systemless root as they hard-code the `path-to-su` in their code, which is only applicable for traditional root.
    * Not sure if this is actually a con, but systemless root is the only **recommended** rooting method that will work on Android 6.0.1 and up.

Sources:

1. XDA-Developers
2. Nexus 6P Reddit thread (not sure if it's very reliable)
> 14 votes

# Answer
Systemless root, developed mainly by Chainfire, is an alternate method to root your phone without altering files in your system. It makes changes in the boot image instead of the system files like init, etc, and hence makes rooting and unrooting theoretically easier. It is an experiment, so I don't think it works perfectly. It also could circumvent Android Pay root restrictions, but Chainfire did not expect that, and says that Android Pay would be patched to push out any such root users too.

For more information about it, check the xda article. The dev also has a forum here.
> 5 votes

---
Tags: rooting, root-access, systemless-root
---


# Question
Title: Google Play Store crashes on Amlogic Android TV
I have install Google Play Store (via flashing a GApps package through custom recovery) in an Amlogic Android TV device but after 2-3 reboots it keeps crashing.

Here are logs from `adb logcat`:

```
I/ActivityManager(  494): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.android.vending/com.google.android.finsky.activities.MainActivity} from pid 2306
I/ActivityManager(  494): start package name is com.android.vending, class name is com.google.android.finsky.activities.MainActivity, error code is 0
I/dalvikvm( 2306): Could not find method android.app.Activity.finishAfterTransition, referenced from method android.support.v4.app.FragmentActivity.onBackPressed
W/dalvikvm( 2306): VFY: unable to resolve virtual method 104: Landroid/app/Activity;.finishAfterTransition ()V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0012
W/dalvikvm( 2306): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
I/dalvikvm( 2306): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.internal.view.WindowCallbackWrapper.onSearchRequested
W/dalvikvm( 2306): VFY: unable to resolve interface method 9350: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
D/dalvikvm( 2306): VFY: replacing opcode 0x72 at 0x0002
I/dalvikvm( 2306): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.internal.view.WindowCallbackWrapper.onWindowStartingActionMode
W/dalvikvm( 2306): VFY: unable to resolve interface method 9354: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
D/dalvikvm( 2306): VFY: replacing opcode 0x72 at 0x0002
I/dalvikvm( 2306): Failed resolving Lcom/google/android/play/drawer/PlayDrawerLayout$1; interface 1305 'Landroid/view/View$OnApplyWindowInsetsListener;'
W/dalvikvm( 2306): Link of class 'Lcom/google/android/play/drawer/PlayDrawerLayout$1;' failed
E/dalvikvm( 2306): Could not find class 'com.google.android.play.drawer.PlayDrawerLayout$1', referenced from method com.google.android.play.drawer.PlayDrawerLayout.onFinishInflate
W/dalvikvm( 2306): VFY: unable to resolve new-instance 6664 (Lcom/google/android/play/drawer/PlayDrawerLayout$1;) in Lcom/google/android/play/drawer/PlayDrawerLayout;
D/dalvikvm( 2306): VFY: replacing opcode 0x22 at 0x0030
I/dalvikvm( 2306): Failed resolving Lcom/google/android/play/drawer/PlayDrawerLayout$1; interface 1305 'Landroid/view/View$OnApplyWindowInsetsListener;'
W/dalvikvm( 2306): Link of class 'Lcom/google/android/play/drawer/PlayDrawerLayout$1;' failed
D/dalvikvm( 2306): DexOpt: unable to opt direct call 0x94c8 at 0x32 in Lcom/google/android/play/drawer/PlayDrawerLayout;.onFinishInflate
W/dalvikvm( 2306): VFY: unable to find class referenced in signature (Landroid/view/WindowInsets;)
I/dalvikvm( 2306): Could not find method android.view.WindowInsets.getSystemWindowInsetLeft, referenced from method com.google.android.finsky.layout.InsetsFrameLayout.onApplyWindowInsets
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9371: Landroid/view/WindowInsets;.getSystemWindowInsetLeft ()I
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0020
I/dalvikvm( 2306): Could not find method android.view.View.dispatchApplyWindowInsets, referenced from method com.google.android.finsky.layout.InsetsFrameLayout.onApplyWindowInsets
W/dalvikvm( 2306): VFY: unable to resolve virtual method 8973: Landroid/view/View;.dispatchApplyWindowInsets (Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0071
I/dalvikvm( 2306): Could not find method android.view.WindowInsets.consumeSystemWindowInsets, referenced from method com.google.android.finsky.layout.InsetsFrameLayout.onApplyWindowInsets
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9369: Landroid/view/WindowInsets;.consumeSystemWindowInsets ()Landroid/view/WindowInsets;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x007b
I/dalvikvm( 2306): Could not find method android.widget.FrameLayout.<init>, referenced from method com.google.android.finsky.layout.SpacerHeightAwareFrameLayout.<init>
W/dalvikvm( 2306): VFY: unable to resolve direct method 9808: Landroid/widget/FrameLayout;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;II)V
D/dalvikvm( 2306): VFY: replacing opcode 0x70 at 0x0000
D/TextLayoutCache( 2306): Using debug level = 0 - Debug Enabled = 0
I/dalvikvm( 2306): Could not find method android.content.Context.getColor, referenced from method android.support.v4.content.ContextCompat.getColor
W/dalvikvm( 2306): VFY: unable to resolve virtual method 413: Landroid/content/Context;.getColor (I)I
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm( 2306): Could not find method android.content.Context.getDrawable, referenced from method android.support.v4.content.ContextCompat.getDrawable
W/dalvikvm( 2306): VFY: unable to resolve virtual method 417: Landroid/content/Context;.getDrawable (I)Landroid/graphics/drawable/Drawable;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0006
D/dalvikvm( 2306): GC_FOR_ALLOC freed 686K, 24% free 7774K/10188K, paused 45ms, total 45ms
I/dalvikvm-heap( 2306): Grow heap (frag case) to 7.884MB for 281896-byte allocation
D/dalvikvm( 2306): GC_FOR_ALLOC freed 2K, 24% free 8047K/10464K, paused 41ms, total 41ms
I/dalvikvm( 2306): Could not find method android.view.ViewAnimationUtils.createCircularReveal, referenced from method com.google.android.play.search.PlaySearch.onActionViewExpanded
W/dalvikvm( 2306): VFY: unable to resolve static method 9155: Landroid/view/ViewAnimationUtils;.createCircularReveal (Landroid/view/View;IIFF)Landroid/animation/Animator;
D/dalvikvm( 2306): VFY: replacing opcode 0x71 at 0x002d
E/HAL     ( 2642): load: module=/system/lib/hw/keystore.amlogic.so
E/HAL     ( 2642): dlopen failed: could not load library "libamlkeymaster.so" needed by "keystore.amlogic.so"; caused by library "libamlkeymaster.so" not found
E/keystore( 2642): could not find any keystore module
E/keystore( 2642): keystore keymaster could not be initialized; exiting
I/dalvikvm( 2306): Could not find method android.view.ViewAnimationUtils.createCircularReveal, referenced from method com.google.android.play.search.PlaySearchToolbar$2.onModeChanged
W/dalvikvm( 2306): VFY: unable to resolve static method 9155: Landroid/view/ViewAnimationUtils;.createCircularReveal (Landroid/view/View;IIFF)Landroid/animation/Animator;
D/dalvikvm( 2306): VFY: replacing opcode 0x71 at 0x0055
E/dalvikvm( 2306): Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method com.google.android.finsky.layout.actionbar.ActionBarHelper.syncState
W/dalvikvm( 2306): VFY: unable to resolve new-instance 30 (Landroid/app/ActivityManager$TaskDescription;) in Lcom/google/android/finsky/layout/actionbar/ActionBarHelper;
D/dalvikvm( 2306): VFY: replacing opcode 0x22 at 0x00e4
I/dalvikvm( 2306): Could not find method android.view.Window.setStatusBarColor, referenced from method com.google.android.finsky.layout.actionbar.ActionBarHelper.syncState
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9368: Landroid/view/Window;.setStatusBarColor (I)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x01b8
D/dalvikvm( 2306): DexOpt: unable to opt direct call 0x009b at 0xfa in Lcom/google/android/finsky/layout/actionbar/ActionBarHelper;.syncState
D/Finsky  ( 2306): [1] SelfUpdateScheduler.checkForSelfUpdate: Skipping DFE self-update. Local Version [80430500] >= Server Version [-1]
D/dalvikvm(  871): GC_CONCURRENT freed 643K, 23% free 2886K/3708K, paused 1ms+3ms, total 23ms
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
D/libEGL  ( 2306): loaded /system/lib/egl/libGLES_mali.so
D/OpenGLRenderer( 2306): Enabling debug mode 0
I/dalvikvm( 2306): Could not find method android.widget.ImageView.drawableHotspotChanged, referenced from method com.google.android.play.image.FifeImageView.drawableHotspotChanged
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9894: Landroid/widget/ImageView;.drawableHotspotChanged (FF)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6f at 0x0000
D/dalvikvm( 2306): GC_FOR_ALLOC freed 345K, 21% free 8331K/10464K, paused 37ms, total 37ms
I/qtaguid ( 2306): Failed write_ctrl(u 55) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 55 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(55) failed with errno -22
D/Finsky  ( 2306): [1] UpdateWidgetsReceiver.onReceive: Updated 0 MarketWidgetProvider widgets (com.google.android.finsky.action.TOC_SET)
D/Finsky  ( 2306): [1] UpdateWidgetsReceiver.onReceive: Updated 0 RecommendedWidgetProvider widgets (com.google.android.finsky.action.TOC_SET)
D/Finsky  ( 2306): [1] UpdateWidgetsReceiver.onReceive: Updated 0 NowPlayingWidgetProvider widgets (com.google.android.finsky.action.TOC_SET)
I/dalvikvm( 2306): Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawable
W/dalvikvm( 2306): VFY: unable to resolve virtual method 668: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0002
I/dalvikvm( 2306): Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawableForDensity
W/dalvikvm( 2306): VFY: unable to resolve virtual method 670: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0002
D/Finsky  ( 2306): [1] BaseWidgetProvider.onReceive: Received ACTION_APPWIDGET_UPDATE, updating 0 widgets.
D/Finsky  ( 2306): [1] InstallerImpl.kick: Installer kick - starting com.google.android.gms
I/ActivityManager(  494): Displayed com.android.vending/com.google.android.finsky.activities.MainActivity: +664ms (total +734ms)
W/Settings( 2306): Setting download_manager_max_bytes_over_mobile has moved from android.provider.Settings.Secure to android.provider.Settings.Global.
D/Finsky  ( 2306): [1] GaiaRecoveryHelper.prefetchAndCacheGaiaAuthRecoveryIntent: Skipping fetching recovery intent -- gaia recovery disabled
W/dalvikvm( 2306): Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$3; (1239)
W/dalvikvm( 2306): Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$3;' failed
E/dalvikvm( 2306): Could not find class 'android.support.v4.app.FragmentTransitionCompat21$3', referenced from method android.support.v4.app.BackStackRecord.configureTransitions
W/dalvikvm( 2306): VFY: unable to resolve new-instance 410 (Landroid/support/v4/app/FragmentTransitionCompat21$3;) in Landroid/support/v4/app/BackStackRecord;
D/dalvikvm( 2306): VFY: replacing opcode 0x22 at 0x01a4
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
I/dalvikvm( 2306): Could not find method android.view.View.getTransitionName, referenced from method android.support.v4.app.BackStackRecord.setBackNameOverrides
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9032: Landroid/view/View;.getTransitionName ()Ljava/lang/String;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0020
I/dalvikvm( 2306): Could not find method android.view.View.getTransitionName, referenced from method android.support.v4.app.BackStackRecord.setNameOverrides
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9032: Landroid/view/View;.getTransitionName ()Ljava/lang/String;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0013
I/dalvikvm( 2306): Could not find method android.view.View.getTransitionName, referenced from method android.support.v4.app.BackStackRecord.addSharedElement
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9032: Landroid/view/View;.getTransitionName ()Ljava/lang/String;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0004
W/dalvikvm( 2306): Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$3; (1239)
W/dalvikvm( 2306): Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$3;' failed
D/dalvikvm( 2306): DexOpt: unable to opt direct call 0x0890 at 0x1a6 in Landroid/support/v4/app/BackStackRecord;.configureTransitions
D/Finsky  ( 2306): [1] MainActivity.onReady: Optimistically fetching billing countries.
D/Finsky  ( 2306): [1] BaseWidgetProvider.onReceive: Received ACTION_APPWIDGET_UPDATE, updating 0 widgets.
I/dalvikvm( 2306): Could not find method android.view.ViewPropertyAnimator.z, referenced from method com.google.android.play.headerlist.PlayHeaderListLayout.setHeaderShadowVisible
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9321: Landroid/view/ViewPropertyAnimator;.z (F)Landroid/view/ViewPropertyAnimator;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0037
I/dalvikvm( 2306): Could not find method com.google.android.play.headerlist.PlayHeaderStatusBarUnderlay.setOutlineProvider, referenced from method com.google.android.play.headerlist.PlayHeaderListLayout.configure
W/dalvikvm( 2306): VFY: unable to resolve virtual method 38489: Lcom/google/android/play/headerlist/PlayHeaderStatusBarUnderlay;.setOutlineProvider (Landroid/view/ViewOutlineProvider;)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x01d5
W/dalvikvm( 2306): VFY: unable to find class referenced in signature (Landroid/view/WindowInsets;)
I/dalvikvm( 2306): Could not find method android.view.WindowInsets.getSystemWindowInsetTop, referenced from method com.google.android.play.headerlist.PlayHeaderListLayout.onApplyWindowInsets
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9373: Landroid/view/WindowInsets;.getSystemWindowInsetTop ()I
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0000
D/Finsky  ( 2306): [1] BaseWidgetProvider.onReceive: Received ACTION_APPWIDGET_UPDATE, updating 0 widgets.
I/qtaguid ( 2306): Failed write_ctrl(u 62) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 62 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(62) failed with errno -22
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
I/qtaguid ( 2306): Failed write_ctrl(u 55) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 55 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(55) failed with errno -22
D/Finsky  ( 2306): [1] DownloadImpl.setState: Duplicate state set for 'com.google.android.gms' (0). Already in that state
D/Finsky  ( 2306): [1] DownloadQueueImpl.add: Download com.google.android.gms added to DownloadQueue
D/Finsky  ( 2306): [1] DownloadImpl.setState: com.google.android.gms from 0 to 1.
I/installd(  136): free_cache(22795155) avail 5437329408
D/Finsky  ( 2306): [1] StartNextDownloadRunnable.run: Download com.google.android.gms starting
I/qtaguid ( 2306): Failed write_ctrl(u 62) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 62 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(62) failed with errno -22
D/Finsky  ( 2306): [152] DownloadQueueImpl$7.run: Enqueued com.google.android.gms as content://downloads/my_downloads/3
D/Finsky  ( 2306): [1] DownloadImpl.setState: com.google.android.gms from 1 to 2.
D/Finsky  ( 2306): [1] DownloadQueueImpl.onStart: com.google.android.gms: onStart
W/dalvikvm( 2306): Unable to resolve superclass of Lcom/google/android/finsky/layout/ControlsContainerBackgroundCoordinator$2; (1325)
W/dalvikvm( 2306): Link of class 'Lcom/google/android/finsky/layout/ControlsContainerBackgroundCoordinator$2;' failed
E/dalvikvm( 2306): Could not find class 'com.google.android.finsky.layout.ControlsContainerBackgroundCoordinator$2', referenced from method com.google.android.finsky.layout.FinskyTabStrip.onAttachedToWindow
W/dalvikvm( 2306): VFY: unable to resolve new-instance 3013 (Lcom/google/android/finsky/layout/ControlsContainerBackgroundCoordinator$2;) in Lcom/google/android/finsky/layout/FinskyTabStrip;
D/dalvikvm( 2306): VFY: replacing opcode 0x22 at 0x006b
W/dalvikvm( 2306): Unable to resolve superclass of Lcom/google/android/finsky/layout/ControlsContainerBackgroundCoordinator$2; (1325)
W/dalvikvm( 2306): Link of class 'Lcom/google/android/finsky/layout/ControlsContainerBackgroundCoordinator$2;' failed
D/dalvikvm( 2306): DexOpt: unable to opt direct call 0x502e at 0x6d in Lcom/google/android/finsky/layout/FinskyTabStrip;.onAttachedToWindow
W/dalvikvm( 2306): VFY: unable to resolve static field 4997 (BACKGROUND) in Landroid/view/ViewOutlineProvider;
D/dalvikvm( 2306): VFY: replacing opcode 0x62 at 0x000b
I/dalvikvm( 2306): Could not find method android.view.ViewGroup.invalidateOutline, referenced from method com.google.android.finsky.layout.ControlsContainerBackgroundCoordinator.updateBackgroundHeightAndFades
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9228: Landroid/view/ViewGroup;.invalidateOutline ()V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x003a
I/dalvikvm( 2306): Could not find method android.view.ViewPropertyAnimator.z, referenced from method com.google.android.play.animation.AnimationCompat.animateZ
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9321: Landroid/view/ViewPropertyAnimator;.z (F)Landroid/view/ViewPropertyAnimator;
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x000c
W/dalvikvm( 2306): VFY: unable to find class referenced in signature (Landroid/graphics/Outline;)
I/dalvikvm( 2306): Could not find method android.graphics.Outline.setRect, referenced from method com.google.android.play.headerlist.PlayHeaderListLayout$6.getOutline
W/dalvikvm( 2306): VFY: unable to resolve virtual method 914: Landroid/graphics/Outline;.setRect (Landroid/graphics/Rect;)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x0004
I/dalvikvm( 2306): Could not find method com.google.android.finsky.layout.play.PlayHighlightsBannerItemView.setElevation, referenced from method com.google.android.finsky.activities.HighlightsPagerAdapter$HighlightsTab.onCurrentBannerChanged
W/dalvikvm( 2306): VFY: unable to resolve virtual method 23519: Lcom/google/android/finsky/layout/play/PlayHighlightsBannerItemView;.setElevation (F)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x002c
I/dalvikvm( 2306): Could not find method com.google.android.finsky.layout.play.PlayHighlightsBannerItemView.setElevation, referenced from method com.google.android.finsky.activities.HighlightsPagerAdapter$HighlightsTab.onCurrentBannerChanged
W/dalvikvm( 2306): VFY: unable to resolve virtual method 23519: Lcom/google/android/finsky/layout/play/PlayHighlightsBannerItemView;.setElevation (F)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x003a
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
I/dalvikvm( 2306): Could not find method android.widget.FrameLayout.<init>, referenced from method com.google.android.finsky.layout.ControlsContainerBackground.<init>
W/dalvikvm( 2306): VFY: unable to resolve direct method 9808: Landroid/widget/FrameLayout;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;II)V
D/dalvikvm( 2306): VFY: replacing opcode 0x70 at 0x0000
I/dalvikvm( 2306): Could not find method android.view.ViewAnimationUtils.createCircularReveal, referenced from method com.google.android.finsky.layout.ControlsContainerBackground.setBackgroundDrawable
W/dalvikvm( 2306): VFY: unable to resolve static method 9155: Landroid/view/ViewAnimationUtils;.createCircularReveal (Landroid/view/View;IIFF)Landroid/animation/Animator;
D/dalvikvm( 2306): VFY: replacing opcode 0x71 at 0x0087
D/Finsky  ( 2306): [1] DownloadQueueImpl.notifyProgress: com.google.android.gms: onProgress 0/-1 Status: 190.
I/dalvikvm( 2306): Could not find method com.google.android.finsky.layout.DocImageView.setTransitionName, referenced from method com.google.android.finsky.adapters.HighlightsContentBinder.bindChild
W/dalvikvm( 2306): VFY: unable to resolve virtual method 20813: Lcom/google/android/finsky/layout/DocImageView;.setTransitionName (Ljava/lang/String;)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6e at 0x00ac
I/dalvikvm( 2306): Could not find method android.widget.RelativeLayout.drawableHotspotChanged, referenced from method com.google.android.play.layout.ForegroundRelativeLayout.drawableHotspotChanged
W/dalvikvm( 2306): VFY: unable to resolve virtual method 10171: Landroid/widget/RelativeLayout;.drawableHotspotChanged (FF)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6f at 0x0000
I/DownloadManager(  754): Download 3 starting
W/ActivityThread(  754): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
D/dalvikvm( 2306): GC_FOR_ALLOC freed 1394K, 15% free 9320K/10956K, paused 46ms, total 46ms
D/dalvikvm(  754): GC_CONCURRENT freed 431K, 24% free 1724K/2244K, paused 1ms+3ms, total 13ms
I/qtaguid ( 2306): Failed write_ctrl(u 62) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 62 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(62) failed with errno -22
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
E/RecyclerView( 2306): No adapter attached; skipping layout
D/Finsky  ( 2306): [1] DownloadQueueImpl.notifyProgress: com.google.android.gms: onProgress 0/-1 Status: 192.
I/qtaguid ( 2306): Failed write_ctrl(u 84) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 84 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(84) failed with errno -22
D/dalvikvm( 2306): GC_EXPLICIT freed 350K, 11% free 10748K/11984K, paused 9ms+6ms, total 86ms
I/dalvikvm( 2306): Could not find method android.widget.LinearLayout.drawableHotspotChanged, referenced from method com.google.android.finsky.layout.ForegroundLinearLayout.drawableHotspotChanged
W/dalvikvm( 2306): VFY: unable to resolve virtual method 9970: Landroid/widget/LinearLayout;.drawableHotspotChanged (FF)V
D/dalvikvm( 2306): VFY: replacing opcode 0x6f at 0x0000
I/qtaguid ( 2306): Failed write_ctrl(u 62) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 62 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(62) failed with errno -22
D/dalvikvm( 2306): GC_EXPLICIT freed 168K, 10% free 10855K/11984K, paused 2ms+6ms, total 85ms
D/dalvikvm(  754): GC_CONCURRENT freed 401K, 22% free 1773K/2252K, paused 3ms+1ms, total 16ms
D/dalvikvm( 2306): GC_EXPLICIT freed 171K, 9% free 12901K/14040K, paused 2ms+6ms, total 63ms
I/qtaguid ( 2306): Failed write_ctrl(u 91) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 91 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(91) failed with errno -22
I/qtaguid ( 2306): Failed write_ctrl(u 95) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 95 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(95) failed with errno -22
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
V/GLSActivity(  871): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
I/qtaguid ( 2306): Failed write_ctrl(u 95) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 95 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(95) failed with errno -22
I/qtaguid ( 2306): Failed write_ctrl(u 84) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 84 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(84) failed with errno -22
I/qtaguid ( 2306): Failed write_ctrl(u 91) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 91 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(91) failed with errno -22
V/RenderScript( 2306): 0x6c7f3d28 Launching thread(s), CPUs 4
I/qtaguid ( 2306): Failed write_ctrl(u 95) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 95 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(95) failed with errno -22
D/PlayCommon( 2306): [1] BitmapLoader.access$200: http://lh3.googleusercontent.com/oWjDuhYth4eSUtoYC3LQOJnXNgu4NcF5As7CgZW07HZBpnO4Yd7_Y-wh94WSYaEQVNg=rw-w683-h448 is not cached
D/PlayCommon( 2306): [1] BitmapLoader.access$200: http://lh3.googleusercontent.com/RAgEBMk9GidYnxNMN8k8vKHi19XnGn17INA06_dVi01yUrxh-lGISyvl1lDKbifFm5ju=rw-w683-h448 is not cached
D/PlayCommon( 2306): [1] BitmapLoader.access$200: http://lh3.googleusercontent.com/_2y4wyOtvwASXzNaXjJ5uSABZ3tm1XnoRMLZf0UYVvJfqjut1NE4_cMWac84F7Z0LFA=rw-w683-h448 is not cached
I/qtaguid ( 2306): Failed write_ctrl(u 62) res=-1 errno=22
I/qtaguid ( 2306): Untagging socket 62 failed errno=-22
W/NetworkManagementSocketTagger( 2306): untagSocket(62) failed with errno -22
D/AndroidRuntime( 2306): Shutting down VM
W/dalvikvm( 2306): threadid=1: thread exiting with uncaught exception (group=0x41687ba8)
D/dalvikvm(  754): GC_CONCURRENT freed 278K, 17% free 1883K/2252K, paused 1ms+1ms, total 13ms
E/AndroidRuntime( 2306): FATAL EXCEPTION: main
E/AndroidRuntime( 2306): Process: com.android.vending, PID: 2306
E/AndroidRuntime( 2306): java.lang.ClassCastException: android.view.View cannot be cast to com.google.android.finsky.layout.play.PlayHighlightsBannerItemView
E/AndroidRuntime( 2306):    at com.google.android.finsky.layout.play.PlayClusterViewContentV2.getViewForItemPosition(PlayClusterViewContentV2.java:391)
E/AndroidRuntime( 2306):    at com.google.android.finsky.layout.play.PlayHighlightsBannerView.isItemLoaded(PlayHighlightsBannerView.java:99)
E/AndroidRuntime( 2306):    at com.google.android.finsky.activities.HighlightsPagerAdapter$HighlightsTab$1.run(HighlightsPagerAdapter.java:251)
E/AndroidRuntime( 2306):    at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime( 2306):    at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime( 2306):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 2306):    at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime( 2306):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2306):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 2306):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)

```

Updates:

When playstore update automatically to 6.0.0 version then its crashing all time older version of playstore working fine, so I found some work around from here check 3rd answer.

Above workaround stops playstore to updates itself and older playstore working fine.

Similar issue you can find here

# Answer
> 3 votes
In our chat, and from the comments, I can identify your problem, but a solution is currently not feasible for you.

**Problem:**

The GApps don't work because you are using GApps meant for a Nexus 5 (source: your comment's link), a phone, on an Android TV. I'm actually not sure how it actually installed in the first place. It shouldn't have.

GApps are heavily device-specific. There are different versions by processor architecture, which isn't the problem, as both your TV and a Nexus 5 have ARMv7l based processors.

There are also different versions by screen DPI (display density), which are not necessarily intercompatible. 1st problem source.

Also, a phone running Android Kitkat and an Android TV running Android TV Kitkat do not expose the same set of APIs to applications, especially at the native level. GApps are heavily native, as illustrated above. 2nd problem source.

Just because the Android TV does not provide many of the API dependencies for a standard Android app, your GApps, meant for a phone, crash.

**Possible solutions:**

Use an ARMv7l (ARM) GApps package specifically for Android TV. This is easier said than done in your case, because, I, even after a very thorough search, couldn't locate a single applicable Android TV-specific ARM Kitkat GApps package. I did find such packages for Lollipop and Marshmallow, though.

This leaves us with not many options. The only feasible thing would be to upgrade to Lollipop or above, which, again, is easier said than done. I do not know of any Lollipop or Marshmallow custom ROMs for your device.

Links to Android TV GApps packages (Not trusted to remain available for long as there is no official host for Android TV (Leanback launcher) specific GApps):

1. Lollipop is here.
2. Marshmallow is here.

If there are any more anyone can find, feel free to edit them in.

Sorry to disappoint you, but you are probably stuck with whatever market app the OEM provided you.

---
Tags: google-play-store, 4.4-kitkat, google-apps, android-tv
---


title: Listen to text messages

text:
# Question
Title: Listen to text messages
Can somebody help with how can I listen to text messages on my phone? One of my friend using this same feature now I want to know how it works. Is there any way I can listen to my texts?

# Answer
> 3 votes
This mentions the apps in @Izzy's linked question.

If you have Android, use the following apps:

* SMS Reader
* DriveSafe.ly®

Source: Listen to text messages

# Answer
> 2 votes
The text-to-speech feature mentioned might not be app-specific (refer to @Izzy's linked question for help on that). It probably is an Android system feature enabled.

The Android system feature mentioned is the accessibility setting of text-to-speech (or TTS for short). It is better referred to in-system as Talkback, and the app is automatically updated through Google Play as it is provided by Google. Your OEM may provide either Google TTS or Pico TTS, or both. Google TTS is of higher voice quality compared to Pico TTS.

As to enabling Talkback so that (every text you can touch on the screen, including) your SMSes can be read out by your phone (although that could be a security liability), I'll detail the standard method.

To turn on TalkBack, follow these steps:

1. Navigate to Settings → Accessibility.
2. Follow the steps for your version of Android. Learn how to check your Android version.

* Android 4.1 and above: Select TalkBack and slide the TalkBack switch to the on position.
    * Android 4.0: Select TalkBack and slide the TalkBack switch to the on position. Next, go back to the previous screen and turn on Explore by touch.
    * Android 3.2 and earlier: Select the Accessibility checkbox, then select the TalkBack checkbox.

The confirmation screen displays a list of permissions that allow TalkBack to provide useful spoken feedback. To confirm that you allow these actions and to begin using TalkBack, touch OK.

Now, in your messages app, tap on the message and it will be read out to you.

**Note:**

TalkBack will read out anything you tap on-screen, as long as it has text associated with it. Beware!

For further details on Talkback, check out Google's official product support page for Android Accessibility here.

**READ THIS LAST:**

This is **not without** side effects. **TalkBack will read out everything on your screen you touch if it can be acted on or has text in it, including notifications.** Also, it will read out stuff like "colon p" for :p emoji and will read out all the characters in a web address. It will even tell you what you have touched, and let you act with a double-tap or move on to the next element without triggering anything.

Quoting from this Android Central article @Izzy mentioned:

> TalkBack isn't something you'll want to use unless you need it. Frankly, it's darn near impossible to use when you can see what it is telling you you're seeing, and you can't help but tap and try to do things before it is ready.

Now, TalkBack can be specifically enabled for just the messaging app(s) through usage of an automation app like Tasker or Macrodroid.

With credits to @Izzy, these should help you out with configuring Tasker for this purpose, as you need it:

1. Read SMS while in Car Dock
2. Youtube Tasker Tutorial: read and respond to text messages
3. Find more here... ;)

*References:*

1. http://developer.android.com/design/patterns/accessibility.html
2. https://support.google.com/accessibility/android/answer/6006564?hl=en

---
Tags: sms, text-to-speech
---


# Question
Title: How to tell if phone's ROM is original or tampered?
I have bought a new phone which seems to be used. The manufacturer checked my IMEI and confirmed that the phone has been purchased/activated before.

The body looks new so I don't mind keeping it but I am worry about malicious software/apps. I know I can factory reset the phone, but is there any way to tell if the ROM is original?

FYI, the phone is a Moto G 2nd gen w/ 5.0.1 lollipop.

# Answer
I am assuming your device is NOT rooted by you

You can

* Factory reset your device (of course after taking back up of data )
* Root your device, flash a custom recovery and take a complete back up of your device with TWRP
* Generate MD5 check sum using TWRP or alternate apps like Hash Stamp MD5 & SHA1 generator
* Download stock lollipop (assuming that your device variant matches with that mentioned and the ROM version on your device matches)
* Generate and verify stock MD5 and SHA1 with TWRP nandroid back up
* If it matches, it is confirmed both are same and no tampering took place
* If not flash only kernel from TWRP, and generate MD5 and SHA1. Repeat with downloaded image and verify
* Repeat above with `/sys` and `/data`
* This should pinpoint the tampering that happened

It is a little tedious but IMO, worth the effort as it proves beyond doubt that either present ROM has not been tampered with or if tampered, in which portion (s) of the ROM it happened. This may not be a practical solution but is based on the premise that (near) fool proof validation is only possible when compared with original stock ROM. Other variations of this could be see if OTA updates work or comparing partition sizes
> 5 votes

# Answer
TheBro21's comment applies only if it's a KNOX enabled device. For most Android devices, when you boot into downloading mode it will read a few lines in "SYSTEM STATUS: custom" or "Custom Binary Download YES (and the number of time here, if it hasn't be reset with triangle away)". If in bootloader mode it says `Unlock state: true`, it might be that the ROM is custom, but then again it may have been done by a stock flash.

You can also go into the settings and about and look at the system status, ROM, kernel, or base-band and if it has a weird name, google it, it's probably a custom ROM or kernel, if not, it probably isn't or close enough you'd never notice.

If you really are concerned and want a fresh device on official firmware, google how to flash your device with Odin, than download the latest stock firmware.
> 5 votes

# Answer
> How to tell if phone's ROM is original or tampered?

This is how I would proceed. If the official stock ROM is available from trusted sources, you can download it and verify the integrity of the binaries on your phone by comparing it's MD5/SHA checksums with that of the one you downloaded.

But in your case, if the official ROM is available you could simply flash it and you can use your phone safely. But in case the ROM is not available(or even if it is available), the most safest option for you is to download the Official CyanogenMod ROM for your device and flash it. It will keep your phone free of "malicious software/apps."
> 1 votes

# Answer
To check if it is tampered - very hard. There are ways with calculating the checksum but I don't know will it work for sure. But, if you want to be 100% sure it was not tempered, I would suggest to manually download the official ROM and flash it. This does not void your warranty and AFAIK all phones can be manually flashed with official software.
> 0 votes

---
Tags: custom-roms, rom, stock-rom, vanilla-android
---


# Question
Title: Device uses non-USB charger. Can I still charge it through the USB port?
I got a Polaroid L9H tablet for Christmas, which includes a carrying case with built-in USB keyboard. I assume that it is for this reason that the tablet was designed with a barrel connector for its AC/DC adapter, rather than the micro-USB charging I'd come to associate with all modern portable electronics.

I tried to locate technical specifications for the tablet, but could only find the mini-pamphlet provided by the manufacturer, which says nothing either way about this:

If I plug this device into one of the many USB chargers I have distributed throughout my house, will it:

* not charge at all?
* charge, but not as rapidly as when using the provided adapter?
* maybe charge, but probably also damage the tablet?
* drain the battery even faster than being unplugged?
* ruin the USB port?
* explode?

I would really like to know if I can safely plug this tablet into my other chargers, or if I will be forced to bring the manufacturer's cord wherever I take the tablet.

# Answer
Being on safe side, my guess is **No**, you can't charge (no, it won't explode but just won't charge) since

1. User pamphlet shows only way of charging
2. The USB port may be **data only** not charging and data. Yes, those kind of ports do exist and you can read How USB Charging works

Having said that, I don't see any logic for having a port that does not charge. It has a 4500 mAh , which is typical and can be charged through USB Port. There is no reason to have a "data only" port, unless manufacturer has form factor/manufacturing cost constraints. It is actually "odd" to encounter such ports in present day devices

**Edit 1**

Looks like my guess was right!

**Edit 2**

Apologies for quoting the wrong product in support of my answer.Fact is that L9H is not covered in FAQ and as OP pointed out, he is unable to register product so product support seems to be way behind

Yet, Polaroid Support Site lists out user manuals for your device in 16GB and 32 GB version

OP had linked in his question user manual which corresponds to **32GB and dies not show USB charging, and shows only mains charging**

User manual of **L9H 16 GB shows clearly USB Port being used for charging from power pack in addition to mains charging**

**Conclusion**: OPs model is not supported for USB charging, for reasons mentioned earlier (data only USB Port and user manual **not** mentioning USB charging as an option)

OP can further reach out to the OEM to get additional clarification if needed, but that may not be warranted
> 1 votes

---
Tags: charging, tablet
---


# Question
Title: How do I keep my Android 4.0.3 phone awake when USB connected?
On my old Android 2.3 (Gingerbread) phone there was an option to keep my phone awake when the USB cable was connected. But on my Samsung Galaxy S II, (4.0.3) I can not find it. Does the option still exist?

**EDIT:** If I go to *settings* \> *Developer options*, then my options are:

```
USB debugging
Allow mock locations
Desktop backup password
strict mode enabled
pointer location
show touches
show screen updates
show CPU usage
Force GPU rendering
Window animation scale
Transition animation scale
don't keep activities
Background process limit
Show all ANR's

```

... and nothing else.

I just went to *software update* \> *check for updates*, and was told "no update available".

# Answer
I have checked on my two Ice Cream Sandwich Devices (Stock Xoom and Droid 3 running CM9 Beta). I have, under `Settings > Developer Options` a `Stay Awake` option. Which keeps your device awake when charging.

This will work if your device charges over USB (my Xoom does not, for instance).

However, should this option not be there, we can turn to apps for help!

StayAwake looks like it could be a solution to your problem.

WakeLocker for Galaxy S also looks to be a solution.
> 11 votes

# Answer
The Samsung Galaxy S II does not have this feature, and never has, because of its AMOLED screen.

They burn (like CRTs) if they have the same picture on the screen for too long. For some reason apps can still lock the screen on, but you can't do it from settings.

(My Samsung Galaxy S II has burn in from the notification bar.)

You can use StayAwake, just don't forget to turn it off.
> 6 votes

# Answer
On my Galaxy Nexus it can found under

Settings/Developer Options/Stay Awake.

YMMV.
> 5 votes

# Answer
If you are looking for this kind of solution for app development, then I have created an app for this purpose (Keep Awake for Debugging). It will keep your screen on **only** when you have ADB (over USB or wifi) debugging enabled.

**It supports only android 4.2 and above.**
> 0 votes

---
Tags: screen
---


# Question
Title: Rename camera images from exif data using tasker
I apologize if this is a duplicate, I can't find anything up-to-date that really helps answer my question.

I know this is nitpicky, but it's been a long battle and I am losing it.

For some time, I have been annoyed with the fact that you can't customize the android camera app's naming convention. My workaround, since the dawn of Dropbox camera upload, has been to use dropbox to upload and rename my photos (yyyy-mm-dd HH.nn.ss.jpg) and then use dropsync to overwrite the original file in my camera photo.

The problem I'm facing at the moment is that the camera in the hangouts app does not follow the same rules as the default camera app for my phone (Sony Xperia z3) so I end up with duplicates in my gallery of any image I happened to capture using hangouts instead of the camera. I could use the camera to take a picture and then share it using hangouts, but I decided instead to play around with Tasker and try to automate consolidating my images. (Another gripe I have is that Dropbox won't let me exclude folders, so I'd like to get rid of Camera Upload altogether and not have every screenshot I've ever taken backed up forever).

The directory for the default camera is \[internal storage\]/DCIM/100ANDRO and for hangouts it is \[internal storage\]/DCIM/Camera

I have a profile (below) triggered by the "file modified" event that will move the new file in the "Camera" folder into the "DCIM" folder. However, there is often a race condition, so Dropbox will upload the image before it is moved and again after. So my problem of duplicate images is not yet solved.

(click for larger version)

I'd like to forgo the Dropbox/Dropsync combo and instead use Tasker to rename a file as it is added to either of the camera folders. I'd like to use the same naming convention that Dropbox uses, but I can't figure out how Tasker can access the EXIF data from the image to rename the photo to something like "2014-12-30 10.23.56.jpg".

So, as a tl;dr: I am using Tasker to move images captured from different apps into a common folder. Can anyone help me add a step to rename the file I am moving based on the date and time the image was captured?

# Answer
Since you are using the "file modified" trigger (which should be instant at the moment the file is written,) you can use the current date and time instead of trying to extract the EXIF data from the images.

Tasker's getFormattedDate function will help with parsing the date/time and constructing the new file name. The only issue you might have is if the source folder contains more than one image. You can use a counter variable within your loop and append it to the end of the file name to mitigate that.
> 0 votes

# Answer
# Use Tasker's native Java calls

## Java code

Use ExifInterface.getAttribute to solve this problem.

```
exif = new ExifInterface( %filename )
%datetime = exif.getAttribute(exif.TAG_DATETIME)

```

## Implementation overview

1. Getting path of a .JPG from `%filename` Tasker variable
2. Construct a new `ExifInterface` class instance into `exif` Java variable
3. Get date & time by `exif.getAttribute` Java function, and store results into `%datetime` Tasker variable
4. Free `exif` Java variable
5. Check `%datetime` is set *(this is not set when .JPG is not contains EXIF info)*

## Step by step solution in Tasker

1. Add a new **Code \> Java Function** action

a. Set `ExifInterface` to **Class Or Object** *(or select by magnifying glass button)*

b. Write `new \\ {ExifInterface} (String)` to **Function** *(or select by magnifying glass button)*

c. Write `%filename` to **Param (String)**

d. Write `exif` to **Return {ExifInterface}**
2. Add a new **Code \> Java Function** action

a. Write `exif` to **Class Or Object** *(or select by coffee button)*

b. Write `getAttribute \\ {String} (String)` to **Function** *(or select by magnifying glass button)*

c. Write `exif.TAG_DATETIME` to **Param (String)**

d. Write `%datetime` to **Return {String}**
3. Add a new **Code \> Java Object** action

a. Left **Mode** on `Delete`

b. and write `exif` to **Name**
4. Check `%datetime` is set *\- I added a conditional Flash for show `%datetime`*

**Done!**
> 2 votes

---
Tags: camera, tasker, media-files
---


# Question
Title: How to remove google synced data from my phone?
I added my father's Google account in my android phone to help him in some work as his phone wasn't working. Now before I could stop the sync settings, it has synced some contacts in my phone with his data. Can I remove the data from my android phone which has been synced from his account?

# Answer
> 0 votes
If the contacts remain after you removed the account, you should be able to remove them clearing your contacts storage app cache.

---
Tags: sync, google
---


# Question
Title: “Message Not Sent” notifications for days
I replied to an SMS but my message couldn't be delivered. I presume because the originating number wasn't a mobile number but the fixed line on the sender.

Now I'm getting that notification in the notification bar every 10 minutes or so. How can I get rid of it ?

> "Message not sent - Touch to review the message and try again".

When I touch the notification, it opens the SMS app, with the threads list.

I deleted the message thread, tried to clear the cache, restarted the phone...

This was more than one week ago. I waited for the SMSC to give up trying to resend the message (after 3 days I believe). This is not a setting a network issue since I'm able to exchange SMS with other parties without problem.

It's the Android Messaging application version 4.4.4-37.

# Answer
> 0 votes
I installed another SMS application (Handcent next SMS not to name it) and could access and delete the pending message (in Delivery Report / Undelivered).

---
Tags: sms, notifications
---


# Question
Title: recent songs are showing up in files but not on music apps
Recently when I download new songs onto my droid RAZR maxx they appear in my files in the music folder along with all of my other songs, but don't show in the music app. I have checked all over the internet to figure out what's wrong but have seen nothing. I cleared cache, I checked to make sure there weren't any weird symbols in the title, I refreshed music app, I uninstalled and reinstalled music app, I tried a different music app. Again the file can be played through file manager using the music app but when I look through the music app itself its not there, I have tried looking to see of it might be under a different name as well. I use the Google play music app.

# Answer
> -1 votes
I have the exact same problem, but I can't figure out how to fix it. I've solved the problem before by clearing all my music data (files and everything), and just replacing them, but that is a painful prospect, and really should only be used as a final resort.

---
Tags: applications, music, music-player, google-play-music
---


# Question
Title: Droid Explorer app does not show hidden files
Droid Explorer does not show hidden files. Some "root explorer" apps show hidden files, e.g. on `/data/data` etc., but Droid Explorer does not. Of course, ES File Explorer also does not show these, it shows only files which can be seen by the phone's own file explorer, but some "root explorers" show these.

How I can adjust Droid Explorer to show hidden files?

# Answer
> 2 votes
I am the developer of this Droid Explorer which does show hidden files.

If you are talking about this Droid Explorer (by Asif Wani) then I can't help you, as I have nothing to do with that app. I would suggest you contact the developer of that app. His contact info is at the bottom of the link I posted.

I am going to assume you mean the App for Android Devices, not my application that runs on Windows...

In the settings of that application, there is the option:

Now, is your device rooted? Because you will not be able to see files in the `/data/apps/` or `/data/data/` if you don't have root. Root requires more than just a "root enabled" file explorer. And it will show "empty folders" if you do not have access to view the files. This is the case with all file explorers, including the one that I am the developer for.

---
Tags: file-system, droid-explorer
---


# Question
Title: Samsung Galaxy s6 Music Player Track Sort
Okay, I have tried google and here and cannot find the answer to this. When I transferred all of my music from my s4 to the s6, it worked correctly but all of the tracks are in reverse alphabetical order (Z-A). The only settings within the music player are "Sound Alive, Play Speed, Music Auto Off, and Smart Volume". I cannot find any way to alphabetize the music (A-Z).

I haven't had the phone long so I might just not know of some other new navigation to this feature but any help would be greatly appreciated.

Thanks!

# Answer
> 2 votes
Have been searching for a solution to this for a few days and have finally found one.

1. Open music
2. Top left drop down menu, go to tracks

If you only want to have it in alphabetical order in the app, stop here, if you want to fix the widget as well continue.

3. Go to more in the top right, edit
4. Top left, select all
5. Press more again, add to playlist
6. Create a playlist
7. Play a song in the playlist and go back to the home screen widget

This should fix the order :D

---
Tags: settings, music-player, samsung-galaxy-s-6
---


# Question
Title: Difference between killing an app by clearing it from Recent Apps menu and “Force Stop”
What is the difference between these two methods when killing apps in Android?

1. Clearing an app from the Recent Apps menu by swiping it to the right or left.
2. Settings → App → Running → Force Stop.

Do they send the same signal (`KILL` or `TERM`) to the running process? Do they kill the services launched by the app?

# Answer
Although some people may think that clearing an app from Recent Apps menu will **fully** close it, they are unfortunately mistaken. There is a difference between clearing an app from Recent Apps menu and clicking Force Stop on it.

Clearing an app from Recent Apps menu may not fully close the app specifically the apps that use services such as Music Player, Whatsapp, Facebook, etc. When you clear Music Player for example, the music won't stop because the app uses a service running in the background, **BUT** if you force stop it from mobile settings, the music will stop hence the service is terminated.

So if you want to clear some memory to increase your RAM, you should force stop the apps that use services.

In conclusion, clearing an app from Recent Apps menu will **only** kill the activity lifecycle of the app but not the services that are run by that app.
> 12 votes

---
Tags: applications, task-management, services, recents-screen, force-stop
---


# Question
Title: Multiple keyboards for multiple applications
Is it possible to have different keyboard for different apps, say I want to have Emoji Keyboard for facebook and twitter but Google Indic keyboard for my whatsapp is this possible.

Mobile : HTC Desire 820

OS : Android 5.1

# Answer
> 1 votes
You can use with the Secure Settings plugin:

* **Condition:** *Application* (chose the app)
* **Task:** *Plugins › Secure Settings › System+ › Input Method* (chose the keyboard)

If you just want to use 2 different keyboards, create such a profile for the keyboard you use with "fewer apps". In the condition, chose all the apps that should use that keyboard. You might need to add an "exit task" reverting back to your "default input method".

For more than 2 keyboards, create one profile per "special keyboard" the same way.

# Answer
> 1 votes
DEFAULT\_INPUT\_METHOD is a secure setting (it manages the input method (IME), keyboard in short) and any modification in its value requires the permission WRITE\_SECURE\_SETTINGS. However, that permission is not for use by third-party applications and no currently installed system app at the moment can do what you want.

It makes sense why third-party apps shouldn't be allowed to switch IME because otherwise, such permission would open plethora of opportunities for keylogger malware. Given the constraints, the only thing to do is root the device.

Once you root the device, you can follow Izzy's solution. I recommend Automate app however, since it doesn't need a third party plugin to switch IME.

The flowchart to achieve the objective would look like

<sub>(Click image to enlarge)</sub>

The app would introduce you with its basic usage so making that flowchart is easy. Just for a little guidance, know that the second block (When foreground app) can be found under **Apps** and third block (Set input method) can be found under **Settings**.

After making the flowchart, make sure to install all the permissions it needs

---
Tags: applications, keyboard
---


title: Android OS background data usage

text:
# Question
Title: Android OS background data usage
Recently set up 2 Android smart phones for my sons earlier this month (around Dec 12th, 2015). On one of the phones, Android OS is showing a HUGE spike in background data usage. From Dec 12th until Dec 25th, Android OS used maybe 233MB of data. However from December 25th until 3 days later (December 28th - Yesterday) it suddenly used 4.30 GB of data!!! WTH?!?!

The family mobile data plan for each line is 6GB through T-Mobile. He was no where near the limit prior to Christmas. Suddenly POOF... over 4GB of mobile data used by the OS. WHY?? What happened? Did his phone get hacked? I have Kaspersky Internet Security installed on the phone since it was set up.. no alarms showing an issue. So what changed in the past 3 days??

The few apps installed barely account for any data usage. Yet Android OS is hogging it all. Is something lurking under that moniker? Not happy one bit. See attached images for reference.

# Answer
The same thing happened to me. While setting up Android there's an option for backing up all data to Google. It might be enabled on one of your sons phone. Goto settings -\>backup & restore Make sure "back up device data" is not checked. I did the same and it worked.
> 1 votes

---
Tags: mobile-data, operating-system, background-data
---


# Question
Title: How to use internet from another basic mobile through bluetooth?
How to connect an android phone with the basic phone having unlimited data packs . How to use the data on their phone in android using bluetooth?

# Answer
If that basic mobile has the future of bluetooth hotspot, you can make use of that. Otherwise it can't be done as per your requirements.
> 1 votes

# Answer
If it does not have to be Bluetooth, but WiFi would make you happy as well: For quite a while now, Android offers a nice feature called *Hotspot*. The one with the unlimited mobile data starts that on his device, and everybody with WiFi capabilities can use it like any other WiFi hotspot – if they are told the connection data (WiFi password and hotspot name).
> 0 votes

# Answer
Try using bluetooth PAN (Personal Area Network). Some bluethooth adapters with third party drivers have excellent features to deploy and maintain a PAN. Internet sharing is possible over Bluetooth. You will need another PC to establish such a network. Both the basic and android phone will connect over bluetooth.
> 0 votes

# Answer
Use Easy Tether Pro. It enables an Android to share data connection through bluetooth with another Android.
> 0 votes

---
Tags: data-connection, bluetooth-tethering
---


# Question
Title: Default rotation direction for landscape apps
My device is Samsung Galaxy S5 with Android lollipop.

Some games run on a landscape mode and the top-side becomes left-hand side and bottom becomes right-hand side. Can I change this so that top goes right and bottom goes left? I don't want to rotate my phone every single time I run these apps.

# Answer
You can easily achieve this by automation. I prefer MacroDroid Being easy to learn and free

To understand how MacroDroid works and the settings required for your Android version, see my answer

Your macro would look like this and you can tweak as you like

**Trigger**: *Application Launched / Closed* → Select your application

**Action**: *Force Screen Rotation**Force Landscape* (or) *Force Landscape 180* (Screen shot below shows possible options)

**Constraints**: None
> 0 votes

---
Tags: auto-rotation
---


# Question
Title: Google Keep stopped sending push notifications on Android
After about 2 or 3 months of using Google Keep I've noticed it does not notify me of due reminders any more (neither in Android nor in Chrome). The only thing that I may think of that could have caused this -- I've disabled notifications "from this page" in Chrome. But how could that have affected Android push?...

Does anyone know how to turn it back on? On Android I mean.

UPD: I don't use any integrations (like Google Now) for these reminders -- plain Google Keep functionality.

UPD2: I double-checked. Set up a reminder to fire in 5 minutes, than set down and watched what happens. Turns out, it DOES play notification sound, and does show a reminder, in notifications bar, but only for a second, and then it disappears!

# Answer
I don't know whether this is a permanent and complete solution, and I don't know which one of the steps below are important or not, but -- I did the following steps, and now notifications seem to be working on my Android:

1. I went through and deleted all the notes that had reminders on them.
2. Opened Chrome settings -\> advanced settings -\> content settings -\> notification settings -\> manage exceptions. Deleted exception for keep.google.com:443 from the list.
3. I had Keep opened as a tab in Chrome permanently, on a permanently running PC (windows). I closed that tab. If I need Keep on PC -- I'll need to open the page anew, do the edits, and close it again. (The idea was that maybe the page being open did something to suppress notification somehow, or mark them "viewed" or something.)
4. Clear Keep application cache on Android. (Did *not* reinstall anything, did *not* delete all data -- just cache.)
5. Reboot Android.

It seems to be working for a few days now, haven't missed any notifications so far.
> 2 votes

---
Tags: google-keep
---


title: Modification to WhatsApp apk

text:
# Question
Title: Modification to WhatsApp apk
So, basically I wanted to modify the looks of my WhatsApp (WhatsApp 2.12.317) application in my Android. This is what I have done:

1.Decompiled the APK using apktool 2.0.2

2.Did the necessary editings.(mostly in strings.xml and colors.xml and a few PNGs)

3.Recompiled the APK

4.Signed it using APK signer

Problem arises when I install and run my modded whatsapp. The SMS verification step fails. When I go for the "Call Me" option it says "Client has been modified ....". So what do I do? Did i go wrong somewhere? Plz help.

# Answer
The resigning signs the apk with a new certificate, but not the original from WhatsApp. If that was possible nobody would create commercial software for Android as it would be too easy to hack.

Google play services have a number of measurements in place to discover modified APKs, and the error you see simply means WhatsApp is using them.
> 0 votes

---
Tags: whatsapp-messenger, customization
---


title: Can I cancel an Android update?

text:
# Question
Title: Can I cancel an Android update?
My Motorola Ultra is running 4.4.4 and I've been holding off on upgrading to the next one since I don't want to lose any possibility of getting root. However, this morning when the notification popped up, I accidentally selected "Don't remind me, just update at this time", the time being noon tomorrow. When it tries to start the update, is there anyway I can stop it?

# Answer
I've already found this hopeful answer:

> I just spoke to Google directly. The Nexus 5 under settings, apps has something called Google Play services. Not store. If you uncheck the notification box in Google Play services and restart the phone the notification for the Android system updates will stop in the notification bar. Worked like a charm!
>
> From: How do I skip an Android system update and stop its notifications?

Moreover, if your devise had been rooted, you should be able to install `Disable Services` and find the `SystemUpdateService` under `Google Services` Framework. Disable it.

As you have device with Android Kitkat please read also that article: https://www.droidmen.com/how-to-stop-downloading-of-android-os-update-in-android-phone/

It should work.
> 3 votes

# Answer
It looks like there's no option to disable a in-progress update. Android upgrade is done by system ui. It will keep trying to download the incremental upgrade packages. After the download is finished, it will ask you to install the upgrade. And reboot upon your confirmation. You can decide not to install upgrade when it's prompting confirmation.
> 1 votes

---
Tags: updates, ota-update
---


# Question
Title: Missed calls log not showing in Lenovo A7000
My mobile is Lenovo A7000 with Android lolipop Recently I the missed call logs not showing, sometimes for one or the other number it shows, it might be stored contact or new but the log is not happening, I also cleared the logs and cleared cache memory of call logs, but not fixed. I tried updating firmware too but no use. Please suggest me, thanks.

# Answer
> -1 votes
Today I was checking my phone for call log but didn't find anything, but after while I open securezone from statusbar on home screen all call logs are visible. So turn on secure zone.

---
Tags: 5.0-lollipop, call-history, lenovo, missed-calls
---


# Question
Title: Viper4Android and OxygenOS 2.1.1 OnePlus 2
Does V4A finally work with OxygenOS that comes preinstalled with OnePlus 2? I managed to get it to install but the sound is very distorted, also whenever I try to open V4A it crashes Google Play Framework and other apps. I managed to uninstall the driver by rebooting the phone and quickly entering V4A before any other apps load. If you can't do that the apps will start to crash leading to the phone being unusable until another reboot. Any ideas ?

# Answer
It is not compatible with OxygenOS but you can give a try to Custom ROMs like CM13
> 0 votes

---
Tags: audio, oneplus-two
---