text:
Since which Android version is exFat supported?
Which Android version supports exFat, if at all? The web seems unclear about that.
Thanks!

It seems that, according to plugable - Adding MicroSD and USB Storage Support to Android Devices, it's been supported since KitKat (whether using apps or not) but (as always) it's down to the OEM's discretion if a device can run it.

The several USB OTG apps for Android include various levels of support for different disk formats. Recent Android versions typically support FAT and EXT3/4 out of the box, and may support read-only NTFS mode on some devices. NTFS write, HFS+, or exFAT will require other adding driver support for these additional formats, and may not be supported by all applications.
[...]
On our example Nexus 5 with root access on stock Android 4.4.2, using StickMount (free to try) is easy, and enables access to FAT, exFAT, and NTFS formatted storage, even when all three exist on the same storage device. The Nexus 5 supports USB OTG Host mode without any extra apps or work, as confirmed by USB Host Diagnostics.

Chances are, if a device supports SD cards bigger than 32GB, it supports SDXC, which has an exFAT filesystem

Type of card
Max Capacity
File System
Backwards Compatibility

SD
2GB
FAT32
SD

SDHC
32GB
FAT32
SD, SDHC

SDXC
2TB
exFAT
SD, SDHC, SDXC

Table from Android Authority - High capacity microSD cards and Android

That makes sense, also the OEM's omission of support if a device does not have an SD card reader.

I have found my Pixel in 2018 on Android 8.1 does not support exFat.

From this post it indicates Samsung devices are compatible.

@Adam Hurwitz hi there! I'll have to invite you to read the post again; I noted that it's OEM's discretion on whether it's supported or not. Also, your links is about NTFS while this question is about ExFat.

Thanks @DanBrown. I was considering NTFS as a potential alternative to exFAT which makes it relative above. After further research, exFAT seems to make the most sense for compatibility across Linux, Mac, Windows, and Android. Here are the steps I used to implement exFAT read/write capability on Android.

As of today (03-Apr-2020), exFAT is not yet officially supported in AOSP.
exFAT - a filesystem developed by Microsoft - was (is?) not open-source, so it was never a part of Linux (and hence Android) kernel over patent issues. However a FUSE-based driver (exFAT-FUSE) has been around since long. But it's not a proper in-kernel driver, so lags in performance. Also there are properly licensed commercial-grade and for home users exFAT implementations from authorized Microsoft partners like Tuxera and Paragon.
Following a leaked release of exFAT filesystem source code, Samsung properly open-sources an exFAT driver back in 2013. It's available as exFAT-nofuse Linux kernel module. In 2018 another exFAT driver was released as part of Samsung Galaxy S8+ source. It's available as exFAT-Linux out-of-tree kernel module.
However none of the above drivers were ever merged to mainline Linux tree because of license issues. The other answer correctly states that it's up to OEM's discretion if they include exFAT driver in their kernel (and executables in userspace) after having an agreement with Microsoft or their partners. But almost every custom ROM includes one or more of the above drivers. exFAT-FUSE support is also available as a Magisk module: vold-posix which can be used almost with any ROM (at least after some modifications). With Android 9, a very basic support was also added to AOSP:

"Android doesn't natively support exFAT, but we're at least willing to try mounting an exFAT filesystem if we detect the Linux kernel supports it, and if helper binaries are present."

There came a big news from MS in 2019:

"Microsoft ♥ Linux – we say that a lot, and we mean it! Today we’re pleased to announce that Microsoft is supporting the addition of Microsoft’s exFAT technology to the Linux kernel."

And with that a community user (who already developed an exFAT driver for Linux based on 2013 release) made the initial commits to staging (unofficial, going to be part of mainline kernel) tree. After getting into "real" shape, it's being merged to Linux kernel v5.7-rc1 (test release). Hopefully exFAT is going to be a part of future Linux/Android kernel stable/LTS releases. It can possibly be backported to current Android LTS releases (3.18 or 4.*) but there can be license issues, I'm not sure of, as Paragon states: "Microsoft’s statement is related to future versions of the Linux Kernel."

As this article explains, exFAT has been natively supported since Android 13:
Why not earlier?

In August of 2019, Microsoft published the technical specification for exFAT and endorsed its addition to the Linux kernel. While Microsoft still holds patents on exFAT, its announcement means that the thousands of members of the free-to-join Open Invention Network — of which Microsoft is a part of — can freely use the technology in their Linux-based products as it’s covered under the OIN’s Linux System definition.
Immediately following Microsoft’s announcement, an old version of Samsung’s exFAT Linux driver that was in legal limbo for years was submitted to the staging area of Linux 5.4. Many kernel maintainers were unhappy with the code quality of the old driver, however, so several alternative implementations started to pop up, one of which was from Paragon Software. Eventually, though, the Linux kernel community settled on a newer exFAT driver developed by Samsung, the same one they’ve been shipping on their own products already. Samsung’s implementation of Microsoft’s exFAT officially landed in Linux 5.7.

How?

With a Microsoft-endorsed exFAT driver finally available in the upstream Linux kernel, shipping exFAT support in Android became a lot less complicated for Google and OEMs. Since an Android Common Kernel fork of Linux kernel 5.7 doesn’t exist, the first ACK branch to include the new exFAT driver was based on Linux 5.10, hence the line mentioned at the beginning of the article about exFAT being supported in kernel 5.10 and later. CONFIG_EXFAT_FS has been set in GKI builds for over a year now, including kernels based on the android12-5.10 branch, which is why the kernel on my Pixel 6 Pro running Android 12L reports support for exFAT. However, there’s one missing piece of the puzzle to actually get Android to mount exFAT drives, and it involves Vold.
Vold is short for “volume daemon”, and it’s the service that handles the mounting and unmounting of storage media. Vold actually added basic support for exFAT all the way back in early 2018, provided it detects that the kernel supports it and “helper binaries” are present. Those “helper binaries” are mkfs.exfat and fsck.exfat, tools that respectively build and check the consistency of exFAT file systems. They’re included as part of exfatprogs, a set of userspace utilities for creating, fixing, and debugging exFAT file systems. If those helper binaries aren’t detected, then the file system check will fail, and the volume won’t be mounted.

Why not A12?

If you haven’t guessed by now, those helper binaries aren’t present in any stable Android 12L builds for the Pixel 6 Pro, but they are present in the Android 13 beta builds.

The Android Platform Manifest, which Google’s repo tool uses to find the various repositories in AOSP when checking out a specific branch, added external/exfatprogs to the default manifest in the AOSP master branch last year. This means that anyone checking out the AOSP master branch during their build process will have included the necessary helper binaries to pass vold’s file system check for exFAT. The default manifest in the android-12.1.0_r8 branch, however, does not pull external/exfatprogs, so those builds will lack the helper binaries.


text:
After reinstalling Android from stock images, why do updates complain about modified /system files?
After discovering the hard way that rooting modifying /system looking at /system the wrong way breaks updates, I've decided to drop all of the power-user stuff and just go the sanctioned route—no custom recovery system or rooting or anything; just pure, stock Android. To that end, I set about performing a factory reset [unrooting], so to speak.
These are the steps I've followed:

Acquire the platform-tools for your computer's operating system. Extract them and add the resulting directory to your $PATH.
Download a stock-Android image, making sure that the model identifier matches that of your device, but that the version is not the latest (this is necessary for step 8). Verify the image using the hash included in the table, then extract it. Fire up a shell if you haven't already, and change to the extracted directory.
Unlock the bootloader (fastboot oem unlock).
Reinstall Android (./flash-all.sh). Be sure to catch the device before the last reboot by holding down the boot-to-recovery key combination as soon as the script prints rebooting... after writing the cache image (this saves you having to reboot again for the next step).
Lock the bootloader (fastboot oem lock).
Reboot. Wait for Android to…do whatever it does when you boot a new version for the first time.
Go through the initial device setup. (I personally connect to a Wi-Fi network, and then skip everything else to save a bit more time).
Check for, download, and install an Android OS update. Wait some more while that happens.
Observe the following on the device's screen, with the text Error! in white beneath it:

Bring up the recovery menu and choose View recovery logs, then /cache/recovery/last_log. Scroll to the bottom and look for an indication of why the update failed. Transcribe the most relevant lines, along with the version and build ID of the image from step 2.

My device is a Nexus 5, purchased in November of 2013 from the Play Store. So far, I've tried this using Android 6.0.0/MRA58K and Android 5.1.1/LMY48M, which produced the following in the recovery logs:
6.0.0/MRA58K:
failed to stat "/cache/saved.file": No such file or directory
script aborted: "/system/priv-app/SetupWizard/oat/arm/SetupWizard.odex" has unexpected contents.

5.1.1/LMY48M:
Remounting and verifying system partition files...
script aborted: assert failed: sha1_check(read_file("/system/fonts/NotoSansTC-Regular.otf"), some_hash)

In both cases, the problem seems to be a file under /system with contents that aren't equal to the ones the update installer is expecting. This is exceptionally frustrating, given that my procedure specifically calls for official stock-Android images, retrieved from none other than Google's website and verified using the hashes they publish (and yes, I make sure to use TLS).
Did I miss a step? What's going wrong here? And how do I get back onto the blessed path and be once again deemed worthy to receive the long-sought-after over-the-air updates?

What was the vague error? Downloads from the Google android themselves factory images: https://developers.google.com/android/nexus/images?hl=en android current android SDK: http://developer.android.com/sdk/installing/index.html

@BoLawson The error is the linked picture of the Android mascot, with the literal text Error! below it. And yes, I got the image from the page you linked.

Well…okay. Any insights as to why OTA updates still aren't working?

