text:
I installed a large app & it won't install but takes my storage! Now I have full storage but haven't the app?
I installed a large app (1.25GB game) but it won't install. Because of my low storage, it won't install. The said app not installing just like this; but it takes my storage. Now I have full storage but haven't the app. I already cleared the game app and restarted my phone, but it didn't work.
I use ES File Manager & always check my storage; before installing that app my storage was 79% but now 92%. I already searched my internal storage for any tail of the game, but there was nothing.
Btw, I have to say I did something like this before and it fixed by itself I think after a little time, I'm not sure already.
My own files pictures, videos, etc. CAN'T BE 92%, it's about 600MB. My internal storage is shown as 10.50GB & except for this, I have 2.65GB installed apps. I have an SD card 64G too.

See How disk space is used on Android device? and Where Android apps store data?

I am not sure if the PackageManager which is responsible for installing apps uses a cache and where it may be located. But the simplest measure but be to install another small app to trigger the PackageManager. May be during the installation process it recognizes that old data from the last install try is still present and deletes or overwrites it.

It fixed after 3 days by itself again! I think I could only waiting for it to fixed by itself!? anyway thank you very much Robert. :)

& I think next time I going to buy a new phone as my Android is 7.0 too and cant update anymore so...


text:
Getting "CANNOT LINK EXECUTABLE "inotifywait": library "libnotifytools.so" not found. " when tyring to run a script that uses the inotifywait binary
The script is here: https://github.com/Magisk-Modules-Repo/com.piyushgarg.rclone/blob/master/binary/syncd.sh
The code that I do not believe is working is this:
while true; do
    if [[ ! -e ${SYNC_PENDING} ]]; then
        ${HOME}/inotifywait "/storage/emulated/${PROFILE}/${SYNCDIR}" -e modify,create,moved_to,close_write -q >> /dev/null 2>&1 && touch ${SYNC_PENDING}
    fi

When I execute the inotifywait binary as a standalone, I get this message:

CANNOT LINK EXECUTABLE "inotifywait": library "libnotifytools.so" not found.

Does this indicate that I am missing a library? How can I solve the issue?

looks like a typo, try a symlink libnotifytools.so -> libinotifytools.so

You can manually use busybox inotifyd or inotifywait from commandline: https://android.stackexchange.com/a/209585/218526. Here is the statically linked inotifywait binary for aarch64: https://androidfilehost.com/?fid=10763459528675584729

source: Stack Exchange

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

sort: votes


text:
Do I need a 'vbmeta' partition to install GSI?
Following the official GSI installation instructions from Google, they say to run fastboot --disable-verification flash vbmeta vbmeta.img.
When I run that, I get the following message:
Rewriting vbmeta struct at offset: 0
Sending 'vbmeta' (4 KB)                            OKAY [  0.010s]
Writing 'vbmeta'                                   FAILED (remote: 'This partition doesn't exist')
fastboot: error: Command failed

Does this mean dm-verity is not in use, and I can ignore this message? Do I need to make a partition? How do I do that?
Right now the GSI image is not booting for me.
I am flashing onto the Blackview BV5500 Pro, if it matters.

Does this answer your question? Android Verified Boot and generation of vbmeta image

MT6739 doesn't have vbmeta partition, the ususal way for disabing avb/dm-verity is patch the boot.img with Magisk Manager. but as you stated you want GSI just flash ROM from TWRP, i don't think that partition is required

(1) @alecxs No, that's about generating a vbmeta image. I have one already, it's included in the GSI download. (2) I'm not using TWRP, I'm using fastboot. (3) Do you have a link showing that MT6739 doesn't use a vbmeta partition? Why do you say that?

you can check from fastboot getvar all

the linked question is linked for reference

have checked TWRP recovery.fstab - it has vbmeta entry (but commented out). find a stock ROM and check scatter file maybe you can find some with vbmeta partition layout - but i recommend to try Magisk first

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


text:
How do I set mp3s as ringtones on ICS?
I just upgraded my Nexus-S to Ice Cream Sandwich, I can't find the option to set mp3s as ringtones for my contacts? what am I missing?

Go to the contact you want to add the ringtone to, press the menu button in the top right corner and select Set ringtone. The mp3 file has to be in the /sdcard/Ringtones/ directory for the phone to find it.

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


text:
What happens when Google removes a purchased app from Market?
Google removes malicious and copyright-smasher apps from Market. And, I think paid apps are equally treated in this case. Fortunately, Google hasn't removed any app purchased by me, yet. So, I don't have any idea.
What happens when Google removes a paid app? Google returns its cost to buyers or not?
Can I continue to use that app with infringing law?
Another situation: When I purchase an app and do its FIRST installation after even month, the 15-minute refund option is provided. In case of app removal from market, can I utilize the refund option?

From http://www.google.com/intl/en_uk/mobile/android/market-policies.html ,

Product Removals: From time to time, Google may discover a Product on
  the Market that violates the Android Market Developer Distribution
  Agreement or other legal agreements, laws, regulations or policies. In
  such an instance, Google retains the right to remove those
  applications from your Device remotely, at its sole discretion. If
  that occurs, Google will make reasonable efforts to recover the
  purchase price of the Product, if any, from the originating Developer
  on your behalf. If Google is unable to recover the full amount of the
  purchase price, it will divide any recovered amounts between the
  affected users on a pro rata basis.

From what I can gather from above, it seems that

The app in question will be removed from your device and you will be entitled for a refund. (not strictly a full refund sometimes)
The app fails to be removed from the device and you may not get a refund. (Though I suggest you can contact google in this case)

If the app exists on your device, you can use it any how and it is not under jurisdiction of google anymore.

And answer to you alternate situation, again, yes Google will make reasonable efforts to recover the purchase price of Product and the refund option will probably work.

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


text:
Creating universal APK form multiple APKs without having *.aab (Android App Bundle) file
My question is related to Android apps whose developers push their app to the Play Store in the Android App Bundle format (i.e, *.aab file)
Consider a scenario I installed an app from the Play Store to my Android smartphone and then when I fetched the APK to my PC using the adb pull command, I found there is one base APK and there are some split APKs. Below is the image of the scenario which I am referring to.

Is it possible that I can generate a universal APK from these APKs (base and split APKs) without having the equivalent *.aab file so that I will be able to install the same universal APK to my smartphone?

Split APK file formats
Various app download sites were confronted with the same problem. They solved by defining custom file formats and installer for apps that consist of multiple APKs files:

There is the APKS file format which is is just a ZIP file containing the APK files. They can be installed using the APK Split installer app. Optionally APKS files can contain JSON based meta data (see linked file format spec).
ApkPure uses the XAPK file format. Basically an XAPK file is just a ZIP file containing the APK files plus a manifest.json file.
ApkMirror uses the proprietary APKM file format which can be installed using their installer app. Not sure how to build apkm youself

Manual installation of split APK files
You don't need to pack the downloaded split APK files to e.g. an Android Bundle file. adb is capable to install them again as one app, just use the install-multiple command and specify all the APK files that belong to your saved app:
adb install-multiple apk1 apk2 ...

Re-Building an universal APK
On the Internet you can find a tool named "SAP (Split APKs Packer)" which seems to allow to combine multiple split APK files into one universal APK file (if you have all the necessary split APK files)
This "SAP" tool is available for Linux and Windows, however it is closed source and contains a lot of binaries. I am not sure if it is really trustworthy - I would not recommend to execute it outside of a protected environment (e.g. a virtual machine).
The following blog post describes the SAP tool and provides download links.
For more details see also this forum post How to turn a split APK into a normal non-split APK

Thanks a lot for such a detailed response. Can I create a universal apk from base and split apk such that if I am sharing it to some third person (say, through WhatsApp), he will be able to install that app, assuming we both have the same device configurations.

I would go for the APK Split installer app I linked in my answer. It can also export apps to that format and it is open source so the chance that it does only what it is supposed to do is very high. So your friend would only need that app for installing the created APKS file.

Actually nowadays you can install them all (XAPK, APKS, APKM,... ) using same app. Example using this one: https://play.google.com/store/apps/details?id=com.lb.app_manager . To install use any file-manager app and choose this app to install those apps. Can also work as directly on most apps that you got to reach the files, such as chatting apps, web browser apps, downloader apps, cloud apps (Drive) etc...

apk+ is the extension used by CX File Explorer for the same purpose


text:
Is there alternative to the Shred utility for Android?
There is such utility for Linux systems called shred. It writes files with random values several times and then also can write it with zeroes (to hide overwriting) and delete them so that files couldn't be restored.
Is there something trustful like this for Android (preferably not proprietary, but libre software)?

Overwriting data in the "flash age" is next to useless as wear leveling redirects the written data to a new flash cell.

https://unix.stackexchange.com/q/602498 instead of /dev/zero you can use /dev/urandom (but as Robert said it's pointless) https://android.stackexchange.com/q/231098

@Robert ok, what to do to destroy data: overwrite the whole flash memory with the other files?

@RS As long as the flash memory has no spare section overwriting all free space should work. But be careful Android does not like it if the user data partition is fully used. Therefore better keep some KB free.

Flash storage devices are very likely to have some over-provisioning space left for garbage collection, weal leveling and performance. And also there are scores of partitions other than /data on a common Android device. So even if you overwrite (or ERASE / TRIM / DISCARD) the whole /data partition (including its filesystem), you cannot clean the whole flash storage chip. But overwriting a file with random data is usually enough for common users. It makes the recovery of file from filesystem level impossible. Recovery from flash chip isn't very easy, it's usually done in forensic labs only.

@RS can you give us example how you deleted and successful recovered some file on your android device?

@alexcs I deleted a photo by trash button in picture viewing application (Gallery). Then installed some application from Google Play, it scanned memory and then it showed huge amount of deleted images, including the one I was looking for.

@Irfan Latif so if I edit a photo, like spoil it with a brush and then delete it, it's going to work? Edited (spoiled) image only can be recovered, right?

that files actually were never deleted. you most likely just 'restored' existing files from com.android.gallery3d/files/.trashcan or com.android.gallery3d/cache - recovery of deleted files isn't that easy (especially on FBE encryption it's not possible at all)

@alecxs there is no /files, there was cache with some strange files (not jpgs) and I deleted all files in the cache, then data recovery app still restored all photos (deep scan). This one: https://play.google.com/store/apps/details?id=com.i8dudata.imgrecover.free

@Irfan Latif ok, then what's going on (see comment above)?

