text:
Could a 64-bit hardware device run a 32-bit Android version?
This question comes from How can I tell if my installed Android version, not CPU, is a 64 bit or 32 bit one?
On desktop computers it is possible to install a 32-bit operating system on a 64-bit hardware device i.e. you can install Ubuntu Linux 32-bit on an AMD FX(tm)-9370 Eight-Core Processor (64-bit).
Does the same case happens for Android? Is there a 32-bit and a 64-bit version for the same 64-bit device?
Some example links (like ROM downloads in 32 and 64 bits for the same Android device) would be welcome.

It's not clearly mentioned but I assume you are talking about ARM architecture. “32-bit Android OS” means a 32-bit kernel and the collection of ELF binaries and libraries which are compiled to run on 32-bit processor. This middleware stack particularly includes app_process binary which runs with name zygote and hosts the complete application framework of Android. It forks Java Virtual Machines (for every app) in which Dalvik EXecutable (.dex) code runs which is neither 32-bit nor 64-bit. But the JVMs are native processes; either 32 or 64-bit depending on the JNI libraries the app contains.
We can run 32-bit OS on 64-bit device if 64-bit:

Processor supports running 32-bit code which is usually the case because backward compatibility is desired, but not always.
Kernel supports running 32-bit code because unlike bare-metal hypervisors we - the processes on Android - don't deal directly with hardware.

PROCESSOR'S BITNESS
Every 64-bit processor's support for 32-bit execution isn't universal. For instance Samsumg Exynos 9 Series 982x SoCs contain Cortex-A55 and A75 which (are based on ARMv8.x and they) have support for aarch64 and aarch32. On the other hand Qualcomm's Centriq 2400 SoCs and Cavium's Thunder X2 SoCs also include ARMv8.x processors but without aarch32 support.
In order to find device architecture, we can read /proc/cpuinfo which exposes information from Main ID register of the processor.
~$ cat /proc/cpuinfo
...
CPU implementer : 0x41
CPU architecture: 8
...
CPU part        : 0xd03
...
Hardware        : Qualcomm Technologies, Inc MSM8953

But there in no direct information like lm flag to confirm 32/64-bit support. So we need to get technical details of hardware. As per the requirements from Google, CPU architecture: 8 indicates that it's a ARMv8 device. Also see this commit. And here is the hex to human readable decoding map which lscpu command uses.
~$ lscpu | grep -E 'Vendor |Model '
Vendor ID:           ARM
Model name:          Cortex-A53

Other possible ways to get SoC information:
~$ cat /sys/firmware/devicetree/base/model
Qualcomm Technologies, Inc. MSM8953 + PMI8950 QRD SKU3

~$ cat /sys/devices/soc0/{vendor,family,machine}
Qualcomm
Snapdragon
MSM8953

It's evident from technical specifications of Qualcomm Snapdragon 625 (MSM 8953) and Cortex-53 that it's based on ARMv8 architecture, which can process both instruction sets: aarch64 and aarch32.
KERNEL'S BITNESS
When arm64 support was added to Linux kernel, 32-bit compatibility mode was also included. If kernel is built with IKCONFIG_PROC, confirm by:
~# zcat /proc/config.gz | grep -E 'CONFIG_ARM64=|CONFIG_COMPAT=|BINFMT'
CONFIG_ARM64=y
CONFIG_COMPAT=y
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_BINFMT_SCRIPT=y

So the 64-bit ELF files are executed natively with binfmt_elf while 32-bit ELF files are executed with compat_binfmt_elf. See details in this answer.
Usually uname -m is used to find the architecture of device supported by kernel. It shows the persoanlity (execution domain) of the process which defaults to kernel's primary architecture (PER_LINUX ). But Linux kernel supports changing persoanlity, so this approach can be confusing:
~$ uname -m
aarch64
~$ setarch linux32 uname -m
armv8l

In latter command uname is running under 32-bit compatible personality. The same would happen if you use some app - like this - which runs with LINUX32 personality, no matter even if kernel and uname binaries are 64-bit. For details see this and this. lscpu also confirms CPU operation modes using same phenomenon.
USERCODE BITNESS
Now coming to the userspace, init is the very first process run by kernel. Lets check its bitness. If the 5th byte is 1 it's 32-bit ELF file, if it's 2 the binary is 64-bit:
~# hexdump -n5 /proc/1/exe
0000000 457f 464c 0002

Or use file command:
~# file /proc/1/exe
/proc/1/exe: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked ...

Similarly check bitness of other vital OS binaries/libraries:
~$ file /system/lib*/libc.so
/system/lib/libc.so:   ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked ...
/system/lib64/libc.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked ...

~$ file /system/bin/linker*
/system/bin/linker:        ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked ...
/system/bin/linker64:      ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked ...

OS maintains 64-bit as well as 32-bit libraries and dynamic linker because apps may contain both types of binary code (though the major part must be Java/Dalvik bytecode). For instance the dnsmasq program which serves as DHCP server on hotspot is a 64 bit binary while Google Play Services uses a 32-bit library:
~# readelf -a /system/bin/dnsmasq
  Class:                             ELF64
  Type:                              DYN (Shared object file)
  Machine:                           AArch64
      [Requesting program interpreter: /system/bin/linker64]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so]

~# readelf -a /data/data/com.google.android.gms/app_vision/ocr/libs/armeabi-v7a/libocr.so
  Class:                             ELF32
  Type:                              DYN (Shared object file)
  Machine:                           ARM
      [Requesting program interpreter: /system/bin/linker]
 0x00000001 (NEEDED)                     Shared library: [libc.so]

Similarly it's not uncommon to have 32-bit binary blobs from OEMs / SoC vendors on 64-bit ROMs. Even some basic components of AOSP aren't 64-bit supported. Take example of audioserver.
To see all processes running in 32-bit mode:
~# for p in $(ps -p 2 --ppid 2 --deselect -o pid=); do grep -qE '^.{8}[^-]' /proc/$p/maps || echo $p; done | xargs ps f -o pid,cmd -p
  PID CMD
 3359 /system/bin/mediaserver
 3358 /system/bin/cameraserver
 3357 /system/bin/audioserver
 3356 zygote
 5081  \_ webview_zygote
20824  |   \_ com.android.webview:sandboxed_process0
18609  \_ it.colucciweb.vpnclient
 3354 /vendor/bin/hw/android.hardware.audio@2.0-service
 2665 /vendor/bin/hw/android.hardware.camera.provider@2.4-service
 2335 /vendor/bin/mm-qcamera-daemon
 2278 /vendor/bin/wifidisplayhalservice
 2277 media.codec hw/android.hardware.media.omx@1.0-service
 2244 /system/bin/drmserver
  777 /vendor/bin/hw/android.hardware.drm@1.1-service.widevine
  773 /vendor/bin/hw/android.hardware.cas@1.0-service

Out of these only one is a VPN app, rest are OS processes.
CONCLUSION
So it's clear that even if core OS is 64-bit, there are possibly large number of processes running as 32-bit, though each process and its linked libraries have to be be homogeneous; either 32 or 64-bit. And there's no constraint if the OS doesn't include 64-bit code at all, but you won't find many instances because OEMs ship 64-bit devices with 64-bit binary code. It's more about business than performance; that's what a user pays for. However exceptions do exist where business isn't that much involved: Raspberry Pi 3 has 64-bit CPU, but 32-bit Raspbian OS. Android phones examples from past include Galaxy E5, LG G Stylo, Moto G5 Plus, Lenovo A6000 Plus and MT6735 devices. But now Android is moving towards 64-bit and some devices may drop 32-bit support gradually.

Does the same case happens for Android? Is there a 32-bit and a 64-bit version for the same 64-bit device?

Yes, take example of Moto G4 Plus.

RELATED: Android apps for “armeabi-v7a” and “x86” architecture: SoC vs. Processor vs. ABI

Answer is yes. You can run 32bit android on 64 bit chipsets without much hassles. But it shouldn't really matter what version you're on because as of now 90% of all apps that are available are 32bit and won't make use of the 64 bit hardware.

Some example links would be welcome.

Your claim that 90% of apps are 32-bit is nonsense, given that most apps are written in Java and thus independent of what ISA and OS you run them on.

Yes you can. Infact, Some early devices did exactly that. Its similar to what we have in desktop computing side. Moto E2 is one example of 64-bit processor running  32-bit OS.

Some example links would be welcome.


text:
Bootlooping LG Volt will not connect w/ ADB
Rooted LG Volt is bootlooping after build.prop and cpu setting changes, and I am unable to connect via ADB to restore build.prop or reflash system
How can I get the phone to connect via ADB?
Attempted to do factory reset from stock recovery, which was successful but there was no change in bootloop When phone is connected to PC during bootloop, it connects as Charge Only, and ADB doesnt recognize the device. When phone is in recovery and "Apply update from ADB" is selected, the phone connects to the computer, but Windows throws error "configuration descriptor request failed", and device is not recognized by ADB. Uninstalled all phone drivers from computer using USBDeview and Device Manager.
Have Android Studio, Android SDK, and ADB installed on Windows 8.1 computer. There are no issues with the ports or cable, tested several different ones.
I do not have CWM recovery, was previously using rooted stock OS

I solved this by booting into Download Mode (with the phone off, hold Vol+ while plugging in USB to computer).
There were some files that needed to be downloaded, including the LG Flash Tool, which was used to flash the stock ROM to the phone.
After flashing, the phone was in its original pre-activated state but at least it functioned!

Unbrick method for LG Volt (Boost/Virgin)
GSM-Forum: LG Flash Tool
Android Forums: Fix Factory Reset Status 2 errors - for an after-flash fix to boot

http://www.vmroms.com/index.php?topic=874.0   for unbrick method

http://forum.gsmhosting.com/vbb/f177/lg-flash-tool-free-no-need-b2b-user-pass-1628819/   for LG flash tool

http://androidforums.com/threads/fix-factory-reset-status-2.858366/   for an after-flash fix to boot

good to hear you managed to solve your problem! You can accept your own answer so other people can see that this is the working solution! :)

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Transfer previous details of whatsapp to new number
My previous sim is expired. And I have already registered to new number. Is there any way to transfer previous details (groups and chat history) to my new number.I have no backup.