It just happens sometimes but it could just be a corrupted download. You could check the recovery logs in recovery. It should be the last option to see what they state.  It might have the last_log within it. /cache/recovery/last_log

@BoLawson Hmmmm…two different things jump out at me: failed to stat "/cache/saved.file": No such file or directory and script aborted: "/system/priv-app/SetupWizard/oat/arm/SetupWizard.odex" has unexpected contents..

Your still not stock flash the factory image from Google again.

@BoLawson No? What am I flashing, then, and where do I get the factory image?

Can you adb sideload the OTA update package in recovery? What are the OTA updates for (which version to which version)? You can search for xxx OTA zip on Google to get the zip file to sideload, as long as the xxx represents the correct corresponding OTA. It could indeed be a bad download of the OTA package itself, and this should help clarify the problem.

I don't have an explanation for you, but try more versions in general, and build MRA58N in particular.

I have absolutely no idea why this worked. If I had to guess, I'd guess that the two images I originally tried installing from had bad /system files, but a mistake like that seems extraordinarily unlikely.

Reverting back to original rom requires a full format as partitions as well as their attributes are usually different on different ROMs. This will solve your problem with the advent of a possible change in the device's info such as IMEI or similar. Another setback is the reduction in memory from formatting, especially if your partitions contained a lot of user data during the format.
Suggestion: repeat your steps again, but this time make sure to mount your /system partition and format it as well, unmount it after (it should automatically unmount).
Now. Let the flashing begin...

I really don't think this is it, given that each script indicated every time I ran them that they were erasing 'system', then downloading 'system' and writing 'system'.

Also…what? I've never heard of trying to format a partition while it was mounted. And why would I lose storage space if there was a lot of user data before a format?

source: Stack Exchange

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

sort: votes


text:
Black screen after Flashed ROM build from AOSP source
I everyone. I have compiled Android 4.3.1 for my device (Samsung Galaxy TAB 2 7.0). After flashed the compiled zip file my tablet stuck on samsung logo.
After analyzed the Logcat i have noticed this part :
I/SurfaceFlinger(  109): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
D/libEGL  (  109): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
D/libEGL  (  109): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
D/libEGL  (  109): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
F/libc    (  109): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 136

I am not sure but i think my problem is linked to SurfaceFlinger. My problem is SurfaceFlinger can someone tell me how to fix it ?
PS : In case someone ask for it, here's my full logcat : http://charly1811.ga/logcats/logcat.txt or https://gist.github.com/charly1811/7488508/raw/60cc1b4795159efb3a4daaf2c05d437d73e7aeac/logcat
Thanks in Advance

Probably the kernel is missing the kernel GPU driver needed by the userspace GPU driver. Did you remember to build and flash a kernel as well as a system image?

The GPU Driver is there (/system/lib/modules/pvrsrvkm_sgx540_120.ko) . I have flashed the kernel image. After flashed zip files . I used heimdall to flash *img files generated during the build

Is it loaded as well? lsmod will tell you.

yes . The output of lsmod is: pvrsrvkm_sgx540_120 394802 0 - Live 0x00000000

Trying to follow your link, I couldn't reach the server "charly1811.ga."

@dan the link works here

If you can't see the logcat you can get it from here https://gist.github.com/charly1811/7488508/raw/60cc1b4795159efb3a4daaf2c05d437d73e7aeac/logcat

anyone can help ?

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


text:
How can I safely lock my screen without password?
I have bought a new android phone (Samsung GT-S7710) with a new android system. It has a lot of useful features and lots of flaws caused by too hasty development.
One of these flaws is the lock screen. On my android version (4.1.2), the lock screen is unlocked by sliding anywhere to any direction. This often happens in my pocket and causes lot of problems (contacts getting deleted, random calls and so on).

I still don't understand what was the programmer responsible for that thinking about. It's just as ridiculous as having a keyboard phone that says "Press any key to unlock!".
Of course, I could set up a password. The thing is, that my previous phone has returned to me, because there was no password and the man who found it could contact my relatives.
I actually see no reason to have a password in my phone anyway. I often borrow it to other people and password is just annoying.
So is there some lock-screen patch? Can I install some application that handles screen locking right? Can Android be updated to a fixed version? I don't want to root my phone though.
For those who don't get it from the above: How can I lock my screen so that it won't unlock in my pocket easily? I'm looking for a complete solution.
Oh and also, the top bar is not locked at all. It keeps turning on Mobile data and wasting my money (for me, mobile data is an expensive thing I want always turned off)

I'm confused at what's wrong here... This method is exactly how Android lock screens work, cross-device... My LG G3 is just the same - you swipe any direction.  What are you trying to accomplish with "locking"?  And as a second comment, the "top bar" you're referencing... Do you mean the notification bar?  It's not using data...  On all phones you can pull down the notification bar if there's no password on the lock screen.

Well, I'm complaining that it unlocks in my pocket all the time. That's total bullshit. It happens very often to me. I talked to other users about it and they all just use the password as a workaround.

Is my keyboard phone analogy so hard to understand?

Chill out, bro. I understand. The best you can do is download a lock screen replacement, and see if there's a method in any of those apps have a method you'd prefer... What is ideal for you? Do you have a method in mind that doesn't require a password?

To give you a proper solution, it'd be great if you could say exactly what you want..

I have no specific idea. I'm not the one who's paid to develop a practical mobile OS. I just want something that doesn't take any actions while in my pocket - like turning on mobile data and wasting my money (I have a very bad tarif).  I really wonder what you don't understand on my question.

Being rude isn't going to help at all, bud. I completely understand. However, to properly assist you in finding a lock screen replacement, we need to know what you want. For example, you could say "I like how the iPhone unlocks; requiring a swipe in a specific row." And on that topic: requests for a specific app are off topic here. Simply searching in Google Play for "lock screen" will return a plethora of lock screen replacements. You have to understand that this is how Android works - it's not a bug, and not improper programming. Therefore, there is no "patch" or "fixed version."

Two options: search for Go Locker and install that. Or turn your screen away from your leg while in your pocket.

If you want your phone to NOT turn on in your pocket but still be able to have someone find your phone and identify it as yours, here's what I recommend.

Set your phone background message (the text that can display on your phone lock screen once enabled or edited) to your name and email address. Anyone who finds your phone can then contact you if they don't just want to steal it.
Enable a pass code, pattern lock, or password on your phone.

You will never be able to disable the emergency call option from your lock screen (unless you install a custom ROM), but this should help cut down on the butt dials and other issues.

So there is no safe lock without the password? Did Android developers at least explain, why they don't use the slide lock (which never failed me) any more?


text:
Why does Media Storage consume so much memory and how to clear it for good?
Android is generaly horrible when it comes to managing or saving disk space. But recently, new problem appeared, which is the Media Storage system application which fills my internal memory (disk memory) with 350MB of data.
I deleted the data using Application manager, but the data reappears. Why does it happen and how to stop it? I saw no negative side effects of deleting Media storage data.

Memory (RAM) or storage space? Media Storage is the database of all your "media", meaning pictures, video, music, etc... The more files you have to index, the larger the storage space. Android will not work properly without this database.

I specifically mentioned disk space in the first sentence of my question. I do not even have 350 MB of media. I did not ask anyone for any media indexing.

Perhaps it is just semantics, but memory is synonymous with RAM in the US and storage is different, memory and storage are uniquely different. It is an essential service to the core of Android but your storage use is not normal... I have hundreds, maybe thousands, of pictures and songs on my device and Media Storage uses 3.41MB of storage space.  Regardless, have you just cleared the storage on the Media Storage and External Storage apps and rebooted (they are kind of linked in the OS)?

Yes, I cleared the data storage and rebooted the phone. But this is the third time I have to do this, so I came here for permanent solution.

If this has been an ongoing issue in a 4 year old device, I would suggest first that you perform a full factory reset, and if the problem continues it is likely an issue in the ROM. Due to it's age the chances of getting an update from Samsung are pretty much non-existent, so your "fix" might be to move to a custom ROM. The development community on for the SGS4 is (or was) quite robust.

Thanks for advice. I really miss the time when phones became old when they physically stopped working.

This file apparently controls/manages what apps and files are believed to be on the phone.  Here is why I think that.
1. The galaxy Prime (don't laugh) was constantly "full" where it couldn't update anything, couldnt accept texts, etc.. on and on.
Attempting to Uninstall Facebook? done daily, only to look again and see it still installed.
Try to delete or move Pictures?  nope - "Failed to move" "Failed to delete" file.  Pics and Videos remain no matter what you do.
Final attempt? "Clear data" on the Media Storage file and Boom!!
Finally, the pictures, videos, we had tried to move or delete, and Facebook uninstall FINALLY ARE REMOVED!!
And space is back, texts are flowing, no more complaining of space etc..
I am guessing this file gets to size and point where it cannot be efficiently managed by the phone/android.

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


text:
What keyword will help me search for music player app that plays by folders?
I used to own a galaxy s3, and the default music player had that feature. Then I upgrade to a nexus 5, and it seems like it's missing it.
I'm huge fan of organizing my music by folders on my phone's hard drive, so I need an app that can do that, or figure out how google music app does it.
How can I search for these kinds of apps?

@Izzy thanks, question rephrased. Feel free to reiterate your comment as an answer.

Brilliant re-phrasing – hats off! Promptly posted my answer, as requested :) Now going to revoke my close vote (find me ashamed ;) Good hunting!

A good keyword combination is already given by your question: a music player which should play folder-wise should be found using the keywords "folder play", "folder player", and similar combinations. In fact, there are even some players named exactly such, e.g. Music Folder Player, Folder Player, and many more.


