text:
After moving gatekeeper.pattern.key to unlock, Settings>Security keeps crashing
Context: I forgot my unlock pattern, so I used TWRP and ADB to move gatekeeper.password.key and gatekeeper.pattern.key to /sdcard, so now I am able to use my phone again :-)
Problem: I want to set a new pattern, but whenever I go to Settings>Security and press Screen lock, it crashes:

How to solve the problem?
I restarted, cleared all apps cache, wiped the cache partition from TWRP, booted in safe mode, always crash. I am afraid that if I move the files back the situation will get even worse, or at best it will ask me for the pattern that I still can't remember.
Android 7.1.2 LineageOS

The "Mega Post" in our locked-out tag-wiki mentions how to correctly reset the pattern. AFAIR this also involved updating the settings database. If you missed that step, the "state" is "out of sync" (settings assumes there must be a file which it then doesn't find) – at least that could be the case here. Have you cross-checked that?

@izzy: I was not aware of that page, thanks! Actually just right now I have managed to fix the situation, I write an answer immediately about it :-)

Easy fix would probably have been to also delete the locksettings.db* files from the same place where you removed the .key files (see my second comment on your answer). :)

In a web browser (on any device), log into Gmail with the account you used when setting up your phone.
Go to https://myaccount.google.com/intro/find-your-phone
Press "Lock your phone"
Enter "abcd"
Your phone's screen is now locked. Unlock it with "abcd"
You can now change your screen lock.

Ah, congrats! Maybe I should include that in my "cover-all" answer (or link here from it). Though this approach only works if you have a Google account associated with the device (and not e.g. run "Google-free"). Would have been interesting if switching to a pin or password lock on device would work as well (maybe with some ADB trick, as with the settings app you didn't get that far before it crashed), so Google-free devices would be covered as well. Ah, here we go.

PS: Updated my "general answer" linking to yours, and adding a few more hints. Doing that I discovered why you failed with your first approach: you forgot to also delete the locksettings.db* files. So the Settings app saw them, evaluated them, decided you have a pattern lock set – and then crashed accessing the *.key files. I'd consider that a bug, the developer not having caught the exception or checked whether the files exist and are readable.

Are those Gatekeeper files only used in verifying the password? Or are they also used in deriving the key that decrypts the device encryption key?


text:
Where are the sources and issue tracker of Ghandicam?
I want to report a bug in Gandhicam, and possibly fix it.
But I can't find Gandhicam's bug tracker not source code.
Any idea where they are? Not found via Google.
Gandhicam is an application for live video/photo upload, aiming to help whistle-blowers protect civil liberties, making phone confiscation pointless.

Seems like Gandhicam is dead...

I am not sure it is open source, as I could not find any reference to it being so, but you can try using the Contact link on their website to report the bug.

Yes, I contacted them already, actually :-) No answer so far.

source: Stack Exchange

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

sort: votes


text:
Contacts on Android: Delete limit exceeded
A few days ago I deleted all of my Android contacts (using the "Delete Contacts" app). Not a mistake, I really want to delete them.
From that day, Android always shows a notification "Sync: Too many contacts deletes".
When I click on it, a menu comes:
Delete limit exceeded
There are 3960 deleted items for contacts, account xxx.xxx@gmail.com. What would you like to do?
- Delete the items.
- Undo the deletes.
- Do nothing for now.
When I click Delete the items, the menu disappears, and nothing seems to happen. The contacts are gone but the notification still sits there. It has been like this for days. What should I do?

Did you ever manage to resolve this?

Just keep selecting the option to Delete items anyway. Each time you do, about 50 contacts more will be deleted.

My phone is rooted.

I made sure all of my data was correct at www.google.com/contacts .
Then exported the data (.csv file) from Google’s web site to my home computer for safe storage.
I used the app Titanium Backup to “Wipe data” for the apps Contacts 4.0.3 and Contacts Storage 4.0.3.
Waited (approx 1 min) for my phone to re-sync with google and all of the contacts were restored.
Finally, I went back into Titanium Backup and preformed a full back up for apps Contacts 4.0.3 and Contacts Storage 4.0.3.

After switching to Android 2.2, it works better.
When the icon appears, just click to continue, and after a few times it is done.

I was having the same problem as you are now. Here's what I did in the Gmail app:

Go to your Gmail account
Press menu buton
Press settings
select your mail id
Under data usage
Uncheck Sync Gmail.

That should do the trick. It worked for me.

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

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


text:
Share intent to used recent or often-used contacts
Some of my Android apps allows me to share to oft-used (or recent?) contacts, which is quite convenient.
What is this feature called? I'm having a hard time finding information about this "direct share" feature on the API developer docs.

(The reason I want to know what it's called is so I can make a feature request to my receipt scanner app people, so I don't have to type receipts@myaccountants each and every time)

It is called Direct Share and described here https://developer.android.com/about/versions/marshmallow/android-6.0.html#direct-share

This release provides you with APIs to make sharing intuitive and quick for users. You can now define direct share targets that launch a specific activity in your app. These direct share targets are exposed to users via the Share menu. This feature allows users to share content to targets, such as contacts, within other apps. For example, the direct share target might launch an activity in another social network app, which lets the user share content directly to a specific friend or community in that app.


text:
GPS app to follow a prepared itinerary
I am preparing a 1-week bicycle trip. We can't use high-traffic roads, so I am preparing a quite complex route on small country roads, using Google Maps.
With my phone saddled on my bicycle, is there a GPS app that will "guide" me using the itinerary I crafted? Turn-by-turn would be ideal, but just writing the itinerary as a map overlay would be better than nothing.
Note: My phone is WiFi only so I will need an application that can cache a lot of maps, like AndNav2 or Maverick. Also, I am stuck with Android 1.5

Which phone are you using?

A special kind of HTC Magic I was given at Google Developer Day 2009. It is a very specific model, and I couldn't find any info about whether it is rootable or not.

That sounds like the Google ION, which they gave away at IO in 2009. It's rootable. I installed CyanogenMod6 on mine and it works fine.

Here is what I ended up doing, it works well:

On your computer's Firefox, install the GMapToGPX bookmarklet.
Prepare your itinerary with Google Maps Itinerary.
While still on the Google Maps page, click on the GMapToGPX bookmarklet. It opens a GPX conversion dialog.
Click on the blue tab buttons to make them read like this: "Route Track Points About". It will not work otherwise.
Copy-paste the XML text in a new file, for instance myitinerary.gpx
On Android, install Maverick.
Copy your GPX file to /sdcard/maverick/tracks
In Maverick, select the track file
Scroll your way along the route at appropriate zoom levels to store the tiles in the cache.

The free version of Maverick allows 3 tracks files.

MapDroyd offers free offline maps, but I believe the premium NavDroyd would be ideal for your needs - it offers navigation along with offline maps.
If you've already created the route in Google Maps on your PC, email yourself that link and open it on your device using Google Maps while you have a WiFi connection. I believe the newest versions of Google Maps have better support for offline caching.

Thanks for the tips! I am stuck with Android 1.5 so no new Google Maps version I guess ><

MapDroyd cites requirements as 1.5 and up, so hopefully that might work for you.

The best option will be to use some software to create the maps of your itinerary and then some software like OruxMaps on your phone.
Here  you can find a great article on how to do exactly this, totally oriented to hikers and bikers which in most cases will not have data coverage during the journey.
I found the combination of “Mobile Atlas Creator” on the PC to create the maps and OruxMaps on the phone to be pretty good.

OruxMaps is not be available for my poor Android 1.5 >< I will try Mobile Atlas Creator, sounds interesting!

Wow!, I haven't seen you are stuck with Andorid 1.5, this would be a great inconvenient, most of the apps are for 2.1 or higher and the few you found for previous systems are for 1.6

Mobile Atlas Creator is excellent (thanks so much for the tip!), but it does not seem to allow me to draw a route, does it?

I can load my route as a GPX file into MOBAC, but the route doesn't get printed on the tiles.


text:
Change lockscreen time and date font?
Starting from Android 6.0, Google altered how their lockscreen looks in AOSP, presumably to increase readability:

Digital clock is smaller
Digital clock uses a bolder font, presumably Roboto Medium
Date text is ALL CAPS
Date text has a noticeable character spacing

A comparison can be seen in the pic below.

It seems that this is Google's design vision going forward, as Android 7.x only kept or reinforced upon those points, and the recently released Fuchsia OS preview is in the same style.
However, as good as Google's intention might be, I'm not a fan of all these points above, and now that I see Google is determined to push it (Fuchsia), I'm determined to revert it back to what it was in Android 5.x. I'm rooted, have a custom recovery, and know how to decompile and recompile APKs, so I should be ready for whatever's needed.
Ideas?

After some more searching, I finally came across an XDA-Developers thread explaining how to do it - or rather, how to do the reverse action of what I want to achieve (credits to the original author there). I'll post an excerpt of the core part and reverse the action yet again to make it fit my purpose.

Install apktool.
Install your framework-res.apk by executing apktool if /path/to/framework-res.apk.
Decompile your SystemUI.apk by executing apktool d /path/to/SystemUI.apk
Go to the decompiled SystemUI folder and open res/values/styles.xml.
Search for big_thin and replace sans-serif-light behind <item name="android:fontFamily"> with sans-serif-thin.
Open res/values/dimens.xml.
Search for widget_label_font_size and replace 14.0sp behind it with 16.0sp.
Open res/layout/keyguard_status_area.xml.
In the two lines starting with TextClock and TextView, remove android:textAllCaps="true" and android:letterSpacing="0.15".
Rebuild SystemUI (preserve its signature) by executing apktool b -c SystemUI.
Push the finished SystemUI.apk back to where it was using a method of your choice, set correct permissions, then reboot.

The end result is pictured below. Font size might still use some tweaks, but generally favorable result.

P.S.1: For the record, and for ROM makers who are interested: you can also modify the same files prior to building the ROM - find the files above in *build-folder*/frameworks/base/packages/Keyguard/.
P.S.2: Interestingly, while searching for "reverting the font on 6.0+ back to what it was in 5.x" didn't return anything, searching for "changing the font on 5.x so it looks like 6.0+" (the opposite) did return more favorable results, as there were quite a number of Marshmallow wannabes back then. I guess that's a lesson learned in Google-fu...


text:
How to achieve a basic setup of LineageOS with root and Google Assistant?
It appears there are 4 things needed to get what I would consider a basic LineageOS install working so apps can run correctly with root.