There are two situations which decides the outcome to this.
1> Even though your sim card has expired, you still have whatsapp signed in on the phone with the expired number and is still accessible.
2> You have uninstalled whatsapp after sim card deactivation.
In case 1, just go to settings and select change number and change over to the new number. All your existing groups and chats will migrate sucessfully in this case.
If it is case 2, there's nothing much that you can do.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Restore app data backup without access to usb debugging
Google backup didn't work, and I tried Helium, but you have to connect to usb debugging in order to "enable" it. I have access to usb debugging on the phone i'm backing up, so I have the data, but my new phone only came with a usb-c to usb-c cable, and I can't get a usb-c to usb-a cable for a few more days, but I need my phone to be set up much sooner than that.
Is there any way I can restore that app data in my current situation?

Are you trying to move data from one phone to another? Or are you trying to turn on USB Debugging? Your question isn't clear enough.

Move data. I have .ab files I've moved from one phone to another, and I need to restore those files on the new phone. I need to know if that's possible without using adb/Helium because I don't have a USB cable.

Since *.ab is an Android adb backup file you will have to do it via adb, but since you don't have the correct cord you will have to do it wirelessly.
Instructions to setup wireless adb:

Download WiFi ADB - Debug Over Air and install
Turn on your wifi and connect your phone and your computer to the same network.
The app will run you through the rest of the setup process.
Once setup try "adb devices" , if this works then you are connected and you'll be able to restore the way you normaly do via adb (but wirelessly).

Hopes this helps you overcome your problem of no cord.

In the description of that app, I read "This app works on ROOTED devices only.". I don't see where OP mentioned that the device is rooted. Please enlighten me.

Yeah, my phone isn't rooted :/ No problem though, Amazon finally shipped my cable and it's coming in today so it doesn't matter anymore.

@Firelord Forgetting to mention about ROOT was a stuff up on my part
And samwill Good  Luck with your phone.


text:
ADB push failed to copy, function not implemented
I cross compiled a library for my Android phone, and I keep getting the message when I try to push
failed to copy '/home/sanctus/Desktop/native-android-ports/libc-arm/crypt/libcrypt.so.1' to '/storage/sdcard0/ssh/crypt/libcrypt.so.1': Function not implemented

I am trying to push on to a genymotion emulator instance.

What query did you use to push the file? Post it as well.

'adb shell /home/sanctus/open-ssh/ /storage/sdcard0/'

What kind of command is that? You pass 2 directory hanes to adb shell, where it won't find the first one (as it's not even on your device). Could it be you're confusing some things here?


text:
Why hasn't my Nexus 6 received Android M?
I've tried researching and I cannot find any explanation for this. About 2 weeks after Android 6 was released I did get a security update for lollipop but nothing since then. Everyone I know with a Nexus 5 has it, but I don't know anyone with a Nexus 6 besides myself. Why is my Nexus 6 not getting updated?
My phone is unlocked, but I do use T-Mobile.
Thanks

My Nexus 10 han't got an update either. Should we sue Google?

Google has actually released an Android Marshmallow system image for the Nexus 6. You can get it at this page. You will also find instructions on how to flash a system image on the same page. If you're not patient enough to wait for the OTA update, you can try at your own risk.

It doesn't roll out all at once, it's a staggered roll out. Relax you'll get it soon. That's how they do it. Would you complain if they pushed out the update quickly and your device bricks because of a potential problem. This is why they do small batches. Easier to replace 100 devices than replace thousends of devices.

Google uses a staged rollout method so if a bug goes un-noticed and appears in real world use, they can stop the rollout with minimal damage. Rest assured, you will eventually receive the update. Update is rolled out in batches everyday.
http://www.androidpolice.com/2013/11/20/google-engineer-dan-morrill-sheds-some-light-on-the-nexus-ota-process-urges-you-to-never-clear-google-service-framework-data/
Direct link: https://www.reddit.com/r/Android/comments/1r1dz4/44_kitkat_has_started_rolling_out_on_the_n4/cdiwt6f

As pointed in the previous answer, you can wait for the update rollout or visit here and install it manually. You'd have to do a lot of reading though before you go ahead playing around with the device. But, I'm very sure it'll be fun.
All the best.!!


text:
Remove Google Account from a lost phone
Is there any way to remove a device from google play without having the phone ? I've lost my phone a while ago and i can't log in into Google Play from a new phone without removing it from the lost phone. Please help.

Possible duplicate of Remove my Google account on other people's device

I've searched a lot but i forgot to mention that i don't have a "remove device" button or anything like this, so that's the problem. But thanks anyway

Change your password, if somebody tries to use the account it will ask you to enter the new password. You can also try: https://www.google.com/android/devicemanager
That's for security. As for not being able to login on the new phone, that sounds very fishy, so I would contact Google, or the manufacturer of your new phone.


text:
High CPU caused by sp1 process
I have a Samsung Galaxy Alpha and I have a problem. Sometimes a process named sp1 starts to run 100% on a single thread, causing a constant 12% of CPU (I have 8 cores).
I don't know how I can understand what applicaion is related to this process.
This problem is very annoying because if you don't see it in time all the battery will be drawn soon.
Any advice?

Have you already opened a terminal to inspect this process' dir in /proc? Like cwd, environ, fd?

@ott-- good advice, I'll give a try


text:
Unable to start ADB with root access
My android is 4.0.3 and is on an Acer Iconia Tablet A100.  I have rooted it already using this process, and the rooting persists between reboots.  I can confirm root access with the Root Checker app.
I have installed the Android SDK and it's required Java SDK.
When I run Droid Explorer I get this message:

What do I do?

Disclaimer: I am the lead developer of Droid Explorer
The dialog is telling you exactly what the problem it. It isn't saying you don't have root, it is saying that it cannot start ADB with root.
The more information link takes you here: Droid Explorer permission denied when accessing root-only folders.
Or you can go right to get ADBD Insecure. The app will exit because you need to install that app first, then start Droid Explorer.
Ultimately, you will need to install ADBD Insecure, or a custom kernel that allows ADB to run in root mode, or you will have limited access to some folders on the device.

But I do have root.  The applications on the android all request and use root permissions.  Root checker confirms root.  Droid Explorer is the only thing that thinks there is no root.  On the Android, I can view any folder on the entire system with the file browsers on the device.

Yes, I get that you have root. but you cannot start ADB in ROOT MODE unless it supports it, either with a custom kernel, or using ADBD Insecure. Running an app on the device that requests root is different than how Droid Explorer uses root. It requests it through ADB, and if adb does not run in root mode, it will not have access to folders that require root.

Okay, I'm starting to get it now, Mr. Conrad.  Thank you for explaining.

Well, I'm not sure how it worked...  I clicked on "Continue and show more information" and it opened the thread on my desktop browser (like you said it would) and then it showed my Android device and I opened it just fine and can explore just like you'd expect.

it will continue to function, for the most part. You may have some issues accessing folders like /system/apps/ or opening a shell with root access (you should still be able to say "su" in the shell manually though)

This is a neat thing and I'm glad to try it out.  So, I notice the processes window doesn't work, but CPU does; Network and Memory (in Process Explore) are empty.  I am able to browse /system/app just fine - it list all the contents.  I wanted DroidExplorer in the first place just to try it's Full Backup Feature, hoping it would back up the entire device to my computer's hdd; I tried it, but I'm not sure what it did, exactly.  Oh neat!  The screen monitor works!

For backup, droid explorer just uses the device backup and makes it a bit easier to use. The backups are saved in C:\Users<username>\Android Backups

Ah; it's only 627 bytes even though I checked all the boxes...  It should be several GBs.  Anyway, the question is answered here and I'm getting us out of scope.  Thanks for you help, Mr. Conrad.


text:
Wi-Fi turned off but battery usage shows shows huge drain from it
I have a problem with my Galaxy S3 4G. It's currently all stock and running Android 4.4.4.
It seems the Wi-Fi will not turn off i.e. I can turn it "off" in the settings or notification bar, and this will stop Wi-Fi from being connected and device uses my mobile data instead, however in the battery menu the Wi-Fi is still being shown as on, even when it's turned off.
As you can see in the attached image, it's draining my battery really fast, and will only turn off when the device is in flight mode. I've checked and cannot see any rogue apps causing this, but after searching online and checking all option menus I seem unable to fix this problem.
Is there any way to stop this, save for a factory reset? Is this a KitKat wide problem, or just on my phone?
(Click image to enlarge)

Possible duplicate of Why is my WIFI always on?