text:
Subfolders and files ignored when copying from sdcard to PC through USB
So I have a music folder that I'm trying to copy from my sdcard onto my PC using Windows Explorer. For some reason, when I attempt to do this, it 'completes' really quickly and I only end up with a few folders inside the main folder that are missing most, if not all of their contents as well. The weird thing is if I go into all of these individual subfolders and copy them one by one, it works fine.
Anybody know what's going on, and what I can possibly do about this?

Seems I just needed to wait a little longer for the "Copying..." dialog to pop up again. Windows is weird sometimes.


text:
Setting the CPU governor in CM13?
Anyone know what happened to this setting? I can't seem to find it any more. Has it been removed?

Well, regardless if it was removed you can alway use apps like kernel adiutor: https://play.google.com/store/apps/details?id=com.grarak.kerneladiutor&hl=en
This app and similar ones will let you control CPU/GPU governors and much more, presumably you have root access and have compatible SoC that can be controlled by the app.


text:
How to check if your bootloader is unlocked
I'm about to flash a custom recovery, but I'm not sure if my bootloader is unlocked or not (phone is rooted, but I did it a while ago, so I can't remember the process I went with), and I don't want to do anything that might risk losing all my current data. Can I simply run fastboot flash recovery [recovery image], and if it doesn't work, take that to mean my bootloader is locked? Are there any negative consequences to attempting this with a locked bootloader?

You give this a whirl? : http://forum.xda-developers.com/studio-5/general/how-to-install-cwm-recovery-root-blu-5-t2873852

For some reason my dialer does not accept 15 characters :-(. When I enter the last asterisk it clears the whole field out.

That's not an input limitation but the result of having entered the full special code. If you didn't get a popup that means that method won't work on your hardware.

After scouring the net, I've learned this can be determined by entering your device's fastboot mode (from your device's boot menu selection, select AP Fastboot) and about four or five lines down from the top, you should see either Device is LOCKED or Device is UNLOCKED.
Unfortunately I only discovered this after attempting to flash the custom recovery while my bootloader was locked, which would subsequently put it into fastboot mode upon every boot attempt with the message "Fastboot reason: Flash failure". But I got around this by entering boot selection mode (holding vol down, up, and power simultaneously) and selecting "Normal Powerup" at the top. I unlocked my bootloader, flashed again, and am now happily running CyanogenMod 11. Hope this helps someone.

i tried to unlock bootloader in ASUS Zenphone 3.
``###############################################################################

Device Unlocked

###############################################################################
< waiting for device >
...
(bootloader)    Device tampered: false
(bootloader)    Device unlocked: false``
it fails to flash recovery rom

Assuming your device adheres to some Android standards, you'd want to run fastboot oem device-info.
Often you can also run fastboot reboot-bootloader to get into the bootloader which often says right there on screen whether it's locked or not.
Different devices can display the lock state differently.
fastboot is located in %ANDROID_SDK_DIR%\platform-tools, where the part inside the %...%is where you installed the Android SDK.
Typically though it's not the bootloaders lock state that will result in failed roots. That is usually (depending on your method) due to the /system partition still being locked to read-only mode which has nothing to do with the bootloader IIRC.

An alternative method that may have mixed results:

Open your device’s dialer
Dial *#*#7378423#*#* and it will automatically open a new window if it works
Now in that window go to Service Info > Configuration

You ought to see one of these:
Bootloader unlock allowed - Yes (Bootloader is Locked)
Bootloader Unlocked - Yes (Bootloader is unlocked)

You have my upvote if you can include Samsung's methods. I'm actually curious.

@AaronGillion I don't touch Samsung devices with a 10 foot stick but often times if it isn't obvious with some sort of unlock icon or an odd message displayed somewhere during boot, it's probably locked. Still I am curious as well about whether that info can be grabbed via command line so I will continue looking for a bit.

Does not work for LGp690

What if you have a tablet without the dial app?

i'm no expert, but if you go to the bootloader, by (on my nexus 4) holding volume down then power up, then it says


text:
Show which program / task uses the camera (in background)
On my Samsung Galaxy S2 I9100 with CM11, I always hear a very subtle click of the autofocus whenever the camera app is loaded. Since some weeks, I heard that sound randomly, especially after every restart and reconnect with WiFi. This somehow scares me and looks a bit like my phone is supervised.
Is there a possibility on android (with / without root access) to find out which task uses the camera?

XPrivacy seems to be the tool of choice for these issues, although a bit tough to get through all the settings. Could not find the spying app yet, but will keep this post updated.

Install the Permissions app, and look the the apps under take pictures and videos.

thanks, lots of apps there. I was looking for something like a task manager which shows the active task that just accessed camera functions, or a method to restrict camera access and show which tasks are asking for it. I have cerberus and wheresmydroid installed and could imagine them to stalk after my pictures, or potentially a virus.

@Axel Are there any pictures being taken?

The camera is definitely being accessed since I see the camera lens moving every once in a while (once every 30 mins up to once every 15secs),and due to a hardware imprecision the lens touches the glass of the camera, which results in a very distinct click sound. Pictures don't show up in the gallery, but apps like Cerberus can do that easily without leaving any hint besides on my phone the click sound.


text:
Volume controls suddenly became disabled. What could happen?
Most of volume controls on my  PRESTIGIO PMP5080CPRO android 4 tablet became disabled (all except alarm volume control). And there are no sound except alarms. What could happen? How can I enable them ? I haven't installed anything recently. Here are screenshots:

Screenshots (click images for larger variants)

@Poldie, 2nd screenshot narrows everything perfectly

@HongKilDong except that it still doesn't tell us which device it is. I don't think everybody can tell that from some "Model number".

@Izzy, how can I describe device more than google can ? What information should I provide ?

@HongKilDong Exactly as you did with your update (thanks) :) Additionally, for non-mainstream devices, a link is often helpful.


text:
How to install a new launcher after deleting the only launcher?
I deleted my only launcher and now I cannot open settings to set to debug mode in order to use ADB or similar to install a new launcher. I can't open the Play store, can't open anything except those that use voice commands: e-mail, text, phone, maps, navigation, and note to self.
Oh, and it only boots in safe mode.
It's an LG Optimus T.
How do I put a launcher back on this phone?

Closely related: Change Launcher without starting it

I figured this out only after months of being without most of my phone's functionality and taking it to a 3rd-party repair place that declared it "unrepairable".
It is stupidly easy:

Download an apk of your home launcher (I got one from here: http://forum.xda-developers.com/archive/index.php/t-1125331.html )
E-mail it to yourself
Use voice commands to send yourself a test e-mail. If you don't have gmail set up, then it will give you the screens you need for configuration.
E-mail the apk to yourself. When you check your gmail on your phone you should see an "install" button next to the attachment name. Install it and enjoy your new old phone.

Couldn't you install a new launcher from play.google.com ?

@beth , couldn't you open play.google.com in your computer and pick one launcher and click install on your computer which magically installs the launcher in your phone.

Nope. I tried it and the installer was apparently gone too.

Could you also have installed the apk using adb?

@TimScarborough They haven't got ADB active, and can't open the settings to activate it.  So in this case, no.

If your Android has a search button, then you are lucky.
First, hard reset your Android. After the mobile starts running, hit the search button and search the app 'Settings'. Turn Bluetooth on and select discoverable or visible. Share any launcher (like Smart Launcher) from another Android to your mobile. Install it and enjoy.

I can't try this out because the problem is already solved for me, but I'll upvote it because it sounds like it would work.

Download the Launcher .apk file (just Google your "demand launcher name" and plus "apk"), save it to your friend's phone, and send it to your phone via Bluetooth.  After you recieve the .apk file just click whatever option that directs you to INSTALL the file.  If Bluetooth is off, ask your friend to call your phone; when the dialer window pops up you can see a "make another call" button.  Click it and you will see the shortcut bar for Bluetooth appear.

How is this different than the accepted answer?

It doesn't use voice commands.  I know I have those disabled entirely on my phone.

I didn't have a chance to try this but it sounds like it would work.

Go into Recovery Mode (try turning off the phone and do not turn it on but press and hold the home button the volume up button and then hold the power button along with it).  You need to do a Factory Reset from there and then reboot the phone.

I tried that immediately. It didn't help. And in fact it was the only way that it would boot at all.

Push and install a launcher app to your Android device from http://play.google.com (PC).

The question asks how to do this, not whether to do it.

@betherwisser Yes, it's How to my dear (navigating you on the website would be dumb). It's much much simpler and reliable than accepted answer.

I can't open the Play store, can't open anything except those that use voice commands: e-mail, text, phone, maps, navigation, and note to self.

@betherwisser I said do it from PC or other device.

"Cannot use ADB or put it in debug mode..." so how would I do it from a PC or other device?

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


text:
Why is pressing touch tone keypad not transmitted during calls?
My relative is running CyanogenMod 7 on her HTC Incredible. Recently, her phone started acting weird in that when connected in a phone call, pressing the touch tone keypad is not working.  You can hear the tone being pressed in the speaker, but the other end of the phone call is not getting the tone transmitted.
What might be causing this, and how could I go about getting this fixed?

In Settings - Phone settings
or
In Dialer - Menu -Settings
You'll find an option for DTMF. Try changing that to different values. It might even have been turned off.

I'm not finding either of those in the settings for CM7.1.

@roxan Are you sure it's from this version?

Actually no. I assumed after reading couple of post this is where it should be. Guess I also have to take my answer down :)

I have an international Samsung Galaxy S III (I9300). I got this to work under CM 11 by opening the Phone app, hitting the dotted line for settings, and then un-checking the "Dial pad touch tones" option.
I can't hear the touch tones anymore, but at least I can access my voicemail.

My problem was the opposite. Dial pad touch tones was disabled. When enabled, tones started to be transmitted again, though unfortunately annoying touch pad tones are now audible. This is probably changing as Android goes through each iteration, so worth toggling the Dial pad touch tones setting.

I don't even know if this will work, but after having this problem intermittently on an AT&T Samsung Galaxy Note 4 and not being able to find DTMF settings anywhere, I found this: Settings > Device > Personalization > Accessibility > Dexterity and Interaction > Press and hold delay (options short, med, long)
On a T-Mobile Samsung Galaxy Note 4, it was similar but not exact: Settings > Personalization > Accessibility > Dexterity and interaction > Press and Hold delay (options short, med, long)
I selected long.
I can't take credit for this; the idea came from someone making a post about a Samsung Galaxy S7, whom I wasn't able to thank but wish I could.

The solution that worked for me is very different.
My mobile is a Lenovo K8. After searching a lot, nothing worked for me, and based on Lenovo call support, this worked finally: Network & Internet > Mobile Network > Enhanced 4G LTE Mode [DISABLE]
Disabling this only worked for me, changing the Touch & hold delay to different values [short, medium, long] also did not work.
Hope this helps someone. Definitely, this is a bug. However, no updates were also sent to my phone.

I had a similar problem of not hearing the touch tones. It turned out to be that the volume for "Music, video, games, & other media" was set to the lowest level.
"Settings > Sound > Volume" Maybe this will help someone.

I just had this problem for 2nd or 3rd time. I'll say what happened in case it helps.
I'm on Samsung Galaxy with Android OS. I was in a phone tree; to get to the keypad, I backed out to the home screen and opened the phone call icon (for new calls), but the keypad didn't work for the phone tree.
There's a screen that shows after you start a call, it has a red end call button. You have to get back there and hit the keypad option, then it works. To get back there, I swiped down from the top of the screen and it showed my active call with a button that brought me back.

On the Samsung Galaxy S4, I changed to option "long" instead of "normal" and it worked:

From the Keypad tab, tap the Menu icon (located in the upper right)
Tap Settings
Tap Call
Tap DTMF tones
Tap Long


text:
Emacs on Android
I would like to run Emacs on my Android phone. Has anyone done this? If so, how can I?
I've looked, and I haven't been able to find either an executable or instructions to compile emacs for Android.
I know CyanogenMod has some Unix commands, but I haven't found a list or whether it includes Emacs. I don't want to flash my phone without knowing.
I've seen many pages on running Emacs on "Android" via installing Ubuntu. I don't mean running Emacs on "Android" hardware, I mean running Emacs on the Android operating system.
I'm also aware I can use an app to SSH to a Unix box, and that there are online Emacs emulators. Again, not what I'm looking for.
I'm looking for the standard command-line GNU Emacs, and I'm aware I'll need to use a terminal emulator app to run it, as well as a Bluetooth keyboard to do anything useful. I'm not looking for a GUI app, though that would be better than nothing.
I'll accept either a link to a binary or instructions to compile it.

I don't think anyone has made a native port for Android.

Do you need emacs, or would an editor with emacs-style key bindings suffice?  Don't know of either, but you may have better luck with the latter.

@Chance Need is a strong word. I would very much like emacs. My goal is to be able to develop on an Android device. Emacs is much more desirable for such than a simple editor with bindings (though again, that would be better than nothing I suppose).

I have ported Emacs to Android. (Github)
It doesn't draw UI like the Linux X11 version, but uses a modified Android Terminal Emulator.

I'm so glad to see this!  (On my Asus tablet it seg-faults on start.  I saw your note about changing the font size being a work-around, but that didn't help me.  Looking forward to an update!)

I get 'emacs.zielm.com forbidden -- press enter to continue'.

If you have Lollipop or above, Termux is a terminal emulator and Linux environment where you can install Emacs via apt update; apt install emacs. Or check out Running Emacs on Android on how to do get it running.
I have Emacs running on my CyanogenMod tablet using this method.

From what I understand, it is not possible (at the time of writing this), since almost all the dependencies that are required for Emacs to run do not exist on the Android system. Then, even if you got all the dependencies to compile for ARM and Android kernel, it would take longer to start up Emacs than it would to SSH into another machine that has Emacs available.
If you want to try, you can look at this site which explains what you need to do to compile Linux binaries for Android devices. And here is how you build Emacs.

"it would take longer to start up emacs then it would to ssh" -
I will probably ssh to a box when I can, regardless. But I would like to be able to develop without internet. I am often without a connection while travelling.

There is now an official release on F-Droid. Binaries can also be downloaded directly from the project page on SourceForge.
The official wiki page is also available.


text:
Use of swap size while partitioning?
I just rooted my phone (Android 2.3.6) and partitioned the sd card using CWM recovery. While partitioning, I noticed about swap size and while searching about it, different blogs (xda developers) recommended using 0M as swap size. What is the use of it? Why is it recommended to be 0M?

Primary reasons for the no swap recommendations are the basic uselessness of swap for most devices, performance reasons, and device longevity.
As Liam mentions, modern devices have no shortage of RAM (Even my old underpowered Wildfire S has as much RAM as my previous desktop.) and that RAM is managed fairly well by the modern Android system, making a swap largely pointless.
Also, even though flash is far better than platters of spinning rust, it's still orders of magnitude slower than RAM is, hence for performance reasons, you don't want to tier down to flash if you can at all avoid it.
Furthermore, flash memory has a limit on how many times you can erase and rewrite it.  While this cycle limit is typically in the thousands or tens of thousands, which combined with modern wear leveling systems, means you're unlikely to hit the limit within the useful lifespan of the device, but if you're using it as swap, with loads and loads of itty-bity writes, you will chew through those cycles needlessly and might actually bump against those limits in time.

Your previous desktop only had 512 MB of RAM?  Have you had a desktop machine since the 90's??

@intuited I built my previous desktop in 2001.  512 was a fair amount at the time.  My current desktop started with 2gb, then upgraded to 4, and now has 12.

The use of a swap file it so save memory (RAM) to storage (hard drive/sd card).
The recommendation of 0mb for the file size is because it is not usually needed. Android takes care of memory management in a different fashion than swap files.
Background:
A Swap File is traditionally used to store what is typically in memory onto storage when memory is low. This allows it to be switched back into memory when needed.
To quote from Zero Credibility Blog

Android, while a fairly typical (but trim) Linux under the covers, has it’s own mechanism for handling low memory conditions. It terminates the application, but first gives it an opportunity to persist it’s state (via a series of callbacks). For example, a map application might persist a latitude and longitude before it is terminated. When you access the application again,  the location is passed back so it appears that the app was running all along. In actuality the app was restarted completely.

(emphasis mine)
The above describes how I have seen applications appear to persist after switching from task to task.
There is no need to save the contents of memory to storage, because Android will just save the app's current data and terminate the app.

Can anyone please explain the down vote to improve the answer?

I don't believe it fully answers the question...

Thanks for the answer. But looking for a more clearer one.

As the other answers already cover most of the facts, just a small addition: I already edited the app Swapper for Root users into Liam's answer as an example. And Compro01's answer already mentioned the danger of wearing out the flash memory of your sdcard. Now let's bring both together:
When using the Swapper app to handle your swap, it recommends to not use a swap partition but a swap file, for exact this reasons. That swap file then is placed on a different location of the flash memory each time swap gets activated, which avoids to always write/delete the same blocks and thus saves some more lifespan for your flash memory.
So comparing both:

Swap partition: faster, but wears out flash memory faster, too.
Swap file: a little slower, but does not wear out flash memory that fast

Keeping this in mind it gets clear why a) 0M (i.e. no swap partition) is recommended, and b) a swap partition is offered at all (for those who do not care buying new cards, but want the extra little speed).