LineageOS
SU addon
Google Apps/Google Play Store
Google Voice Assistant

Could someone outline how to set up the last one "Google Voice Assistant"?  I also noticed there is no complete guide that I could find on StackExchange for setting up the above on LineageOS.  So I guess something like a guide would probably could be helpful as a canonical question.

As for Google Assistant... Try this along with the latest Google App & Play Services.

Edited to remove mentions of downloads, as those are undoubtly off-topic.

So this is actually pretty easy if you phone is already unlocked.

Boot into recovery mode
Wipe the phone.  I advise going under advanced and checking everything unless you have files you need.

I wipe everything including internal storage but you don't have to
Install the zips starting with LineageOS, SU addon, Google Apps/Google Play Store & Google Voice Assistant.  You should not reboot your device until all are installed.
Reboot you device out of recovery mode and go through the set up menus.


text:
Verify that an APK has been built from given source code
For the same app, I have:

an APK from an app store,
what is claimed to be the source code for the same version. With a pretty usual Gradle build script and structure.

I want to check whether the APK was really built from that source code or not.
How to check that?
Notes:

The APK is not obfuscated.
I have no reason to trust anyone's signature. I only trust the source code.
I already built the app for myself, but now I want to know whether the APK was OK or not.
Preferably with Linux command-line tools, but any tool is OK.

I've not tried that, but you should be able to use Apktool for this purpose: Reverse-engineer both .apk files, then run a diff against the resulting directories. Only difference then should be the signature (which cannot match for obvious reasons). Thinking about it: simply unzipping the .apk files and doing a binary diff should do the same. Both would of course require having used the same library versions etc. when compiling in the first place :)

@Izzy: "same library versions": API version is written in the manifest and libraries version in the Gradle script, so that part should be OK, I guess. A list of files/folders that can be ignored would make that a great answer (bonus for the actual command lines).

I could do that if I were on my computer at home, which I am not currently. But for that to be a "honorable answer", I would need to try it out myself first :) In case I forget (and nobody else did it before me), feel free to send me another ping (e.g. in chat) in about 8..10h :)

@Izzy The diff method seems neat... but what if the guys of the app store obfuscated the APK while compiling it?

IMHO that's where Apktool comes into play. Have you checked the link? Also take a look at LibRadar which uses this. AFAIR it helps in de-obfuscating (something must, or LibRadar would have a hard job detecting those libraries).

I was just gonna say MD5 checks. It may not help with signatures, but it can show if there is a difference. Once they are both in a compiled or decompiled state, of course.

@DanBrown: Do you mean that the store's APK and the one I compiled myself must be exactly the same, byte-by-byte? That supposes no build timestamps/etc are included.

@NicolasRaoul They aren't, AFAIK.

@DanBrown So what files within the APK do you suggest performing checksum comparisons on? Thanks!

@NicolasRaoul you should probably do it on a decompiled format. You'll only need to rip apart the APK. Make sure libraries and app versions are the same between apps

You can only do this with
reproducible builds:

"A build is reproducible if given the same source code, build environment and build instructions, any party can recreate bit-by-bit identical copies of all specified artifacts."

So the app developer or the app store needs to be on board in order for it to work.
Otherwise your only option is to build it yourself.
One example of a developer who currently does this is Open Whisper Systems:
https://github.com/WhisperSystems/Signal-Android/wiki/Reproducible-Builds

Very interesting! So, are you sure comparison can not be done without without the developer being on board? Unfortunately (but understandably) most open source apps do not use Docker or similar for builds, they are just built on whatever system the maintainer happens to run.

Doesn't have to be the developer, just as long as whoever builds the app from source makes it possible to recreate their build environment exactly. Dependencies can be a massive pain when setting up these types of builds.

"recreate their build environment exactly": Is it possible to guess? For instance, if for some reason building on Mac or Linux produces a different APK, can I guess whether the app store's APK has been built on Mac or Linux?

It's not possible to guess and have results that are meaningful. Eventually this will get easier to implement and you'll see more and more open source projects doing it.

One great thing about java and APKs is you can completely decompile the APK to java source code.
However, the resulting source code isn't guaranteed to be identical.
One good way to try and match up the resulting source code with a known revision is to check what modifications were made directly before and after the known commit in the repository, and see if those modifications are also present in the decompiled source.
To decompile, use dex2jar and JD-Gui.
edit I just noticed you wanted linux tools. My only experience is with windows, but I'm sure similar tools exist for linux.

If I understand correctly, your method is to check what the latest change in the source code's repository was, then decompile the APK, and check manually whether the latest change is also found in the decompiled code too, right? Interesting approach, but that will not tell me whether a call-home or embedded ad has been added to the APK version, right?

This is an approach I have used in the office to try and match up an unknown APK to a source revision, which has been good enough if you know you can trust the developers. But as you say, it is probably still possible for an untrustworthy party to sneak something in. I am hoping someone will provide a more definitive answer, would be useful for me too.

How about compiling the source into the APK yourself, then decompiling it back into source code and comparing that to the decompiled source from Play Store APK? Have anyone tried this?

@SergiyBelozorov sorry I can't answer this, I don't really work with android any more, but it sounds like a very good idea.

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


text:
How do I move my AnkiDroid data to external SD card?
My phone is Samsung Galaxy J7. Internal Memory is full and I want to move this large pp to SD. How can I do so?

It is NOT recommended by the AnkiDroid team. Here is the Github issue about this: https://github.com/ankidroid/Anki-Android/issues/3106
Someone reported success using the procedure below, please make backups and remember that you are on your own if you choose to do it.

Go to your external SD card folder via file management app and create a folder with
the apk's package name ("com.ichi2.anki") containing an AnkiDroid sub-folder: the exact path depends on
your devices.
E.g. On my Desire 820, the path of the external SD card folder is "/storage/ext_sd/",
and after I created the folders the complete path of the AnkiDroid folder is "/storage/ext_sd/Android/data/com.ichi2.anki/AnkiDroid/"
Install AnkiDroid, open it, and change the storage path to the path I mentioned
above.

Specifying where your AnkiDroid collection is:

This did not work for me. What is the path for the Samsung Galaxy S4 with Android 6.0.1?

If you want to use anki in external storage above Marshmallow, use the following folder:
/storage/Your_SD_Card/Android/data/com.ichi2.anki/Ankidroid

Replace Your_SD_Card with your SD card's name. Check it with your file manager.

Those who are facing problem by this method is only because you are not correctly putting your external storage name properly best way is to download Es file explorer and copy the file location and paste it.
https://www.youtube.com/watch?v=hYoQ_7tT0I0

Just use any other file manager. ES File Explorer has been removed from Google Play following findings of click fraud.

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


text:
Stuck at Google screen, recovery mode just turns the screen black
I have rooted my Nexus 5 and installed CyanogenMod (Android 6) a few months ago.
It has always been running fine, but today while scrolling a web page it froze, so I long-pressed the power button to reboot it.
The phone started rebooting, showing the Google logo and unlocked lockpad, then the CyanogenMod robot head, as usual.
It then rebooted by itself, once again the Google logo and robot head, and got stuck there.
After 5 minutes without visible progress I long-pressed the power button again.
Now it does not go further than the Google logo screen. I tried again rebooting it a few times, it is always stuck at that screen.
Starting in recovery mode just turns the screen black (the screen is active but only showing black pixels).
#> fastboot oem device-info
...
(bootloader)    Device tampered: true
(bootloader)    Device unlocked: true
(bootloader)    off-mode-charge: true
OKAY [  0.003s]

#> fastboot flash recovery twrp-3.0.2-0-hammerhead.img
target reported max download size of 1073741824 bytes
sending 'recovery' (14524 KB)...
OKAY [  0.665s]
writing 'recovery'...
FAILED (remote: flash write failure)
finished. total time: 44.721s

#> fastboot erase cache
******** Did you mean to fastboot format this partition?
erasing 'cache'...
FAILED (remote: failed to erase partition)

#> fastboot erase cache
target reported max download size of 1073741824 bytes
erasing 'cache'...  [stays like this forever]

Running fastboot boot twrp-3.0.2-0-hammerhead.img starts TWRP, which shows that Data and System are 0MB:

How to fix it?

FAILED (remote: flash write failure)

Indicates your hardware is dead, so replace the main board or the whole device.
It was designed with a built in limited lifetime of maybe 100,000 writes. LG had to cut some corners to make the Nexus 5 so cheap which is maybe why they die a bit sooner than a flagship device of more then 3 times the cost.
You could try heat annealing the memory but you would need some electrical engineering toys to recover from the resulting hard brick (the firmware would be wiped).

I already have TWRP installed on it, from a few months ago, and it was working well. I will try installing the newest version anyway.

I tried what you wrote, and get remote: flash write failure

As of now one of the last resorts you have is to flash a factory image via fastboot. If that also poses remote: flash write failure then it's highly likely that your NAND is borked.


text:
Cryptfs : unmounting /data failed: Device or resource busy
I am trying to encrypt my rooted Nexus 5 (running CyanogenMod 13/Marshmallow).
Here is how I am doing:

With the phone running and connected to USB, make sure that /mnt/asec/ is empty
Long-press the power physical button, this makes the Power off dialog pop up
Long-press the "Power off" option of the pop up, confirm that you want to reboot in Safe Mode
Without starting any app, run adb shell on the computer then su to get root then pkill -KILL daemonsu to kill the SuperSU daemon
Settings > Security > Encrypt phone, confirm
The phone reboots, from the computer type adb logcat