Sorry, but the screenshot rather suggests your mobile network as the likely cause. See how it drains whenever the "network signal" shows yellow or red (bad or no signal)? And besides, WiFi was off multiple times (whenever the "bar" is black – though it rather looks like you've been in airplane mode then, as cell signal is also black then).

This is a common misconception with Android. When you turn off Wi-Fi, Wi-Fi does not actually turn off. There is an advanced settings menu where you will find an option that either says Wi-Fi scanning or Wi-Fi always on. Google uses Wi-Fi points to determine the device's location without activating the GPS.
Turn Wi-Fi scanning off to fix this. You might want to turn off Wi-Fi while asleep while your at it. It's in the same menu.
(Click image to enlarge)

Edit: In Android 6.0 (Marshmallow), this option has been moved. It is now located in Location > (Overflow menu) > Scanning (Thanks, nanny)

The location of this setting changed in Marshmallow (6.0). It's now under Settings > Location > (Overflow menu) > Scanning

First reboot your phone! If this doesn't work you should try a factory reset. I would recommend some apps to disable your wifi but they are already disabled! So i believe it's a software bug!

This is a normal behavior of Android.


text:
How to read shell commands documentation in android
I have busybox installed in phone. Also, my device is rooted. I tried to use man command:
$ man ls

However, it returns no manual entry for 'ls'. I tried to navigate to /bin/busybox but there is no directory named /bin. What is it that I am doing wrong?

Have you tried busybox man ls ?

Yes same result no entry for ls found

How about busybox ls --help ? Also check if busybox installed to system/xbin

Are you certain there exists a manpage for ls in your system? Busybox keeps space in mind, so it is obvious it wouldn't be coming with man pages of most of the utilities. Also, unlike a traditional Linux, the equivalent of /bin is /system/bin but busybox keeps the utilities and itself in /system/xbin.


text:
Google Account Sync Error
I have been looking through all kinds of forums.  But have not yet found a fix. am trying everything but dont want to do a factory reset. I have a samsung galaxy core prime. its about 4 months old and everything has been updated regularly.  I am not sure of the cause of this it it may have been when i accidnetally unchecked the sync button in the menu with wifi, airplane mode etc.  i re-clicked the box and thought nothing of it.otherwise maybe it was when i changed the password of a gmail account/ I cant think of anything else i did.  i dont mess with the settings much.
Basically a few days ago I noticed I wasnt getting gmail notifications.  So i tried to open the gmail app.   Nothing loaded, just a white screen.  At first other gmail accounts I use wouldload but one wouldnt.  Eventually nothing at all would load.  This coincided with play stre not opening, I just get a white screen just like with gmail.  There is the spinning wheel showing that its trying to open but nothing happens.  Also I can not load any of my google sheets docs either.
I ahve tried turing data on and off, airplane mode, clearing cache for all of the google apps.  I eventually tried to delete my google account.  then i added the account again but it wont sync.  it just says syncing and it never finishes the job.
I tried rolling back my google play store to the factory version, did not solve the problem.
As of right now none of these apps will load for any of my google accounts.  even the ones that are listed as synced. some times there is an error message that says experienceing sync errors and check back shortly.
when i currently click gmail its as if i am using it for the first time.  i try to set up email and add an address but the 'next' button does nothing when i click it.  so its as if i have no gmail accounts added but i cant add any.
I would like to delete the gmail app and start again but play store isnt working so not sure if i can. also the fact that all google apps are affected leads me to believe its not a gmail issue but a google account issue.  I guess i could delete all google accounts and try to start fresh? Any other ideas?
I am a bit afraid of losing data or some how screwing up this worse if i delete all my google accounts.  before when i tried to delete the google account that mhy phone is mainly synced with for all the apps it told me i cant because all theother apps are using that account. i cancelled the deletion after reading this warning but it seems to have been deleted anyway.  i re-added the account and it said it was successfull but it wont sync.
does anyone know anything that i can try. thanks , i appreciate any help you can provide.

i just managed to get it to work by force shut down of gmail play store and play services. and deleted all app data and cleared the caches for all of these apps and restarted the phone and then i tried to oppen google play and seuddlenlly it asked me to sign in with a new google accoun and suddenly everything was fixed.  been banging my head against the wall all day wwith this.


text:
How to prevent tablet working when laid flat?
My son has the bad habit of putting his tablet flat on the floor (even though it has a hard-shell case with built-in stand) and leaning over it, which is an ergonomic nightmare.
No matter how much I explain and demonstrate the correct operating position (he's four), when left to his own devices (device) during "Tablet Time", he inevitably moves it back onto the floor, often unconsciously. So...
How can I use the tablet's sensors to detect that it has been laid flat and go to sleep / switch off / post a notice / message me / something?
;o) Cor

The issue would be that the device would not be able to tell the floor from a table.

Have you looked into a Tasker solution?

With Tasker is very simple (note that it is a paid app):

Create a profile (in the 'profile' tab tap on the plus sign)
Choose 'State' -> 'Sensor' -> 'Orientation' and from the drop down menu 'Face Up'
Go back to profiles tab and you will be prompted to add a task to your profile: tap on the plus sign in the little pop up
Now it depends from what you want the tablet to do when lying flat, you can choose all kind of possible actions: send SMS (if the tablet has a sim card), lock the screen (so your son will need to come for you to unlock it), and so on. Pick the one you want between the multiple choices and add it to your task
Enable Tasker (long tapping on the Tasker icon in the top left corner)

Note that, as mentioned in the comments, Tasker won't be able to understand if the tablet is lying on the floor or on a table. You may want to add a condition that activates the profile only when it's 'Tablet time' (which is, during the time of the day when you let your son play with it).


text:
My moto x wont turn on or charge
So my Motorola X will not turn on or charge. Some other people have told me to connect it to a 5 volts 2.1 amps charger but that wont work for me. If any of you know a way that can work for me I would love it.

What caused it to not turn on or charge?

Well that's what I don't know but I guess it would be helpful to know that it was on and was at around 40-50 % charge then just shut down and wouldn't turn on

If you're sure you're using a known good charger, It's possible your phone just needs a reset. Try holding first the volume down button, and then the power switch at the same time for several seconds. If that doesn't work, try volume up and then the power button for several seconds. A few devices require all three be pressed at once. Do this after the charger has been connected for at least a half hour leaving it connected while you try the button combinations.
If that doesn't work, and you're certain you're using a known good charger and/or cable that work on other devices, your phone is very likely dead. It could be the battery or another hardware problem.
And, for future reference, it's very hard on LiIon batteries to run them completely dead and especially to leave them that way for very long. Phones will shut themselves down when the battery is too low but they continue to draw a small amount of power even while off. And that small drain can eventually destroy the battery.

In other words, don't let devices sit around dead.

I just want to say, my daughters phone died and wouldnt turn on. Had it in my charger for an hour. I did the power and down button like suggested and its rebooting. Says battery low which I know in her case means dead. Charging now. Thanks for the help

I was having the same issues.  Check out https://support.sprint.com/support/article/Troubleshoot-when-your-Moto-X-Pure-Edition-doesnt-turn-on/WTroubleshootingGuide_542_GKB89625-dvc9560007prd
For me, all I had to do was hold the power button for 30 seconds and boom, phone is on now. :D

tried everything plugged in laptop charge port and is no charging. before it wouldn't charge power up or restart just come on long enough to tell me that it was at 0% charge. charging fine now. Try laptop port to charge first may save a lot of time, up to 20% charge in 5 min.

My Moto X Play died completely after I plugged it in to my camera charger when the normal charger went walkabout. Retrospectively, I found it had charged up to 100 % and hibernated to protective mode to avoid damaging the battery. After lots of Googling I held the Volume Down and Power On Buttons until lots of gobbledook appeared on the screen about initiating a hard re-start or whatever and everything has worked fine since.

phone stopped responding properly so I turned it off and it wouldn't turn back on when I tried, even plugged up and holding volume button..
Solution:
Held power down for 10-30 seconds after leaving phone charging for over an hour and now it's restarted at 100%.
Moto X 2nd gen

Moto X Style:
Costed me 60 seconds (stopwatch check) before I got into the bootmenu again, by holding Power and volume up button. Old phone but still happy with it, live another day!!!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Do I have a FUSE-enabled kernel?
I would like toknow if my kernel supports FUSE. If not, how do I build or download one with FUSE support, where on the FS do I place the kernel? I don't want to install CyanogenMod. I have a Samsung Galaxy SIII Neo, KitKat 4.4.2. Thanks.

With Kitkat, your device most likely uses FUSE for the internal SD card already. You could check that utilizing the df and mount commands (via terminal or adb shell). A good hint that it does is the same size of available space being reported for /data and the SD card (usually /storage/sdcard0).

@Izzy culd you please provide more detail in an answer. There should be a specific command (maybe even an app)other than checking file sizes. Thanks.

I have no device to cross-check this with, so I cannot provide detailed instructions (as I could not verify them) – my devices use separate partitions for the SD card and thus don't mount it via FUSE. Check the output of mount | grep sdcard, the mount options should tell something. // Apart from which: If I'm not taken wrong, MTP uses FUSE as well; see e.g. Why does Android use fuse for internal SD card mount?


text:
Motorola Droid 4 xt894 won't turn on
Yesterday I charge my phone using USB till this morning, but now it won't show start, i've tried:

pressing power button >3s
pressing power and volume down button >10s

but it doesn't work.
when plugged to USB, it still show green light, is there any other button to force restart?
I'm using working Cyanogenmod.

ah after trying again power and volume down while charging, it works! >__< tG

So your issue is solved? You might consider to answer your own question then and accepting it.

Apparently it was out of power, plugging into USB and wait for a few minutes then press power + vol down for 10 secs to turn it on


text:
Nexus 5x won't use custom ringtones/notifications
Just got the 5x, and loaded it with my favorite tones. Did the same thing I usually do with Android phones to set different tones for different app notifications, alarms, etc.
Phone either plays stock tone or no tone + vibration.
The files were pulled directly from my Samsung in .wav format and will play on the 5x via VLC just fine.

Where did you put the ringtone file on? It should be on /sdcard/Ringtones

Horrible answer. I shouldn't HAVE to move the  file there. Numerous programs offer me the choice of setting the file as a ringtone.  If that involves moving the  file, that's their problem.  When I click on "Set as Ringtone", it should SET it. Lots of people are suggesting this, but I've had three previous Android phones, and never once did I need to explicitly  move a file to Ringtones.

btw, putting  a file in /sdcard/Ringtones actually has no effect, anyway!

I had this issue, but only with the Alarm media files.
Use a file explorer, like ES File Explorer:

Using the ES File Explorer, navigate to the folder you have place your custom alarm media files.
Click on the file you want, and in the "Open with" prompt select "ES Media Player"
Open the menu in the top right, and pick "Set ringtone" (the entry with a bell icon)
In the dialog that appears, pick "Set alarm"

I tried several folder locations when my LG G4 got the Marshmallow update and nothing worked.  This little trick worked great for putting in the alarm sound I wanted.

Works for me; the selected sound gets added to the list. Note that after you'll have to set it manually as ringtone/alarm.

@dr01 That's what I thought happened last time I did this, but this time it automatically became my Phone ringtone.

Surprisingly, the analogous trick doesn't work with alarm tones. I added an alarm tone to /sdcard/Alarms but the alarm clock app doesn't notice it or add it to the list of available alarms on my Nexus 5x. (To be sure my Samsung audio clip was OK, I tested it by putting it into the /sdcard/Ringtones folder, where it works as described here by others.)
However, I have discovered a workaround for alarm ringtones: If you put the ringtone into /sdcard/Ringtones/Notifications/Alarms, it will show up in the list of alarm tones in the Alarm Clock application and can be used normally.

It was a permissions thing for me.
Upgraded no problem and it was all OK. Factory started and although I could see the file in notifications it wouldn't play as a message tone.
Settings,  apps, messages, added storage to permissions.......happy me!

Please clarify. It is difficult to make out what you did axed how it helped you and how you think this can answer the question

I had problems with chosing custom alarm tones on Marshmallow. They were chosable within the alarm tone list, but if i chosed them, the default tone had been set every time.
With this hint i was able to fix it, because simply as it was, the storage permissions were not enabled.
Therefore i went to settings -> apps -> clock -> permissions
and enabled "storage". Now i can chose my custom alarm tones as it were on 5.0

You can try converting the same into *.mp3 and try again. Ideally you should be able to.

Downloaded ringtone from zedge (mp3 format)
Downloaded ES File Explorer from Play Store
Copied ringtone from download folder and pasted into Ringtone folder
Called myself from other phone to confirm

Worked fine on Nexus 5x.

What I did:

Installed ES File Explorer App on Nexus 5X.
Connected my Chromebook to the Nexus 5X using a USB cable.
Swiped down from top of the Nexus, chose "File transfers" as the desired use for the USB connection.
Waited for the Chromebook to automatically open a window that shows the Chromebook and the Nexus file folders. Had to wait for a few seconds for this window to automatically open.
On the Chromebook, dragged the desired mp3 file from its Chromebook folder to the Nexus 5X folder named "Ringtones".
On the Nexus, tap Settings> Sound & Notification > Phone ringtone. Nexus dialog asks which App to use, choose ES File Explorer.
Tap on the mp3 file you want to use as your new ringtone.
Close the Nexus Settings app, disconnect the USB cable, and you're done.

I copied the ringtone to ringtones folder on the phone. And when ever I want to change the tone in sounds and notification, that tone appeared along with the system tones. Simple isn't it?

Ringtones folder where? Please clarify.

I was having the same issue for notification tones and while troubleshooting it I happened to need to send a picture file over Google HO.  The system prompted me to allow access to media (for the picture) and then suddenly custom tones started working.  So you might try sending a pic in case this is a case of permissions not being set correctly by Android.

You don't need to send a picture, but the reason is plausible. It seems there's a "permission reset" bug for some people after updating to Marshmallow. Otherwise, just enable the permission from Settings - App - Hangouts manually .

Good info, Andrew, thanks.  FYI, this wasn't an update for me, but a clean flash.

I plugged Nexus 5x into my iMac. Used USB file transfer to move downloaded ringtone from download folder into Android ringtone folder. It then appears in the ringtone list under sounds in settings. Choose it and then it works fine. Double checked by calling my Nexus 5x from my landline.

Nexus 5X/Android 6.0.1
Android won't see new ringtones saved in the system ringtones folder (Android/media/com.google.android.talk/Ringtones) unless files are transferred to the phone via USB.  If you transfer ringtone files to your phone from the cloud, FTP, or some other non-USB method you'll need to reboot your phone in order to see your ringtones using the system 'Media Storage' file picker.
In order to choose ringtones stored in a different folder using a 3rd party file browser such as Solid Explorer you first need to clear the system default 'Media Storage' ringtone file picker.

click Settings, click Apps, click on the 3 dots upper right corner, click 'Show system'
click 'Media Storage', click 'Open by default', click 'CLEAR DEFAULTS'

I've had this problem with my 6P. Even though my 3rd party .mp3 ringtones and notifications were stored in the Ringtones and Notifications folders (resp.) the Android Settings selection 'using Media Storage' would not display them (even after a reboot) and using the ES File Explorer option to select them gave "Wrong file type" errors. I couldn't set my Hangouts SMS notification to a 3rd party tone either. I also tried messing about with converting the file types with no luck.
I then followed the alternative method of setting ringtones and notifications from within ES Media Player described within this thread and it worked ...and I noticed that my 3rd party ringtone then appeared in the 'Media storage' list. Though I couldn't directly set my Hangouts SMS notification tone from within ES File Explorer I set my 3rd party notification tone as my general notification tone and then it appeared in the 'Media Storage' list in Hangouts so I then set it as my SMS tone and switched my general notification tone back to Tethys - job done.

Super easy way to do this (free as well)

send the .mp3 via bluetooth to your nexus 5x
download vlc player from the google play store onto your phone
play the .mp3 file with vlc player on your phone
from vlc there is a setting in the "kebab menu" to set as ringtone

Please link to play store app mentioned and adding a snap shot of "kebab menu"  :) options would enhance value of answer