Swap partition vs. swap file wouldn't make any difference.  Wear leveling is handled by the flash controller, not any portion of the firmware or Android system.  The layout of the partitions has no fixed relation to the physical location of anything on the flash chip.

This part of my explanation comes from the Swapper docs. As I never used swap on my Android devices, I didn't dig deeper. But I'm irritated that partition layout shouldn't be bound to blocks on the medium. Are you sure of this? "How does it then work" would be a different question -- but maybe you could at least mention a source?

Swapper represents something from the old way of things.  Early in the history of Android, many devices used raw NAND flash chips for their storage and used special file systems like YAFFS to handle the wear leveling.  This is where the file vs. partition comes into play, as a swap file would use the special wear leveling file system, as opposed to the swap partition using static allocation.  This is no longer relevant, as all current devices instead use eMMC for storage rather than raw flash.  eMMC has the controller integrated into the package, and is invisible to the OS and everything else.

Sounds reasonable. "eMMC" stands for "emulated MMC" -- so does that apply to internal memory only, or also to (newer) sdcards? Might be relevant in this context.

No, eMMC is embedded MMC.  It's basically a flash chip with the controller and cache embedded straight into the IC package.  It's not really an MMC, as it's a chip, not a card, but it's the same as an MMC from a software level.  This is the internal memory in basically all modern android devices.  SD cards are an extension of the MMC spec, most notably adding DRM capability.  Again, everything is handled by the controller.  From outside the card/chip, all the wear leveling stuff is invisible.  Unless you open up the package, you'd never know block 1 and 2 are nowhere near each other.

Thank you very much for clarification! So in short, it applies to both -- and the entire concept of "file versus partition" is "outdated", as all block mapping (even for partitions) is no longer fixed but handled by the controller. If this summary is correct (please confirm), I will update my answer accordingly (so nobody needs to go through all our comments). BUT: according to https://wiki.linaro.org/Flash%20memory this is not the case: Partitions are further divided into blocks -- so it is as I thought. Can you name a source for your explanation?