Here is what I see:
I ServiceManager: service 'drm.drmManager' died
D libEGL  : loaded /vendor/lib/egl/libEGL_adreno.so
D libEGL  : loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
D libEGL  : loaded /vendor/lib/egl/libGLESv2_adreno.so
I Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 09/02/15, 76f806e, Ibddc658e36
E BootAnimation: couldn't find audio_conf.txt
W BootAnimation: Audio service is not initiated.
D BootAnimation: Use save memory method, maybe small fps in actual.
D BootAnimation: Use save memory method, maybe small fps in actual.
E Cryptfs : unmounting /data failed: Device or resource busy
E Cryptfs : Bad magic for real block device /dev/block/platform/msm_sdcc.1/by-name/metadata
W vold    : type=1400 audit(0.0:19): avc: granted { read } for name="mmcblk0p28" dev="tmpfs" ino=6735 scontext=u:r:vold:s0 tcontext=u:object_r:userdata_block_device:s0 tclass=blk_file
W vold    : type=1400 audit(0.0:20): avc: granted { read open } for name="mmcblk0p28" dev="tmpfs" ino=6735 scontext=u:r:vold:s0 tcontext=u:object_r:userdata_block_device:s0 tclass=blk_file
W vold    : type=1400 audit(0.0:21): avc: granted { ioctl } for path="/dev/block/mmcblk0p28" dev="tmpfs" ino=6735 ioctlcmd=1260 scontext=u:r:vold:s0 tcontext=u:object_r:userdata_block_device:s0 tclass=blk_file
D Cryptfs : Just asked init to shut down class main
W vold    : emulated unmount requires state mounted
E Cryptfs : unmounting /data failed: Device or resource busy
W SocketClient: write error (Broken pipe)
W SocketClient: Unable to send msg '200 8 -

At that point the CyanogenMod loading screen keeps animating for 10+ hours and probably forever if I don't stop it. Pressing the Power physical button for 5 seconds makes it reboot and start normally this time. Obviously encryption has not been performed.
I tried the whole procedure twice.
What could be causing this Cryptfs : unmounting /data failed: Device or resource busy problem?

As I've found in this bug report, you can watch the current open files by running this command in a second shell:
while true; do lsof | grep /data; sleep 0.2; done

This checks every 0.2s which files are still in use on /data. In my case it was chainfire's SuperSU, which had a logfile opened.
Additionally, I've found out that a 2nd SDCard partition was mounted to /data/sdext2:
mount | grep "/data"

This was due to an app "Link2SD". With this command I was able to figure out, where the mounting happens:
adb shell
# make system partition writable
mount -o remount,rw /system
grep -R "/data/sdext2" /system

I've commented the "mount" commands out and restartet my phone. Now encryption works fine.

I've spend all day with the issue of the never ending encryption (LG Nexus 5, Cyanogenmod 13) and somehow figured out to check the logs and eventually came across this question here on Stack Exchange. @mattelacchiatos hint is a good one, but a little bit complicated. TL;DR I was able to fix this by simply booting into safe mode.
For the record, this is the log of the error I had (same as OP):
01-24 00:15:05.132   871  1170 D CryptdConnector: SND -> {1 cryptfs getfield SystemLocale}
01-24 00:17:05.077   871   910 D CryptdConnector: SND -> {2 cryptfs setfield SystemLocale de-DE}
05-26 20:33:36.401   871   910 D CryptdConnector: SND -> {3 cryptfs setfield SystemLocale en-US}
05-26 20:35:05.696   871  1760 D CryptdConnector: SND -> {4 cryptfs setfield PatternVisible 0}
05-26 20:35:05.697   871  1760 D CryptdConnector: SND -> {5 cryptfs setfield PasswordVisible 1}
05-26 20:35:05.706   871  3096 D CryptdConnector: SND -> {6 cryptfs setfield SystemLocale en-US}
05-26 20:35:06.491   871  3095 D CryptdConnector: SND -> {7 cryptfs enablecrypto inplace default}
05-26 20:35:06.495   150   162 E Cryptfs : Bad magic for real block device /dev/block/platform/msm_sdcc.1/by-name/metadata
05-26 20:35:06.498   150   162 D Cryptfs : Just asked init to shut down class main
05-26 20:35:37.010   150   162 E Cryptfs : unmounting /data failed: Device or resource busy
05-26 20:35:37.140   150   162 E Cryptfs : Bad magic for real block device /dev/block/platform/msm_sdcc.1/by-name/metadata
05-26 20:35:37.145   150   162 D Cryptfs : Just asked init to shut down class main
05-26 20:35:57.212   150   162 E Cryptfs : unmounting /data failed: Device or resource busy

What I did, was the following. Since I tried a lot and wiped/flashed the device around a hundred times, I assume it only works on a clean install of cyanogenmod. Also, I read something about issues with Team Win Recovery Mode (TWRP) and how it formats the partitions. So here is what I did:

Flashed the Cyanogenmod recovery image
sudo fastboot flash recovery /path/to/cm-13.0-20160418-SNAPSHOT-ZNH0EAO2NM-hammerhead-recovery.img

Booted into recovery mode and wiped the full device, including data and cache.
Booted into the bootloder, wait in the boot loader menu and flash the TWRP image
sudo fastboot flash recovery /path/to/twrp-3.0.2-0-hammerhead.img

Still in the bootloader, go into the recovery mode, twrp this time.
Push the cyanogenmod zip to the phone.
adb push /path/to/cm-13.0-20160418-SNAPSHOT-ZNH0EAO2NM-hammerhead.zip /sdcard

Use twrp to install cyanogenmod from the zip. Do not wipe cache or format data! It's tempting since a button pops up, but I read that there might be issues with malformed partitions. Also, do not reboot yet! Just go back.
Reboot into the bootloader. Don't boot cyanogenmod yet. Make sure you are in the boot loader.
Flash the Cyanogenmod recovery image again.
sudo fastboot flash recovery /path/to/cm-13.0-20160418-SNAPSHOT-ZNH0EAO2NM-hammerhead-recovery.img

Now, boot cyanogenmod, set language, date, time, timezone. Don't change any settings yet, don't connect to wifi.
Press the power button until the Shutdown dialog pops up.
Long press the shut down option until a confirmation dialog comes, which askes you to confirm rebooting into safe mode.
Confirm and reboot into safe mode.
Go to settings and security, hit encrypt phone and confirm encryption, again.
Wait a few minutes. On a clean install, it should not take more than 5-10 minutes on a Nexus 5.
It will reboot into normal mode as soon as it finished. Confirm in security settings the phone is encrypted.

Here's the adb logcat to confirm it worked out:
05-26 21:17:20.694   799   897 D CryptdConnector: SND -> {1 cryptfs getfield SystemLocale}
05-26 21:17:33.095   799  1055 D CryptdConnector: SND -> {2 cryptfs getpw}
05-26 21:17:33.096   149   160 D VoldCryptCmdListener: cryptfs getpw
05-26 21:17:33.097   799  1055 D CryptdConnector: SND -> {3 cryptfs clearpw}
05-26 21:17:33.098   149   160 D VoldCryptCmdListener: cryptfs clearpw
05-26 21:18:42.691   799   981 D CryptdConnector: SND -> {4 cryptfs setfield PatternVisible 0}
05-26 21:18:42.692   799  1637 D CryptdConnector: SND -> {5 cryptfs setfield PasswordVisible 1}
05-26 21:18:42.701   799  1055 D CryptdConnector: SND -> {6 cryptfs setfield SystemLocale en-US}
05-26 21:18:43.476   799   981 D CryptdConnector: SND -> {7 cryptfs enablecrypto inplace default}
05-26 21:18:43.480   149   160 E Cryptfs : Bad magic for real block device /dev/block/platform/msm_sdcc.1/by-name/metadata
05-26 21:18:43.484   149   160 D Cryptfs : Just asked init to shut down class main
05-26 21:18:44.950   149   160 D Cryptfs : unmounting /data succeeded
05-26 21:18:44.951   149   160 I Cryptfs : keymaster module name is Keymaster QCOM HAL
05-26 21:18:44.951   149   160 I Cryptfs : keymaster version is 3
05-26 21:18:44.951   149   160 I Cryptfs : Found keymaster0 module, using keymaster0 API.
05-26 21:18:44.954   149   160 I Cryptfs : keymaster module name is Keymaster QCOM HAL
05-26 21:18:44.954   149   160 I Cryptfs : keymaster version is 3
05-26 21:18:44.954   149   160 I Cryptfs : Found keymaster0 module, using keymaster0 API.
05-26 21:18:45.553   149   160 I Cryptfs : Using scrypt with keymaster for cryptfs KDF
05-26 21:18:46.034   149   160 I Cryptfs : keymaster module name is Keymaster QCOM HAL
05-26 21:18:46.034   149   160 I Cryptfs : keymaster version is 3
05-26 21:18:46.034   149   160 I Cryptfs : Found keymaster0 module, using keymaster0 API.
05-26 21:18:46.035   149   160 I Cryptfs : Signing safely-padded object
05-26 21:18:47.040   149   160 D Cryptfs : Just triggered post_fs_data
05-26 21:18:47.090   149   160 D Cryptfs : post_fs_data done
05-26 21:18:49.091   149   160 D Cryptfs : Just triggered restart_min_framework
05-26 21:18:49.091   149   160 I Cryptfs : Using scrypt with keymaster for cryptfs KDF
05-26 21:18:49.676   149   160 I Cryptfs : keymaster module name is Keymaster QCOM HAL
05-26 21:18:49.676   149   160 I Cryptfs : keymaster version is 3
05-26 21:18:49.676   149   160 I Cryptfs : Found keymaster0 module, using keymaster0 API.
05-26 21:18:49.685   149   160 I Cryptfs : Signing safely-padded object
05-26 21:18:50.297   149   160 I Cryptfs : Enabling support for allow_discards in dmcrypt.
05-26 21:18:50.297   149   160 I Cryptfs : target_type = crypt
05-26 21:18:50.297   149   160 I Cryptfs : real_blk_name = /dev/block/platform/msm_sdcc.1/by-name/userdata, extra_params = 1 allow_discards
05-26 21:18:50.300   149   160 I Cryptfs : Encrypting ext4 filesystem in place...
05-26 21:18:50.300   149   160 I Cryptfs : Encrypting group 0
05-26 21:18:50.301   149   160 I Cryptfs : Encrypting from sector 0
05-26 21:18:50.371   149   160 I Cryptfs : Encrypted to sector 790016
05-26 21:18:50.371   149   160 I Cryptfs : Encrypting from sector 802816
05-26 21:18:50.378   149   160 I Cryptfs : Encrypted to sector 813568
05-26 21:18:50.378   149   160 I Cryptfs : Encrypting from sector 819200
05-26 21:18:50.388   149   160 I Cryptfs : Encrypted to sector 840704
    [...]