text:
Google Maps consuming battery
I've recently updated Google Maps to version 9.16.2 and it is draining battery like anything.
I tried disabling it but it starts again and again and consumes battery

Screenshot (click to enlarge)

I can report the same issue on LG E989, after this google maps update, battery can't last 8 hours, normally it go for 70 hours or more. i'll try to force stop and test along the day.

Normally it will not consume battery after disable. I don't know much about the  Map version 9.16.2.
Can you try with force stop the Map app.
Please check the link below how an app is disabling
http://www.howtogeek.com/195786/how-to-closestop-a-running-app-on-an-android-device/

Please seek clarification using comments on the question. You would need 50 reputation points to comment anywhere.

Actually i have tried to get clarification by commenting, but it needs 50 reputation. So my only option was to put the answer with my own knowledge.

Shalu, "disabling" an app just makes it "invisible" and keeps it from receiving broadcasts. If some other app calls an intent of it, it is still started. Especially GMaps is known for this (had it quite often on devices with GApps). Greenify might help then, but I'm not entirely sure.


text:
Is USB OTG disabled on my device?
In using my Alcatel one touch idol s (4.2.2) I noticed that although USB OTG should be on my device, it isn't. Did they disable or remove it?


text:
Is it possible to convert the filesystem from ubifs to ext4?
because i want to install a custom rom for my smartphone (MT6572 based) i need my smartphone to be in ext4-fileformat (currently it is in ubifs) because all the ported ROMS for MT6572 are ext4-based. Is it possible to change the filesystem of a smartphone?

Doing a quick Google search it looks there are at least some TWRP recovery options for your phone so the answer is probably yes but you really have to know what you're doing as even a Nandroid backup might not restore if you mess up file system formats. Generally only the System, Data, and Cache partitions can be re-formatted. The recovery partition cannot.
Apparently it can also possibly be done with an spflash tool. See:
http://forum.xda-developers.com/android/development/mod-repartition-internal-mediatek-t2861061


text:
Broken screen on HTC Wildfire S - possible to root to extract data?
My girlfried recently suffered a broken/cracked screen on her HTC Wildfire S, rendering it inoperable. We managed to get her considerable backlog of photos saved simply by connected the phone via usb to my laptop.
However, her contacts list would only be accessible if the phone is rooted. Is this possible given that the screen is broken?

"My girlfried" --- my condolences with you Sir!

You can possibly use the htcdev utility to gain access but you need to read up on it as the root procedure I found requires using a new recovery utility which would require a working screen. See: http://forum.xda-developers.com/htc-wildfire-s/help/2015-root-flash-bootloader-unlocking-t3227482
And more generally:
http://forum.xda-developers.com/htc-wildfire-s


text:
How to fix badly virused android device - Your device has been modified, software updates are not available
I have a Samsung Galaxy Note 10.1 that has been infected with some viruses really badly.
After factory defaults, as soon as it connects to the internet it starts downloading some apps and advertisement windows pop up like every 10 seconds.
Things I tried:

Installed AVG AntiVirus, CM serurity, Clear master

It helped me delete some files of the virus but did not solve the problem

Booted into recovery mode:

Wiped cache partition
wiped data/factory reset

Booted into Odin mode:

Product Name: GT-N8010
Custom Binary: Download: No
Current Binary: Samsung Official
System Status: Custom

Tried to software update

Message: Your device has been modified, software updates are not available.

What can I do to get rid of the virus and be able to software update normally?

It sounds like you have it unlocked with a custom recovery. If so, use the custom recovery to install a new ROM for your tablet. Find your tablet on http://forum.xda-developers.com/ and you can find either a third-party (i.e. Cyanogenmod, etc.), modified stock, or even completely stock ROM such as this one: http://forum.xda-developers.com/showthread.php?t=2792979 .
If you don't have a custom recovery, you can find instructions on XDA to use the odin utility to install one.
Wiping the system and data partitions should get rid of the malware but you'll need a new rom to install. If you have an SD card you can put the new rom zip file on the card. If not, you should copy it to the tablet first.

Comments are not for extended discussion; this conversation has been moved to chat.

I have found a solution for stopping apps downloading without user intervention:

Download TowelRoot and root your device. Then download SuperSU and make it functional.
Download CM security, then scan your phone for infected files.
Download system app remover (root) and delete all the apps what you found affected in CM security. Uninstall CM SECURITY.
Download Titanium Backup and wipe all the data from your phone including cache and apps.
Go to recovery mode and reset your device.

This will probably sort out your problem but in case if you find some more apps most of them will stop. Repeat this again and go to system app remover and uninstall your apps one by one, first remove one and wait for some time. If it doesn't stop then remove another and then another. And when it's stopped go to "Recycle Bin" and reinstall all the apps except the last one.
Once your phone will be all right, download a trustworthy antivirus app (say Avast) for future security.

And yhen you can simply unroot your device by clicking on permanently unroot on supersu.and your devise will me ready for normal update.

Tey to use sammobile and find the best firmwhere

Thank You for the idea, but I think the new ROM would be a cleaner solution.

I would suggest readers to not try this solution as it is inherently risky and probably not at all the best or the easiest or the safest way to go about achieving what the OP has asked for.


text:
how to update Asus K012
Help, my asus fonepad 7 (k012) won't update automatically, so I was forced to update it manually. Now I'm on UL-K012-WW-10.32.1.33.1-user when I go to asus website there is alot of update for my K012.. should I update it gradually(one update at a time starting from old to newer update) or I have just take latest update from asus website??
sorry for my english
thank you good sir(^_^)


text:
Compass only working in GPS status app, not in any other apps
On my Nexus 5 (Android 6.0) the compass is working fine in the well known GPS Status & Toolbox app, but not in any other app like Google Sky Map.
To debug the problem, I installed a dedicated compass app called Compass, which displays the following:

This particular app happens to have a setting for sensor accuracy. When I set it to "Above medium", the compass suddenly works. Unfortunately many of the other apps I'd like to use the compass in don't have such a setting. I have also tried the calibration move a few times, but I don't think that's the problem, because it does work with the right settings. It's probably not related, but I have recently used my phone for Google Cardboard, which (ab)uses the magnetic sensor for user input.
What could be causing this?


text:
Apps such as Timeservice are getting automatically installed but Unknown sources option is disabled already
This has been happening for many days. Some applications are getting installed without my permission, even though I've disabled the 'Unknown Sources' option in Security Settings. Also, I've installed Application Install Blocker and other applications can't be installed, but apps named Timeservice, Data and others get installed.

You are probably the victim of system-level spyware. Please refer to the question linked in @Firelord's comment.

Is your phone rooted? What version of Android does it run?


text:
How to save data while installing updates from the Play Store?
Every time there's an update in the Play Store the whole application gets downloaded again instead of some particular size.
For example, there are 45 apps installed from Play Store. The average size is almost 800Mb to 1Gb. So supposing that there are updates for all the applications then I will end up downloading 800MB or more depending on the update.
So why are updates full size? Why can't the updates be of some particular size so that we can save some data while updating?
I also tried Opera max data saver but it doesn't save data for downloads. It saves only when browsing or watching anything from  the browser.
(Click image to enlarge)

The Google Play Store already uses file patching techniques similar to xdelta to save data. From personal experience I can report updating apps that are big (~50-100mb) but only downloaded a part of them (10-20mb). Unfortunately this depends on availability, the version of the app on your device and the complexity of the update; if too much has changed, they won't offer that feature because you would need to download 90% of the app anyway.

Possible duplicate of Why app updates download entire app instead of only "updates"?

Referring to @GiantTree 's comment, and adding on some of my own experience:
Google Play Store does its utmost to help you save data while updating apps.
App updates are usually about 20-30% of full size.
If the app does not contain .obb (expansion) files, it will use file patching techniques to update the .apk in your data partition. For the first update of a system app, the updated app is downloaded in its entirety once to /data/app, as the /system partition is read-only on unrooted devices and file patching cannot be done there. Also, once this first update has finished, file patching techniques are applied to reduce the amount of data needed to download.
This is not applicable as a whole to applications with .obb files, as these are stored on external storage and have a different, independent patching mechanism.
Updating an app through the Play Store saves you data already, in fact Google considers it a violation of its Terms of Service if developers who distribute apps through the Play Store employ means to update it other than Google Play's own mechanism.
For the moderators, I found a source (Although this is for APK expansion files):
Updating Your Applications-For Developers
And this, from Google Play's ToS:
An app downloaded from Google Play may not modify, replace or update its own APK binary code using any method other than Google Play's update mechanism.
From: Google Play Developer Content Policy
And this picture:

I can confirm this from personal observations: the progress bar for download usually goes "slowly" (regular download) to about 1/3 of the size, and uddenly switches to "installing" – thus having skipped download of about 2/3 of the "full .apk size".

Can you backup your answer using legit sources?

Well, that would involve infringing Google's IPR, but I tried.

Isn't @Izzy 's experience enough for you?

@Firelord OK, I've learned: "Izzy is no legit source". Every day comes with its specific lesson ;)


text:
How do I increase the task response timeout window?
I have a Samsung Galaxy S3 I9300 running CyanogenMod 11 (Android 4.4.4). Over time I have noticed that most of my system stability issues are because Android appears to have a "timeout" period for tasks, and if a task does not respond within a certain time (e.g. when I try to load a web page with enough Javascript to put significant load on a latest generation Mac), the OS declares that the task has hung and axes it. This has been happening with increasing frequency as mobile websites have been expecting me to have an increasingly powerful phone, e.g. it does not happen on my Samsung Galaxy S5 nor on a friend's Galaxy S6 Edge.
I tried looking under my sysctl and build settings on System Tuner for a setting that controls this "activity response timeout" but couldn't find any. Is there a way to increase this timeout?

This timeout is actually hardcoded into the runtime, as below:
In Android, application responsiveness is monitored by the Activity Manager and Window Manager system services. Android will display the ANR dialog for a particular application when it detects one of the following conditions:

No response to an input event (such as key press or screen touch events) within 5 seconds.
A BroadcastReceiver hasn't finished executing within 10 seconds.

This is relevant to apps themselves, but Chrome (or whatever browser you are using) can also be affected as above.
For further information refer to the Android Developer's Guide: Maintaining Application Responsiveness.

Nice move, Google... have the activity manager and window manager's timeout hard-coded so that people are forced to always purchase the latest phone because their old phones start crashing all the time... luckily, Android is an open source OS and I might be able to modify this.

I'm not actually sure if it really is hardcoded, just that it can't be altered by standard root modifications.


text:
Lost 2 GB of internal storage after unsuccessful try to swap
I have a Alcatel C5 5036, initially with 4GB internal storage
I have rooted it successfully,
I tried to increase ram with "ROEHSOFT RAM Expander (SWAP)",
After some unsuccessful tries,
While any SWAP was not created,
The internal storage decreased to 2.05GB,
2 GB has been lost!
I tried SWAPoff for several times, but there was no any SWAP for it to remove now in storage or any other explorer location, it shows the total capacity of internal storage as 2.05GB, instead of 4GB. Please help me as to how to recover the lost storage.

Apparently you did not follow the proper procedure. You were supposed to create the swap file on an external SD card with a special swap partition, but now the internal storage has been repartitioned, which is non-standard and the app does not recognize it properly. Only way to get your storage back is to repartition your device, which needs professional help as your device's chipset is not well documented.

Try to change partition size using GParted

Using adb you can dump whole internal storage to your PC
this will work only on linux but since you will have to use gparted it shouldn't be a problem
connect phone to the PC and type in the terminal
adb shell
su
cat /dev/block/mmcblk0 | busybox nc -l 6666

aasuming that your pc and phone are in the same network and phone's IP address is 192.168.0.101
in another terminal type:
nc 192.168.0.101 6666 > dump.img

after few minutes transfer should end and then you can edit dump.img using gparted:
gparted dump.img

after editing partition layout dump it back to your phone
(you may need to remount all partitions read-only before it)
adb shell
su
busybox nc -l 6666 > /dev/block/mmcblk0

and in another terminal
cat dump.img | nc 192.168.0.101 6666

Oh. Maybe you include how to do that? GParted runs on a computer. The device to be repartitioned resides on internal storage, which cannot be accessed from GParted. So how to proceed? Put the LiveCD into the Android device? // Hint: The approach might work, but the tool is wrong. Check for Android partitioning apps, and there's e.g. one app from the same dev (Roehsoft) – and also an Android version of GParted (named AParted).

post updated with instructions

I'm glad you edited your answer and I took back my vote too. Too bad, my flag would now be declined. :) @Izzy, you might want to see the answer.

@Firelord Yupp, much better now. Though I find it too complicated: I'd use e.g. AParted directly on the device. Though taking a storage-device backup before (first step of this answer) is a good idea, just in case. Btw: The downvote is not mine.

The answer given by rav_kr certainly provides a solution – but looks a bit complicated to me. Not only does it require Busybox on the device, and deals with partitions over the network (one more possible cause of problems) – it involves too many steps. Hence here's my suggestion:

Backup the storage device (as described in mentioned answer) is always a good idea. But we can use an easier approach:
adb shell "su -c \"cat /dev/block/mmcblk0 > /sdcard/mmcblk0.img\""

Install AParted (the Android pendant to GParted) and use it to re-partition the storage device directly:

AParted (source: Google Play; click images for larger variants)
Done. In case anything goes wrong, reverting changes is as easy as
adb shell "su -c \"cat /sdcard/mmcblk0.img > /dev/block/mmcblk0\""

And if you want to take a look first, there are other Android partitioning apps available as well – two from the same dev as your RAM Expander; but at least these two are rather expensive, while AParted comes for free.


text:
How does Marshmallow encryption work technically?
I just installed Marshmallow on a Nexus 5 through a pushed update. I am confused about the way encryption works. I have good technical knowledge of encryption on computers. I would like to gain similar knowledge about Android 6.
The following is what I did and how I got confused. After a factory reset I setup a PIN then encrypted the device. At boot it asked me for my PIN, which was expected. I then removed the PIN and restarted the device. It did not ask for any PIN at boot but the device still reported itself as encrypted in the setup menu. The latter is what confuses me as I expected the PIN to unlock the decryption key.
Questions:

In the case of encryption without a PIN, where does the decryption key come from? I assume it is stored on a chip similar to a TPM, is this correct? If so what prevents a hacker from requesting this key from the chip? Does it check the hash of the firmware? Anything else? Technical details would be much appreciated.
In the case of encryption with a PIN, is the PIN used as an extra token to access the decryption key? Or does the decryption process work exactly as if there was no PIN.

TL;DL answer:
The decryption key is unlocked with all of the following:

The PIN (or password, etc.) or a default password if there is none
A TEE (a hardware-backed signature generator which uses keys that cannot be extracted)
A salt (readily available but preventing rainbow tables attacks)

Thanks. Even though it applies to Lollipop this is the correct answer as far as I'm aware. I thought there was a difference between M and L because I don't recall being able to setup passwordless encryption on L, or being able to remove my PIN after encryption.

I'm quoting from the Android Manual here, but:
NOTE:
The source I have used is not directly relevant to Marshmallow but is relevant to Lollipop and higher.
TL:DR
I'll just address the OP's questions now. Technical details will follow.

The default encryption key comes from a hardware source (a chip similar to a TPM) and the default password of AOSP defined as default_password in the cryptfs.c source file, see below.
Yes, not just the default, but any password is made into a key and is stored on a TPM-like chip, called a TEE (short for "Trusted Execution Environment", see below for further details).
A hacker with UART/JTAG access to the chips on the SoC of the device could technically get access to the TEE key, or a custom kernel can leak this information to a hacker. Some 3-letter agencies in conspiracy theories can possibly partner with the OEM to get these insecure kernels used in production devices, but I wouldn't lay many stores by it. Again, see the last section of this answer for further details.

The only thing stopping a hacker from getting access to the key is the sheer amount of effort required to do so.

Checking the hash of (checksumming) the firmware (called "Verified Boot" by Google) is in fact done on and above Lollipop by default (and is available from JellyBean 4.3 onwards), by a kernel module called dm-verity. However, this is independent of encryption status.