A partition is made up of blocks yes, but they're device-facing blocks, not fixed physical blocks on the flash chip.  Blocks on an managed flash chip are exactly the same as sectors on a hard drive from the perspective of the OS.  I don't have a readily available source, as this is stuff I'm recalling from my computer architecture and interfacing classes at college.

Swap is basically virtual RAM used by the Linux kernel.
Swap in Android was used when devices had very limited RAM (I used it with my LG Optimus GT540), to increase the amount of RAM available to the Android OS.
Android kills apps when it run's out of memory - and is very good at doing this efficiently, however on devices with low RAM people may have seen their home screen apps being killed, and therefore have to wait a while to get to their home screens.
Swap can be mounted via either a partition or a file - mainly on an external (or internal) storage device. Swap is normally activated via the so-called Init scripts in the /etc/init.d folder of the device to mount/enable swap on device boot.
Linux desktops use a partition for swap, and the user is asked to create this during the install process.
A file is normally stored on the SD Card or storage medium. The swap file on Android is normally mounted (and created) by an app (e.g. Swapper for Root users).
Most newer devices won't see any benefit of using swap - as they normally have as much RAM as a desktop computer (my SGS2 has 1GB!), and therefore wouldn't benefit from having more virtual RAM.
Unfortunately, using swap can come at a price - even on low RAM devices, as the OS has to spend time writing to the SD card, which would normally have slow read/write speeds. As such, it isn't used much at all nowadays, unless a device has an obscenely small amount of RAM.
As well as this, using swap can have a negative effect on the life of your memory device, and should be used with caution. If anyone reading must use swap (and I would advise against it), then use a file with an app, as it varies the swap file location to maximise sd card life.

hmm..quite satisfying one.

Swap is not needed in Android - plain and simple :) -1 from me, Compro01's answer is the best and sums it up exactly!


text:
How exactly does operating system update work on Android devices?
Today I have received my first Android device, to be more precise a GOClever Tab A102.2 tablet. I have noticed that it runs as operating system Android 4.0.4 so I though why not update it since the latest one is 4.2? I went to Settings > About > System Update however it asks for a update.zip file which I have to place in NAND or SD card.
Searching through the internet I have found that some devices connect to the internet and check for updates when prompted while others need to be updated with vendor specific versions (I guess that's the case for me).
Now I wonder, why do some devices need to be updated with vendor specific versions? The way I see it, Android is just an Operating System and thus not tied to the device so theoretically if I wanted I could ditch it in favor of some other operating system (say a linux distro) so whether the update comes from the vendor or not should be irrelevant.
Also, can vendor specific versions of Android be updated (through some other means) even though the vendor didn't release an update for it?

Most vendors/manufacturers modify the Android source code to ensure full compatibility with the devices hardware - if you were to update to a clean version of Android, it just wouldn't work properly (and it it even booted, most things wouldn't work at all).
Some manufacturers implement an OTA update feature - whereas some don't. Those that don't sometimes make you connect your phone/tablet to the computer and use their 'helper' program to do the update.
Even the devices that do connect to the internet and download the update are vendor specific - device specific even, it is just that the manufacturer let you do it that way.
As to your final question: Yes, through a custom ROM. Custom ROM's are versions of Android that have been modified by the Android community, based on the stock Android code, to work on your device. You should search google, or look at forums such as XDA-Developers for more info about ROM's, or to look for a ROM for your device.
Remember: All the hardware in phones are different. Only the manufacturer knows how to code for it, so that is why default Android code won't work with it - it would need propriety drivers.


text:
Flash boot.img without using fastboot USB
So I've recently rooted my phone and tried a ROM or two. I find it really handy that you can use TWRP recovery to install another ROM from the SD card, you don't need to have it connected to a PC.
However, on my device (HTC One S) I need to flash a different boot.img file for every ROM as well, so I still need to hook my phone up to my PC to switch ROMs. If I don't do this, it just gets stuck on the loading screen. Then I must use the command
fastboot flash boot boot.img

from the folder where boot.img is located.
Is it possible to flash this boot image with TWRP or any other way without using fastboot over USB?

What needs to be done is to bundle the boot.img and construct a new zip file suitable for flashing via ClockworkMod or TWRP.
Pre-requisites:

a Linux environment that has the usual development packages, such as Java installed. (It can also apply to other platforms, just be careful that the instructions here indicating the path used below, uses a forward slash /, so flip that around to be a back slash \ for Windows environment especially!)
adb command line tool installed.
`testsign.jar' tool, for signing the zip file so that the recovery can authenticate and verify it is a valid archive otherwise recovery will report corrupt archive or similar.
update-binary command line application, that is internal for usage with the flashable script. (This can be found with any flashable zip, the important thing is to extract that binary and deposited in the structure of the directory as shown)
zip command line tool.

Assuming your directory is called workdir, for discussion, lets call this the working directory, copy the boot.img into that directory, and create the following directory structure - META-INF/com/google/android, this is important! And within the META-INF/com/google/android, copy the binary application called update-binary into that directory. So the directory structure should be like this:
+ workdir/
     +
     |
     +--+ boot.img
     |
     |
     +--+ META-INF/
              +
              |
              +--+ com/
                    +
                    |
                    +--+ google/
                           +
                           |
                           +--+ android/
                                   +
                                   |
                                   +--> update-binary
                                   |
                                   +--> updater-script

As for the updater-script, copy the contents of the following below:
ui_print("Please wait, boot.img being flashed...");
show_progress(0.1, 0);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.1, 10);
ui_print("It is now safe to reboot! :)");

Remember: Do not get confused here, the updater-script as shown, should be left alone and as-is, so do not try flip the forward-slash to a back slash if doing this under Windows environment.
Go back to the parent of the directory structure, i.e. outside of workdir and do the following, we're going to create a zip file from this:
zip -r my_custom_flashable_boot_unsigned.zip workdir/ which is a recursive function, this will zip up everything into the file called my_custom_flashable_boot_unsigned.zip.
Finally, to sign the zip file, issue this:
java -classpath testsign.jar testsign my_custom_flashable_boot_unsigned.zip my_custom_flashable_boot_signed.zip

Then its a matter of pushing that across the SDCard as in adb push my_custom_flashable_boot_signed.zip /sdcard/ and manually go into recovery and specify that zip archive (i.e. my_custom_flashable_boot_signed.zip)  in which it will perform the flashing for you.

Nice, I like to create stuff myself so excellent instructions. It's not a point that I'll need my computer for this, because I can just get flashable boot zips for all my ROMs on a folder of my SD card, which will lead to the situation I wanted.

If you have the flash_image binary, then you can do it on device via terminal emulator (flash boot, then the rest using recovery).
Syntax: flash_image boot /sdcard/boot.img
Self Promotion Time
I have an app that provides a GUI for the binary.  Find it here.
If you don't have that binary, it can be installed (Google it - you have to download it then copy it to the /system/bin folder.
This doesn't work on all devices, however it's the only way that springs to mind.

If I understand well, the terminal emulator is just a regular app that you run while your phone is booted in normal mode? Will it not give problems flashing boot while the OS is running?

@MarioDeSchaepmeester The phone only uses boot while it boots ;)

Have had to downvote it, as flash_image has a requirement to be copied and invoked from the handset using adb shell, documentation (*may I add, you failed to provide the linky!) is asking to remount the SDCard with exec bit set (bad idea) and requires root i.e. su, further to that, the "self-promotion" in relation to your app, in euros, where I come from, is 6,09 euros which is pricey... fastboot is the norm, CM has their own quirky ways, - what's different with fastboot and flash_image?

Also the binary can be used without a computer.

Is it possible to flash this boot image with TWRP [...]?

rename the file boot.emmc.win and place it in TWRP/BACKUPS/ (create new folder). restore the backup from usual TWRP menu


text:
Alternative way to perform factory reset
My friend's daughter was playing with the unlocking screen and of course she used up all the attempts and locked the device for good. Since this tablet was bought some time ago just for her amusement, no one remembers what was the google account they used - possibly a phony one created just for the purpose of using the device. This discards google recovery as an option.
It's a cheapo tablet sold here by Walmart under ONN brand. I did some research and have found it's being made by YiFang Digital and marketed as M7000NBD
http://www.yifangdigital.com/product/M7000NBD.aspx
According to the manufacturer, it's powered by AML8726-MXS Dual Core + Mali TM-400 and it's running Android 4.2. Unless it came like that from the factory, it's not rooted, and it has only 3 buttons: PWR, VOL UP, VOL DOWN.
My friend doesn't care about the data stored on this device and I offered to help thinking that I will be able to perform a factory reset the usual way. I was wrong.
When I use the PWR + VOL UP key combination, to enter Android system recovery, first thing that shows up after the boot is an Android figure with a red triangle and an exclamation mark. If I press the PWR+VOL UP again, the system recovery menu shows up but I can not navigate through its options. At least not using the VOL UP/DOWN buttons.
The only button that works is the PWR, but since "reboot system now" is the option selected by default, it's the only action I can perform from within this menu.
When the above failed, I thought about ADB as an alternative way. Unfortunately the USB debugging seems to be turned off so, as far as my limited knowledge goes, there is no way of running ADB shell in that case. For obvious reasons, there is also no way of switching it on.
Is there any other option to factory reset this device? Or maybe there is a way to make the system recovery menu respond?
If it makes any difference, I have a Windows 7 desktop and two notebooks running Windows 8 and Ubuntu 13.10 respectively.

Welcome to the site! That's an interesting predicament your friend is in. Getting access to the Google account may be the easiest way to do anything. Although I'm curious: Is ADB enabled when in Recovery?

Thank you for the welcome.
I don't think the ADB is enabled in recovery. When I connect the device it starts charging but Windows Device Manager doesn't notice any change.
"Adb devices" returns nothing and "adb shell" returns "error: "device not found"

Just for the sake of rigor: Is it the same story in Ubuntu? Unfortunately, the sheer lack of documentation for the device isn't helping. I just can't find anything solid no matter how much I search.

Maybe you want to take a look at Cannot unlock tablet as have no internet connection?

I've just checked in Ubuntu and it's the same story. Nothing shows up in lsusb while in system recovery menu and I get 2207:0000 when on Android's "too many attempts" screen. Same as in Windows: I can access the tablet as a storage unit (with no acces to root dir of course) but even after editing the adb_usb.ini and 51-android.rules I get nothing in "adb devices". Indeed there is no documentation for this thing, I imagine it's being sold under many brands. Thanks for the link, it starts to look that remembering the account may be the only way to go.

Have you tried checking the tablet for a reset button? For china tablets there is usually one on the underside of the device.

I think you should take a look at fastboot commands. Fastboot works in bootloader mode even when phone is not switched on in Recovery or ROM or even if Android isn't installed on phone. In later case, bootloader can be accessed by certain button combination while powering on device; usually Power + Vol Down. Though ADB is more flexible, but in your case it is out of the question.
What you can do now is :
Step 1: Unlock the Bootloader
Step 2: Flash a Custom Recovery (like TWRP)
Step 3: Flash a custom ROM that you want
(For detailed steps and commands, visit: XDA-developers)
Beware that some original ROMs can't be flashed by custom recoveries that's why i suggested a custom ROM in step 3.
After that reboot your device and turn on developer options and ADB in that new ROM. Now you can reboot to recovery and access ADB to flash your original Recovery and ROM through ADB commands.
A bit lengthy but it has always worked for me.

I successfully factory reset my Android tablet.  By doing the following.. once I got to the Android laying on it's back with the red coming out of it's belly so to speak I then repeatedly pressed the power the volume up button over n over and finally the factory reset options popped up


text:
What information is available to an application?
What information about the phone is available to an app without extra permissions?
E.g., if the app asks for permission to see my contacts, and I agree, it will see all my contacts (obviously).
However, what is available without asking?
MAC address?
MEID/IMEI?
IP address?
model/make?
available storage / number of user photos?
phone number?
provider?
what other apps are installed?
Ideally -- is there an app that would just show everything that is available to it?

You can get a lot of information from the system without any permissions, For example, i built an application a while ago and i learned a way to bypass some permissions like Internet Availability, Device Information Collection and others ... OK usually when your developing an application you'd ask for permissions to have access to the network for checking an active connection, however this can be bypassed by checking the information of system components that already has access..It possible to get device ID, Device Serial Number, Device Network Status, Device Capabilities, Device Partition Info

** continued ** default storage device, currently running services, encrypted storage name, device manufacturer, (device name,make and model) manufacturing dates, internet availability, sim card status and a whole bunch of other information that i couldn't possibly write.

For some examples, see my answer here.

Their is plenty of information available to your application without using any permissions whatsoever, it wouldn't be possible to write every single file that your application has access to in this answer but i can give you a rough idea.
Applications usually require some useless permissions like checking for network availability, this can be done in several way without using the permission, let's say that you had a simple WebView that accessed a website, Instead of using the permission to check for an active connection, we could just try to open the website and capture the errors, if the error show's that the page couldn't be loaded because of a DNS issue or a network not available message, then most likely your device isn't connected to the internet and you then have the network status without using the permission.
I made an application that collects partition information for building scatter files without using any root access by reading system configuration files and collecting the information MTK Scatter Builder You should get a good idea on what's available by using the crawl for information button inside the application.
As for your contacts, their is probably a way around using the permission.


text:
How to root my android phone?
How can I root my android phone ...
Please provide answer in easy steps ...
I am using ...

Samsung I9300 Galaxy S III
Android OS v4.0.4 (Ice Cream Sandwich)

If anyone know then share

please give more details like which S 3 variant you are using?

Exactly in the same name of your question there is another question. Have you seen whether your device is listed there?

Root Samsung Galaxy S3 should answer your question. Provides a solution for the i9300.

If I google "root samsung galaxy s3", all the results state the root procedure...

Step 1
Power off your Galaxy S3.  Then hold down Volume Down, Center Home, and Power buttons together until you see the warning screen.
Step 2
Hit Volume Up button to enter Download ODIN mode and connect a microUSB cable from your Galaxy S3 to your computer.
Step 3
Next, download GalaxyS3RootNew.zip, unzip the files and run odin3v1.85.exe by double-clicking on the file.
Step 4
When ODIN program opens, you should find a highlighted yellow box with a random COM number.  If you don’t see this, download and install Samsung USB drivers
Step 5
DO NOT TOUCH ANYTHING ELSE, hit “PDA” button and select the file CF-Root-SGS3-v6.4.tar.
Step 6
Hit “Start” button.  This will install ClockworkMod Recovery on your Galaxy S3 i9300.   If you get stuck on this step, just try a different USB port.
Step 7
Once ODIN is done flashing, you will see “PASS!” in green highlighted box.
Step 8
Your Galaxy S3 will reboot once into CWM Recovery and automatically install root and Superuser app.
Step 9
Once your phone reboots, you will find an app called “SuperSU”, this is your superuser app.
Step 10
Download and install Titanium Backup app from Play Store to verify you have root, a Superuser request window should pop up.
That’s it!  This should take you less than 5 minutes to do and does not affect your phone in any way but give you Superuser, root, and custom ClockworkMod Recovery.
You can find video and More details here
NOTE: I'm not resposible for any of your activities. Do it on your own RISK.

@MattLin I will try this, Thank you dear :)


text:
How to root the LG Optimus 4X (LG-P880)?
I just got a brand new LG Optimus 4X. Feeling naked without the privacy protection offered by apps like LBE Privacy Guard, and missing good backup solutions like Titanium Backup (and no, Carbon Backup cannot really compete here), I want the device rooted.
How can that be achieved?

In fact, I never had an Android device where this was that easy to achive! Our friends at XDA-Developers offer a guide and the necessary tools in this thread. Having a "Microsoft free zone" and "only" running Linux machines (yeah, even the Android ones run a Linux kernel), I was able to follow up those steps with a little adaption here and there -- and so I will sum up the results for Windows and Linux users as well:
Preparation
First you need to download the required tools, all of them available at the linked XDA-Developers thread:

o4xr.zip is the rooting toolkit
IS11LG_SystemBackupTest.signed.apk to prepare your device
Windows users only: LGUnitedMobileDriver_Ver_3.7.2_LG-P880_LGO4XHD.zip -- the Windows drivers for the device

Having everything downloaded, some additional steps are necessary at your computer:

Windows users only: Unzip and install the drivers
Linux users: Make sure adb is able to detect the device (check with adb devices). If it's not, see at the end of this answer for some hints.
Everybody: Copy IS11LG_SystemBackupTest.signed.apk to your Optimus (e.g. after connecting it via USB in MTP mode, copy the file to the internal SDCard)
Everybody: Create a new directory, unzip o4xr.zip there, and change into this directory.

The rooting process

On your Optimus, go to Settings→Security and make sure "Unknown Sources" is TICKED (i.e. contains a checkmark)
Go to Settings→Developer Options and enable "USB Debugging"
Now install IS11LG_SystemBackupTest.signed.apk (e.g. use a file explorer to find and "launch" it)
Open the "SystemBackupTest" app you just installed. Nothing spectacular will happen, so don't be disappointed here.
Hold the power button and choose "Power off and restart".
When you can see the lock screen, you may notice that the phone is running very slowly, this is normal.
Once the device is fully started up again, connect it to your computer with an USB cable. Make sure the phone is in "Charging Only" mode.
On your PC, open a terminal (Linux) resp. command (cmd.exe, Windows) window and change into the directory you've extractedo4xr.zip` into.
(on Windows, you may need admin privileges: right click, run as administrator. On Linux it did fine for me without superuser/root permissions)
Now run the rooting script:

Windows users: type root followed by the enter key
Linux users: type ./root-linux.sh, also followed by the enter key
Any Mac users? Type ./root-mac.sh, also followed by the enter key. Don't worry, it won't root your Mac/Linux machine (Windows users: it is unlikely to root your box, either :)

DO NOT DISCONNECT YOUR PHONE WHILE THE SCRIPT RUNS! Wait while it does its job. During that process, the phone will reboot automatically a couple of times. The script will inform you about this in your command/terminal window. Once the command/shell prompt returns, the misdeed is accomplished :)
Now uninstall SystemBackupTest from your Optimus. Do not launch it again at this state, or you might have to start over from step 5 :)
On your phone, open up Google Play Store and search for "SuperSU". Update the app when prompted, then open it. Press OK to update the SU binary.

You now have root and can safely restore the "Unknown Sources" and "USB debugging" settings back to how you had them! Congratulations! Next steps are to install Titanium Backup, LBE Privacy Guard, and all the other things you might need and which require root!

Hint for Linux users to get adb recognize your Android device
These steps should work with all Android phones. The example data of course should exactly fit the LG Optimus P880 this question deals with.

open a terminal window, and make yourself root (sudo su -)
enter the following command: lsusb. Note the output in your mind.
connect your device with USB Debugging enabled using an USB cable.
again issue the lsusb command. Now it should output an additional line which has to be the just connected Android device. For the LG Optimus P880, this should read like:
Bus 002 Device 103: ID 1004:61a6 LG Electronics, Inc.
1004 is the vendor ID for LG, 61a6 the device ID of the P880 in USB Debugging mode.
use your favorite editor (still in root mode!) and open /etc/udev/rules.d/51-android.rules (if no such file exists, simply create it). Add the below lines (first line is optional), and then save the file.
restart the UDEV daemon: service udev restart