made some test with the app - it is definitely related to gallery and not actually restoring deleted files. instead it finds thumbnails of previously viewed pictures. i made some screenshot and deleted from gallery. deep scan did find the screenshot. then i cleared gallery app data. second run deep scan did not find the screenshot anymore (my phone is not encrypted)

@alecxs thank you very much, what to do if I have no /files ?

on my samsung tablet android 10 i have noticed in stock file manager there is a trash enabled by default - i have disabled now

i can imagine the locations of thumbnails are endless. basically you need such app with option to delete results. if your device is rooted you can try to find such locations and delete files manually. if you don't ask for single files, of course a simple factory reset is sufficient


text:
What is "Carrier Location Service"?
What is Carrier Location Service in Android?
If I try to allow it, there are 3 options:

Allow all the time
Allow only when using the app
Deny

What are the effects?

What you describe is the request if an app is allowed to access your location. Are you sure this request is for the Carrier Services app?

I couldn't really find references to "Carrier Location Service", but I found "Carrier Location Access" instead on OnePlus (1, 2) and MotoG (1)

It is com.coloros.locationproxy.
It is actually a system app found in Color OS,Realme UI, Funtouch OS, Oxygen OS (Color OS based versions), etc (basically OSs of brands under BBK Electronics)


text:
Blocked SIM card and getting asked for PUK on Lineage OS 17.1
I installed Lineage OS 17.1 on my Samsung Galaxy S3. Everything worked just fine until I put in my SIM card. The first thing which happened after booting was getting directly asked for the PUK code although I didn't even enter a PIN at all. So I just rebooted the phone again which made it not recognize the SIM card anymore.
After that, I put my SIM card in my Samsung Galaxy S5 with stock ROM and I got the message that my SIM card is permanently blocked.
Any idea what happened there?

no clue. sounds like lineageos has tried to unlock sim for it's own but i am not aware about such "feature"?

I didn't expect that "feature" at all :D

can you reproduce with another sim card?

I was affraid to put in another working simcard so i put in an old one. It didnt even ask for a pin, just didnt recognize it where as an old iphone asked for a pin after i put it in there.

On the LineageOS web site there is no LineageOS 17.1 for Galaxy S3. Are you sure you have installed a genuine LineageOS ROM or is it just a LineageOS based customROM? In the latter you are never sure what mdifications were made by the ROM author.

@Robert I'm not sure it might be not genuine. I downloaded it from that source:
https://forum.xda-developers.com/galaxy-s3/development/rom-lineageos-17-1-t4047715

that ROM is Status: Alpha for developers, not for daily drivers. find a stable ROM with no bugs, make a fresh install of stock ROM before flashing custom ROM

thanks, will do.

You have SIM password. You enter wrong password. Then it ask for PUK code. PUK code is link with sim card.
Use sim on normal mobile. Is it ask PUK code.
You can get PUK code from customer care. You can also get it from your online register account.
Get PUK code and use it. Weather sim card work after it.

you missed the point OP "didn't even enter a PIN at all" - it is a LineageOS bug (inofficial test build) and will happen again as soon as SIM is inserted


text:
Enable USB debugging through recovery mode and ADB sideload
This is a follow-up question to Apply update from ADB: how to use it when you are locked out of the device. Basically, I intend to somehow use this command to remove the lock screen:
adb sideload customROM.zip

But, the customROM.zip should be something like described here to enable USB debugging. The problem is, those steps are incomplete:

Steps to Enable USB Debugging Using Recovery Mode

Unzip the stock ROM.

Within the extracted folder, you will find the system.img well extract it too using Ext4 Unpacker

Also, extract the Update-SuperSU.v1.65.zip file.

Now open the folder where you have extracted the system.img files

Grab any .apk file from this folder and change the extension from .apk to .zip

And Copy the RSA Certificated to the Update-SuperSU.v1.65 folder (delete previous files if exist)

Also, copy the build.prop to the system folder located within Update-SuperSU.v1.65 folder

Locate the update-script file within this folder and edit it using Notepad++

You need to update the build.prop file after adding the following line at the bottom
persist.service.adb.enable=1

Next step is updating SQLite Database

Which can be done by adding the following code to the update-script file
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "UPDATE global SET value=1 WHERE name='adb_enabled'"

Cheers! You have Enabled USB Debugging
Now you can install your custom or stock ROM using ADB – USB Debugging

Although the above steps seem incomplete, they look convincing that there might be a way to modify a stock ROM to enable USB debugging by:
adb sideload modified-stock-ROM-which-just-enables-USB-debugging-and-does-nothing-else.zip

Is there any better explanation than those steps?

A non-rooted stock device should not allow to install unsigned updates. As it is a Samsung device this may be a bit different (unlocking and flashing e.g. via Odin is different to most Android devices) but at least when booting first time after making your changes the device should clear all user data because of the manipulation. As I wrote in your last post the best way is to perform a factory reset.

@Robert Right, but factory reset erases all data. I just want to keep phone camera photos and videos =)

And the device PIN/pattern has been designed to protect those images from "unauthorized access" (authorized is the person who knows the PIN). I understand that this not what you want to hear. Also keep in mind that the files should be encrypted which means that even if you manage to bypass the lock screen you might still not have access to the files.

we can only tell you what is not possible https://android.stackexchange.com/q/227110

this is closest to what you want. injecting a script via flashing whole cache partition from heimdall/odin which can do modifications from stock recovery (like enable usb-debugging and authorize adb). but this is long outdated and modern samsung devices not supported https://android.stackexchange.com/q/186907

if someone knows if it is possible (or not) to exploit your device on locked bootloader then it's user elliwigy but believe me that whole stuff you found is all outdated, there is no hope in 2020. this is how i did on another ancient device https://forum.xda-developers.com/showthread.php?t=2965462

Do those steps above. However, when you get adb access on the phone, use it to rm the gesture or passwd file located in /system/system_ext/etc/passwd. This will remove the lock when you use it. Just input anything and it will let you in, which will then unencrypt your files as well.
This is the solution to the best of my knowledge, it's possible I may be incorrect but I think it will work.

I don't have the phone any longer. So, I cannot double-check your approach. Maybe someone can test it later :)


text:
How to delete file completely?
It's not a duplicate, because this question isn't about shredding files that already deleted, it's about deleting them in the first place in a way that recovery software wouldn't find it.
I delete photos, but this software FindMyPhoto still recovers them. I think photos are really deleted, and those that restored are thumbnails, because when I restore them they doesn't look that sharp. I delete photos through the Gallery application. I tried to clean Gallery app cache, that doesn't help.
I tried to use firmware (preinstalled by manufacturer) that cleans Android of junk (like cache etc), but the application above still finds it. And I don't know how to completely remove the files. It's like I've got a device with undeletable files and starting really hate Android (it's really betrayal and annoying behavior).
So if you could recommend some application may be (preferably from a well known company or free software, like those  from F-Droid repository) I would appreciate it. Thanks.

@Firelord i think that is a follow-up question of this one https://android.stackexchange.com/q/231132

it is still a mystery to me, this app does not restore anything on my device (rooted, no encryption). if you delete a file via rm from terminal and clear gallery app data, the file is gone

@alecxs Yes, it'a a fllow-up of those question. I knew I'd better do not buy Chinese phone (Xiaomi).

You could take a look at my corresponding app list. Though due to wear-leveling on flash storage, I always wonder if those apps even can work.

This question is still missing relevant information: 1. What files do you try to delete (where are they located, path, partition, ...). 2. How do you delete those files? Which command or app do you use to delete those files? 3. Have you made sure that the delete command was really executed? reboot the device and use adb to check if the files really have been deleted (and not just moved some sort of trash).

@Robert I think photos are really deleted, and those that restored are thumbnails, because when I restore them they doesn't look that sharp. I delete photos through the Gallery application. I tired to clean Gallery app cache, that doesn't help.

btw i really think it matters if you clear gallery app data (not just gallery cache). also try 'rm -r /storage/emulated/0/.thumbnails' (not sure if exist)

Thumbnails are separate files from the actual pictures on many phones. They are usually hidden from many apps because they are located in a directory (or subdirectory of one) that also contain a hidden file named .nomedia

@alecxs hard to find how to delete data, not cache. May be it's because I have MIUI. And there is no /storage/emulated/0/.thumbnails file or directory.

@svin83 I deleted .nomedia from .../cache of Gallery app, it did absolutely nothing. How about .../uil-images/journal file?

Deleting the .nomedia file in a directory will only un-hide media files in that directory and all subdirectories... That means those files (if any) will also show up in your gallery... It won't delete thumbnails... I never said it would...

@svin83 it seems they haven't appeared.

Well stop using the gallery to delete what the gallery tells you isn't there... Use a REAL file manager to delete images and thumbnails and then go clear the gallery app cache in Android settings->Apps->"Gallery app name"->Storage... Then use the "clear cache" button...

MIUI Gallery creates thumbnails in
/storage/emulated/0/Android/data/com.miui.gallery/files/gallery_disk_cache/full_size
/storage/emulated/0/Android/data/com.miui.gallery/files/gallery_disk_cache/small_size

Some versions of MIUI Gallery do not even delete thumbnails when pictures are deleted.
Unlike for user apps MIUI does not provide the Clear Data button for system apps. The Clear Cache button does not wipe app data, therefore one need 3rd Party app to Clear Data (Link2SD can do it)

Once you deleted files from
/storage/emulated/0/Android

such apps like FindMyPhoto and similar stop working, as they don't really undelete files.


text:
Will linked moved apps to sd card through link2sd works after unrooted mobile?
Will linked moved apps to sd card through link2sd works after unrooted mobile?
I want to move my apps to external sd card of my android 6.0 mobile it has option of formatting sd card to internal memory but still out of 100 user apps installed it automove auto save 30 apps to internal formatted external micro sd card and 70 user apps auto installs still remains internal memory which are unmovable thus filled my internal memory
I once tried link2sd with 3-4 years before my old android 5.1 mobile device after rooting it. But it got problem after rooting through kingoroot as it was open and some.malware corrupted it I recovered it back through flash stock rom but didn't tried it again. Link2sd smoothly automatically moved linked apps to second partition but I kept the mobile opened and didnt unrooted it and some root permitted apps malware or cleaner corrupted or deleted some system file that old time.