Source: AOSP security guide here.

About the process involved in decrypting the system with a custom password, see below. I'll just tell you here that the user password is involved in both creation and usage of the encryption key.

Overview
Upon first boot, the device creates a randomly generated 128-bit master key and then hashes it with a default password and stored salt. The default password is: "default_password" However, the resultant hash is also signed through a TEE (such as TrustZone), which uses a hash of the signature to encrypt the master key.
You can find the default password defined in the Android Open Source Project cryptfs.c file.
When the user sets the PIN/pass or password on the device, only the 128-bit key is re-encrypted and stored. (ie. user PIN/pass/pattern changes do NOT cause re-encryption of userdata partition.)
Starting an encrypted device with default encryption
This is what happens when you boot up an encrypted device with no password. Because Android 5.0 devices are encrypted on first boot, there should be no set password and therefore this is the default encryption state.

Detect encrypted /data with no password

Detect that the Android device is encrypted because /data cannot be mounted and one of the flags encryptable or forceencrypt is set.
vold sets vold.decrypt to trigger_default_encryption, which starts the defaultcrypto service. trigger_default_encryption checks the encryption type to see if /data is encrypted with or without a password.

Decrypt /data

Creates the dm-crypt device over the block device so the device is ready for use.

Mount /data

vold then mounts the decrypted real /data partition and then prepares the new partition. It sets the property vold.post_fs_data_done to 0 and then sets vold.decrypt to trigger_post_fs_data. This causes init.rc to run its post-fs-data commands. They will create any necessary directories or links and then set vold.post_fs_data_done to 1.
Once vold sees the 1 in that property, it sets the property vold.decrypt to: trigger_restart_framework. This causes init.rc to start services in class main again and also start services in class late_start for the first time since boot.

Start framework

Now the framework boots all its services using the decrypted /data, and the system is ready for use.
Starting an encrypted device without default encryption
This is what happens when you boot up an encrypted device that has a set password. The device’s password can be a pin, pattern, or password.

Detect encrypted device with a password

Detect that the Android device is encrypted because the flag ro.crypto.state = "encrypted"
vold sets vold.decrypt to trigger_restart_min_framework because /data is encrypted with a password.

Mount tmpfs

init sets five properties to save the initial mount options given for /data with parameters passed from init.rc. vold uses these properties to set up the crypto mapping:
ro.crypto.fs_type
ro.crypto.fs_real_blkdev
ro.crypto.fs_mnt_point
ro.crypto.fs_options
ro.crypto.fs_flags (ASCII 8-digit hex number preceded by 0x)

Start framework to prompt for password

The framework starts up and sees that vold.decrypt is set to trigger_restart_min_framework. This tells the framework that it is booting on a tmpfs /data disk and it needs to get the user password.
First, however, it needs to make sure that the disk was properly encrypted. It sends the command cryptfs cryptocomplete to vold. vold returns 0 if encryption was completed successfully, -1 on internal error, or -2 if encryption was not completed successfully. vold determines this by looking in the crypto metadata for the CRYPTO_ENCRYPTION_IN_PROGRESS flag. If it's set, the encryption process was interrupted, and there is no usable data on the device.
If vold returns an error, the UI should display a message to the user to reboot and factory-reset the device, and give the user a button to press to do so.

Decrypt data with password

Once cryptfs cryptocomplete is successful, the framework displays a UI asking for the disk password. The UI checks the password by sending the command cryptfs checkpw to vold. If the password is correct (which is determined by successfully mounting the decrypted /data at a temporary location, then unmounting it), vold saves the name of the decrypted block device in the property ro.crypto.fs_crypto_blkdev and returns status 0 to the UI. If the password is incorrect, it returns -1 to the UI.

Stop framework

The UI puts up a crypto boot graphic and then calls vold with the command cryptfs restart. vold sets the property vold.decrypt to trigger_reset_main, which causes init.rc to do class_reset main. This stops all services in the main class, which allows the tmpfs /data to be unmounted.

Mount /data

vold then mounts the decrypted real /data partition and prepares the new partition (which may never have been prepared if it was encrypted with the wipe option, which is not supported in the first release). It sets the property vold.post_fs_data_done to 0 and then sets vold.decrypt to trigger_post_fs_data. This causes init.rc to run its post-fs-data commands. They will create any necessary directories or links and then set vold.post_fs_data_done to 1. Once vold sees the 1 in that property, it sets the property vold.decrypt to trigger_restart_framework. This causes init.rc to start services in class main again and also start services in class late_start for the first time since boot.

Start full framework

Now the framework boots all its services using the decrypted /data filesystem, and the system is ready for use.
Storing the encrypted key
The encrypted key is stored in the crypto metadata. Hardware backing is implemented by using Trusted Execution Environment’s (TEE) signing capability. Previously, we encrypted the master key with a key generated by applying scrypt to the user's password and the stored salt.
In order to make the key resilient against off-box attacks, we extend this algorithm by signing the resultant key with a stored TEE key. The resultant signature is then turned into an appropriate length key by one more application of scrypt. This key is then used to encrypt and decrypt the master key. To store this key:

Generate random 16-byte disk encryption key (DEK) and 16-byte salt.
Apply scrypt to the user password and the salt to produce 32-byte intermediate key 1 (IK1).
Pad IK1 with zero bytes to the size of the hardware-bound private key (HBK). Specifically, we pad as: 00 || IK1 || 00..00; one zero byte, 32 IK1 bytes, 223 zero bytes.
Sign padded IK1 with HBK to produce 256-byte IK2.
Apply scrypt to IK2 and salt (same salt as step 2) to produce 32-byte IK3.
Use the first 16 bytes of IK3 as KEK and the last 16 bytes as IV.
Encrypt DEK with AES_CBC, with key KEK, and initialization vector IV.

What about Android N? Colleagues had make the assumption that the encryption is Android 7 is weaker because the start of the device isn't protected as before and therefore an attacker could have it easier than before, do you think this is true?

@David that is beyond the scope of this question, please ask a different one about Android Nougat.

http://android.stackexchange.com/questions/159721/how-does-nougat-encryption-work-technically

How can i decrypt DATA partition in recovery mode? via init.recovery.<ro.hardware>.rc

@Benny please ask a proper question about that


text:
File size in different devices
I'm working on an Android app which downloads new-updated resources from a remote server whose platform isn't specified yet.
The app compares the size of the pre-downloaded local file and the remote file from the server which is a terrible idea.
I just heard that the size of a file can be different depending on the platform the file lies on, to my surprise.
https://askubuntu.com/q/341143
So, question:
Is an identical file expected to be the same in size in all across the Android devices?

That doesn't depend much on the platform, but rather on the file system: depending on block size, the same amount of data might consume a different amount of disk space. BUT: Development questions are off-topic here, please see our [help/on-topic].

Thank you for the answer and pointing that out, @Izzy. I'll keep in mind.

"Data size" and "file size" are different things.  Files are arbitrary concepts and can take up much more space than the data that they represent.

Yes. If the files are identical, by definition, they should also be identical in size, regardless of platform (Unless the file is a sparse file, and/or the mechanism by which the FS driver of the platform reports file sizes is buggy).
But for identical apps, however:
Not necessarily. The file size mostly differs for native-compiled executable code (ARM vs. x86 chipsets,etc.), graphics resources supplied as per the device's graphics capability (OpenGL ES 2.0 vs 3.0), and so on.
In your case, it would be better to compute and compare checksums for the files, instead of size, as they depend on the contents of the file which should not vary from platform to platform, except as stated above.

Ahh, yes. We should've thought of checksumming earlier. Thank you so much!


text:
Google Maps stay on top
When Google Maps is in Navigation mode and I answer a call, the call gets brought to the foreground for the duration of the call. Wave has an option called "stay on top" that keeps the app in the foreground when you are answering a call.
Is such a feature available on Google Maps?
Note that all interaction with the phone is hands free and integrated to my car's multifunction steering wheel.

Do you happen to have a Lollipop device? See if you can work with screen pinning. It's not working for me but I haven't tried hands free either.

Assuming the 'answer call' function of your steering wheel is similar to the one that uses the button embedded in earphones, the pinned app option works. I tried it with my Nexus 5: if I pin an app and then receive a call the app stays on the screen but I can answer the call.

Screen pinning seems to be the solution. I learned something new today as I didn't know about this feature.


text:
New cable modem giving Android Phone time outs on sites
I just changed from DSL to Cable Broadband and I'm having a rather peculiar problem. Most of the time I get time outs from hosts using my Samsung Galaxy S4 phone while my other wireless devices work fine (Win Laptop, Ipod). My phone works well on WiFi at work, but it's not getting along with my Arris (Model: TG862A) Cable modem. I haven't updated the phone's firmware (5.0.1) or anything. I can ping sites and other devices in my network, but a lot of times can't access websites. I have even thought if it was the DNS server and I have changed to Google's DNS Servers and entered the server's IP address, but nothing. I get brief moments where everything works fine and then it's gone.
Just wanted to know if anyone has had a similar problem.

Since other devices are working fine, and your phone works okay on other networks, it's likely a specific compatibility issue between your phone and your home wifi network.
First, find out exactly which cable modem you have.  Some Arris Cable Modems like this SBG6580 support dual band WiFi, which means they can broadcast at 2.4 GHz or 5 GHz.  If you have one of those, try using one or the other frequency to see if your phone is having problems with one of them.
It may also help to find out what kind of wireless router or modem they're using at work.  For example, if they're both using Wireless-N and broadcasting on a 5GHz frequency, then the frequency isn't the problem.  In that case, it could be a problem with the specific modem you have - getting it replaced might help.

I changed my SSID, encryption, modes (B,G,N to G,N and to N only), 20 Mhz to 20/40Mhz. My modem is model TG862A.


text:
Is there a way to make voice recognition multi-language?
I am German but my Android is in English for various reasons. However, I like using voice commands since it is the fastest way to get the music playing I like.
It recognizes most bands without any problem, but I cannot get it to recognize any German bands, e.g.:
Ok Google, play Unheilig Schutzengel

recognizes as
1 highlights