Now you just need to disconnect your device. When reconnecting it for the next time, adb will see it -- as you can confirm with the adb devices command. So here are the lines for your /etc/udev/rules.d/51-android.rules file:
#LG Optimus X4 P880
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

@gulio Above instructions were for the P880 running on ICS (as originally shipped). Maybe you try it with a different Android version? There was an update to JB provided, and AFAIK later devices even shipped with that. I cannot tell, as my P880 runs CM for quite a while already (currently Lollipop, but Marshmallow is ready as well).


text:
Rezound in a boot loop
My Rezound has randomly just turned off and on for a while and it doesn't stop until I take the battery out and remove the SIM card.  Any ways to fix this?  Thanks!

Do a hard reset, remove sim, set network type to WCDMA preferred.


text:
Is Adobe Flash deprecated with regards to Android Devices and Apps?
I'm looking at all the cool new Android tablets, but the ones that really catch my eye (with regards to size, resolution, processor, and memory) don't seem to support Adobe Flash. Like the Barnes & Noble - NOOK HD+ BNTV600, At least Best Buy says they don't (I haven't looked into much yet.) Most of the devices I've been interested in run Android v4.0 and seem to have good processor/memory specs.
I haven't done any flash type programming in a very long time. However I do want to get more involved with Android products/app development. If it's just a software/driver type issue or something that can be overcome by some tweaking I'm fine with that. However if Flash plays a big role then I should probably just get a device that supports it!
So my question is, how necessary is Adobe Flash, and in most cases (for devices that don't support it out of the box,) is it addable/installable?

Adobe Flash has been deprecated starting Jelly Bean, for reasons only Adobe knows. However, there are still workarounds for installing Flash.
The trend in mobile (Android) development now is using native Android, or HTML5. Flash is discouraged, although there are still Flash websites around. Phones with older versions of Android may be able to access them.
Related: Why does Jelly Bean no longer support Flash?

Sweet, that's exactly what I wanted to hear! Thanks


text:
How do I remove pending/in-progress downloads
A few days ago, I tried to save an attachment from official Gmail app and it could not finish download due to some connection errors.
Now, I'm seeing the notification every time without any progress. It just stays in the notification area and sliding the notification does not remove the download.
This file download was started from Gmail app and I see the same type of notification in other downloads from different apps so I'm guessing there is a central download progress going on.
I tried turning the phone off, removing the battery and SIM.

(Click image to enlarge)
How can I list and remove these downloads ?

You're welcome, Ayesh! I thought that makes it better readable :) Unfortunately I have no answer for you. You might try long-pressing that entry in the hope it pops up a menu with an "abort" entry. Alternatively, maybe you can simply "swype it out" to the right or left?

Have you tried a file explorer like ES File Explorer or My Files, which comes with later versions of Android? If go to the Download folder is the half file present? A completely downloaded file will present a long list of options if you long press the file, allowing you to cut/copy/rename/delete. Possibly it will also appear on a halfway complete download to allow you to delete. Then revisit the gmail message to restart the download if you want.Remember that the target folder might have been specified other than the Download folder.Good Luck.


text:
Why are there so many different Android kernels?
Isn't Android a common kernel that is used across all devices? For example, CentOS will install on Dell, HP, and a variety of other hardware. Sure there are different modules, but it's still CentOS nonetheless.
What is the reason why CyanogenMod is always "broken"? I always hear in forums they are working on porting this driver or that driver. If they used the same kernel, wouldn't the drivers just work with it? I also see a million different types of kernels for different devices.

Kernels vary from manufacturer to manufacturer. A lot of those kernels come from the pure stock kernel line of sources found on CAF, what these manufacturers do is take those stock sources, modify them to suit based on the board/chipset used, also, implement their own drivers.
Take a good look around you, there's variations of touchscreens, variations of wifi chipsets, not to mention, accelerometer, sensors, batteries, compass, sound, graphics.
Taking one kernel source from for example HTC will not work on a Samsung, and vice versa.
The manufacturers are free to cherry-pick or out-source various bits that get incorporated into the circuit board. There is no hard or fast rules involved. Hence the lot of hacking/modifications to get the kernel to work properly.
You must not ever, compare to desktop Linux distribution kernels in which it has PCI, PCI-Express, SATA, VGA, SVGA, USB, Ethernet as they are a totally different ball-park game. The major differences with CentOS and with Android's Linux Kernel is this - ALL drivers are compiled either as modules or built-in, hence any Linux distribution will simply "work out of the box". Again, with desktop Linux distributions - you have one architecture - x86 hence one Linux kernel from say a Dell PC, can work out of the box on a Lenovo provided that the bog-standard drivers are compiled.
Don't forget, in the Android world, there's variations of the kernel built for specific ARM chipsets, such as ARMv6, ARMv7, there's TEGRA, there's EXYNOS, and they are binary incompatible with one another. Hence if a kernel is compiled for TEGRA, forget it, it will not work on ARMv7!
The reason some kernels on Android appear to be "broken" is down to the manufacturer. Some (Zte is one very good example) release a butchered source that may compile from source but fails to boot due to a missing driver that is not covered by the GPLv2 or GPLv3 licence. That's the problem, hence some hackers have to go scouring around github looking for some clues; some manufacturers, if not all, do comply. The current incarnation of Zte's source is purportedly to be 2.6.35.7, but in reality its actually 2.6.32.9 source base with a lot of modifications thus does not represent the true kernel source for 2.6.35.7!
This is where the manufacturers have to release their respective sources, not just out of being compliant with GPLv2 or later, but rather, for the community to be able to mod it, such as adding overclocking capabilities.
Hence there's hacking involved behind the scenes and a lot of messing about with drivers trying to get it to work, and its not easy to debug either.. Some drivers may be cross-licensed, BUT cannot be distributed depending on the clause and conditions as negotiated.
Thankfully, that's all changed now with kernel 3.x.x. line of sources, as Android drivers are now integrated into the mainstream sources. But there's a gotcha!
Try porting a 3.x.x. kernel to an existing handset that is about 12-18 months old; Not a snowball's chance in hell would it work, that's because, of the differing factors, the 3.x.x sources is vastly different to the 2.6.x source and would take a lot of hacking to get it working - I should know, have tried porting 2.6.38.6 source for the Zte Blade and failed.
Likewise, the latest kernel release 3.0.1 - when working on the ics4blade project over on Modaco, have made numerous attempts to port it but that's down to the simple fact that Zte made a very bad mess of the source which rendered porting nigh on impossible.

From what you are saying the drivers are not all compiled as modules but integrated into the Kernel itself, so even if CM gets a working kernel on a device it can not simply "move the XXX modules" to the new build and have it work because there may not be XXX moduels.  The drivers must be hunted down, hacked (possibly), and recompile.

Correct, and also, drivers are different, so one driver for the touchscreen on one handset will not work on another handset that uses a different touchscreen. Also, another key point to note - some drivers are dependent on the kernel version - Zte brought out a  version of Atheros Wifi driver for the Blade, and the driver will not work unless the kernel is of version 2.6.35.7, any other version, wifi breaks - this is to demonstrate the dependency in a rather hackish and broken way of doing things like that.

The PC architecture is built around commodity parts because it started out as clones of a specific product, the IBM PC, that were specifically designed to be compatible with it, and therefore with each other.  Generally speaking, you could take a program or peripheral device from one PC-compatible and put it into another, and expect it to work.  That ability is useful enough that people have continued to demand it even as the technology evolved.  You can put a PCI Express card in any modern PC just like you could put an ISA card in any PC clone back then.
Smartphones have no such history.  They're designed as monolithic products, a complete system consisting of hardware and software that "just works" as-is.  There's no expectation that people will take parts out of one phone and put them into another, so engineers don't have to take interoperability into account when they design their products.
Even within the Linux kernel source tree, there's a lot of fragmentation in the drivers for ARM platforms.  Since phones are usually designed behind closed doors, engineering teams at different companies often end up doing duplicate work, designing basically the same hardware as their competitors and then writing their own drivers for their own design.  Once they're done and the product is released, they go straight to working on the next one; it's not worth their time to go back and refactor the drivers for past products or merge them with competitors' drivers.  The result is a plethora of one-off drivers for devices that are similar but not quite the same.
In addition, smartphones are usually based on SOCs that have specialized hardware integrated together with the processor.  For some of this, it can be more than a matter of whether to load or not load a certain driver; the kernel as a whole may need to be built with special configuration options for running on one SOC, which are incompatible with the special options needed to run on another SOC.

The reason is because Android's Linux kernel are generally not compiled on Android itself, instead it had to be cross compiled from another computer. This causes various issues, because the device configuration are not available on compile time, and it is not feasible to compile a generic kernel with all drivers due to space limitation (whereas most desktop distros simply had all drivers compiled into modules loaded from an initramfs). Therefore developers had to figure out which drivers to package for each particular device. Not only that, each drivers generally have a dozen or so of compile time options to toggle various driver features, and manufacturers usually do not release their official configuration (the worst offenders don't even open source their drivers, or didn't keep upstream's copy of the drivers up to date). Because manufacturer's don't release their configurations, often the slightly different configuration that the developer uses will expose subtle bugs that doesn't exist with manufacturer's configuration.
Driver programming is much more difficult than application programming, as there is no kernel that shield you from the fickle hardware that have a specific real-time timing requirements and the such, and this means even having a different performance characteristic may cause the driver to miss some hard real time events from the hardware; these misses may surface as either bugs or performance issues.
Another issue is binary incompatibility. There are two cause of binary incompatibility, first is CPU type, which has been covered by t0mm13b well, but the other issue which is more relevant to porting is the ABI incompatibility (application binary interface). If manufacturers don't open source their drivers, then developers had to use the compiled module from a stock ROM. This raises various ABI incompatibility issues, since the driver modules itself have specific expectations about, for example, struct layout and function calling parameters, and when the kernel is compiled, it does not have the header file to describe the ABI at the time the driver is compiled, so developers had to reverse engineer the driver to create a header file or the header files in the source tree might have been modified heavily since the driver is compiled and developers had to revert those modifications to make the kernel compatible again with the driver's ABI. Unlike compiling from source, compiling for binary driver will not trigger compilation error due to function parameter mismatch or struct incompatibility, it will simply just crash your device while it's running, and debugging these issues are very difficult. In the PC world, we're familiar with the mess that nVidia and ATi left us, due to their insistence on releasing binary only drivers, imagine having that mess for all drivers, imagine the "fun" it creates.
PC hardware are also generally better standardized than mobile hardware, most PCs don't need drivers for vibrators, accelerometer, gyroscope, 3G radio, proximity sensor, NFC, etc. Even on devices that have 3G, it usually connects to the hardware using standardized connections like PCMCIA or PCI-E.