05-26 21:19:43.819   149   160 I Cryptfs : Encrypting group 215
05-26 21:19:43.821   149   160 I Cryptfs : Encrypted to sector 3590587392
05-26 21:19:43.821   149   160 I Cryptfs : Encrypting from sector 3607101440
05-26 21:19:43.896   149   160 I Cryptfs : Encrypting group 216
05-26 21:19:43.898   149   160 I Cryptfs : Encrypted to sector 3607364608
05-26 21:19:43.898   149   160 I Cryptfs : Encrypting from sector 3623878656
05-26 21:19:43.971   149   160 I Cryptfs : Encrypting group 217
05-26 21:19:43.974   149   160 I Cryptfs : Encrypted to sector 3624141824
05-26 21:19:43.974   149   160 I Cryptfs : Encrypting from sector 3640655872
05-26 21:19:44.108   149   160 I Cryptfs : Encrypted to sector 3641183744

Good luck encrypting your phone in safe mode!

authors: Алексей Алексеич


text:
Can't access tethered server from Android browser. (Time out  or "URL blocked")
Synopsis: Trying to access local web development server connected by WiFi to Android tether. Everything seems to be connected and operating correctly, but phone's web browser times out when accessing local server.
Context: I've got an Android device running android-wifi-tether. It works as advertised. I connect to it from my Ubuntu 12.04 laptop running Apache 2.2.22. The laptop is manually configured to IP 192.168.2.100 in the hosts file. It can ping itself and access it's own web server through that address.
The WiFi tether hotspot gives the laptop the same 192.168.2.100 address(Laptop was configured to match the hotspot address as a troubleshooting step, and could be wrong.) Using ping I can ping the laptop from the phone using the 192.168.2.100 address. Using portscan the phone shows port 80 open on the 192.168.2.100 address.
So, everything looks like it's in place, but any attempt to browse to http://192.168.2.100 fails after a few moments with a 504(Gateway time out)
Any help would certainly be help.
Update:
I've install SSH and migrated to Nginx on the server. Portscan now shows ports 22 and 80 open. Using ConnectBot I can login and get my own shell on the server machine by IP address. This should indicate that the network is functioning properly.
I've also install the Dolphin browser on the phone to help verify that it's not an issue with the browser. Still I am curious if the browser is actually looking for the address first within the hotspot's IP space, or if it's looking to the internet, where that address will always time out.
I am very new to the Android scene. I would really appreciate some feedback as to how to get my phone browsing a tethered server. The workflow I'm looking for makes connection to a local server critical.
Thanks again.
Solution As I assumed, due to HTTP Proxy settings the web request was bypassing local addresses. I found that if I changed the tether network to 10.* IP range my provider responded with "access to this url has been blocked." That made it evident that something was blocking some requests, and more than likely also leaving the others to die out in the unroutable nether-net. Used HTTP Proxy Settings to clear out HTTP Proxy address.

Problem may be caused by HTTP Proxy server. Proxies help to manage web traffic on the providers end, but can and probably will disrupt access to local addresses. Proxy options may be available in your network settings, but on many phones these options are hidden. An app such as HTTP Proxy Settings will give access to the hidden settings. Simply clear out the hostname and port for un-proxied access. Make sure to write down original values so changes can be undone.

You need to set android-wifi-tether to give out IP addresses in a different subnet than the other networks your laptop connects to (e.g. home, work). You can do this within its Settings.
You also need to set up your web server to listen on the given address. Based on your description you are most likely using nginx; in that case add listen 192.168.2.100:80; to the appropriate server block.

Did you configure your web server correctly? See updated answer.

I'm running Apache as originally stated. I think I'm configured correctly, set to Listen 80 and *:80 as virtual host name. As I understand it that will catch anything on port 80.

Sorry Mike, I figured things out better. You were mostly correct. I can't assign an IP to a machine, only to a network device. What I had done in the hosts file only put a name on that IP address, and as I learned better that IP is not reachable if the WiFi connection is down. I did understand that the IP couldn't be assigned to another device, I failed to understand that if the WiFi was down the IP wasn't assigned to any device. My Bad.


text:
What exactly is synced with Google?
If you enable syncing to Google, what exactly is synced in a more technical way? E.g. about syncing app data, I guess there is just one standard path synchronized? Has anyone seen a more technical documentation of the synching, that describes, what exactly is synchronized?

Google Dashboard is a service for accessing a simple view of the data associated with a Google account. With Dashboard you can also get a list of your Android apps that store data in the Google cloud, the dates of their latest backups, the amount of storage they use, and some additional data such as the date you first registered the device. To access this information:

visit Google Dashboard at https://www.google.com/dashboard
enter your Google username and password, and log in
scroll down to section "Android devices"
click the "More data stored about this device" link under your
device names's entry

You can check this e.g. in the Honeycomb User Guide. Basically, it sums up to the following:

Android Settings, as WiFi networks incl. passwords, user dictionary, etc.
Settings of many Google apps, as e.g. browser favorites
Apps downloaded from the Playstore

Additionally, app developers can use this API to have their apps data backup'd along -- but only few do so. Furthermore I wouldn't rely on this backup -- there are many reports that, while the backup works, the restore not always does: It seems there's no way to manually trigger it, and on initialization after e.g. a factory reset (or with a new device) it often fails. also, as far as I know, it's an all-or-nothing thing: You can have it let all your backed-up data restore (as described before), or not.


text:
Generic version of Cyanogenmod for any Android device?
Are there "generic" versions of the Cyanogenmod that would work on any device? (My device isn't officially supported.)
If not, why? (If Windows and Linux distros have images that work on any computer – as long you choose the version for the right architecture (x86, ARM, 32bit, 64bit) – then why not Android?)
EDIT
If the issue is mainly that drivers might not work, is there a way to save the drivers that came pre-installed on the device, and install them after Cyanogenmod'ing?

To answer your EDIT, I have no experience with these types of things, but it should be possible. Take a look at how to port CM: http://wiki.cyanogenmod.org/w/Doc:_porting_intro Of course, that means, development work, and asking about how to build custom ROMs is out of topic here.

Linux and therefore Android too use a monolithic kernel that includes all the drivers. Hence extracting is not possible.

I think the WHY is a very interesting question!

To answer the why, mobile operating systems are much more dependent on the hardware. They don't have drivers to work with a lot of different combinations of hardware, unlike desktop OS's. This is primarily done to make them more efficient (which is a more critical issue for mobile OS's).
About your edit, you can't install drivers after installing cyanogenmod, because the OS itself won't boot up. Even if you are using fastboot/recovery, you can only flash whole partitions like system, userdata, boot, etc, and not one off drivers. Also, a lot of the OS code related to driver interaction isn't very generic, where you can just replace the driver and expect it to work You will need a ROM image where the drivers are modified and integrated properly, which is what cynogenmod versions for different devices are.

No, there isn't.
eldarerathis' answer on What's the risk of installing Cyanogen Mod on unsupported phone? explains the negative effects if you installed the incorrect CM ROM.


text:
Almost anything Google related keeps stopping
My wife's Pixel just started behaving oddly this evening.  Virtually all Google related services keep force closing with the error message "_____ has stopped" or "_____ keeps stopping".  There are various different apps and services that fill in the "blank".

Google
Settings
Google Play Services
Device Health Check
Google Keyboard

Additionally other Google apps, such as Google Maps, do not launch when started.  It just returns to the home screen without an error message. And when she tries to open Google Play, all she gets is a white screen.
A common suggestion I've seen both here and other sites is to clear the system cache, unfortunately she is running Android 8.1 so that setting doesn't exist.  Additionally because Settings force closes upon launching, I am unable to do it for the individual apps (besides, which app do I clear).  Another is to reinstall the Google Play services, but I'm unable to do so because Google Play closes when I open it as well as does settings so I can't roll it back there.
Since this started all of a sudden as soon as she returned home today, I'm assuming there is a bad update somewhere, but since I can't get into Google Play or the Setting to see the app details, I can't uninstall or reinstall.
I've tried booting into Safe Mode and I get the same error messages, so that won't be a help.
There were no apps installed recently, and if it helps, many 3rd party apps and games appear to work fine.
As pointed out in the comments, a factory reset would seem to be an option, but I consider that the "nuclear option" that I'm trying to avoid since it involves a lot of backing up and restoring that I don't want to go through.

Factory reset? Backup data before.

@mani trying to avoid that but i assumed would be an option


text:
Email accounts suddenly disappear from Samsung stock client
I have a Samsung Galaxy S, rooted with ClockworkMod a good while ago. Since about two months, my imap accounts spontaneously disappear from the Samsung stock email.
When launched, the email app asks me if I want to configure it with an account.
I have heard from other people experiencing this, but never discovered a solution.

May I suggest switching to CM9 and/or the stock Android mail client? Switching to CM9 was the best decision I ever made with my Galaxy S.

I am not against this. I was considering CWM10 though.(Reason for 9?). This doesn't answer the question though.

That's why I made it a comment. There is no stable marked CM10 release for the SGS (yet). And the improvements are minor. That's why I suggest CM9 (9.1.0 to be precise).

Maybe I am missing something, but you might be confusing Cyangenmod with Clockworkmod. Clockworkmod is just a rooted version of the samsung android.

No no, I really suggest you try out Cyanogenmod 9.1.0 for the Galaxy S in case you are still on the bloated Samsung stock firmware.

I WILL do it, maybe today or tomorrow. But this doesn't solve the question, it just circumvents the problem for me.

I know. But I think that's it's likely that our never find a answer to your question, plus the stock client or k9 are far superior to the Samsung client (IMHO).


text:
How to make Snapchat use less battery/network?
I barely use Snapchat, less than 10 text snaps per day, only one or two 300KB pictures, and I almost never watch nor send videos. I never use the rightmost activity (branded content).
Despite this very limited usage, Snapchat consistently wastes a LOT of battery:

Network usage is also way over what it should be. Data usage alone is not high enough to explain the huge battery drain though.
Just staying on a conversation screen (zero activity) drains more power than the outlet can provide. You read this correctly: Even with the phone plugged into the wall, if Snapchat is open the battery level decreases and eventually the phone has to shut down, this happened to me yesterday with a Nexus 5.
Is there anything I can do to prevent Snapchat from using that much power?

Use a firewall to block useless branded content download?
Remove some permissions? (phone is rooted)

I only need conversation with friends, which means I don't mind losing branded content, sponsored stories, etc. I don't care much about my friend's profiles/stories either.
Note: That's despite having enabled Settings > Manage > Travel Mode already:

I don't use Snapchat- maybe these settings help?

@beeshyams: That URL has two tips: the first I had already enabled, the second is for iPhone. Thanks though!

Suggest install Wakelock detector as explained here as first step- second step could be to limit those wakelocks coming from snapchat without breaking functionality using Amplify (requires Xposed )


text:
Removing a contact from "Direct Share" panel
I just migrated to Android 6.0 and the 'Share to' panel has a new grey area on top of the various apps in which it puts contacts that, I assume, you pin there. This would be a good feature, except a contact ended up there and I can find no way to remove it. Is there one?
Specifically, the contact seems to have been put there by the Messenger app but there is no way to alter its pinning from the app, either.

Based on my experience, the contact is added because of sharing history with them, not because of specifically pinning them (similar to "App suggestions" on "Home screen", though it can be disabled in that case), but I agree there's no hint if it can be removed easily.

The rather interesting (...) aspect is that the specific contact was, originarily, a phone number to which I had sent exactly one SMS. I added it to a new contact in the hope of gaining a 'remove/delete' button/method... no such luck. OTOH, several contacts with which I have shared things a lot more do not appear.

I created a feature request on AOSP Issue Tracker: #194126. Consider starring it to follow the progress.

Update after a few days of using the phone: now the area has been taken over by whatsapp - which is well and good, except a) it only has WA contacts b) it shows some to which I haven't shared stuff in at least 12 months. So it seems like one app can take over the entire panel and at that point it simply shows some subset of its contacts on there? OTOH, messenger only ever put the one contact there.