and results in a google search for this term. The only ones working are bands with Latin names like In Extremo or Rammstein.
Is there a way to solve this problem? Or is my accent not American/British enough for it recognize bands with German names?

Since your locale language is English, Google is deliberately not recognizimg German (probably thinking of it as some input error). If you chose German as a voice recognition language, it wouldn't recognize English. Somehow both don't work together. Blame Google.

Google speech recognition software supports multi language input, so yes, you can easily solve the problem. Go to the app 'Google settings' -> Search & Now -> Voice -> Languages. Here check all the languages that you want Google to recognise. If you long press on a language it will be set as the primary: first Google tries to match your input with the primary language, then if it fails, it tries with the languages labelled as 'others'. You can either set German as primary or English, Google does recognise words from both languages in the same sentence.

Oh thank you, this worked. It now properly recognizes the song I used above as an example. Didn't notice this app for the google settings. Thanks a ton.


text:
Use a different adbkey
The adb command uses ~/.android/adbkey by default.
Is there any way to specify a different key that should be used, either on a per device or per adb instance basis?
The functionality I'm looking for is similar to ssh -i /path/to/keyfile ...
I'm aware that I could just rename/move the files around or add a key to all devices but that's not the solution I'm looking for.

Shouldn't the adbkey be different on a per-device basis?

I meant per Android device, not server device

Yeah, I also meant per Android device. Isn't it supposed to be done with a calculation using the device serial no. And some other thimgs?

As I understand it, the host (computer) has an RSA key which it uses to authenticate itself to the device (phone/tablet/whatever) so the user can approve debug connections.  This key (and thus the fingerprint on the dialog) should be the same for any device that the host connects to.

The device has a different adbkey. That is what helps the ab daemon to identify the device, and what shows up as the device identification code when you run adb devices, so you are getting that functionality already.

Are you talking about the number in  the output of adb devices? That just gives me the serial number of the device.

Have you tried going through the official adb documentation?

Yes, did you find something that I missed?

If it exists, it is well-hidden. The ADB_VENDOR_KEYS environment variable is not the answer, unless you work for a device manufacturer and have access to engineering ("eng") builds of Android.

Persistent searching found the original code change that added public-key authentication to ADB. That says:

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

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

Stop the adb server with adb kill-server and rename my .android directory as .android.original. Run adb start-server to generate a new key pair in a new .android directory, and then run adb devices to verify that the device showed up but was not authorised.

Stop the adb server. Set the ADB_KEYS_PATH environment variable to the full pathname of my .android.original directory. Start the adb server, and then run adb devices. Result: Device is displayed, but not authorised.

As #2, but setting ADB_KEYS_PATH to the full pathname of my .android.original\adbkey.pub file. Result: as #2.

As #2, but setting ADB_KEYS_PATH to the full pathname of my .android.original\adbkey file. Result: as #2.

Restore original: stop the adb server, remove my .android directory and rename the .android.original directory back to .android. Start the adb server, and then run adb devices. Result: Device is displayed, and shows as authorised.

Looking at the device screen after completing the full set of trials, it had a stack of dialogs, all offering the chance to accept the new adb key. I hit "Cancel" on all of them.
If anyone with a collection of old Android devices and old adb versions wants to experiment some more, I'd be interested to see the results. I'm reasonably satisfied that it doesn't work with modern adb.
Something that won't work
The ADB_VENDOR_KEYS environment variable is not the answer, unless you work for a device manufacturer and have access to engineering ("eng") builds of Android.


text:
Use of the -i argument in fastboot command-line?
I was planning to flash a custom recovery in my Yu Yuphoria. So I searched for it on Google, and found a download link along with a written tutorial. I'm acquainted with the fastboot commands, so I avoided reading it, but somehow came across something different. Instead of commands like:
fastboot oem unlock
fastboot reboot

I came across commands like:
fastboot -i 0x2A96 reboot

What's the use of the -i 0x2A96? Is it specific for different devices? Why is it necessary to add this to the command?

-i <vendor id> is used to specify a custom USB vendor id
according to the fastboot --help page
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot, system, vendor and if found,
                                           recovery
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  format[:[<fs type>][:[<size>]] <partition> format a flash partition.
                                           Can override the fs type and/or
                                           size the bootloader reports.
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> [ <second> ] ] download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> [ <second> ] ] create bootimage and
                                           flash it
  devices                                  list all connected devices
  continue                                 continue with autoboot
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader
  help                                     show this help message

options:
  -w                                       erase userdata and cache (and format
                                           if supported by partition type)
  -u                                       do not first erase partition before
                                           formatting
  -s <specific device>                     specify device serial number
                                           or path to device port
  -l                                       with "devices", lists device paths
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address.
                                           default: 0x10000000
  -n <page size>                           specify the nand page size.
                                           default: 2048
  -S <size>[K|M|G]                         automatically sparse files greater
                                           than size.  0 to disable

As for usage, I've never had to use it, but this suggests that it's for getting fastboot to work with unrecognized devices:

As you've already know, you can force fastboot to work with a device, even if the vendor ID is unknown by fastboot binary, by -i parameter: -i <vendor id> specify a custom USB vendor id

I used fastboot commands without the -i option and had no issue :D

@Shayan typically you can run fastboot without args.  This is for the case where the device is not automatically recognized

I just had the case that indeed I HAD to specify my Android device ID.
My intention was to unlock the bootloader of my Android device.
But Ubuntu just did not find the device when in "Download mode" - as displayed on the device screen.
When using like:
fastboot devices

Had no output, just prompt.
As soon as I used just
fastboot -i 0x2e04 devices

it listed the device.
For all my predecessor Androids on the same Ubuntu host optin "-i" wasn't necessary.
2e04 resp. 0x2e04 is the ID for Nokia. In my case Nokia 6.1 or 6 (2018).
Could be found with "lsusb" or "dmesg" like:
saeufer@eckkneipe:~$ lsusb
Bus 002 Device 002: ID 17ef:7214 Lenovo
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 014: ID 2e04:c026

Also mind "fastboot" might need sudo/root permission on default Ubuntu settings.
EDIT/Update
Reason was I had an older Ubuntu (32Bit) and package-manager did not update ADB tools (including also fastboot) to more resent version. I later used a newer Ubuntu (virtual machine) and ADB tolls were a bit more current - no need to use "-i" option any longer. So if you struggle consider update ADB. Newer 64Bit versions can also be downloaded at Google (I just miss the link). 32Bit ADB tools are deprecated by Google.

fastboot only needs root if you set up the USB devices to be only accessible by the root user. If your devices.list gives your user permission to access the devices, you can use fastboot as yourself.

Dan I updated to - fastboot might need root... (which is true in my default setting)


text:
Restarting Google Play Services after forced-stopping it
I didn't know I would need Google Play Service if I didn't play games, so I forced stop it.
Any way of getting back, possibly without doing a factory reset?

See  What does the "Force stop" button mean?

If you only forced stop it, then you don't have to worry. It will start itself when opening Google Play Store. Check the running apps for Google Play Services.

Yes, even if you Force Stop Google Play Services, it will start again when you open Play Store. However, the Play Services app may misbehave when Force Stopped - when re-opening, (on my Chrome OS) it installs gaming, book, video apps that I never use and have uninstalled at least 10 times. But this is a minor issue and aside from that, you should have no problem re-starting Play Services.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Swipe to call using sim on which call was receipt
In the call logs, when you swipe on a call you answered, it will dial from sim1 even if you answered it from sim2. How to change this behaviour?

Go to System Settings.
Under that look for "SIM Management" or "Dual SIM Settings".
There, change the "Default Behavior" for dual-SIM to "Always Ask".

This partly answers my question, in my previous phone I could edit contacts and choose default sim.

another thing is that with this option I always need to choose, I want it to call using the sim from the call log, so if I received a call with sim 1 when I swipe in the call log, I call that number with sim 1 and visa versa

That's how it works. I'm sorry. Apparently you can also choose a default sim per activity, but that is what you don't want


text:
Will my new Xiaomi RedMi Note 2 prime work for LTE network?
I just bought this smartphone, and I am confused if it will work in my area and if it will work for 4G and LTE. I called the support of T-Mobile, and they said if it configured correctlly, it will have LTE for 2100 frequency in LA area, but many posts online say the opposite.
Device:
http://www.gearbest.com/cell-phones/pp_229219.html#customer_review
Frequencies for this device:
2G: GSM 900/1800/1900MHz
3G: WCDMA 850/900/1900/2100MHz
4G: FDD-LTE 1800/2100/2600MHz

T-MOBILE frequencies:
**T-Mobile network coverage**

Created by tmo_ian on Oct 16, 2012 8:55 AM. Last modified by tmo_kim on Oct 13, 2015 8:26 AM.
Voice over LTE (VoLTE)
VoLTE (Voice over LTE) allows you to place and receive calls on our LTE data network. Phone calls are connected with a clear and rich experience. You never know when you might need to check Facebook while talking to your mom and sharing your Mobile Hotspot with your friends. All of this, on our amazingly fast 4G LTE network. Here's some of the highlights:

Switch between 4G VoLTE and Wi-Fi without dropping a call!
Enjoy crystal-clear calls with our new HD Voice service.
Browse the web with speed while on a call.
Placing a call connects twice as fast.

4G LTE
T-Mobile's advanced 4G LTE network is smoking fast! With incredible speed, you can do more using our nationwide 4G LTE network. 4G LTE delivers up to 50% faster speeds then 3G. If you're in an area served by 4G LTE, you can expect blazing fast speeds because of our expanded capacity. Check out our coverage map to see all the places we have 4G LTE.*

Frequencies: Band 2 (1900 MHz), Band 4 (1700/2100 MHz), Band 12 (700 MHz)

4G (HSPA+)
With 4G, theoretical maximum download speeds range from 21 Mbps up to 42 Mbps. You can take advantage of incredibly fast download speeds, and even use voice and data services at the same time.

Frequencies: Band 2 (1900 MHz), Band 4 (1700/2100 MHz)

L700
This is also referred to low-band spectrum, it adds increased building penetration as well as covering greater distances. This will be used in metro areas to improve in-building coverage and in rural areas to improve our LTE footprint.

Frequencies: Band 12 (700 MHz)