Well.... drivers and the kernel are not exactly the same.
Drivers are what control the cell antenna, wifi, bluetooth, etc. These are proprietary drivers because the manufacturer has to create a way (the drivers) to talk to their hardware.
The kernel is an intermediary level between the OS/application and the actual drivers (or cpu or memory or any other hardware). It is what allows your OS/apps to interface with these hardware components.
All of the millions of kernels you see are really not that  much different from each other. Typically a programmer/modder will take the existing kernel and "tweak" it to try and get a difference performance out of it. You can essentially say that they are only adjusting (for the most part) the "configuration" of the kernel. In the Android world, these modders are primarily looking at: over or underclocking the CPU clock (important for either saving battery life or trying to run most process intensive applications such as video game emulators or video playback), or they are looking at under-volting (to save battery life by running your CPU outside of its original set parameters... which varies in effect person to person because no two CPUs are made 100% exactly the same).

What I mean is for example with CyanogenMod there are always complaints of my wifi, bluetooth, etc doesn't work.  Why do these drivers have to be "ported" to CyanogenMod.  Why can't they just take the stock drivers, copy them to the device, and run them with CyanogenMod

there is no such thing as a "stock" driver for the devices. Every device has different drivers for the hardware like camera, wifi chip, etc. And they are usually closed source so they have to "hack" their way through getting the drivers to work.

Yes but why the need to hack.  If they work with the OEM kernel, why can't you just move the driver files and associated libraries to the Cyanogen mod installation since the kernel is basically the same.

Phones and other embedded do not have a BIOS to provide abstraction between the hardware and OS as a result the OS is compiled for the hardware it is deployed to. Even devices using the same chip set can can be configured in different ways (using alternate comms buses etc.) \the result is that the kernel has to be compiled accordingly. As there is no expectation of changes in hardware there is no hardware detection performed. Kernel boots faster and is smaller as a result - this is a standard principle of an embedded OS

CentOS installs on different hardware, but,

It's all PCs which vary less than phones,
A Ubuntu kernel, Debian kernel, and Elementary kernel are all different kernel sources.

As for your second point, see the answer(s) posted earlier.


text:
Why fastboot devices is empty on Linux?
I'm using Ubuntu Yakkety Yak, 16.10.
According to Android SDK manager:
Android SDK Tools v 25.0.3
Android Build Tools v 25.0.2
Android SDK Tools v 25.2.5
My phone is a OnePlus 3t and I'm developing for it for a while, adb works normally, udev rules are configured. I enabled OEM boot, and manage to reboot in a way which looks like to me fastboot. After rebooting to "fastboot" the device's USB id is exactly the same as in normal boot. That's suspicious because I read in some forums that it might be different after fastboot boot (I checked if I have to adjust udev rules).
fastboot devices

doesn't show any devices. My suspicion is that I don't really boot into fastboot mode. Here is capture when I reboot, I press the power button:

If I don't press the power button, the up/down offers recovery mode. In recovery mode I can wipe all data or the cache and also install from internal storage or ADB. data decrypts successfully. Needless to say I cannot install SuperSU, TWRP img doesn't appear in that install menu.
(My goal is to unlock the bootloader, install TWRP and SuperSU so I can perform the xml file config mod for DayDream.)
Any help is appreciated.

I'm amazed BTW how nicely OnePlus is tinkerable as opposed to my old Galaxy Note for example. I'm sure it's some glitch with my setup we'll overcome soon.

Found someone who did it successfully: https://android.stackexchange.com/questions/166033/how-to-flash-and-root-oneplus-3t-on-linux?noredirect=1&lq=1

I disconnected the device while I was rebooting.

The screenshot is fastboot, you should be able to unlock and then install TWRP image.

I know. But fastboot devices shows nothing so I cannot issue the oem unlock. I'll try to tinker until I succeed.

I don't know what you're doing with your udev conf but I didn't need any of that. It worked out of the box.

The USB device during fastboot BTW is 18d1:d00d Google Inc. and I needed to add udev rule for TWRP flashing. Thanks for your efforts BTW!

I misunderstood what does it mean to boot to fastboot mode. By reading through tutorials I thought when I saw the screen on the screenshot, I still needed to boot (power button) into fastboot mode. Turns out that when I saw that screen above, I was already in fastboot mode and could issue the unlock or flash commands.
Looking at some more detailed Youtube videos made that clear. After tackling a typo I successfully flashed TWRP, installed SuperSU. The OP3 DayDream mod is not working yet though: DayDream apps still displayed as not compatible with my phone in the app store, even after the XML modification and reboot.
One extra advice: a simple adb backup -all won't backup everything, as I learned.
https://forum.xda-developers.com/oneplus-3t/help/oneplus-3t-fastboot-ubuntu-16-10-t3561732?goto=newpost

During 2017 summer I managed to get the DayDream hack working, I used SuperSU. I just transitioned to Magisk, so I can use Android Pay and hardware tokens. The DayDream hack does not work since the last couple of OS updates in the fall.


text:
How to get Feitian MultiPass FIDO U2F working with OnePlus 3T?
Feitian MultiPass FIDO has 3 ways to work as a hardware token: BLE, NFC and USB. I'd like to use it either with NFC or BLE because the USB input can be occupied, and I have a feeling anyway that the USB usage would require some udev rule modifications (https://github.com/Yubico/libu2f-host/blob/master/70-u2f.rules) just like it did with my other token for my Linux desktop.

NFC: simply didn't work. I held the key to the back of the phone, moving it around a little (not sure where is the NFC sensor exactly). Since I read somewhere that the NFC is very weak in the key (which can be an advantage for security because an attacker would have a harder time to pick the signal up from distance), I even stripped my phone of it's thin OnePlus carbon protective cover, but didn't help either.
BLE: I press the button long and the BLE pairing icon starts to blink on the key. The Google U2F BLE setup page shows the device. Here you'd click on the device and you'd need to enter the 6 digits on it. When I select the device from the list though, the app errors out with the very descriptive "Something went wrong" error message. (That's what the Linux desktop Chrome did as well, extremely descriptive error message for sure).

So how can I get this to work? Here is some logcat: https://pastebin.com/X6HLK7a0
Two errors I see:

Not sure how related it is:
E WCNSS_FILTER: do_ioctl,tty_clock_flag=USERIAL_OP_CLK_OFF,clock=USERIAL_OP_CLK_ON
Related for sure:
E BluetoothEventManager: Got bonding state changed for 78:8C:EB:56:23:F1, but we have no record of that device.
D StatusBarManagerService: manageDisableList userId=0 what=0x0 pkg=Window{3d9a72b u0 Something went wrong} token=android.os.Binder@20e9287 which=1
E BluetoothEventManager: Got bonding state changed for 78:8C:EB:56:23:F1, but we have no record of that device.

The debug entry wedged in between the two errors might be accidental. I don't see it always. Any help is appreciated, I'd like to transition to hardware tokens to be protected against SIM hijacks.
One more thing: my OxygenOS is rooted because I had to use a hack to be able to run DayDream apps. Because of that I cannot use Google Pay. I hope rooting is not the reason why I cannot pair the key.

The "Something went wrong" error message was an indirect result of the fact that the device was rooted (+ I have custom bootloader (TWRP), although I'm using stock ROM). I also couldn't use Android Pay in the past because of the rooting although I tried SU Hide techniques for SuperSU. Tonight I reflashed and this time I used the latest beta 14.3 Magisk, which has auto hide feature.
This Magisk could successfully cloak the custom boot loader and the rooting from SafetyNet, which framework+API is used by Android Pay to see if the device is stock. I assume that the U2F key addition uses the same library as well, because now I could get the BLE part working. NFC is still no bueno. Also, after many tries it become clear that I had to add the MultiPass key first on my desktop using a Chrome browser, and only after that I could complete the rest of the procedure (BLE pairing, ...) on the phone.
The workflow on the phone is weird, because at some point the Bluetooth pairing view got into the background abruptly. I thought something failed again and kept retrying, until I realized that the view is there in the background.
Overall it wasn't an easy ride, but now I removed the phones from my 2FA configuration, and I only have the security keys and the Google authenticator app. You cannot remove that latter one, it's needed for 2FA.
I assume other devices than OnePlus 3T would experience the same thing: if you don't hide the custom bootloader and rooting adequately, software which query SafetyNet will be trippin'.

More than two years later I'd just emphasize the part that you'd first have to add the key to your Google account 2FA using your desktop. This is what Chrome tells as well these days if you try to register the device through the phone.