Following up, it's been a (very) long while. The original defect sort of corrected itself insofar as with use, other contacts have taken the area over. The choice of which contacts get presented remains rather random and only loosely to frequency or recency of use.

For Messenger, or for something else?

@AndrewT.: Your link says No issue with id: 37070362 :'-(

@NicolasRaoul it seems it got merged to... a non-existent report. Probably the newer relevant report is #68931602

It turns out that - for rooted people - there is a way to completely turn off Direct Share!
For the short version skip to the bottom of this answer.
In my search for a way to stop this stupid feature from bugging me I had a look at how the feature is actually implemented in apps by developers. It turns out that they register a service with an intent receiver (read: event listener) and when I realized that, I started looking for a way to block certain intents from broadcasting through the system. Well, Android actually has that built in. It's called the Intent Firewall. I quickly figured out how to create a rule for it to block apps from receiving the "Hey are there any apps that want to bug the user by putting a couple of Direct Share buttons under their thumb as they're about to tap something?"-event.
You just create a simple xml file like and drop this into it:
<rules>
  <service block="true" log="true">
    <intent-filter>
      <action name="android.service.chooser.ChooserTargetService" />
    </intent-filter>
  </service>
</rules>

Now you have to put it on the phone and copy it into the Intent Firewall directory. On most devices that would be
/data/system/ifw/

I simply used Root Explorer to copy the file there (no chmod required), tried to share something that caused Direct Share targets to pop up and BOOM! Nothing!
I recommend to do some background reading (see links above), especially about how the Intent Firewall works and how you can find the folder.
Happy not-sharing!

I created a file called disable-direct-share.xml containing the exact XML content above, then copied it to the existing folder /data/system/ifw/ using Root Explorer, and... the annoying "Share via" individual contacts still appear, a few seconds after the apps. Rooted LineageOS, Android 7.1.2. Any idea? Thanks!

Hmm no I think that should work. This is the file I literally download and move to the folder: https://stor4ge.rejh.nl/_stored/var/android/system-images/motox-2014-xt1092/others/ifw-rule-directshare.xml

Thank you!! Based on your answer I created a repository with three ways to install this file: computerless on phone only, with adb, and finally with a flashable recovery zip file. See https://github.com/stefansundin/android-disable-direct-share

Great! I lost root with a recent security update so probably will be using this method again, soon

Some blatant self-promotion: I've built (actually, updated) an app that replaces the Android Share dialog. I guess Andmade Share and AppChooser are fine alternatives, too, but I've tried to have it look and feel like the native share dialog. Try it here: https://sharedr.rejh.nl

You can also apply this fix without root via TWRP. 1. copy the xml file somewhere. 2. reboot into recovery (TWRP). 3. Press Advanced > File Manager. 4. Find your file on /sdcard/, copy it. 5. open directory /data/system/ifw, paste 6. reboot back into system.

I would advise against this method in Android 10 (Q) - it worked fine through 9 (Pie) but in 10 it crashes the app you're trying to share from.

Go to settings. Click on Advanced Features. Scroll to "Direct Share". Turn it off and all contacts are gone from share via.
Image shows a before and after visualization of disabling Direct share.

Uh, I do not have Advanced Features in the settings menu? We're talking about the phone settings, right?

It worked for the Galaxy S7. So maybe this method is specific to Samsung phones? And yes, I found the "Advanced Features" in the phone settings menu, after "Display".

This was the exact answer that required barely any digging and not having to root the phone or anything drastic.

Could you please include a screenshot? Thanks a lot! :-)

Just searching for this option on an LG's Android gave me the result and it worked, I got rid of this annoying functionality.

This is not an android setting, it depends on your ROM manufacturer to implemented

You can disable the 'share via' menu by removing Messenger's permission to access your contacts. This isn't practical if you use Messenger as your primary SMS app, but if you use another app, it's fine.

This is not really a solution, is it?

This works if they only come from Messenger and user uses other SMS app as the default SMS app. The contacts can come from other apps too (in my case e.g. from 3rd party email app and Whatsapp), but disabling the contacts permission causes them to malfunction.

Currently. as of 6.0 there is no way of disabling direct share all together. Some apps may add an option to disable direct share for their apps though.

I'm actually fine with the feature - if it worked as intended, i.e. (I assume) put the 'most frequently shared to' contacts there. I'd welcome it. But there needs to be a way to edit the list. I should say - there needs to be an easy way to edit the list.

Currently the issue with it is that apps can add any contact and if multiple IM adds same person for example, they you are left with multiple methods of contacting same person. Taking up space above all. a tab at top to switch between people and apps is a better option in my opinion.

I discovered that if you block the contact in WhatsApp, it stops showing it in the share menu and in the new "frequent chats" section when you share or forward stuff.
However, when you unblock it, it's possible for it to show again in those two places.

For non-rooted and non Galaxy devices this is the only viable solution (if you don't mind blocking the contact of course).

To successfully remove Outlook contacts from Share via menu, I did the following:-

Settings, Applications, Application Manager, Outlook, Permissions - uncheck all
Outlook, Gear icon, click account in question, uncheck Sync contacts, click RESET Account

This removed outlook email contacts from the Share Via menu. Outlook works as normal but is ring fenced from the rest of my phone.

This isn't really an answer to this question, but it's exactly what I was trying to do. So thanks for the answer!

This was what I was looking for too, and it worked but unfortunately it seems it was only a temporary solution. The Outlook contacts have returned.

I discovered that in the case of WhatsApp showing the offending contact on your direct share menu (i.e. your side chick when your girlfriend is looking), you can push that contact down and out of the list by sending attachments to other, more safer, contacts.
Since WhatsApp displays the last four people with whom you have shared something, share a photo with four other people, or as many contacts as needed to push the offending contact out of the top four.

The problem is, it's erratic. It might work, it might not. It might bring up people I actually interact with, it might not - it brought up a couple contacts I have not had interaction with in three years..


text:
"Moisture has been detected" even after 2 weeks, also in safe mode
Two weeks ago my Samsung Galaxy S10e got a bit wet while in my pocket under heavy rain. The phone did not go inside water, but it was pretty wet.
Since then, I got this message from time to time when charging:

Unplug charger
  Moisture has been detected. Unplug the charger and wait until both the charger and USB port are dry.

Yesterday, I could not even charge my phone once, because the message appeared every single time I tried.
I let the phone at the output my air conditioner in dehumidifier mode for the whole night.
Still the same problem.
I tried with 3 different USB cables, and also 3 different power sources.
The charger port looks perfectly clean.
I don't have a wireless charger.
The message (and vibration) appears even in safe mode and in Emergency mode, and also when the phone is off.

In recovery mode the message does not appear, but the phone does not charge (when I left the phone in recovery mode for one hour, the battery went from 53% to 48%, even though the USB cable was connected).
I believe that the message is erroneous, I can't see how moisture could subsist after two weeks and a night of dehumidification. How can I fix the problem?
I live in Japan, where outside air humidity is high, maybe that's a factor?
My phone is rooted, if that can help.

One night next to an air conditioner is not very much. The common method for drying a smartphone is placing it in a bag of dry rice leaving it there for some days.

Hair Dryer on cool setting directed at the port. Mine dried within 4h. Same situation for me, pocket, rain.

A few more weeks and the message disappeared.
I guess some part of the phone was still humid despite all of that drying.
Conclusion: Let you phone dry as long as it takes.


text:
Google Search App Draining Battery on KitKat
I am talking about the app that shows up as "Google Search" in the Battery statistics.
My Phone is a Nexus 4 on KitKat.
This app draws a lot of battery, up to 50% in idle standby. It also has a "Keep awake" value of usually at least several hours.
Possibly related, I noticed that my phone is ALWAYS awake according to the battery stats. One charge merely lasts 8 hours.
I have switched off Location Recognition and I have deactivated the Hotword Detection ("Ok Google") in the Settings for the google search bar on my home screen.
Does anyone experience the same problem and are there any suggestions for a solution?
EDIT: Disabling the search app solves the always awake issue and improves battery life. Of course this is not a real fix.

Have you tried deleting cache (and data, if cache alone doesn't help) from the app? Maybe something got messed up there.

I'll do that later and report back.

I've got the same issue on my Nexus 5. http://i.imgur.com/DC9a8dj.png http://i.imgur.com/yYNjhV0.png

Cache and data cleaning didn't help.

This seems like a fix:

The solution is to take away 2 permissions: the Google search app
  permissions to keep the device awake, and access location. This gets
  rid of the wakelocks, and still appears to keep google now etc.
  functional. You can do this using App Ops from the play store (needs
  root), or if you are on custom ROMs, through "App Privacy" menu
  setting. Additionally you could also turn off location history and
  reporting, to be on the safe side. Google Now still works, but now
  without the wakelocks!

http://www.reddit.com/r/Android/comments/1zxri4/google_play_services_battery_drain_the_real/
On my device (running CyanogenMod), I went to Settings → Privacy → Privacy Guard → Preferences → make sure Show built-in apps is checked → scroll down and long press Google Search → Keep awake → Denied
For those not running a custom ROM, unfortunately there seem to be a million App Ops apps in the Play Store, but this one looks legit:
App Ops by Lars Team

App Ops do not work anymore in KitKat 4.4.2

@Mindwin The particular app I linked does work in Android 4.4.2+, but it requires root in order to do so.

I think I missed that, good to know. It is a mess because the app name is the same name as the API feature that google took down, and why can't apps write to SD card anymore, dammit google, stop taking down stuff and start to police your app shop more. And now I digressed by a mile.[

S A M E. My device is Nexus 7 running Android 4.4.2 though.
I found someone wrote this on the web.
"The issue with this draining your battery is that you have location turned off, if you turn it on and leave it on you will not get the battery drain. With it off Google search is constantly looking for the location and cannot find it which is what is draining your battery. Had this issue and once I turned on location and left it on, no more drain. Hope this helps!"


text:
Import my Personal Profile contact from a vCard
Is there a way or an app to restore my own personal contact (the one available in Contacts selecting the Personal Profile command) from a VCard (*.vcf)?
All contacts can be exported to the SD card (so also the personal one), but importing back the personal vcard put it in standard contact and not in the personal one...

That's probably the "Me" profile/contact. Have you tried via the Web interface (Google Mail)?

@Izzy: I didn't find anything useful in the webmail. It looks a more Android-related feature than a Google-related one.

OK, was worth a try. I do not use that personal profile, so I could not tell.

Btw: Is root available on the device? On a rooted device, there should be possibilities. As the data are stored somewhere, Titanium Backup should be able to catch it. Or one could possibly catch the data with a script utilizing sqlite to extract them from their database.

@Izzy: Thanks for your comment, it let me understand my question wasn't clear. So I refined it. I already use Titanium Backup, so all of my data should be safe and recoverable already. Actually I would like to get my Personal Contact "outta" my phone to be used with other devices and apps. That's the cream in open devices! :>)

Must it be via vCard? If the intention is to use it as a kind of "business card" to share with others, I might have a much better idea :)