L1900
L1900 is being used primarily to update our current 2G towers to LTE. Many of our current LTE devices already support L1900 band 2. Check out this device list for phones that are compatible.

Frequencies: Band 2 (1900 MHz)

3G (HSPA)
With 3G, theoretical maximum download of 14 Mbps. With 3G, you can use voice and data services simultaneously.

Frequencies: Band 4 (1700/2100 MHz)

2G (GSM, GPRS, and EDGE)
EDGE, our enhanced 2G service, delivers a theoretical maximum download speed of 236 kbps. GPRS, our 2G service, delivers a theoretical maximum download speed of 114 kbps. Typical speeds are between 35 kbps and 45 kbps. Keep in mind, voice and data services cannot work simultaneously when on GPRS or EDGE.**

Frequencies: Band 2 (1900 MHz)

Requirements
It's important to use a device capable of the network type you desire, and you should be in a location that has cellular network coverage. Check out our coverage map to see what areas we service, and check out Phones & Devices for device specifications.

Should I return this phone ? :)

No. Keep the phone, it's all right. You will get 4G if your APN settings are configured correctly and you have a working 4G plan.
But for your information, what T-Mobile calls "4G" is actually a kind of enhanced 3G (HSPA+) whereas "real" 4G is LTE.
This phone can access 4G in India, on a hardware basis it should be capable of accessing 4G in the US, unless you got a carrier-locked handset.


text:
Play books pdf upload title unknown filename?
I have several pdf books ranging from textbooks for class and free downloads from linked in that I moved to play books to make for easier reading from my tablet.
I moved them to google drive and uploaded them using my tablet but all of them have their title as "unknown filename" even though the title is on the first page and the name of the pdf file.

Is there any way to give the books their proper titles?

I have looked at the play books faq, tapped everything I can in play books, and I looked at stack overflow, here, and google and haven't found an answer.
Everything else seems to work fine save for the organization of my library.
I have a samsung galaxy tab 10.2 GT-P5113 model running 4.2.2

Apparently you can't upload from a tablet. I repeated the exact same steps from a desktop and the titles carried over fine.
I am unsure if this has to do with my tablet being old, or if it's just better to access cloud from computer rather than tablet.
But my library is now fine.


text:
Now On Tap is missing from Marshmallow
I recently flashed the stable version of Cataclysm onto my Nexus 5 (Cataclysm Oct 27, 2015 Stable release). Cataclysm adds several features including AppOps over a mostly stock system.
However, Now On Tap is missing from my system. Holding down on the home button just brings me to the Google Now cards screen. This happens on the Google Experience Launcher, the 3rd party Nova Launcher, and various apps including Facebook, Inbox, Telegram and WhatsApp.
In case I accidentally disabled it during setup, I've looked through the settings to try to re-enable it but haven't been able to find the option.

As far as I know, Cataclysm doesn't disable Now on Tap or affect it in any way. I previously flashed the stock system image for 6.0 where Now On Tap was present.
Just in case, I checked: the Google apk version is 5.4.28.19.arm, which was updated on 22 Oct 2015 so that's probably not the issue.

According to this post on the Cataclysm XDA thread, "System language have to be set to English (UK or US)"

Yeah I did make sure it was set to US in the Google App, but apparently System Language is a separate thing. Thanks for the tip. Resolved!

Apparently (as of current writing), Google Now on Tap only available if the System language is set to English.
From Official Google Support for Search,

What languages is this feature available in?
Now on tap is currently only available in English.

Perhaps an understatement, since setting the language to English in Google Search app doesn't show the option for Now on Tap.
According to Reddit,

Now On Tap only works with English system language.
Just a heads up.
I tested it, and it checks out - with system language set to English, you'll find a Now On Tap toggle under Settings - Google - Search and Now. In another language, that toggle isn't there.

As for the follow-up, it seems any English language is accepted, not only English (US) or English (UK)

Any English (UK, AUS, India)? Or just US English?
  I guess I could try it and find out but goggle wont gib oats!

US and UK worked for me.
Working fine on English (India)
English AU works fine

There are other factors that might disable this feature, such as using Google Apps/Business account, will expand/write as another answer if necessary.


text:
Remove Pattern Lock
I am unable to remove the pattern lock on my Moto G 2 because the none option is greyed out and a message saying 'Disabled by administrator, encryption policy or credential storage'.  I have already tried having all accessibility settings off as suggested by other members here. Please help.

do you use a VPN by any chance?

The answer is in the pop-up message... Go to Settings - Security - Device Administrators and revoke the Device Administration privileges for everything except Android Device Manager and then change or remove the pattern lock. Note that if you have a corporate email setup, they may require this, so to remove the device administration privilege you may have to completely remove the account.

My guess is that there's an app that is mandating the pattern.  For example, I know that when you have a corporate MS Exchange account set up that account can mandate a pattern.  If you don't have any exchange email, I guess it could be another app, but that's the one type that I know will do it.  It's possible the new Android Pay will mandate a pin/pattern as well, but not sure if that's the case...


text:
Duplicate screen lag on Android
Each time I turn on my LG G3 after some pause (30 sec + ) when the display is turned off I get this weird lag. Like the screen is duplicated on half the screen. Then After 2 seconds it get normal.
Also, when I call someone and the screen turns black while i hold it to my ear, if it takes more than 20-30 seconds, when I pull it from my ear to close the call it happens again(lasting 2-4 seconds). It looks something like this:

I tried turning off animations and it seems to work a bit better but still have this problem. Not sure if it's software problem or my device is faulted.

did you try a factory reflash if this was bothering you that much?

Yes. it didn't work. Well it bothers me because I literally can't close a phone call sometimes for 5-8 seconds if the other person doesn't hang up. Also, I think I want to sell it.

It is then probably a screen defect. It could have been caused due to physical shock. I've seen similar problems on my mom's phone when it fell, although it had Gorilla Glass 2.You could try to get it repaired or sell it. Should I make this an answer?

The phone literally looks perfect. No scratch, no nothing. Although it might be the case.

It doesn't need to look broken to be broken. Also, do you use a case? And sometimes electrical discharges near the charger port can cause this issue.

@TamoghnaChowdhury I think indeed it is a faulty device and the problem is on the motherboard level from what I could find online. If you want to convert your comments into an answer I can close the topic.

Since a factory image flash hasn't helped you, and with the information provided in the comments, the problem is at the hardware level. It may be in the screen or the input processing hardware on the motherboard. You could try getting the device repaired. Note that the device does not need to look broken to be broken.


text:
WiFi drains battery even if it's off
On my Nexus 5, since Android updated to marshmallow, the Wi-Fi is draining the battery way too fast, even when disabled. See the screenshot:
(Click image to enlarge)

I've seen this question: Battery drain when wifi is off but since I've a very stable network, the answer doesn't fit my need.
I've disabled the Location, I doubt that the issue could come from here.
Where should I look next?
Edit:
The real question is in fact "How come that the WiFi usage bar is going from 100% until now even if Wi-Fi is Off?"

Okay, to address the points here:
Marshmallow doesn't have the option of Scanning Always Available as it was in Lollipop.
So, what to do?
Marshmallow still has these options, only now they are fragmented and redistributed. It is now under:

Settings → Google → Services → Location → 3-dot menu → Scanning → Wi-Fi scanning

Also, there are:

Settings → Wi-Fi → 3-dot menu → Advanced → Keep Wi-Fi on during sleep

and

Settings → Wi-Fi → 3-dot menu → Advanced → Network notification,

if you are paranoid about battery.

Location>3-dot menu->Scanning is not available when location is disabled, Keep Wi-Fi on during sleep is set to something like Only while charging (don't know the correct english menu) and Network notification is disabled on my device... Any other place to look for?

Enable location to access the option. You never know, it might be the same case with location as it is for WiFi

I've turned all if those off but it's staying on. Looks like a bug to me

This is most likely media related.
Devices on the network can be too chatty and try to constantly discover things and speak to each other non stop, keeping the wifi awake and active.
Two big culprits:

Spotify (uninstall or restrict all background activity?)
Google Home devices like the Mini (turn off "Let others control your cast media")

Also check out,
Settings -> Google -> Security -> Find my Device
this might also be a suspect
and,
Settings -> Google -> Device Connections -> Devices -> Show Notifications When devices are nearby
And then also,
Settings -> Passwords & security -> Privacy -> Location -> Google Location history
perhaps this is also scanning

Background:
I monitored the network traffic on the wifi network that the Redmi 6 running MiUi was connected to that has the drain issue.
It seems to be communicating constantly with a random laptop over the network.
It's keeping awake because of some Spotify traffic.
So I believe this is caused by media apps that try to do this whole shared network controls.
It can be related to other media devices on the network too.
There's a Google Home Mini on this network, which has this "allow other devices to control the media playback".
So turn off Spotify and Google Home devices and see if that helps.
The network broadcasting features must be draining and always keeping things awake.

Little notice for AOSP Marhsmallow (and Nougat?) users: the "more" vertical button will not appear whatsoever in the Location settings page.
It can still be accessed from toggled-off WiFi and Bluetooth settings ones, but once their scan is both off (and the "convenience tips" aren't shown anymore) there's no other code in the UI to access ScanningSettings.
The only existing method (and necessarily from a rooted phone, since SubSettings is not callable from unprivileged uids since Lollipop) is using adb shell "su -c 'am start -a android.intent.action.MAIN -n com.android.settings/com.android.settings.SubSettings -e :settings:show_fragment com.android.settings.location.ScanningSettings'"

After doing everything tamoghna said, it may also be necessary do do the following (I had to on my moto g4):

open the location menu
click "mode"
choose "device only" (gps only)
turn gps back off because choosing this setting activates gps

The other modes use background wifi, as the menu explains.

This is what worked for me. I suspected the Wi-Fi was draining the battery way too fast because of an app called wireless update com.adups.fota. When I first got the phone it downloaded a large file and then restarted. If your phone is BLU, ZTE or Huawei but not limited to these brands, this is likely the problem. Apparently this is malware.
Here is what I did:

Factory reset.
Disable the above app (and rest of bloatware as well), but not through the settings as it will automatically be enabled again. You need adb shell. I followed these instructions: How to Uninstall Carrier/OEM Bloatware Without Root Access.