I want to know if I again root my android 6 mobile with proper stock ROM backup through magisk or su or kingoroot and use link2sd or app2sd and install move or link user apps to micro sd card second or first partition and then unroot it will the linked or moved app work after unrooting mobile as link2sd script runs scripts on every booting of android in boot.init so technically it's possible to unroot after installing moving linking apps through link2sd or app2sd will android recognise link2sd linked apps without rooting privilages permissions after moving can we unroot it again.
I want to unroot to safe mobile from accidently deleting any system root files by cleaner or anitmalware or any malware infection for security


text:
Root Xiaomi Qin F21 Pro Touch for Android 11
How to root Xiaomi Qin F21 Pro Touch? (I have the firmware)

https://android.stackexchange.com/q/219968 https://android.stackexchange.com/q/221947

https://android.stackexchange.com/q/232388
There is no need to edit system partition. Magisk provides better solution. that's why it is called systemless-root

Unlock bootloader, disable android verified boot and root with systemless-root method. If non-unlockable bootloader root with bootless-root method.

i I do not have how to open the bootloader and I want to be able to edit the system partition and in the method that without opening the bootloader it is not possible to edit the system

Press the off button together with call button for about 10 seconds

The question is about rooting the device. What you have suggested appears to be a key combination to boot into some specific mode in a device, such as fastboot, Recovery, etc.

Based on the comment on another answer, I'd assume this is a method to unlock the bootloader? Could you [edit] and expand the details on what this button combination is for?

looks quite promising https://github.com/MlgmXyysd/F21ProInjector https://github.com/bkerler/mtkclient#unlock-bootloader https://forum.xda-developers.com/t/tools-mod-scripts-mlgmxyysds-qin-f21-pro-unlock-tool.4368277


text:
How to decrypt /sdcard | Keymaster HAL 4 | Unexpected value for crypto key location
-Update:
Looked into TWRP log, and it seems like it has key problems:
I:Setting up '/data' as data/media emulated storage.
I:mount -o bind '/data/media' '/sdcard' process ended with RC=0
I:mount -o bind '/data/media/0' '/sdcard' process ended with RC=0
I:File Based Encryption is present
e4crypt_initialize_global_de
Determining wrapped-key support for /data
fbe.data.wrappedkey = true
Wrapped key supported on /data
calling retrieveAndInstallKey
Key exists, using: /data/unencrypted/key
Using Keymaster HAL: 4 from QTI for encryption.  Security level: TRUSTED_ENVIRONMENT, HAL: android.hardware.keymaster@4.0::IKeymasterDevice/default
begin failed, code -62
Upgrading key in memory only: /data/unencrypted/key
upgrade_key failed, code -38
e4crypt_initialize_global_de returned fail

And this is after I wanted to decrypt it:
I:Command 'decrypt *********' received
I:Set page: 'singleaction_page'
I:operation_start: 'TWRP CLI Command'
Attempting to decrypt data partition or user data via command line.
E:Unexpected value for crypto key location
E:Error getting crypt footer and key
E:Could not get footer
Failed to decrypt data.
I:Done reading ORS command from command line
I:operation_end - status=0

Checked the location at /data/unencrypted/key and the files are there for sure.
Currently I'm on the same ROM as the one that on I could access my internal storage, but the issue could be that I went FDE -> FBE -> FDE as it's mentioned in the comments.
Keymaster error codes are respectively:
KEY_REQUIRES_UPGRADE = -62
INVALID_ARGUMENT = -38
How to fix the keys is the answer I might looking for.
Long story short, I screwed up, and now I have an encrypted storage (with my files that I want back) but TWRP and the OS thinks it is not.
It goes like this:

The Magisk v22.0 update screwed up my phone, which stuck in a
bootloop.
After countless tries with Magisk  (updating, uninstalling.
installing, removing mods, adding mods) in TWRP, I read somewhere to
dirty flash the ROM.
Due to an HDD failure in my PC, I did not have any storage to back up
my internal storage from the phone.
Because I wanted to update the ROM anyways (from MIUI 11 to 12) I
decided to flash the newer one. That was the first mistake.  This
made the bootloop worse, and now it stuck in fastboot mode, no
recovery. After many sleepless nights I found out that not every
USB-C cable is equal, and I couldn't reach my phone via fastboot
because of the cable itself.
Due to an HDD failure in my PC, I did not have any storage to back up
my internal storage from the phone.
So now I was able to flash an original fastboot ROM which still gave
me bootloop, but after wiping (not formatting, so the /sdcard fs
doesn't gets erased) Data and Cache in TWRP.
Then reflashed the fastboot ROM, and somehow it worked.  When It
booted up, I had to type in my screenlock pin again, and after setup
all my files were available.
Now that the phone worked again, I wanted to finish what I started,
to update to latest EU (recovery) ROM. This was the second mistake.
It did not work (because it required formatting data, which I did not
wanted to, and just wiped it), and came bootloop again.
So I went back to the fastboot ROM again, which fixed the phone
again.
But this time, it thinks the internal storage is not encrypted.

Now I can't access the internal storage. Even the camera app says that first I need an SD Card to take photos.
It's clearly still encrypted because when I browse it in TWRP, the structure and files are there, but the names are like "74t7Z1,dnvgIIexr1QAfhD".
The problem being neither the OS, nor TWRP knows the storage is encrypted, so it doesn't even tries to decrypt it, and there are no options to do it.
Tried to set encryption in the running OS, but it gave me the same results: even tho TWRP asks for decryption key, and says it successfully decrypted, the storage is still a mess like it's in encrypted state.
Is there any way to manually force some flag, so I can access my files again?
I have the encryption key, I just need some way to decrypt the storage. I think of something like an ADB command to flag the partition as encrypted, so TWRP and OS would try to decrypt it.
Thanks in advance!

your description is too broad. it looks like you switched encryption type from FDE -> FBE -> FDE so at least you should install ROM+recovery which support FBE. be aware encryption keys are downgrade protected

It seems like it really is an encryption key problem.
TWRP log showed this:
Determining wrapped-key support for /data
fbe.data.wrappedkey = true
Wrapped key supported on /data
calling retrieveAndInstallKey
Key exists, using: /data/unencrypted/key
Using Keymaster HAL: 4 from QTI for encryption.  Security level: TRUSTED_ENVIRONMENT, HAL: android.hardware.keymaster@4.0::IKeymasterDevice/default
begin failed, code -62
Upgrading key in memory only: /data/unencrypted/key
upgrade_key failed, code -38
e4crypt_initialize_global_de returned fail

pulled the whole block, which is 230GB (256GB storage...).
How do I decrypt a double encryption? This is the question I cant find an answer to :/

tucana:/ # df -h
Filesystem       Size  Used Avail Use% Mounted on
tmpfs            3.6G  288K  3.6G   1% /dev
tmpfs            3.6G     0  3.6G   0% /mnt
tmpfs            3.6G  140K  3.6G   1% /tmp
/dev/block/sda30 356M  1.1M  355M   1% /cache
/dev/block/sde51 320M  139M  181M  44% /firmware
/dev/block/sda32 228G   15G  214G   7% /data
This is the current state after pulling, formatting data, then installing latest OS wich already has force encryption. Just push back data? Because the img is like 230GB :D

well, rip then
Tho I don't want to let it go. Is there any way to decrypt *.img offline/locally

It was sda32. How is it hardware-backed? Never read it in documentations, all I saw was the key, and some salt, no hardware-based encryption.

so all you need is flash the ROM which did the FBE encryption (MIUI 12?) and let TWRP decrypt. if it fails you can read this chat for creating keyring and decrypting manually (FBE)

this TWRP should work https://forum.xda-developers.com/t/recovery-3-4-0-10-tucana-official-unofficial-twrp-xiaomi-mi-note-10-cc9-pro-stable.4015805

I came across somebody with a similar issue after an OS update...
I used TWRP from the beginning, exactly the version you linked. The problem is not with TWRP sadly.
I will look into the forums you linked, much appreciated. Thanks for you effort so far, I learned a lot.

Reading about FDE I think I never had FDE. Because it required to enter pass at boot, which prevented the phone to fully boot up -> preventing apps like clock or calendar (alarm) to work if the phone silently restarted at night.
So now I'm pretty sure that its only about FBE.

"FBE keys derive sub keys using HKDF-SHA512. The master key is wiped on factory reset which leaves FBE keys encrypted without any way of decrypting them in future.
The master key is itself derived from user's passcode and SHA-512 of 16KB random file. Resetting the device wipes this file and seed which makes it impossible to reconstruct the same master key again even if user sets the same passcode again after factory reset."
Well, I guess this is the end. Even if I could retrieve deleted master key from a formatted /data, I already formatted and wiped it like 10 times, so no chance :(

FDE is using 'default_password' on all Xiaomi devices, no need to enter password on boot. crypto-footer is used for FDE and flag forceencrypt= is for FDE only (and the value is pointing to crypto footer. FBE keys are wiped on factory reset because stock recovery is sending deleteKey instruction to TEE. Are you 100% sure TWRP recovery does the same? simply formatting userdata partition does not affect keystore

as i already mentioned keys are downgrade protected. you need proper ROM version (including firmware, modem, etc) which matches the version that created/modified 74t7Z1,dnvgIIexr1QAfhD file last (key is in xattrs). then, and only then, TWRP is able to decrypt, because TWRP uses other partitions for decrypting (assuming you did not factory reset from stock ROM/recovery and keystore is not wiped yet)

https://android.stackexchange.com/q/216155


text:
How do IDE apps on Android build APK?
Apps like AIDE, SketchWare, and AppBuilder can build APK files directly on Android devices.
How do those apps do it?

Sorry for the mistake, I'll post somewhere else. The documentation doesn't cover this topic btw

Sorry, I misread the title as "Android Studio" and reopened the question to give a chance to clarify. Note that since this community focuses on end-users instead of developers, we could probably provide an overview of what those apps do to generate an APK. However, if you want the detail on how to do it on your own app, take note that development-related questions are off-topic.

Yes, thanks a lot. This would be just enough

The tools for compiling and building an Android APK are open source. Therefore you can compile them for e.g. arm and build an Android development environment on-device. It looks like AIDE works this way. I have seen tools like aapt and aidl in the AIDE apk file and it contains a lot of sample Android apps in source code form (Gradle project). Using e.g Termux app it should also be possible to compile Android projects  via gradle on command-line.

Fantastic explanation, Robert. Now I got it. Can you, please and kindly, provide some tutorial or documentation about this?

@Robert nevermind, found this: https://stackoverflow.com/a/9731518/13217410

The linked interview is totally outdated as it talks about the no more used Android development plugins for Eclipse.

Yes, but the rest of the toolchain is almost the same, if I understood well

There are still programs that do more or less the same job, but nearly every tool in the Android build chain has been replaced in the last years. This schema diagram is a bit newer: http://tools.android.com/tech-docs/new-build-system/build-workflow

I see. Thanks for telling


text:
Is there a way to hover in the mobile (Android) version of Microsoft Word?
I have a .docx document with images that are animated when you hover over them. It works fine on my computer, but when I copied the file over to my phone, I cannot work out what to do to make them start.
Is it possible? And if so, what is the most simple way to do so?

I assume with hovering you mean "move the mouse cursor over the image". The main problem is that on mobile devices you have touch but not a mouse cursor. This might be a problem. The other potential problem is that the mobile versions of Office don't support all features of the desktop versions. I don't know which one of the two mentioned problems (or both) causes the missing animation.


text:
Customize Google Assistant button
I am using a Motorola phone which has a dedicated Google Assistant button, but I don't use the assistant much.
Is it possible to customize the button and use it for some other activity?

If you only want to customize the Google Assistant button, then Assistant Shortcuts is a good solution.
By setting it as the device's "assistant", you have a single button press to perform any function you specify. I'm currently using it to take screenshots.

Fortunately there is a way..
Download this Button Mapper , grant the accessibility permission then click on add a button then press the button to record it and then set the function you want! Simple as that.
Remember to turn off battery optimization for Button Mapper app because if the app is paused by the battery optimization then no hardware buttons will work (touch screen will work). You'll have to go to settings and kill the Button Mapper app to get hardware buttons working again.
This is the only way to change the button function without root.


text:
Company owned devices options for system apps
My questions regard the possibility to temperate which phone application could be set up while using Google Workspace (or any other MPA). Specifically: can I set up an application to replace the phone system app?
I've read this but does that means that I can't disable the phone system app? Or that the com.android.phone package is the system app.
Another solution would be to get controls over the default apps settings and lock the employee out of these ones. The MPA solution would then be able to enforce the use of another Phone App as being the default system one. I could not find any documentation covering this.

My interpretation of https://support.google.com/a/answer/7292363 is that
com.android.phone is a system app that cannot be disallowed
However you can create a policy which will prevent non-emergency calls:

4.24. System radio management
4.24.5. IT admins can configure whether the device can make outgoing phone calls, excluding emergency calls (see outGoingCallsDisabled).

At which point you can put your own Phone app on the device. Note limitations on Phone apps that developers are bound to.
So presumably the device will still have the Google phone app but that app can only be used to call emergency services.

Nice, that would do for outgoing calls but still, that doesn't mean I can enforce incoming calls to be answered only through a phone app replacement, an employee could still modify the default app settings to choose the system one.

I was under the impression that your devices would be using a VoIP system, https://developer.android.com/work/dpc/network-telephony.html#third-party_apps_must_implement_connectionservice, but if its over a mobile voice network, the mobile provider should have audit capability and perhaps even some controls.

I can't use VoiP here, the project is for a financial institution which, due to some regulations, is forbidden to treat calls over the Internet, so the solution I need to provide is SIM-based only. Tuning the mobile provider would mean something entirely different. What I'd need is this: https://developer.android.com/reference/android/telecom/InCallService#becoming-the-default-phone-app with no turning back (except at an admin level)


text:
What app is org.codeaurora.snapcam?
I found this app with package org.codeaurora.snapcam showing up on my Google Activity. It say I used it, but also it doesn't show any details of what it is. It just shows details of my phone. I have Hot Pepper VLE5 phone and also a Samsung A20 which my husband uses but were on the same Google account on both phones.
My husband thinks it is a secret app that I use to hide things like messages and pictures. I love my husband very much and I know that is not true. I did some research of it but there was not many accurate answers. What I understood is that it's a camera app called camera apk, but I wouldn't know if it's that. I have seen a lot of apps on Google Play called Snapcam, but that is a photo editor and i don't use those kind of apps. So it can't be that.
I just don't know why this org.codeaurora.snapcam shows up on my Google activity saying I used it. I really need to know what this is. I'm so confused I would really appreciate your help. Thank you.

snapcam is SnapdragonCamera app: https://source.codeaurora.org/quic/la/platform/packages/apps/SnapdragonCamera. Snapdragon is the brand name of SoCs manufactured by Qualcomm and used on many Android devices. Codeaurora is the public forum to release updates for SoC components from Qualcomm: https://wiki.codeaurora.org/xwiki/bin/QAEP. You can make a web search to know more.


text:
Read data on SD card which was formated as Internal storage of Android OS
I have a Lenovo Vibe K5 Plus with Android 8.1.0. I plugged in a new SD card (Kingston MicroSDHC 32 GB) and this SD card was formatted as Internal storage, so data on this SD card was accessible by connecting the mobile phone to the PC.
However, yesterday I removed the SD card from my mobile phone and I did a big mistake that I clicked something in Settings -> Storage, something like forget SD card. So now I have got an SD card with my data (photos, music, etc.) which I cannot read on a PC with an SD card reader.
Is there any chance to read my data from this SD card? I looked that in my phone some data has .nomedia.

restore backup of phone from previous state (before forgetting sdcard)

Did you click FORMAT Sdcard? If you did then your data is gone and unfortunately you can not recover it

I did not format SD card, because it was removed from phone. Data should be still on it, but i do not know, if it possible to read them with any special software or how....?

Hello, I do not have any backups, because all worked properly. I expect if there is some option (program) to read my SD card data. I did some research, that now SD card is crypted...but I do not know if is posible to read them.

in that case your data is lost forever - SD card formatted as internal storage Recovery Data - Completely securely deleting a single file - How long does it take to crack DES and AES?

The "forget" option tells the Android system you no longer have the card. What it then "forgets" is the encryption key needed to encrypt/decrypt this specific card. So basically you've locked the safe and threw away the keys; without the keys, there's no reasonable way to open the safe again.
Thus, your data are lost. It might be possible to regain the key (e.g. if the device is rooted; you could create an image of all its file systems and use forensic methods to find and extract the deleted key). But not only would that require your device to be rooted, the effort to find and extract the key is not low, and chances are it's meanwhile overwritten. If your data are worth a 4-digit value (EUR or USD) to you, you could contact a forensics company to give it a try – but chances are rather low.
Permit me a note to one of your comments on your question:

I do not have any backups, because all worked properly.

That's exactly the point-in-time when one does perform a backup: you need the data intact. You cannot create good backups of a broken system – but at that point you'll need a backup to repair it, as we've just learned.
Also see: How to get Adoptable storage encryption key without root access after I “forget it” (answer: you can't).


text:
Cannot open PDF files received on WhatsApp directly
When I try opening a PDF file that I receive on WhatsApp directly by clicking on the WhatsApp message, I get the message, "You may not have a proper app for viewing this content".
I already have PDF viewers installed on the phone (Google PDF Viewer, Adobe Acrobat Reader). I can open the file when I open it via a file manager.
How can I open the PDF files by clicking directly on the WhatsApp message?

Possibly related/duplicate to understand how WhatsApp works: Why WhatsApp is suddenly unable to open any APK shared by users?

It turns out the trouble was that .PDF was in caps.

Hello TrueUser. How did you reach this conclusion that all uppercase alphabets in the file name causes the issue you described in your question?


text:
Identify the source process and/or app from an output in the logcat
When I plug my phone into my computer, I can see the logcat output in Android Studio. I recently noticed that whenever I start entering a password in a field designated for passwords (the ones that display '*' for any character), the phone prints a very concerning message to the console:
D/HwAutofillHelper: inputType is password, now record

Since it is an Honor Phone, I suppose Hw is short for Huawei?
Nevertheless, I'd like to know if there is a way to find out what process produced this output and what app it belongs to?

Based on on the Internet search result for HwAutofillHelper I would assume that this class exists only on Huawei devices (all references were related to Huawei devices). As the log entry can be produced by multiple apps, I would assume that it is a system framework that is active in every app. Would be interesting to see the code of this class...

Logcat can show the process ID (PID) that outputs the log message.

For command-line: adb logcat will use threadtime by default, which shows the PID
For Android Studio:

Open the Logcat window
From the toolbar (on the left-side), click the Logcat Header (cogwheel) button

If the toolbar is not shown, click the Show Options Menu (cogwheel) button on the top-right corner, then choose Show Toolbar

On Configure Logcat Header dialog, check Show process and thread IDs, then press OK

By default, logcat will show the log in the following format:
date time PID-TID/package priority/tag: message

With the PID, it is possible to identify the source with ps command with -p flag to pinpoint the source, i.e. adb shell ps -p [PID]. The command will show the package name or the executable name.

Example
The logcat returned the following message
2020-07-08 22:06:16.002 18510-18510/? I/ScreenEventHandler: Received Broadcast ACTION_SCREEN_ON

The PID is 18510.
Calling adb shell ps -p 18510 returned the following
USER      PID   PPID  VSIZE   RSS   WCHAN            PC  NAME
u0_a107   18510 15708 1006092 44320 sys_epoll_ 00000000 S com.asksven.betterbatterystats

Thus, the message was written by com.asksven.betterbatterystats (BetterBatteryStats)

Further idea: getting the APK and browsing/reverse-engineering it to pinpoint the class name and the exact line in the code.


text:
Unlocking Google Pixel 2 XL without losing data
I need to unlock my Google Pixel 2 XL without losing my data. I figured out the simple solution of doing a hard reset, but I can't lose all the important things on my phone because I need them for court and all of my clients of 20 years for work.
I can't afford to buy any software, so I downloaded an app called Dr.Fone, but unfortunately it does not support Pixel at this time. I am not the most computer or tech-informed when it comes to these things, so I went to a local phone store and ask if they have software to do this and still no luck. I also tried to follow some YouTube tutorials and did not have luck there, either due to my lack of ability to obtain some of the resources or actions that they needed me to perform from the phone because I cannot get into the system.
Is it possible to unlock Google Pixel 2 XL without losing data?

Are you able to log into the same Google account that is associated with your device, on say, a desktop or laptop computer?    If so, you can visit google.com/android/devicemanager to possibly assist in managing your device.

adb backup would be one method of backup non-rooted device, but it requires access to device. if you locked-out no tool in the world can help you, that is security per design. but every device has at least one bonded google account (otherwise you couldn't use Google Play) use official unlock solution to set a temporary screen lock password from PC with this google account (see @CzarMatt comment)

if your data is that important consider paying for a professional unlock service maybe they can bruteforce pin/pattern

Android devices always delete all user data when unlocking the bootloader.
This is a requirement by Google which has to be implemented by each and every device. In the past there were a few devices that did not perform a full wipe or had other bugs, but as far as I remember Google Nexus/Pixel devices were never affected by such problems.
Therefore I would not trust any software that claims to unlock the bootloader without data loss.
The way to go is to make a backup of all data, unlock the bootloader and then restore the backup. If an app does not allow to make a backup, sometimes the app itself has an integrated backup function to do so.

If you have saved the files of your clients or any other important files on the phone (internal) storage, then copy those files to an SD card or computer. Then, reset your device, in which it will delete every app and file on the phone storage. After setting up your device from the start, move all the important files on phone storage.


text:
If a user debug build comes with adb root access by default, does it contain the su binary?
If an Android user debug build comes with adb root access by default, does it contain the su binary to achieve this?
If not, is it any different from rooting your phone?

adbd doesn't use su binary but latter is shipped with debug builds (if not explicitly removed by ROM developer). However this su is entitely different than the one we get when we root the device. Details here: What special privileges “/system/xbin/su” does have w.r.t. root access?. Also related: Why “adb root” does nothing?

So that explains why im seeing the su binary within the xbin directory. I was wondering what that was.So when a device becomes rooted using a conventional method like Magisk and grants an app root access, to run root shell commands, does it use the adb daemon to an extent?

Not at all. Magisk runs its own daemon. See How Magisk works?

No, adb does not require a su binary to get root permissions.
On a regular build, it is just the other way around: adbd is started by the Android system itself with root permissions. Up to a certain point, it uses these root permissions (open port and so on), and then adbd drops the root permissions.
On an Android user debug build, it comes with adb root access. adbd does not drop the root permissions, hence every command executed via adb is also executed with root permissions.

So when someone "roots" their device using the su binary , does it just enable them to run adbd using root permissions? And does the using su binary provide root permissions anywhere else that a userdebug build does not?

@RameshJoshi adbd and su are totally independent from each other. Each of them does not use the other on it's own.  On a rooted device (where adbddoes not run in root mode) however you can inside the shell provided via adb (adb shell) execute commands with root permissions via su but that is a different topic because in this case you as the user use su, the adb shell is just the "stage" you are working on.

I just built a userdebug version of AOSP 10.0 for my Pixel 4 XL; it does contain an su binary in /system/xbin/su.
It differs from what many mean by "rooting" in that it doesn't let you actually run su from on the phone itself (say, within Termux). It can only be executed by root or a member of the shell group, which is what is used while running an adb shell session. However, it still is a way to run things as root; it merely requires an adb connection to do so.
If your USB cable doesn't carry data or your USB port is broken/faulty, you wouldn't be able to run things as root anymore (unless you had already set up adb on the device to run over TCP).
I later put Magisk on my otherwise-AOSP ROM and now have two su binaries; the Magisk one is installed in /sbin/su. Magisk's /sbin/su will let me run things as root without an adb connection active.


text:
Termux messed up C++ pointer with clang compiler
Here is a simple C++ code named test.cpp to detect whether a pointer is null.
#include"iostream"
using namespace std;
int main()
{
    int *a;
    if(a!=NULL)
        cout<<"a points at something."<<endl;
    else
        cout<<"a is a null pointer."<<endl;
    return 0;
}

I compiled it in two devices:

Termux in Redmi-K20-Pro Android phone (unrooted) with clang: clang++ test.cpp -o op
gnome-terminal in Raspberry-Pi-4B with gcc: g++ test.cpp -o op

Then I ran the program with ./op but the results were different:

Termux printed a points at something
gnome-terminal printed a is a null pointer.

Obviously the second result is right.
Because both devices are based on ARMv8 architecture, so no hardware problem exists. There must be some problems with Termux, the compiler, the Android system root, or something else.
Is there any solution to fix this immediately?

Even if you use the Android app termux your problem is a C++ programming question which is totally unrelated to Android, and hence off-topic here. Most likely it is caused by different C++ compilers.

Assuming we're blind about the code since this site focuses on Android end-users who are not necessarily developers ([so] is for programming issue), how about compiling with GCC in Termux?


text:
Accessing vdc from shell
I am trying to change my device encryption password by opening a terminal in TWRP and typing vdc changepw default_password 1234 and it's giving me vdc: inaccessible or not found.
Is there something wrong with my approach or is the issue with the phone?

vdc won't work in recovery. It's a dynamic binary in /system/bin which links to libraries in /system/lib. Usually this doesn't happen automatically in recovery mode. But even if you manage to do so, vdc is just a small wrapper to communicate with the actual bigger service vold. But in recovery mode OS and hence its services are not running. So many of Android's commamdline tools don't work in revovery mode, including am and pm.


text:
Install Android 4.1 on unknown custom Chinese tablet with X210 processor
I want to install Android 4.1 on a custom tablet running custom hardware and a custom Android 4.0.4 because I need TLS 1.2 to work on it.
I understand there is quite a big chance of bricking the tablet but I'm willing to risk it.
Here is some info for the device

Device Model: Unknown
Android: 4.0.4
Processor: X210 (armeabi-v7a)
Processor frequency: Unknown
Cores: 1
Audio chipset: X210
GPU: Imagination Technologies Power VR SGX 540
Display resolution: 753x480 @68 Hz (6.2")
RAM: 381 MB
Internal Storage: 540 MB

I'm just not sure how to go about it or what ROM should I use.
Do I try to find an original Google ROM or one of those custom CyanogenMod ones? I want to try something with the maximum chance of success, so any tips and guides are highly appreciated.

Google only provides ROM for Google devices. Though, without knowing the device model/maker, there's almost no chance. The real issue is that there is no generic ROM in Android

Basically the same as How to install a custom ROM on a generic Chinese Android tablet? which even for the community is a difficult task to answer satisfyingly.


text:
How can I export audio recording files with bookmarks from Samsung Voice Recorder app?
I have a Samsung Galaxy S8+ phone. I use the Voice Recorder app a lot and I also add several bookmarks to each file. Now, my phone is out of storage space and I need to back up my old recorded files to a computer. Although I know how to find the m4a files in my phone storage, I cannot find the corresponding bookmarks for each file.
So, my question is:

Where can I find these bookmarks in my phone storage? If it is embedded in m4a files, how can I see them on my Windows PC?

If it is only seeable in the same app, does it mean that if I move the files to my computer, I can access the file and its bookmarks whenever I move a copy of it to the recorder app on my phone?

adb backup -f voicerec.ab -apk com.sec.android.app.voicenote

Based on a possibly related question How does Samsung's Voice Recorder's Speech-to-text function store the text and sync it with the audio?, perhaps the bookmarks are also embedded inside the file (answering the 2nd point). Not sure how to see decoded them if they're stored as serialized Java blobs.


text:
How do I recover deleted text messages and attachments on Samsung Galaxy Note10+?
While attempting to delete an SMS ad on Samsung Galaxy Note10+, I did not notice that every message in my log was checked and I deleted my entire text history.
How do I recover deleted text messages and picture attachments on it?

Without root permissions (to extract the SMS database), hardly possible. For some background, see this Q&A – a little aged, but basically still valid.


text:
Can't use mobile data on non-default SIM, even if inactive when the second SIM is open call
I'm using OnePlus 7T with dual SIM.
SIM #1 is my default SIM, and SIM #2 is a data SIM which I'm using only for mobile data.
Obviously, I've defined SIM #1 to be the default SIM for calls and SMS, and SIM #2 to be the default SIM for data.
When I'm in an active call on SIM #1, SIM #2 is automatically blocked.
However, instead of using SIM #1 for data, the phone is simply not getting any mobile data at all.
Any ideas on tackling this problem? Thanks.

If you can specify the connection type for SIM #1 try to set it so that LTE is disabled for SIM#1. LTE has no voice part. If a call comes in the device can make use VoLTE (which requires a data connection on SIM#1) or drop SIM#1 connection to 2G/3G. Based on your description I would assume it uses VoLTE which then collides with data from SIM#2. an the VoLTE connection only can only be used for voice data, hence no Internet connection.

Sim #1 uses 2G\3G on calls (no VoLTE).
I think the phone can't use data from Sim #2 since OnePlue 7T is DSDS (dual sim dual standby), meaning it can't actively use Sim #2 when Sim #1 is in call.
I just don't understand whey it doesn't just tries to use Sim #1 for data. (which do happen when I choose Sim #1 as my default data sim as well)

It all depends on your network strength and ability to handle voice + data.
Like 4G, VoLTE has no issue with this. It can handle voice and mobile data simultaneously.
If you have another network, then make sure the network strength is high in your area and your SIM provider can handle both voice and data simultaneously.
Also, mobile hardware and Android OS have features to handle voice + data.

So in your opinion this is totally independent of the fact that the phone is a dual-sim card phone (because you mentioned anything about that fact in your answer)?

But when my default data sim is the same sim I use for calls, I am able to use the internet even when I'm in active call (and not only on VoLTE)


text:
What apps are prevented from Amazon Fire tablet?
I am thinking of getting an Amazon Fire tablet HD 8. However, I have heard that Amazon restricts the apps that can be installed on it. Is this the case? Or is it just the Google Play store is not available? Because, I've also read that because it's Android-based, it is possible to install Google Play Store.
Can APKs be downloaded/installed from other sources? Specifically, I need to know if particular apps are available on it (FlipAClip, Soundtrap) as not having these would be a deal breaker.

It's Android, so most apps should work by sideloading. The only way to know if the app is incompatible is by physically testing the apps on the device. If they turn out not to work, you can simply flash a custom ROM and problem solved.

"simply flash a custom rom" - HaHa ROTFL, this man has humour! :)


text:
Weird problem with YouTube app on MIUI 10.2
There is this problem with the YouTube app on MIUI 10.2. When I open the app, the 'YouTube' logo part at the top has completely disappeared and it just shows the search box, the notification bell, and the account picture.
Tried the usual things like rebooting the phone. No use. When I clear the app data or uninstall YouTube app updates and re-install them, it goes back to normal showing the logo, when, after that, I open the app for the first time. But when I close the app and open it later it goes back to no logo again. Tried everything except factory reset.
Any idea why this is happening? Some kind of weird virus thing or so? Not that I miss the YouTube logo terribly :-), but this glitch seems annoying and doesn't seem to go away despite my best efforts!

Did you try updating it? Bugs like this are generally fixed in the updates..

Yes I did. Tried uninstalling and re-installing. Cleared cache, cleared data. Works for just  one time after that. But the bug appears on subsequent times.

Could you mention the YouTube version, and possibly upload the screenshot when the issue happens? The YouTube app (v15.38.32) on my Nexus 5 (Android 7.1.2) shows a search icon instead, not a search box.

YouTube version 15.37.35. Also goes away when i manage to sign out of YouTube app.


text:
Google Play Services deleted, how to repair without Play Store?
I somehow destroyed Google Play Services while clearing cache and search history because the Play Store kept hanging up indefinitely when trying to download apps. My Google account then kept pinging the phone for Play Services updates; to remedy the loop, I had to remove my Google account.
Now I can't access Play Store to attempt repair of Play Services because it requires I sign in. I try that, the phone starts the process of adding a Google account. Can't add my Google account because Play Services is gone. Catch 22.
I downloaded from Play Store a couple of "Fix Play Services" apps on a friend's phone, extracted the APK, and Bluetoothed to my Xperia. Fix Play Services says Play Services is not installed.
When posting this question, this post came up:
Install Google Play Services without Google Play Store. This appears to be a very similar issue, a bigger problem to recover than I thought. I've never rooted a phone.
It's a Sony Xperia Z3v (D6708). Android Version 5.1.1. It is a Verizon phone, I have data and web access.
Is Play Services recoverable/reinstallable via internet? Without Play Store access?

I once had a similar problem but in my case, it's because I tampered with the system. Have you tried downloading Play Services from an external site? If the Play Services you downloaded don't work correctly (in my case, it gave me the "force stopped" error), you need to install a new firmware which will fix all bugs.
Link to Play Services package (APK) on APK Mirror: https://www.apkmirror.com/apk/google-inc/google-play-services.
Use the flash stock firmware method if the above fails.

Link to stock firmware: https://androidfilehost.com/?fid=95784891001602913
How to flash firmware full guide: https://flash-guide.com/download-flash-official-stock-rom-sony-xperia-z3v-d6708/

Hope this will help.

Thank you for taking the time to so thoroughly answer, I appreciate you.  I'll try that tomorrow morning. Was hoping Play Services Base apk would be available somewhere.  Thank you

Download ApkPure. Install it. Open it. Search google play services install it. Done!


text:
Prevent the uninstallation of Chrome's extensions on Kiwi Browser
So I am on Kiwi Browser which allows me to use Chrome's extensions on Android. This is great and all, but I want to prevent the extension from being installed. I am doing this because of self-control and not to waste my time on different websites.
Is it possible I can make the extension uninstallable?


text:
SSL error on Firebase hosting on old Android devices
I am not being able to see my Firebase Web App on old Android Devices due to SSL error.

There is a question about this, but the answer doesn't say how to solve it.
Is there any solution for this?

SSL/TLS support is based on the Android version. There's no way for Android end-users to fix this issue unless to upgrade to a newer Android version if possible.
In this case, based on Qualys SSL Server Test, the site only supports TLS 1.2.

TLS 1.2 is only supported since Android 4.4.2 KitKat, where Android 4.3 Jelly Bean and before only supports TLS 1.0 (among other older protocols).

The only fix is to configure the server to allow other protocols and/or cipher suites (the specific depends on the server and out-of-scope of this site).


text:
Retrieve data from not working BlueStacks
An old version of BlueStacks showing the following error and now I can't access my data:

BlueStacks App Player.
Error: CodeTitans.JSon.JSonReaderException: Invalid token found('<' at 1:2)

Can this error be fixed? Otherwise, can I recover the data?

The storage used by this virtual machine should be a vdi file.
You can start with BSTweaker and its file manager, if the engine starts enough to enable file browsing you should just be able to recover your files.
Also I'm not sure for old version of BStweaker, for new one the file manager is launched from the info tab.

If this isn't enough, you have to find a way to open it. this question may be of some use. But it is best if first option works.


text:
MildWild rom stuck?
I've just installed the new MildWild (oxygen) rom http://forum.xda-developers.com/showthread.php?t=1353861, to replace my very old LeeDroid rom.
It's seemed to have installed fine, but when the phone boots, I get the 'mildwild' logo on screen, just animating for ages, nothing seems to happen.
Is this a problem with the install? I cleared all my partitions, cache, dalvik, etc, and ClockWork didn't report any errors.
Anyone have any ideas? Or shall I just try a different rom? I'm working with a UK HTC Desire (bravo)

How long did you wait? It must be rebuilding dalvik cache.

I gave it about 10 minutes. Should I wait longer?

This actually can happen with any ROM you install.
If you are not installing a "new" version of the same ROM, you can get in to a boot loop. You have to do a factory reset and clear the data and cache when installing a new ROM for the first time.
If you are installing an upgraded version of the ROM, you don't have to do the wipe (unless the instructions tell you that you should). But you should always clear the cache.
When the device boots up for the first time, after clearing the cache, it needs to rebuild the cache for the applications you have installed. The more applications that you have installed, the longer it will take to boot the first time.
Keep an eye on the "boot up", if it looks like it is "starting over" and not just replaying the boot animation, you are in a boot loop. If you have adb installed, you can plug the device in and look at the logcat that is going on during the boot process. This can also help you determine if you are in a loop or not.

I had not done a factory reset. Once I had done this, it took about 2 minutes to boot up!


text:
How to extract .zip through ADB shell
Exactly what the title says.  I've got a 1.5 gb zip file on my sdcard that I would like to extract via adb (not pulling to pc and pushing back).  Is there a simple command to unzip a file?
Thanks!

Yes and no. As far as I'm aware, a typical Android install will not contain unzip. You can, however, install busybox for Android, which provides the unzip utility. Then a simple:
adb shell unzip /sdcard/archive.zip

Would do the trick. If you're rooted you can use a busybox installer from the Market like Stericson's. If you're not rooted then you should be able to manually push a busybox binary (one here on Github, for example; click "raw" to download it) to somewhere like /data/local and then invoke it. It should be something like:
adb push /path/to/busybox-android /data/local/busybox
adb shell chmod 0755 /data/local/busybox #Make it executable
adb shell /data/local/busybox unzip /sdcard/archive.zip

Alternatively, many file managers will unzip files for you. I personally use File Expert but there are a lot of others. Usually you just need to long press on the archive and it will present an "extract" option or similar.

Awesome answer. busybox is a powerful tool.

I had to change directory first: adb shell; cd /sdcard; /data/local/busybox unzip archive.zip

The shell user doesn't have permissions for /data/local on my phone — a Galaxy S4 running Android 5. I had to push busybox to /data/local/tmp.  Not sure yet if that directory's contents persist across reboots.

I was able to use /data/local/tmp as well and able to chmod also. I was not able to do was unzip the zip file I created in windows.
To overcome this, i created the tar file using 7zip and used busybox tar -xvf myzip.tar destination to successfully unzip the file.


text:
Running a tasker task via SSHDroid (or adb shell)
I'm trying to run a tasker task manually from ADB Shell, via SSHDroid. I'm
running the following in putty (Windows SSH client):
am broadcast -a net.dinglisch.android.tasker.ACTION_TASK -es task_name
Silent
On which I get:
Broadcasting: Intent { act=net.dinglisch.android.tasker.ACTION_TASK
dat=Silent }
Broadcast completed: result=0
However, despite the existence of task "Silent", nothing happens.
Could it be because SSHDroid doesn't have the
net.dinglisch.android.tasker.PERMISSION_RUN_TASKS permission? If so,
how can I fix that? If not, what else can be the cause?
Thanks!

This was solved thanks to Bossman's awesome proxy APK. Install it and then run via SSH:
am broadcast -a pl.bossman.taskerproxy.ACTION_TASK --es task_name TASKER_TASK_NAME_GOES_HERE
It works flawlessly :)

The reason is because SHDroid does not have permission to execue Tasker actions.
You could contact the developer of SHDroid and ask him to add the permission to the application. I haven't found exact contact info for him, but I found his blog.


text:
Can I force move to sd card applications that don't want to be moved there?
disclaimer: of course I can move apps which allow that, using "manage applications" menu.
There are apps, some stock ones and some downloaded, that for some reason don't have the "movable to sdcard" flag set. Is there a way to move them anyway without preventing them from working (as long as the sdcard is on, of course).
Yes there might be a good reason for them to be in the internal memory, I'd like to try moving them anyway if possible.
Phone is a Nexus One with stock android 2.3.6 unrooted — I guess I'd either have to root it or to install cyanogen or whatever?

For more info on why default Android doesn't allow some apps to be moved to SD, see this previous question: Why doesn't Google allow apps to be written to the SD card?. Short answer for "can you move apps that don't allow it", yes but you need to be rooted, and aware there are downsides, I'll leave the long answer to someone who's done it.

Yes, you can move any apps that don't normally allow it, including system apps, if you have root. Note that most apps that doesn't allow moving usually do not allow it for a good reason, so if you force move you may get crashes and other stability issues. You need an app2sd application that uses root, like this: https://market.android.com/details?id=com.droidsail.dsapp2sd

Applications that came installed with the system usually do not allow moving to the SD card (some may have good reasons). You can deal with this as follows (following this guide):

adb shell, then su - to get root access (you'll need to have this set up separately using something like Superuser)
pm uninstall -k followed by the package name
Then install the application from the market, in which case you should be able to move it to the SD Card.

If you would like a turn-key solution instead, use Link2SD:
https://play.google.com/store/apps/details?id=com.buak.Link2SD
Its exponentially better than App2SD, however, the downside is that your phone needs to be rooted for it to work. Furthermore, you will also need to create a second partition on your SD card which has to be using the ext file system.
It can force 100% of an application's data (apk/dex/lib/data/cache/obb/data(ext)) to be located on the second partition of your sd card. You can even FORCE convert a "system application" to a "user application" and vice versa to trick the phone into changing the way it treats and considers and application.
The only major disadvantage of Link2SD is the fact that you need a Class 10 SD card of a good brand in order to stay equal in terms of speed and performance as compared to the phone's internal memory. Otherwise, if you use one of the more common Class 4 or 6 SD cards, applications will load noticeably slowly.

Working Example
https://i.sstatic.net/RBNMT.jpg
on a Sony Ericsson Xperia Arc S (Internal 1 GB/512 MB (320 MB user available))


text:
Widget for controlling tethering
Are there any widgets on the market that let me control standard Android tethering? I use it quite a lot and it's a pain to have to navigate through all the Settings options just to check a checkbox...

You can simply install the GoLauncherEX and then install the GO Switch Widget. It is awesome and lets you control lot of other functionality other than tethering.

'GO Switch Widget' does not have any option for controlling tethering.

It does have a widget for Wifi AP.

Have a look at Tethering Widget.
Its a free widget with nice look.
It can be used to enable/disable WiFi and USB Tethering as well.
To add, press Home button
Menu | Add | Widget | Tethering (full) / Tethering (small)


text:
change file system F2FS back to EXT4
Xiaomi Poco M3 (citrus) A-only (SAR) system-as-root device shipped with MIUI 12 Android 10 and F2FS (FBE encryption). I don't trust F2FS and want to run it plain EXT4 unencrypted. I formatted EXT4 and changed /vendor/etc/fstab.qcom inside super.img but that doesn't seem to work.
After I change back fstab.qcom to F2FS it works again (unencrypted) so this should not an issue with encryption or AVB/dm-verity.
$ adb disable-verity
verity is already disabled
$ adb shell avbctl disable-verification
verification is already disabled
$

There is no fstab in dtbo magiskboot print nothing.
$ adb pull /dev/block/platform/soc/4804000.ufshc/by-name/dtbo dtbo.img
$ 7z x Magisk-v21.4.zip
$ x86/magiskboot dtb dtbo.img print -f
Loading dtbs from [dtbo.img]

$

How and where can I change the default file system type for userdata?

note: for some reason there is also fstab.qcom in boot ramdisk (but also with no effect)


text:
What is a "synthetic password" and how is it used by Android?
On a first-generation Pixel that is running Pie, in locksettings.db there is a field named sp-handle that contains a 64-bit value. sp is an abbreviation for "synthetic password". Under /data/system_de/0/spblob there are three files:

0000000000000000.handle
XXXXXXXXXXXXXXXX.pwd
XXXXXXXXXXXXXXXX.secdis
XXXXXXXXXXXXXXXX.spblob

XXXXXXXXXXXXXXXX is the lowercase hexadecimal representation of the aforementioned 64-bit value. (I actually have several sets of pwd/secdis/spblob (some missing the spblob or the secdis file—I cannot remember which) presumably due to my attempts to get TWRP to decrypt my Pixel.) There are also files under /data/misc/keystore/user_0 named 1000_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX and .1000_chr_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX.
These "synthetic passwords" are mentioned and used in TWRP and SyntheticPasswordManager.java. They are used in decryption, but I can't tell how they are used in it or if they are also used in password authentication. Are they used to decrypt /data/misc/vold/user_keys/ce/0/current/encrypted_key (which I'm told is used in file-based encryption)? What are the purpose of the .pwd, .secdis, and .spblob files? Are the files gatekeeper.*.key used in deriving synthetic passwords?
Update
This paper from Qualcomm goes into greater detail on "synthetic passwords" than the source code, but it doesn't answer the more important questions like:

What is the purpose of and what is inside of XXXXXXXXXXXXXXXX.spblob?
What is the purpose of and what is inside of XXXXXXXXXXXXXXXX.pwd?
What is the purpose of and what is inside of XXXXXXXXXXXXXXXX.secdis?
Is the authentication token used in decrypting the CE key?

First, you need to understand, two gatekeeper enrollment processes are involved in synthetic passwords.
Here is the process:

Generate a synthetic password, it's just a random number
Use a real password to enroll a fake ID and get SID (secure_id)
Use keystore to generate an AES key, bound it to SID, and use it to encrypt a synthetic password
Use a synthetic password to enroll the real user ID.

So you will see, in order to unlock a real user, you need to know a synthetic password. However it's encrypted by the keystore, so you need the real password to unlock the keystore first.
To understand it, you need to first understand how the gatekeeper works (e.g. What is secure_id? How does it work?). That's another topic.

00000000000.handle: return value of gatekeeper first enroll by synthetic password derived password.
handle.pwd: second gatekeeper enroll by real password with a fake user ID (e.g. user_id + 10000).
handle.secdis: Actually a random number. Used to encrypt the synthetic password.
handle.spblob: encrypted synthetic password
/data/misc/keystore/user_0/XXX: keystore key. Used for encrypting synthetic passwords.

Where can I learn more about this? Android source documentation on FBE lacks lot of technical explanation.

Well, i learned it totally from reading source code and dynamic debug framework process. It did took a long time :)

The spblob is the main file containing the synthetic password. The first byte is a version number, which should be 1, 2, or 3. The second byte is the usage, which is one of:

0 = LSKF (Lock Screen Key Factor) based encryption. i.e. PIN or passphrase
1 = Strong token, i.e. decryption using a specialized hardware device (e.g. fingerprint).
2 = Weak token. Mostly the same as "strong token", but implies weaker protection.

The remaining bytes are the payload, which is a secret encrypted using AES-256-GCM twice. Once using a device-locked key, and once using a key derived from the LSKF/token. In v1, the LSKF/token was the second (outer) layer of protection, which meant it was possible to bruteforce the PIN using the spblob without having access to the device key. You could then unlock the device normally using the PIN. In v2, the order was switched, so the device key is the outer layer of protection.
For LSKF, the secret inside the spblob is the synthetic password. For token, the secret is the first half of the synthetic password, and the second half is in p1. e0 is the first half encrypted using the the first 32 bytes of the full synthetic password, using AES-256-GCM. Since it uses its own decrypted contents as its encryption key, it can only be used for integrity check.
The device-based key is stored in a device-bound key called synthetic_password_XXXX where XXXX is the same as the spblob filename, but with leading 0s trimmed. For software binding, this would be present in 1000_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX. Later versions of Android moved this to an SQLite database in /misc/keystore/persistent.sqlite.
For the LSKF/token key (outer key in v1, inner key in v2 and v3), it is generated using a combination of SHA512, and the secdis file. The general formula is:
prefixhash(prefix, message) = sha512(prefix.padEnd(128, '\0') + message)
key = prefixhash('application-id', stretchedLSKF + prefixhash('secdiscardable-transform', file-contents('secdis')))

The value of stretchedLSKF in the above formula depends on the type of credentials used:

For a token, it's simply the token. It should be 32 bytes.
For no authentication (Lock screen not enabled), it's the string default-password padded to 32 bytes using NUL bytes.
For LSKF, it's the PIN/passphrase, hashed to 32 bytes using scrypt. The salt and parameters for scrypt are found in the pwd file.

So, combining all of these factors allows extracting the synthetic password from the spblob. But how is it used?
Well, it's used to derive a bunch of other keys, the most notable is a key called fbe-key, which is used to encrypt the master key for PIN-protected files on the device.
In v1/v2, the key derivation is simply SHA512 with the prefix fbe-key padding with NUL bytes to 128 bytes, concatenated with the synthetic password. In v3, this was replaced with NIST SP800-108 in counter mode, using HMAC-SHA256, single iteration (256 bit output), and integers encoded as 32-bit big-endian. The label for the FBE-key derivation is the string fbe-key, and the context is hard-coded as the string android-synthetic-password-personalization-context concatenated with its own length in bits (i.e. 400) as a big-endian 32-bit integer.
Finally, the obtained is once again hashed with SHA512, with the prefix Android key wrapping key generation SHA512 padded to 128 bytes using NUL bytes. This gives the key used to decrypt /data/misc/vold/user_keys/ce/0/current/encrypted_key as AES-256-GCM. This, in turn, gives the master key used to encrypt the user files using standard EXT4 encryption.
Final note about AES-256-GCM. Every message encrypted with AES-256-GCM is divided into 3 parts. The first 12 bytes are the IV. The last 16 bytes are the authentication tag, used to check if the decryption was successful. Everything in between is the cypher text.
So, to sum up:

spblob - The actual synthetic password (for LSKF), or the first half thereof (for token), encrypted
e0, p1 - Token encryption only. The second half of the synthetic password, and an encrypted version of the first half, with the key generated from the synthetic password itself, i.e. only usable for verification.
pwd - LSKF non-empty encryption only. The parameters used for hashing the PIN/password into a 32 byte token.
secdis - Added as salt to the token/hashed PIN when decrypting spblob.
1000_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX or persistent.sqlite - Used for the device-bound protection for the spblob. i.e. Prevents the same spblob from being used/decrypted on a different phone.
/data/misc/vold/user_keys/ce/0/current/encrypted_key - The actual encryption key for the files. Requires the synthetic password to be extracted from the spblob in order to be decrypted.

Finally, I should note that every user has exactly one synthetic password. If multiple spblobs exist, they are simply encryptions of the same synthetic password using different tokens/PINs. This is what allows having multiple ways to unlock the same device (i.e. PIN, fingerprint, face recognition, etc).


text:
OnePlus 6T Did "fastboot boot" just delete all my encrypted data?
Today after a successful(Booted, worked fine all day) OTA manual upgrade(downloaded latest zip and flashed) I decided to reinstall TWRP in order to reroot. However, after running first "fastboot flash recovery twrp.img" then "fastboot boot twrp.img", I am no longer prompted to enter my passcode(which I know) to decrypt the device, and the /system partition is empty in the TWRP file manager. The sdcard partition is filled with my encrypted files(assuming by their base64 names).
I dont think any of my actions in TWRP were significant, except possibly when I flashed the twrp.img to have the recovery be persistent. (When I launched TWRP for the first time, I wasn't prompted for my password to decrypt then either, so I assume the damage was already done)
I have tried "twrp decrypt [password]" in the twrp terminal but I get "Failed to decrypt data".
When I try boot into system, I either bootloop or TWRP launches instead.
A. Is there a way to reflash my system(e.g Can I just flash the same update.zip) and be back to normal
Or B. Can I retrieve and decrypt my data, given that I know my lockscreen passcode which is normally used to decrypt it.
Here is everything I wrote in my command prompt
Here is ls -la /

this devices does not have a recovery partition. therefore you probably need to flash back stock boot.img, then boot into twrp and install twrp from twrp

@alecxs Just to be sure, I flash the same whole stock image(https://www.oneplus.com/uk/support/softwareupgrade/details?code=9) as it was before, or flash only a stock recovery image from someplace online?

extract the boot.img from stock rom and download twrp-3.2.3-2-fajita.img. flash boot.img to boot and boot twrp.img from fastboot. then install twrp-installer-fajita-3.2.3-2.zip from twrp. please read the instructions https://twrp.me/oneplus/oneplus6t.html

@alecxs I cant thank you enough! Almost had to write a new CV

Full credit to alecxs for this answer. Posting incase anybody else has the same problem in the future.

Download stock image(Mine was oneplus.com/uk/support/softwareupgrade/details?code=9)
Use extract_android_ota_payload-master to split the payload.bin inside the zip
(Method for step 2 https://pastebin.com/RfEHuvu7 , I did this on linux because my linux machine has python2 installed, no other reason)
Flash the boot.img and boot with twrp
(Step 3 https://pastebin.com/Gp9aJq36)


text:
Full screen android clock
Is it possible to get a full screen clock for an android phone which looks something like the clock on the desktop of the computer in this link?
http://www.flickr.com/photos/david_b/3381120183/in/pool-421216@N24/

Night Clock works well for me (screenshot below), and there are probably plenty of others in the Market. A search for "big clock" turns up a fair number of hits that seem relevant.


text:
Is there a concern as far as memory when running ICS ROM on 512MB device (DroidX)
Based on available evidence so far, are there legitimate concerns that people with older phones that have 512MB memory (e.g. Droid X) would experience memory issues when running 4.0 (Ice Cream Sandwich) based ROMs?
To be more specific:
If my stock Froyo 2.2 ROM boots up with ~170MB memory free, and during my day to day use I end up with ~50-70MB memory free (this is with ALL my actively used apps loaded, and Android not killing any of them to make room for others), what would the expected memory footprint be on an AOSP based ICS ROM?

If there is a ICS ROM available for the Droid X, it should run on a device with 512MB. The minimum requirements for ICS specified by CyanogenMod team is 256MB and a "decent GPU". I am not sure what kind of GPU the Droid X has, but you will probably have a better experience with Gingerbread then ICS on that device if the GPU isn't that great. My brother had that device and complained constantly about lag and lock up. If you have the "stock" MOTOBLUR, you will probably have a better experience just by installing any AOSP based ROM.
You can expect the footprint to be about the same, maybe a bit less, then what you see now. This is because the android OS will always try to use as much memory as possible in order to try and keep your experience better. If the application is in memory you can switch back to it faster then if it has to reload the entire application, plus it can "remember where you were".
As a side note, I don't currently see any CyanogenMod 9 builds available on the CM forums for the Droid X, but that doesn't mean that there aren't any, I just don't see them.

GPU: PowerVR SGX530. Is that enough for ICS?

Re: CM9 - not sure. I know CM7.1 had some nightlies for DX. One reason I'm asking is to know if I should sink the time into Gingerbread or wait till CM9 has DX support

CM9 is still in "nightlies", there is not an "official" release for any device, AFAIK. Even at that, who know how long (or ever) before the DX is supported. I think you will like AOSP android over BLUR, now its just how long you want to wait for CM9, or go with CM7. Usually the upgrade path from one CM build to another is fairly simple, so if you have CM7, going to CM9 should be easy.

There shouldn't be any problems, since my Bravo (HTC Desire) runs ICS insanely quick (also 512Mb).
After a day on AOSP ICS (everluv), without any task-killing (but with a 6 background-task limitation), I still have 176Mb free, and that's roughly what you can expect in these conditions. Without background-task limitation, there is still 90Mb free.*
btw:
http://forum.xda-developers.com/forumdisplay.php?f=691
This is the first place to look for ICS roms.
However, don't expect to much, because drivers and hardware acceleration are not optimized for hardware like yours/mine.

checked with htop command


text:
No notifications during the night hours
I had juice defender installed on my phone for a few weeks but then I decided to remove it. One of the settings that I set up was to disable the vibration and sound notifications during the night (from 0:30 to 6:30 or something like that). Anyway, now that the juice defender is removed from my phone this settings still remain. I am not completely sure it's like that because of JD, but I don't see any other reason for such behavior.
I tried installing juice defender again, disabled all these options, but the settings are still there and I still don't get any sound or vibration during the night hours. Did anyone else had such a problem? How could I fix this and restore these settings to the "default behavior"?
I am using CM 7.1.0 stable (Android 2.3.7) if that helps anyhow.

What apps/methods have you tested for notifications? Is the phone in silent mode at night, or does the ringer/notification volume appear normal but non-functional?

I'd check in Settings->CyanogenMod Settings->Sound->Quiet Hours to see if that's been turned on.

@eldarerathis - thanks, that did it. would you mind putting that as an answer so I could wrap this one up?

Done. Glad it worked!

Be sure to check Settings->CyanogenMod Settings->Sound->Quiet Hours and make sure that it's disabled. That's been an unknowing culprit for me in the past.


text:
How to Disable File Verification while installing Cyanogen in Nexus One
When I try to install CyanogenMod through ClockworkMod Recovery process I get the following error, ‘failed to verify whole-file signature’.
I followed WikiLink for Cyanogen for carrying out the installation.
Is there any way to disable file verification or any other way through which I can overcome this error.
I am using Nexus One phone with,
Kernel Version   - 2.6.35.7.
Build number     - GRK39F.
Android version - 2.3.6

In current versions of Clockworkmod Recovery, go into the "Install zip from sdcard" menu and chose "toggle signature verification".

Previous answer:
You're in stock recovery, not CWM recovery.  CWM recovery doesn't verify signatures.  You either failed to install the recovery properly, or you need to hit "install packages" or similar from the stock recovery in order to get into CWM.

Thanks for pointing that out. But I downloaded CWM Recovery from the wiki link I pointed, used fastboot  and got Success message.
I am new to this (rooting and stuffs). so can you please tell in detail how can I install CWM. Any link where I can find instructions for Nexus One.

Just to double check, your recovery screen should look something like this if your using ClockworkMod Recovery. http://bit.ly/wAFUBb

@SyncMaster Could be that the recovery is being overwritten, so make sure you go directly to recovery after flashing it (without a full reboot) so that it can't be overwritten.  Also try hitting "install packages" from the stock recovery, I have to do that on my Vibrant to get CWM installed at least.


text:
Contact sorting in ICS? (Galaxy S alpha version)
I can't seem to find the sorting options in the contact list. Currently, the contacts are sorted by first name and displayed as "firstname lastname". I'd like to change it to be sorted by last name and displayed as "lastname, firstname", but the option seems to be missing.
Is this really the case in ICS or just the teamhacksung's alpha version?

Is there something like:

People app -> press the menu button bottom right (the 3 vertical dots) -> settings -> Sort list by

Yep, there it was (except that the menu button is the physical button on my device). How did I miss that? Thanks!


text:
Failed to update HTC Desire S to latest firmware with Android 2.3.5
My phone configuration is:

Model HTC Desire S
Android 2.3.3
HTC Sense 2.1
Build number 1.47.401.4

Today I've got notification that an update is available for my phone with:

HTC Sence 3.0
Android 2.3.5

I've downloaded the update and started it. My phone rebooted, then for several seconds I saw green icon showing that update is going. After that I've received the red exclamation mark icon. I've triggered the recover console and saw the following:
Finding update package...
Opening update package...
Verifying update package...
Installing update...
Copying fotaBoot to /data/system for customize reload...
Verifying current system...
assert failed: apply_patch_check ("/system/app/EReader.apk", "5f3c2be955e09...", "c4071fc9ffc21...")
E:Error in /sdcard/download/OTA_Saga_S_HTC_Europe_2.10.401.8-1.47.401.4_release_225210fmxlt12djw1sr7y5.zip
(Status 7)
Installation aborted.

As far as I understood from the log, the CRC failed for the EReader.apk. Does that mean that the updated downloaded incorrectly? Or maybe there are some issues with my phone?
Can someone, please, help me with this issue:

Should I forget about this update and wait for the next one?
Is it the bug in the system or in my phone?
Can I somehow (without rooting the device) overcome the problem and install the update?
Any other thoughts are welcome. Thank you.

Mostly likely the update over the air downloaded the wrong archive, which failed to automatically install. In addition to that I found on several forums that the phone had many broken stuff after such update. Therefore I've decided to update it manually.
I've downloaded the zip archive with latest official firmware, put it on my sdcard, rebooted the phone into recover console. It automatically found my zip archive and the phone was updated. Everything works fine now.
The complete instructions together with latest firmware can be found here (Russian language): http://www.youhtc.ru/forum/showthread.php?p=304305&posted=1#post304305
I've translated them in short below:

Download the zip archive with RUU_Saga_S_HTC_Europe_2.10.401.8_Radio_20.4801.30. 0822U_3822.10.08.04_M_release_225161_signed.exe from here
Rename the zip archive to PG88IMG.zip and put it in the root directory on sd card
Power off the phone
Press volume-down button and then power button.
The recovery console will pop up. The phone will automatically find the zip file and check it. It will ask you to confirm the update. If you're OK with that, the phone will be updated.

I believe your downloaded update file is broken somehow.
Further notice:!! manual operations always have the risk to brick your phone. So be careful, and remember I take no responsibility.
You can manually update with rom update utility (RUU). RUU is a PC program that updates your phone through usb connection.
You should backup all your information first.
And you can find the released ruu list here http://forum.xda-developers.com/showthread.php?t=1002506
As of know, latest seems to be RUU_Saga_S_HTC_Europe_2.10.401.8

Thanks for reply. Do I need to root my phone or make any other changes to it to manually update with RUU?

Sorry for the late comment, you don't have to root your phone. Here is another post about what you are looking for: http://www.androidauthority.com/how-to-update-your-htc-desire-s-to-android-2-3-5-gingerbread-37319/


text:
How do you sort your chats by contact name in WhatsApp?
How can one alphabetically sort the contacts on the WhatsApp chat list? Right now, the list is completely random, making it difficult to locate a specific chat by its author (contact name)

Hi, it seems you accidentally created a duplicate account. Please refer to the help center to merge your accounts and regain ownership of the question and reply to the comments on your post. Thanks for your understanding.

There doesn't seem to be any way to sort them alphabetically in the chat list. Currently the Whatsapp chat list is by chat date, meaning the most recent ones will come up.
If you click on the bottom right green button you can access the contacts list, and those contacts are sorted alphabetically.

There is no such a thing as a bottom right green button I’m my chat window.

Sorry mate, I’ve added a screenshot for further clarity. Do note that this only accesses your Whatsapp contact list that is sorted alphabetically, and does not change the way your chat list is sorted permanently. Also, Aayush has posted a really great idea to use Whatsapp Business’s label feature, you should go check out his answer.

Whatsapp doesn't officially added this feature.. but if you really want to sort them then download Whatsapp business. You can use label to organize things..
Just like this.. (items are the people actually)

I too use whatsapp business and really love its auto reply function..