If your intention is to have your "personal card" available as a kind of "business card" to easily share with your partners, there might be a much better idea than exporting it as vCard: Export it as QR-Code. So you only need to display that QR-Code on your device, and your partner can use a QR reader to "snap" it. It would then be detected as a "business card" (actually, the QR Code will represent a vCard -- AFAIK even in vCard format), and so your partner can directly import it into his/her contacts.
How to do that? An app I started using a while ago is QR Droid. It comes with some pretty practical widgets offering shortcuts, and has several add-ons on the playstore for sharing your current GPS position as QR Code, and more... OK, back to topic:

QR Droid "business cards", history, selection to create a code (source: Google Play; click images to enlarge)
As the screenshots show, this app is able to create "business card QR-Codes". You can even edit them (e.g. embed an image into the code to make it nicer looking). To show it to your partner for scanning, you can easily pick it from the history (second screenshot). And as a side-effect, it can do much more -- not only create, but also read QR Codes.
PS: As the contact will be exported as vCard, you can also share it with your other devices this way. It might not be imported to your "personal contact" on the other devices, though...

Select your contact -> Settings menu -> Share -> Gmail -> and send that to your own Email address.
Then you will get a e-mail with yourContact.vcf attached to it. simply download it. (Downloaded file will be available on SDCARD/Download)

download Super Backup from play store and export sms ,contact and app to your email

Does that Superbackup (could you provide a link, btw?) take care for that personal "Me" profile? igi did not ask for SMS or Apps, but just and especially for that one profile. So I'm not sure whether your suggestion really answers the question.


text:
Image and video files disappear from the SD Card
Sometimes it happens that all image files (JPEG, PNG, etc.) and videos (3GP) are erased automatically in the SD Card. So they are removed from Gallery also.
This means I risk to lose documents and photos I shoot with the phone camera, unless I make external backups.
I noticed that sometimes it looks related to fast mount/unmount cycles via USB cable to a PC (due to unwanted multiple pressure on the 'Activate/Deactivate media archive' soft-button on the phone)
Does anyone know what happens? Is it a known bug, some misuse from my side, etc.
My phone model is LG P962, with Android 2.3.4 and a 32-GB SD Card.
Thanks!

Hard to say without a closer look. Could be some misbehaving/misconfigured Sync app, could be you removing the card while it is still accessed, could be some task you configured...

I would rather go with replacing the SD Card and checking if that happens again. Nowadays there are lots of cheap SD Cards which simply lose or corrupt your data with no particular reason. There have been reports of SD cards that pretend to be 4, 8, 16GB or even more but only have 256MB. If you have such a bad card and copy more than 256mb of data it will get corrupted. The same thing applies to flash drives etc.
If that doesn't help then try to restore your device to the original state and do not install all your applications at one go. Try to install the most important first and the rest in some intervals so you can find the one which may be causing problems.

thank you for your hint. Anyway I think this is not my case: I have a 32 GB SD Card with my music in it, and only images and videos are sometimes deleted.

The same thing happened to my Nexus 6P in internal storage so I doubt it has to do with cheap SD cards.


text:
Wrong Google account picture
Some applications on my phone (e.g. Maps) show a wrong picture for my user account.
Specifically, an old picture is shown instead of last one I put on my Google+ account.
How can I fix this?
I use a LG-P692 (Gelato) phone.

It might take a while for the sync to happen, what's in your Settings > Accounts & Sync, is it active? Auto Sync checked? (this is on GB)

@t0mm13b: I have a widget on the launcher with a shortcut to enable and disable the synch setting. I activate it when my WiFi is on. Then actually I changed my profile picture before buying the phone (which is my 1st Android device). So it looks like a mulfunction on the Google side. That is the reason of my question.

Your Google profile picture and your Google+ account CAN have different pictures. I'm sure most other Google apps probably use the Google profile picture. Make sure they are the same.

I found the workaround using the Google Talk app:

Open Google Talk;
Click on your user profile thumbnail;
Click on the profile picture and select Change;
Browse for the picture and select it.

After a while with Sync option on, then the updated picture is shown on other apps.

The problem with this workaround is that the uneven picture gets back when the phone is restarted...


text:
Link2SD does not select second partition
So I partitioned my 32gb micro sdhc card with USB cable, both partitions FAT32, the bigger one set as active, and when I start Link2sd it doesn't ask me to select the file system of the second partition in order to create a script there and use it as install location, even though it shows up in the storages in Link2sd menus...
How can I make it recognize the second partition, do I have to format the sd card with card reader, because I don't have one right now

So what's the question? You can't just share your problems and not ask a specific question on this site.

there, edited..

Verify init. D. Maybe not mouting on boot.

Apparently it was some bug in the app itself, I had to clink the options, go to More, and there select Recreate Scripts, then it asked me what file system was the second partition, restarted, and it worked just fine after it.
And all of that without card reader, like they are suggesting everywhere

According Link2SD page, also the second partition should be primary:

You should have two partitions on SD card and both should be primary.
  The first FAT partition is your standard SD card storage. The second partition is used for application files and can be ext2, ext3, ext4 or FAT32.

Check if the second partition (the first one can not be used to link apps) is primary and not an extended partition.

Yes, they are bot set to primary

Still nothing, tried to format it again, restarted phone, and still Link2sd does not ask me what file system is the second partition in order to set it as install location and then restart the phone

Is your phone rooted?

yes it is, but it turned out to be something else, I'll answer

The second partition has to be formatted as either ext2, ext3 or ext4, if you're on a custom ROM.


text:
Remove branded shutdown animation
Does anybody know where the shutdown animation is located in my branded phone?
I don't like this branded stuff, so I'd like to remove it.
It's been simple for the boot animation (it was where Android forums tell to look - /system/media/bootanimation.zip).
But for the shutdown animation I still have no clue... It is not located in the standard path /system/media/video/shutdown.

Information on my phone:
  - Model LG-P692
  - Android version 2.3.4 (Gingerbread)
  - Kernel version 2.6.35.10-perf+
  - Build number GRJ22
  - SW version V10e-JUN-04-2012

I've read this post where someone with an LG Connect 4G couldn't find the shutdown animation in the usual location (system > media > video > shutdown). Someone answered that it is located on the ramdisk. Perhaps this is also the case for your phone?

@THelper: how to locate and change it in the ramdisk?

I have no experience with that myself, but this page may be helpful.

IMPORTANT: Make a backup before trying any of the following steps!
Usually the animation video is stored at: /system/media/video/shutdown You can rename this to something else. Or delete all the files from there.
If it's not there, check /system/customize/resource/ or /data/local/ May be it can be found there.
In some cases shutdown animation may be handled by an APK. Check under system/app if you have a Shutdown.apk or PowerOff.apk. If yes (like in LG-P692), you also have PowerOff.odex there. Do NOT touch PowerOff.odex.
In this case you can modify the PowerOff.apk. This is how:

Copy the PowerOff.apkto your PC
Use 7zip or WinRAR or any uncompressor software you have, to open the APK. Go to res/drawable folders. You might have up to 3-4 of them like: drawable-ldpi, drawable-mdpi, drawable-hdpi, drawable-xdpi (in case of LG-P692, only drawable-mdpi will be found).
There you can see some .png or .jpg files. Replace those with any images that you want. If you don't want anything there you can use plain black images. Make sure that you put the images with the same resolution that of the original images. Replace images in all the drawable folders.
After you replace those images, make sure the APK is in the same format as it was earlier, except the images that have been changed.
Now copy back the PowerOff.apk to your phone where it was.
Power off your phone. REMOVE your battery. Power on. And now test.

See how this helps.
Tested with an LG-P692.

I have a rooted LG P500 running stock 2.3.3 (V20C). I do not have folder /system/media/video/shutdown, /system/customize/resource/ and /data/local/

Yes @SurajBajaj, I have PowerOff.apk in /system/app and it contains 16 files named power_off_001.pro to power_off_016.pro, which appears to be images for animation. It also contains shutdown.mp3 which is being played while shutdown. I am unable find a suitable app (in Windows) to open these power_off_xxx.pro files to verify them.


text:
Share to app: Remove suggested people to share with (non-rooted Android 14)
When you want to "share" a file to an app,
a line of "recommended people to share with" appears above the apps:

Problem: I often need to perform demos on my phone, and for privacy reasons I do not want my friends to appear there.
Question: How to disable this feature, meaning that only suggested apps will appear?
Or at least, how to clear them or remove them one by one?
Notes:

My phone is not rooted, Pixel with stock Android 14.
I also post screencasts several times per day, so going very fast is not a solution. Editing each screencast is not realistic either.
Introduced in 2015, this feature is called direct share, and the contacts listed come from a variety of apps, such as Messenger, LINE, Whatsapp, and many others. When I long-press a friend, the only possible action is to pin them.
On rooted phones this might have worked before Android 10: https://github.com/stefansundin/android-disable-direct-share
Apparently on Samsung and LG, direct share can be disabled (unfortunately Pixel has no such setting):

Apparently, Android OS doesn't provide a way to do it. However, for privacy reasons, the better option is to create another 'Demo' user account on your phone specifically for recording screencasts. That's what I ended up doing.

My solution for now: Pin some official accounts until the row is full and your friends have no place to appear.
I pinned a phone utility, a delivery service that everyone uses, a government account, etc. None of these are privacy-sensitive. I never actually send anything to them.
I am still looking for better solutions that would completely remove that bar, giving some screen space left.

Apparently on Samsung and LG, direct share can be disabled

I confirm it's possible. On Samsung Galaxy S23 Ultra with Android 13 and One UI 5.1:

I am not a developer but what I could gather that user's can't remove contacts added to share menu, while developers seem to be getting better and smarter ways to do it (see links at end of the answer)

Way back, there used to be Xposed modules, rooted apps and other Non-rooted apps but they all seem to be have vanished except sharedr with a caveat

Sharedr will stop working as default share menu on Android 12.
Find out more here: https://sharedr.rejh.nl/#notice

Google has decided to block 3rd party share replacement apps in Android 12 from responding to the share event... (My Note: That's probably why all those apps including Non-rooted ones vanished!)

After seeing your question and this being the only app that is available, I decided to try it on Pixel 6a, Android 13. In short:

It works by showing only list of suggested apps and doesn't show any contacts

Takes some efforts to set it up but not difficult

How to set it up

Don't get intimidated by the start-up screen, it's only telling you that it won't work as default share app

Say from Chrome share menu tap on the ⚫⚫⚫ more on the top panel which has apps while the bottom panel has actions like copy  link, long screenshot etc

and scroll through the list of apps , find sharedr, long press and pin Sharedr

It will now appear like this

Click on the sharedr icon and it will reveal all aps that can receive shared content. Tap on any icon to hide or reset from the 3dots menu

All set, no contacts shown, only apps shown!

Google pleasantly surprises (rarely)
On Google photos ver 6.53, I am allowed to remove contacts!

References that tell me users can't remove share options:

Provide Direct Share targets

Direct Share to an Android app

Google Photos may soon adopt the Android 14 share sheet

Let us continue this discussion in chat.


text:
How to root a Huawei GL07S phone?
The STREAM X GL07S is a mobile phone manufactured by Huawei.
It is similar (but different) to the Huawei Ascend P2.
QUESTION: How to root the Huawei STREAM X GL07S?

Find a Linux or Windows computer
Download and unzip http://gl07s.nakayuki.net/public/emobile-gl07s-root.zip
Install the Android SDK tools, in particular the commands adb and fastboot should be available (fastboot for Windows is provided in the ZIP).
Connect your GLS07S via a USB cable
Run sudo ./root.sh on Linux, or root.bat on Windows
Three lines of text in Japanese appear. Press Enter
White noise appears on the screen, just wait patiently
One more line of text in Japanese appears. Press Enter
When the command prompt returns, you're done

(Translated from the README in the ZIP above)
Before step 5 I had to add the following line as line 2 of root.sh because my Android SDK is installed at the user level on my Linux computer, you should not need it if you install the Android SDK as admin.
export PATH="${PATH}:/home/nico/android-sdk/tools:/home/nico/android-sdk/platform-tools"

Be patient. The execution lasts for a few minutes, with this output (press Enter when it says 続行するにはエンターを押してください):
$ sudo ./root.sh
adb,fastbootコマンドが実行できるようインストールしてください。このスクリプトはUSBにアクセスできる権限で実行してください。
電源を入れた状態で端末をUSBデバッグを有効にしてパソコンに接続してください。
上記の手順を行った後、続行するにはエンターを押してください。

< waiting for device >
sending 'cust' (233697 KB)...
OKAY [  7.333s]
writing 'cust'...
OKAY [ 15.655s]
finished. total time: 23.002s
sending 'boot' (5298 KB)...
OKAY [  0.165s]
writing 'boot'...
OKAY [  0.824s]
finished. total time: 0.989s
sending 'system' (900228 KB)...
OKAY [ 28.112s]
writing 'system'...
OKAY [ 63.860s]
finished. total time: 91.972s
続行するにはエンターを押してください

rebooting...

finished. total time: 0.201s
$


text:
ARM6 or ARM6 VFP?
I wanted to know if my Huawei IDEOS u8150 is ARMv6 or ARMv6 VFP. One thing I know is that it is ARMv6 but is it VFP? Any good ways to find out? Huawei documentation/site/forums doesn't say anything about this. I need to know because in the Android Market for video players, there are different versions for different processor types like ARM6 and ARM6 VFP versions.

Additionally, It'd be great if anyone can suggest me a working/tested good video player on my handset that plays things smoothly.

UPDATE: Someone on other forums told me that my CPU is Qualcomm MSM7201A CPU, which is just ARMv6 without VFP (FPU). So now I wanted to know the best video player app that is fastest on a huawei ideos u8150.. if anyone's got this handset and tried video apps, i'd be thankful if you could share your experiences

Enable USB Debugging and download the SDK Tools.  Then it's super easy:
$ adb shell cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 162.54
Features        : swp half thumb fastmult vfp edsp thumbee neon
...

Note that on my device, it's ARMv7, and has (among other features) vfp support.

thanks, though it still doesn't list out what manufacturer/model it is (like Qualcomm etc), this is close to what i've wanted. :)

Is the video player you're referring to is RockPlayer? There is an app Know CPU for RockPlayer that lets you check that.

I know about that app.., interestingly, that cpu tool is not compatible with my phone.. hence I cant download it

I don't know of a way to differentiate between various versions of ARMv6 processors, but I can recommend a good media player. Try MoboPlayer on your Huawei u8150 and see if it plays your media. They also have various codec packages for better compatibility, but again I have no idea to tell which specific type is in a given handset.

I tried MoboPlayer with both VFP and non VFP ARMv6 codecs both of them and it failed to run videos smoothly.. I get around 5 fps on a normal AVI movie (divx) I am looking for other alternatives that are easy on my ARMv6 processor

Sounds like it's using software decoding.  Have you tried forcing the hardware decoding via settings in either RockPlayer or MoboPlayer?

Yes I've tried HW decoding.. it says it doesn't support that and switches to software decoding.. :/


text:
Tethering not working on rooted phone (both WiFi and USB), free third-party apps also fail
I recently rooted my Huawei GL07S and switched to an operator which explicitly allows tethering (I inserted the new SIM card into the GL07S).
When I go to Settings>Wireless&Networks>Tethering&Pocket WiFi I get this screen:

"Pocket WiFi" is a term used by my previous operator to describe tethering, I suspect them of having modified it to work only on their network. I can't use CyanogenMod/similar as they don't support the GL07S, which is a rare phone.
Default USB Tethering
When I press "USB tethering", the white circle becomes green with a check, and Pocket WiFi active or Tethering appears in the notification bar, but the connected Ubuntu does not see any connection:

Default WiFi Tethering
Alternatively, when I press "Pocket WiFi", the item becomes grey, the caption becomes Turning Wi-Fi on…, and it stays like this forever:

Meanwhile adb logcat keeps outputting things like forever (longer log):
E/WifiStateMachine(  341): DefaultState: cannot get Soft AP current connected stations list
D/WifiService(  341): getApLinkedStaList
I/TetherSettings(17288): set PROPERTY_USBTETHERING_ON: false
I/WifiApEnabler(17288): set iswifihotspoton = true

To get it back from its grey state, the only solution is to restart the phone.
Barnacle Wifi Tether
When I press Start, I get:

Open Garden WiFi Tethering
When I press Start Open Garden Tethering I get this crash:

... and logcat says:
D/TETHER -> TetherApplication( 4591): Reporting stats: {fbon=false, ffox=false, nflt=true, fbok=0, root=true, phon=true, fbau=false, aid=e2a4f1ff707f9812, inst=1433847285, ertm=false, coac=0, sfap=true, c2dm=false, aver=4.1.2, side=1, mno=NTT DOCOMO, blth=true, setu=default, tver=47, rssc=0, bdwn=0, devi=default, asdk=16, imei=869065010878620, fbcr=0, pkg=og.android.tether, dtyp=generic, loc=35.6653574,139.733107, fbco=0, widg=0, fber=0, stat=1, comc=0, bup=0, mfr=HUAWEI, idrv=wext, temp=360, bin=true, uuid=E2A4F1FF-707F-9812-021X-XR2136017743, actl=true, tpow=true, mdl=GL07S}
D/TETHER -> TetherService( 4591): Service started: true, state: 1
D/TETHER -> TetherApplication( 4591): onlyEncryptionOrNothingFailed()
E/AndroidRuntime( 4591):        at og.android.tether.TetherApplication.displayToastMessage(TetherApplication.java:1341)
E/AndroidRuntime( 4591):        at og.android.tether.TetherApplication.readLogfile(TetherApplication.java:1421)
E/AndroidRuntime( 4591):        at og.android.tether.TetherApplication.onlyEncryptionOrNothingFailed(TetherApplication.java:1438)
E/AndroidRuntime( 4591):        at og.android.tether.TetherService$1.run(TetherService.java:256)
D/TETHER -> ServiceReceiver( 4591): onReceive:Intent { act=og.android.tether.intent.STATE flg=0x10 cmp=og.android.tether/.TetherServiceReceiver (has extras) } state:1
D/TETHER -> TetherApplication( 4591): Reporting of stats complete
W/ActivityManager(  349): Scheduling restart of crashed service og.android.tether/.TetherService in 5000ms

[ClockworkMod][8]
ClockworkMod is the only tethering app that works reliably (over USB). It is not free, though, so I would like to make it work with the built-in solution or with the open source Barnacle.
EasyTether
It has worked the first time I tried it. Since then, no way to use it anymore, it always says cannot claim USB interface: Device or resource busy.
FoxFi
When I push Activate WiFi Hotspot, it says WiFi Hotspot Ready, I can connect to the WiFi network from Ubuntu, but unfortunately all HTTP and HTTPS requests fail:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.43.1 icmp_seq=1 Destination Net Unreachable
Actually, the phone itself also loses Internet connectivity:

Question
What is going wrong?
How can I use Internet on my Ubuntu using my phone's LTE data connection? (preferably without having to install a computer-side agent)

Do you have android sdk for linux installed already (from the looks of things you were using  linux, but since you said you are not keen on anything that installs extra stuff on your PC) I had to put my solution on hold to confirm first?

How about trying my solution here: https://android.stackexchange.com/questions/250609/usb-tether-to-router-and-then-connect-to-the-wifi-of-the-router-no-longer-possib/252641#252641

It always says cannot claim USB interface: Device or resource busy

This is because you have adb running in your system. ADB opens USB interface so no other app can access it. Stop adb either with killall adb or using adb kill-server (assuming the adb binary is in your PATH).

I restarted my PC, ran adb kill-server and enabled USB tethering: The Ethernet connection still does not appear on the PC :-/

I belive thats because it requires certain drivers to be installed in order to work and most probably isnt supported with Linux

It is supported in Linux, I have connected to my phone network many many times, not only using WiFi tether but also Bluetooth and USB. However, after rooting I started having issues.


text:
OsmAnd: Show only POIs from my OBF file
I have created an OBF file (OsmAnd POIs), and would like to display its POIs.
PROBLEM: When I enable POI display, tons of orange circles make the map unreadable. 99.99% of these POIs are not from my OBF file, they are from the base OSM map.

QUESTION: How can I show only the POIs from my OBF file?
I can modify the OBF file if needed, for instance adding attributes or changing POI type if needed.
In the layers settings I see a "Create POI filter" dialog with a "User defined" item, might it be part of the solution?

Quickly skimming OsmAnd~ on my phone I believe it is not possible in current version (1.9.x) to filter displayed POI by their source. You'd have to tag them so that you can apply a custom filter or you have to disable other sources in settings.


text:
How to root Nexus 5
How to root the Nexus 5?
What precautions to take? I have never tried it before.
Also suggest me what type of back up I should perform before rooting.

Just follow the instructions here : Rooting Nexus 5
Next time do search on xda for any custom rom, rooting related information!

I recommend you take a look into our fine rooting tag-wiki. Once read, start following some of its links. You will find someone already asked your question.

@AadiDroid: Broken link. How about providing an answer summarizing the forum thread you wanted to link to, or better, based on more recent information?

@Izzy: That question looks like it asks how to root, but it actually asks for the behind-the-scene concepts (what normal rooters don't see nor need). As such, the answer is not a tutorial but a list of facts.

@AadiDroid Seems your link got broken. Just goes to a general N5 list, no rooting instructions on that page. See what I've meant back then when telling you to include the essentials? ;)

Easy Way to Root Nexus 5
If you want to get root access on your Nexus 5 with simple steps, refer to the one click solution - iRoot. It offers two versions for rooting, which means you can root your Nexus 5 without PC as well. Before using iRoot to root your phone, unlock the bootloader on Nexus 5 at first.
Remember that unlocking the bootloader will factory reset your Nexus 5. So please back up your data in your Nexus 5 before doing this.
After unlocking the bootloader on your device, move to the steps on how to root Nexus 5. Here we take the iRoot PC version for example:
Step 1. Make sure your phone has USB Debugging Mode enabled in Developer Options. If not, please go to Settings -> About Phone and tap Build Number until the notification that Developer Options have been enabled pops up. Then back out a step and you can see it at the bottom of your Settings menu.
Step 2. Make sure you have installed Nexus 5 USB Drivers on your PC.
Step 3. Ensure your Nexus 5 battery is charged to at least 85%.
Step 4. Download iRoot PC version on your computer. Connect your Nexus 5 to your PC.
Step 5. iRoot wll detect your device automatically. After detecting, click “Root”.
Step 6. Now your Nexus 5 should be rooted already.
Note: You can also root Nexus 5 without computer with iRoot apk. Just download the apk version directly on your Nexus 5. Or download on your PC, and drag it into your Nexus 5.


text:
"No emoji found" in Google Japanese Input
I am using Google Japanese Input keyboard, and I often want to post a rare emoji such as  or .
The search bar looks like the perfect place to search for an emoji, but unfortunately it fails every time:

It fails even on the simplest requests, such as "smile" or "sad".
It does not work in Japanese either:

I have changed phones, and changed OS (Nexus default, CyanogenMod, LineageOS, Samsung default) many times: The problem has always been present. So I guess it is not a bug, but rather a problem of me not using it correctly.
How to use that feature correctly?

Note that Gboard with Japanese keyboard can search emoticon with katakana and kanji, but still not with English (it only interprets emoticon in current keyboard language)

I found the answer 10 minutes after posting the question, that's silly.
The trick is, you must search in hiragana. Even if your locale is English (like in my case).
For instance, search for ねこ instead of cat or 猫:

Most users type the hiragana before getting the kanji anyway, so it kind of makes sense if you think about it afterwards.


text:
ADB shell gets "stuck" connecting to Samsung S10, must open other ADB shell to "unstuck" it
On Ubuntu, I often use adb shell and other operations such as adb push and adb pull over a USB cable.
On Nexus 5 it always worked perfectly. But since I switched to Samsung S10e I have this very surprising problem:

I open a terminal on my laptop, run adb shell.
I type normally in ADB shell (ls, typing enter, etc), the expected output appears.
As I continue typing, suddenly my typed character is not shown, as if the USB connection was stuck.
I have found a strange workaround: When that happens, I open another terminal and run adb shell in it.
Immediately, that "unstucks" the first terminal, and the "stucked" characters appear.
Now I can use the first terminal again, until it gets stuck again.
When that happens, I type a few characters in the second terminal, and that solves the problem again.
Inevitably as I repeat the trick several times, the second terminal gets stuck too.
When that happens, I open a third terminal, and that "unstucks" the first and second terminals.
Etc. Sometime I need to open a fourth terminal.

This also happens with other ADB commands.
Question: How to investigate the problem? Is there any Android setting that could mitigate or even solve the problem?

only when battery is 100% or always?

@alecxs: Always.

Hm.. i have this when connected adb over wifi when device goes to sleep

i guess we can assume the reason is related to this? https://android.stackexchange.com/questions/216103

@alecxs: The moisture problem started 16 days ago. On the opposite, the present problem has existed since the day I bought the phone (several months ago).

any news on this? I'm having the same problem with a Galaxy S9


text:
How to block LINE stamp spam
In the Android app LINE, since yesterday, I started receiving spam messages like this one (below the advertisment):

The spammer (with the name LINEスタンプ in this case, can also be LINEで応募) appears in my messages list despite not being my friend.
I have deleted the conversation, but more messages have kept coming yesterday and today.
Is there any way to block or report the spammer?

I would rather not open the message.
The long-press menu does not show any block option, only "Delete" which I tried already.

The LINEスタンプ account is automatically added (with your permission nor knowledge) to your friends (in the Official accounts tab) when you download any stamp collection:

Long-press it and select Block:

Then delete the conversation. It should not reappear this time.

The same idea applies for groups that turned spammy: Rather than tapping Hide or Delete in Chats, tap Leave in Home>Groups.


text:
Sign out from remote Android's Gmail
Last week I lost my phone, so I borrowed a phone from a friend.
The phone already add the Gmail app with my friend's Gmail account (a Gmail account that my friend does not care much about so there was no privacy issue). I added my Gmail account into the app so that I could check my emails.
Problem: I had to take a plane in a rush and forgot to sign out from my Google account on that phone.
Question: How do I sign out myself?

I could just ask my friend, but I would prefer something more reliable (and that does not trigger their curiosity).
On a desktop computer I clicked "Details" then "Sign out all other Gmail web sessions", but it only says "web" so that probably does not sign out mobile sessions? By the way, my friend's device does not show up in this list.
On a desktop computer I changed my password, but that did not sign me out of Gmail on my own phone (yes I found it back!), so I guess that does not sign me out of Gmail on my friend's phone either?

At https://myaccount.google.com/security "Your devices" still shows my friend's phone (screenshot on Firefox 66.0.3 JavaScript enabled addons disabled):

The date and time shown in the screenshot above is well after I left. The "Lost this device?" page only gives useless advice such as "Try calling your phone" or "Reach out to your carrier", with no button to remove that session.

You can manage all devices on the Device Activity web page:

Expand the entry of your lost device and you will get a button for "Remove account access."

That's precisely the entry shown by my question's screenshot. As you can see, I get no "Remove account access" button.

@Nicolas I added a screenshot how it looks in my browser. I have the REMOVE button for ever Android device. May be it is a web browser problem? The screenshot is from latest Firefox with JavaScript enabled, no plugins/addons installed. Or it means that the account was already removed from the device.


text:
Multiple User Accounts on Galaxy S10/S10+/S10e
Samsung has disabled the Multiple User Accounts feature on the Galaxy S10.
How to set up multiple accounts? I mean the ability to create a separate Android home with their own app settings.
I want to be able to lend the phone to a kid or friend for a day without worrying about them messing with my files or banking accounts.

The clean way would be to install a custom ROM that supports multiple user accounts. Activating this feature using root may be possible however you don't know exactly what Samsung has removed and what not. Especially missing GUI elements regarding multiple user accounts can't just be enabled if they had been removed from the ROM.

I solved this problem on S10e using this guide.

Root your S10. That step is required for that procedure.

Install BuildProp Editor (or equivalent) and run it, grant it root permission

Touch the pen icon at the top

Scroll to the very bottom of the text file, and add the following two lines:
fw.max_users=3
fw.show_multiuserui=1

Touch "Save and exit"

Check that the lines are correct. No extra spaces, all characters written exactly as below:

Reboot

In Settings, search for "Users". You can now add new users:

The user addition UI is a bit buggy, screens randomly go forward/back. But just be patient, sometimes try a step again, and you should be able to get the new user created.
Note: People who really don't want to root their device for some reason can try this procedure to edit build.prop: https://beebom.com/how-edit-build-prop-without-root/

Do you know of an easy way to switch users?  Currently I need to go to the settings->accounts->users->user->switch which is lots of steps to just switch.  The icon isn't in the pulldown


text:
Restore LINE chat from Google Drive
I always back up all line chats regularly to google drive. When line is re-installed I tried to restore the chat but it says "No chat history backup found". Does anyone know how to deal with this?