text:
Nexus 7 boot loop overnight - fix without wiping data?
I have a Nexus 7 (2013), 32GB, WiFi-only, that won't boot. I had been using it daily, until I woke up one morning to a boot loop. It was plugged in all night, but was at about half battery when I woke up (after turning it off). After what feels like a longer than normal boot animation, it goes to the "optimizing apps" window. It completes that and goes to "starting apps", but then restarts.
It is running 6.0.1, unmodified with locked bootloader. USB debugging is on
I am able to boot into recovery and tried clearing the cache.
Is there any way to recover without wiping my data?
fastboot getvar all:
(bootloader)  version-bootloader: FLO-04.08
(bootloader)  version-baseband: none
(bootloader)  version-hardware: rev_e
(bootloader)  version-cdma: N/A
(bootloader)  variant: flo 32G
(bootloader)  serialno: 09ace413
(bootloader)  product: flo
(bootloader)  secure_boot: enabled
(bootloader)  lock_state: locked
(bootloader)  project: flo
(bootloader)  off-mode-charge: yes
(bootloader)  uart-on: no
(bootloader)  partition-type:bootloader: emmc
(bootloader)  partition-size:bootloader: 0x0000000000aee000
(bootloader)  partition-type:recovery: emmc
(bootloader)  partition-size:recovery: 0x0000000000a00000
(bootloader)  partition-type:boot: emmc
(bootloader)  partition-size:boot: 0x0000000001000000
(bootloader)  partition-type:system: ext4
(bootloader)  partition-size:system: 0x0000000034800000
(bootloader)  partition-type:cache: ext4
(bootloader)  partition-size:cache: 0x0000000023000000
(bootloader)  partition-type:userdata: ext4
(bootloader)  partition-size:userdata: 0x00000006b7ffbe00
all:
finished. total time: 0.114s

fastboot oem gpt-info:
...
(bootloader)    partition[1].name = radio
(bootloader)    partition[1].first_lba = 131072
(bootloader)    partition[1].last_lba = 306143
(bootloader)    partition[1].size 87536 KB
(bootloader)    partition[2].name = modemst1
(bootloader)    partition[2].first_lba = 393216
(bootloader)    partition[2].last_lba = 399359
(bootloader)    partition[2].size 3072 KB
(bootloader)    partition[3].name = modemst2
(bootloader)    partition[3].first_lba = 399360
(bootloader)    partition[3].last_lba = 405503
(bootloader)    partition[3].size 3072 KB
(bootloader)    partition[4].name = persist
(bootloader)    partition[4].first_lba = 524288
(bootloader)    partition[4].last_lba = 554287
(bootloader)    partition[4].size 15000 KB
(bootloader)    partition[5].name = m9kefs1
(bootloader)    partition[5].first_lba = 655360
(bootloader)    partition[5].last_lba = 656919
(bootloader)    partition[5].size 780 KB
(bootloader)    partition[6].name = m9kefs2
(bootloader)    partition[6].first_lba = 656920
(bootloader)    partition[6].last_lba = 658479
(bootloader)    partition[6].size 780 KB
(bootloader)    partition[7].name = m9kefs3
(bootloader)    partition[7].first_lba = 786432
(bootloader)    partition[7].last_lba = 787991
(bootloader)    partition[7].size 780 KB
(bootloader)    partition[8].name = fsg
(bootloader)    partition[8].first_lba = 787992
(bootloader)    partition[8].last_lba = 794135
(bootloader)    partition[8].size 3072 KB
(bootloader)    partition[9].name = sbl1
(bootloader)    partition[9].first_lba = 917504
(bootloader)    partition[9].last_lba = 920503
(bootloader)    partition[9].size 1500 KB
(bootloader)    partition[10].name = sbl2
(bootloader)    partition[10].first_lba = 920504
(bootloader)    partition[10].last_lba = 923503
(bootloader)    partition[10].size 1500 KB
(bootloader)    partition[11].name = sbl3
(bootloader)    partition[11].first_lba = 923504
(bootloader)    partition[11].last_lba = 927599
(bootloader)    partition[11].size 2048 KB
(bootloader)    partition[12].name = aboot
(bootloader)    partition[12].first_lba = 927600
(bootloader)    partition[12].last_lba = 937839
(bootloader)    partition[12].size 5120 KB
(bootloader)    partition[13].name = rpm
(bootloader)    partition[13].first_lba = 937840
(bootloader)    partition[13].last_lba = 938863
(bootloader)    partition[13].size 512 KB
(bootloader)    partition[14].name = boot
(bootloader)    partition[14].first_lba = 1048576
(bootloader)    partition[14].last_lba = 1081343
(bootloader)    partition[14].size 16384 KB
(bootloader)    partition[15].name = tz
(bootloader)    partition[15].first_lba = 1179648
(bootloader)    partition[15].last_lba = 1180671
(bootloader)    partition[15].size 512 KB
(bootloader)    partition[16].name = pad
(bootloader)    partition[16].first_lba = 1180672
(bootloader)    partition[16].last_lba = 1180673
(bootloader)    partition[16].size 1 KB
(bootloader)    partition[17].name = sbl2b
(bootloader)    partition[17].first_lba = 1180674
(bootloader)    partition[17].last_lba = 1183673
(bootloader)    partition[17].size 1500 KB
(bootloader)    partition[18].name = sbl3b
(bootloader)    partition[18].first_lba = 1183674
(bootloader)    partition[18].last_lba = 1187769
(bootloader)    partition[18].size 2048 KB
(bootloader)    partition[19].name = abootb
(bootloader)    partition[19].first_lba = 1187770
(bootloader)    partition[19].last_lba = 1198009
(bootloader)    partition[19].size 5120 KB
(bootloader)    partition[20].name = rpmb
(bootloader)    partition[20].first_lba = 1198010
(bootloader)    partition[20].last_lba = 1199033
(bootloader)    partition[20].size 512 KB
(bootloader)    partition[21].name = tzb
(bootloader)    partition[21].first_lba = 1199034
(bootloader)    partition[21].last_lba = 1200057
(bootloader)    partition[21].size 512 KB
(bootloader)    partition[22].name = system
(bootloader)    partition[22].first_lba = 1310720
(bootloader)    partition[22].last_lba = 3031039
(bootloader)    partition[22].size 860160 KB
(bootloader)    partition[23].name = cache
(bootloader)    partition[23].first_lba = 3031040
(bootloader)    partition[23].last_lba = 4177919
(bootloader)    partition[23].size 573440 KB
(bootloader)    partition[24].name = misc
(bootloader)    partition[24].first_lba = 4194304
(bootloader)    partition[24].last_lba = 4196351
(bootloader)    partition[24].size 1024 KB
(bootloader)    partition[25].name = recovery
(bootloader)    partition[25].first_lba = 4325376
(bootloader)    partition[25].last_lba = 4345855
(bootloader)    partition[25].size 10240 KB
(bootloader)    partition[26].name = DDR
(bootloader)    partition[26].first_lba = 4456448
(bootloader)    partition[26].last_lba = 4456463
(bootloader)    partition[26].size 8 KB
(bootloader)    partition[27].name = ssd
(bootloader)    partition[27].first_lba = 4456464
(bootloader)    partition[27].last_lba = 4456479
(bootloader)    partition[27].size 8 KB
(bootloader)    partition[28].name = m9kefsc
(bootloader)    partition[28].first_lba = 4456480
(bootloader)    partition[28].last_lba = 4456481
(bootloader)    partition[28].size 1 KB
(bootloader)    partition[29].name = metadata
(bootloader)    partition[29].first_lba = 4587520
(bootloader)    partition[29].last_lba = 4587583
(bootloader)    partition[29].size 32 KB
(bootloader)    partition[30].name = userdata
(bootloader)    partition[30].first_lba = 4718592
(bootloader)    partition[30].last_lba = 61079518
(bootloader)    partition[30].size 28180463 KB
(bootloader)    partition[31].name =
(bootloader)    partition[31].first_lba = 0
(bootloader)    partition[31].last_lba = 0
(bootloader)    partition[31].size 0 KB
(bootloader)    partition[32].name =
(bootloader)    partition[32].first_lba = 0
(bootloader)    partition[32].last_lba = 0
(bootloader)    partition[32].size 0 KB
(bootloader)    partition[33].name =
(bootloader)    partition[33].first_lba = 0
(bootloader)    partition[33].last_lba = 0
(bootloader)    partition[33].size 0 KB
(bootloader)    partition[34].name =
(bootloader)    partition[34].first_lba = 0
(bootloader)    partition[34].last_lba = 0
(bootloader)    partition[34].size 0 KB
(bootloader)    partition[35].name =
(bootloader)    partition[35].first_lba = 0
(bootloader)    partition[35].last_lba = 0
(bootloader)    partition[35].size 0 KB
(bootloader)    partition[36].name =
(bootloader)    partition[36].first_lba = 0
(bootloader)    partition[36].last_lba = 0
(bootloader)    partition[36].size 0 KB
(bootloader)    partition[37].name =
(bootloader)    partition[37].first_lba = 0
(bootloader)    partition[37].last_lba = 0
(bootloader)    partition[37].size 0 KB
OKAY [  0.627s]
finished. total time: 0.628s

fastboot format cache:
Creating filesystem with parameters:
    Size: 587202560
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 7168
    Inode size: 256
    Journal blocks: 2240
    Label:
    Blocks: 143360
    Block groups: 5
    Reserved block group size: 39
Created filesystem with 11/35840 inodes and 4616/143360 blocks
erasing 'cache'...
OKAY [  0.403s]
sending 'cache' (10984 KB)...
FAILED (remote: Bootloader is locked.)

I don't know how well it would work, or if at all work, but you can direct your search to Qualcomm flash tool. It employs flashing at a level lower than fastboot. With this, you may be able to flash twrp recovery in the recovery partition without unlocking bootloader and auto-wiping data. After that, boot into TWRP and salvage your data. But, I'm short on time, so I can't do much of a search for your case. :-) Search for cases where a Nexus 7 2013 is hard bricked, only gives vibration but no screen or anything. Such cases might lead you to a solution. Be careful in blindly following a step.

This is the strangest coincidence. I had exactly the same thing 2 days ago with exactly the same tablet (nexus 7 2013 wifi, running android 6.0.1 build MOB30X, unrooted, bootloader locked, USB debugging probably on): plugged in all night, was turned off in the morning, tried to boot but only 5 flashes of the led light (aka battery empty), charged it during the day, booted in the evening, took a long time with the four coloured dots (2 minutes at least, up to 10 and more on other reboots), then "optimizing apps" followed by "starting apps", and then a reboot... Exactly the same, I let it run for an hour, only the time with the "four coloured dots" varied...
Fastboot/recovery accessible. I tried wiping the cache, reboot with or without power supply, even opened the thing to check for lose contacts - didn't work.
I tried this https://drive.google.com/file/d/0Bz6x7k-VkpUJQWFtYzFHNTFzUEE/view (can't remember where I found it), did the whole procedure but still the same "bootloop". If it is an app that causes the issue: I did not find a way to boot in safe mode or any other way to start without apps. I also downloaded Nexus Root Toolkit 2.1.9 - didn't work.
I just did a factory reset...took several minutes to boot after wiping data, but I have a clean tablet now. Boots in less than 30 seconds. Hooray? Only lost too many hours of game progress, photos were backed up recently, otherwise no other important data.
I hope you find a way to recover your data, but I just spend a whole day looking for a solution and found none. Too late now. Good luck!

I guess it could be a system app update that caused it, my phone had updates for Gmail, Contacts, and Maps.

I ended up wiping my tablet too. I did make sure to unlock the bootloader and install a custom recovery before putting anything on it again so I have a way to back things up if this happens again


text:
Why is Play Store showing "Can't install app...Error Code: 910"?
I am using Android Lollipop mobile. I have uninstalled preinstalled Youtube app updates. Now I tried to update the app from Play Store. It is giving the error "Can't install app" with error code 910.
I have tried the following steps:

Deleted Play Store app's cache and data.
Deleted Download manager app's cache and data
Deleted Youtube app's cache and data.
Restarted phone.

And tried again, still same error occurred.
How do I fix this?

A pity they can't give details in addition to the number. The actions you performed are what's recommended for the 910 in other places. Have you tried following that link? // One page I found names the 910 "Application Authorization". If that's the case, maybe signing out of your Google account and then signing back in might do the trick.

May be data connection is giving issue, try with WiFi connection once for your updation procedure.

Try to remove your Google account, then add it again. Clear Google play Data, and maybe check the date and time. Never had this kind of issue but there was an error once in my phone and it was solved by clearing Play Store data.

Having the same problem right now. I tried downloading an external YouTube APK, it did not work. I tried uninstalling and reinstalling via adb and it did not work either (Error 941). I tried removing the SD and updating, and reinserting and updating, neither did that work.

Cleared Play Store cache and it works for me. Go to Settings/Apps/Google Play Store/Storage/Clear cache.

I had the same problem after trying to upgrade my Snapchat app to the alpha version following a tutorial on the XDA developers forum. After finishing the tutorial, the app wouldn't uninstall, run, or reinstall properly. The solution (for me) was to uninstall the broken app using ADB.

Install adb (if you haven't already).
Enable developer mode on your phone (if you haven't already).
Type adb devices into the terminal / command line.
Tap 'yes' on  the authorization prompt on your phone (if you haven't already authorized).
Type adb uninstall <insert package name here> to uninstall the broken app.
You can now reinstall the app from the Play store or wherever you got it from.

This is my kind of way of solving that issue. If i cant snatch a more superior version of the app than the version in store

I had been getting error 910 for days. I finally managed to solve the problem using the following steps:
I "ejected" the SD card via settings, device, storage. I didn’t physically need to remove the card from the phone.
(Android 6.0.1..... Blackberry Priv.)

It worked! finally!

Unfortunatly none of these solutions worked for me. So I have downloaded latest Youtube apk from third party site and installed successfully. App is working fine. But in Play store it is still showing my earlier version app and asking to update.
I guess hereafter every time I need to update from apk only.

Go to storage setting and set default storage setting to “Phone memory” or “Let the device decide”.
(Error 910 happens due to sd card set as a default storage.)

This worked for me.

For the record, Error 910 doesn't have anything to do with the SD card being the default storage. It refers to the inability to install an APK due to various reasons, mostly related with the FileSystem, but can happen if you attempt to install an app, whose APK is previously installed (whether an old version or a different signature is irrelevant).

I had this problem with a Blackberry Priv with Android 6.01. What worked for me was:

Go to Settings → Personal → Security → Device administrators, disable the “Google Pay” administrator, and enable the “Blackberry Launcher” administrator.
Go to Settings → Device → Users, and select Guest.
Go to Settings → Device → Users, and select Myself - and log back in.
Return to Google Play → My apps and games, and install.

This was done after a reboot and two previous installation attempts. The app that wouldn’t update was “Google”.

In my case it was the  Wish app. It would download, then pop up with that exact error.
I moved it from my external SD card back to internal storage. I updated  it, then went to move it back to external SD card, but it said I had no space.  I know for a fact I do (I had a 512 GB SD card, so plenty of room). I ended up turning phone off for a few minutes then back on, and it moved just fine.  So if it's moved to external SD card, maybe that's it.

I was having the exact same issue! I just solved it by removing the sd card from my device. I don't know if the error will return after I put it back, but I was able to install apps.

source: Stack Exchange

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

sort: votes


text:
How to mount sdext2 partition by Apps2SD script, before system mount?
Using Apps2SD Pro app on Samsung Galaxy Note 3 N9005, Resurrection Remix Nougat v5.8.5 with Magisk v17.1.
I lose the linked apps  again & again after reboot. This happened several times already.
I tried all mounting script types, including the advanced one, but after several reboots, the linked apps are disappearing (errors attached). See the Storage screenshot, where you can see the sdext2 (labelled as EXT4) mounted by system, instead by Apps2SD.
The problem is that the sdext2 partition is mounted earlier than the Apps2SD is started and initialized, so Apps2SD can not mount the sdext2 partition, thus the system loses the installed linked apps.
How can I make Apps2SD started before sdext2 partition is mounted by the Resurrection Remix system?

(Tap to enlarge)

Don't go for apps, they always dump you ;) If you want more space on internal memory, create a second partition on external sdcard and mount this partition on boot using init.rc. Just add a mount statement after mount_all command (which mounts /data as specified in fstab) to mount sdcard second partition (usually /dev/block/mmcblk1p2) on /data/media or /data/data wherever you want. No need to depend on vold or manage apps individually.

Thanks! Good idea, to bind the whole /data/data to second partition of external sdcard. But several big apps like Facebook or Chrome becomes very slow on external sdcard. So I have to keep some apps on internal sdcard.

Use A1 class sdcard, you won't feel even minor differences provided that your host controller is not the limiting factor. UHS3 class also performs good.

I have Samsung EVO plus 128GB sdcard, which is UHS-I class card. Unfortunately Samsung Galaxy Note 3 N9005 does not support this speed. The internal sdcard is several times faster.

you may try /data/media instead of /data/data. Data isn't written to internal sdcard that much as on /data/data. However writing larger data to sdcard will be slower but that happens rarely.

I have only 900 Mb on /data/media compared to several Gb on /data/data, so it would be not really helpful. I really need to make Apps2SD mounting done before the system mount, this would be the real solution.

I recently stumbled upon a Magisk module called fbind to fix the issue of small internal memory. The module mounts mmcblk1p2 to extsd before Android gets the chance to mount it.
I have been using this module for a couple of days now and it is working perfectly for me. I still occasionally get the soft reboot error but it doesn't do any harm, you always can disable the soft reboot error message from the settings.

Thanks for getting my attention to the fbind feature. I will try it. However I do not like things, which resultes soft reboot. It means it makes the phone unstable.

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


text:
Disable VoLTE, while still using LTE - To force Jio4gVoice to work
I have a Nexus 5X running an unofficial Pie build (https://forum.xda-developers.com/nexus-5x/development/rom-android-source-project-t3827122)
VoLTE does not work (no incoming or outgoing calls), but data over LTE works. So the Jio4gVoice app should be able to receive calls (over data, meant for non-VoLTE phones). But the problem is that this app detects that the phone is VoLTE compatible and simply refuses to connect.
PS: The phone supports VoLTE, I've used it before, but this particular ROM doesn't.
I'm looking for a way to disable VoLTE so that the app can work.
Any ideas?

The answer is wait in case nexus annouces its support for android pie then upgrade. As of now degrade to previous version of android.
Note: You can try some more ROMs, so that you can enjoy VoLTE.

Nexus 5X has completed its 2 year support period and will never receive Pie. And there are only 2 ROMs based on Pie and both have this problem.


text:
I can't enable notifications icons badge on Moto E5 Play
I have a Moto E5 Play with Oreo 8.1(Android Go) and I can't enable notification icons badge, I mean those little dots over the application icons on home.
When I go to Configuration-> Apps Notifications
there's no option to enable it.
If I go to application configuration is there an option to enable it individually but is grayed out.
I search on the web but nothing solve this.

@beeshyams Yes, I think it is because is an entry level phone and have a lot of Google Go Apps. I think I will make a Nandroid and I will install a true Android Oreo version.

@beeshyams I just read and seems like is no completely ready the TWRP. It says "... it does not allow decrypting and therefore mounting the data partition and internal storage." https://forum.xda-developers.com/moto-e5/development/moto-e5-plus-rhannah-backup-magisk-root-t3822702/amp/

As discussed in comments, OP's device runs Android Go and has Android Go apps.
Android Go doesn't support notification icons as explained in Lenovo forums Notification Dot missing on UK phone

....Android Go does not support notification access to apps,....


text:
How to update a Google Chrome password?
Here at work we use a Wi-Fi connection that requires the user's sign-in before it can be used, with a username and a password. This password is changed every few days. After connecting, Chrome starts and directs me to the login page, auto-filled, with the stored credentials. On my laptop, as soon as I enter a password that's different than the stored, I'm prompted to update it, therefore being able to auto-fill the form until it's changed again. However, on my Android Phone, Google never prompts me to apply that update. I can't seem to find a way of updating the password auto-fill, other than deleting the credentials and then signing in again, at which point Chrome prompts me to save the credentials with the "fresh" password. Is there any easier way to this? Thank you all in advance.

One thing can be open desktop site from your mobile browser will do the thing if you're convenient with it.

You can head to https://passwords.google.com/ to manage your passwords, including updating and deleting them, as well as changing password-related settings.


text:
Why my Nokia 7.1 makes a sound every 30 seconds until I view the notification?
Since updating to Android 9 (Pie) a few days ago, my Nokia 7.1 makes alert noises every 30 seconds - 1 minute until I view the notification.
I think it has something to do with the Ambient screen notification setting. I used to have it set at "periodically" which is supposed to be every 2 minutes and would previously just illuminate the screen - not make noise. But now, I get a notification noise about every 30 seconds (37 seconds to be exact) until I acknowledge the notification.
I set the Ambient screen notification setting to be "once" and that seems to have resolved the issue of getting the notification sounds, which is why I believe that setting is no longer working properly.
I can live with that workaround for now, but it really would be ideal to have my screen light up every 2 minutes without noise in the many cases that I don't see it the first time.
I have seen a similar issue reported with a solution of "Tap your Settings, scroll down and tap accessibility, scroll down and tap notification reminder." but I do not have that setting.

This is no longer an issue since the last Android P update - the setting in question that wasn't working no longer exists.

Still an issue on Nokia 5.1 plus. Settings looks the same with the screenshot, but turning on "New notification" brings the ambient display on and notification sounds every 2 minutes, if we don't dismiss the new notification.

Considering the phone has no notification light, this is probably a "feature". But they really should give an option to just wake the screen once / when the new notification arrives only (instead of waking it, and ringing a sound, every few minutes)


text:
Is there a way to combine SMS from different Android versions
I'm looking for a proper way which will allow to combine SMS from two different devices with different Android versions.
I took a look into this solution but it doesn't explain the step "4. Edit both XML files to merge them;" - how to do it?

Please provide an example of the code in XML 1 and 2 ... You may need to just copy and paste an entire section or edit manually the details .... for example if XML 1 has number ordering from message 1 to say 99... then merging the second file ( manually copying and pasting ) is a headache because you'll end up with two messages in the first position, meaning you need to edit the first message in XML 2 to say 99+1 ( 100 ) and then the second becomes 101 etc..


text:
simcard not found emergency calls only
I am using samsung galaxy fame. When I flashed cm12 my phone is unable to detect simcard when i dialed ##4636## i cannot even turn on radio there. When I chose option of preferred network it shows unknown.
The main problem is my phone shows imei number but unable to detect sim card .please help me and give me solutions over it .its my request.

Why don't you reflash the stock ROM. It is probable the flashing didn't go well or the ROM has issues. Is the ROM stable? Give us the link and the instructions you followed.

It would also be interesting to know whether the CM12 ROM you flashed was dedicated to that specific device – or maybe for another one. In the latter case, it might simply be not fully compatible with yours.

Make sure your flashed it without getting erros and with compatible custom rom.
How can you turn of radio anyhow if it doesn't have any connectivity(radio off) ?
3.Same, how can you even search networks if there is "no sim found" message?

Solution is flash it again and check that you are flashing with compatible rom.
Enjoy! This


text:
Need to flash Galaxy Tab PRO 10.1 to recover data
Hope you can help with this issue:
Samsung Galaxy Tab PRO 10.1 SM-T520 Kitkat 4.4.2
This is my wifes tablet and it recently stopped booting at the second Samsung logo.
This is the one that happens after the purple swirly (sorry for the technical term).
I went through some simple things to try and fix it including reboots.
I also disconnected the battery for some time while pressing the power switch.
I hoped this might clear the issue but it did not.
I tried connecting to my wifes PC where it wasn't recognized (used to work there).
I tried my system as well, I had no SW installed to I tried the latest Kies SW.
Also tried an older Kies version and also Samsung Smartswitch. Later I also tried Odin.
Nothing recognized the tablet as being plugged. Tried several cables to no avail.
If I look in the HW manager on both PCs no tablet shows up.
It seems as if the tablet USB is dead or the SW isn't running far enough to enable it.
Did some research and got into recovery mode, here is what comes up.
Android system recover <3e>
KOT49H.T520UEUANF4
Dead android with "no command" below
In my research I found out that you can update an image from the SD card.
So I found two US (XAR region) roms for Kitkat 4.4.2, I have tried both.
I used "apply update from external storage" in the recovery menu and selected the ROM.
They seem to start loading/extracting on the tablet and then I get the following;
E:footer is wrong
E:signature verification failed
The above message happens twice. The only reason I haven't just resorted to factory settings is my wife did not back up the tablet in the last 6 months and the previous backup has empty directories. While nothing is critical on the tablet she has save a lot of free quilting/clothing patterns to it.
So whatever I do I am trying to preserve the data, hence my efforts with the ROMS.
I can't change any settings on the tablet, I can't get the USB to work and I keep getting errors with the ROMS. I have seen it suggested that slow downloads can corrupt the zip files I am downloading. I don't want to pay for the download. Is there anywhere to get ROMS free at a decent download speed to rule this out?
Anyone have any ideas for anything else I can try.
Thanks


text:
Can not re-sign Android system app without app crashing (using LineageOS)
The original post on Reddit with some more background about the issue.

I have re-signed all system apps of LineageOS with my own key and have replaced them all before the first boot. LineageOS boots normally but then all re-signed system apps crash with an error like:
SystemUI has stopped, Settings has stopped.

The screen stays dark. It seems that the re-signed system apps are unusable. Maybe I made some mistake or LineageOS has some anti-tampering check implemented?

What I have done: I opened all system apps with the WinRAR zip manager and removed the CERT.RSA and CERT.SF files in each META-INF folder and deleted all the names and SHA-256 digest entries in all MF manifest-files. Also, all other APK for example, in the framework folder, like the framework-res.apk file, I edited them like this. Then I created a keystore with Key, using the Java keytool, I think this is self-signed. Then I signed all APKs with the Uber Apk signet tool and successfully performed zip-aligning. Then I flashed Lineage OS with TWRP on the phone. Before the first boot, I deleted the system APKs with the TWRP file manager and replaced them with my self-signed ones. Uber-Sign-Tool: https://github.com/patrickfav/uber-apk-signer

I have now adapted with the TWRP terminal chmod with the following commands: Before I adapted chmod, I checked everything with ls -l.
Then I adjusted everything as it is right in the system so for me: chmod 644 for system-apk's and the apk-folders and chmod 755 for the /system/app and /system/priv-app folders. Now I'm stuck again in bootloop when I edit chmod.
The chown-Settings were already on root. Also I tried chown 0.0 -R and chcon u: object_r: system_file: s0 (see also installing apk in /system/app with android 5.1 or higher (simple adb push doesn't work anynore) push does) I stuck again in bootloop when I edit chmod.
There are no Odex files available.
Why can I edit the AndroidManifest.xml from all Systemapps without problems if I keep the original signature except at the framework-res.apk? Does anyone know why it doesn't work with the framework-res.apk? The only way I find which works is to turn off signature verification in the whole system, but this is bad for the security.

Did you chmod and chown system/app recursively to fix permissions and ownership. ---
If so.. Is the system deodexed or odexed, the odex files could be mismatched with the apks... Also.. I usually don't sign system apps at all, i find that they aren't usually signed anyway... i think signatures mainly matter for DATA apps, and apps that use shared userID's

Hmm, not sure if it still is the case in recent Android versions, but at least in Nougat what I did is keeping the original signature while modifying framework-res. apktool has the -c option for that, though yes you will lose AndroidManifest.xml changes, so it might not work for you. What I want to say is that the OS likely does check for that signature.

I edited the Post


text:
Searching in a specific folder of Google Drive on Android
Since 2018 Google allows one to search within specific folders of Google drive.
e.g. The answer here:
In Google Drive, is there a way to search files located in a particular folder?
But can I do this on the Google Drive app on my Android Phone as well?

No, searching by folder is not currently allowed in the mobile versions of Google Drive. It's unclear if Google is planning on adding it to the mobile versions.


text:
File transfer over USB cable option no longer appears after upgrade to MIUI 10
I have a Xiaomi Redmi 4A and I used to often transfer files between it and my Windows 10 laptop PC over USB cable.
When I plugged in the cable the phone it used to prompt me to choose between USB charging and USB file transfer.
I didn't use this feature for months and a couple of weeks ago the phone told me MIUI 10 was available so I upgraded it it seemed very nice.
Today I want to transfer some files from the phone to the PC and now when I plug in the cable, the screen comes on and both devices beep but I am not offered to choose between charging and transfer. The phone does not show up in Windows explorer to browse files.
The phone does show on the computer as a connected USB device. But I can't find any settings or options on the phone or the computer to browse or transfer files on the phone.
Has this feature been removed in MIUI 10 or is it hidden behind non-obvious settings? Or am I missing something very simple?

I have tried two different USB cables. At least one of the cables caused my feature phone to show up as a USB storage device or MTP advice.
I have tried rebooting the phone and the behaviour afterwards is identical.

Though I was pretty sure I'd transferred files with at least one of the USB cables I tried around the time I posted this question, I tried a third cable at work tonight and the file transfer option now appeared!
So unless it was a coincidence, it seems it was due to a USB cable that was designed only for charging and lacked the wiring for file transfers!

On Windows PCs and other desktop PCs:

try to use a different USB port, often rear ports have more power than the front ports which is sometimes needed by some devices
use an USB 2.0 port if your mainboard supports both ports next to a possible type c port.
make sure ADB and your device drivers are installed (you can find your device drivers on your phone manufacturers homepage.

On your mobile device:

go to settings -> "my device" (or similar) and tap on your build number multiple times
go to "advanced" -> "developer settings" and check if "Select USB Configuration:" is set to MTP for file transfer or PTP for your Android to play a digital camera storage.

What i did to transfer files from "redmi 4"  to "mac" was following:

Install android transfer software on mac.
Go to "developers-option" in your phone to do so follow below steps:
2.1 go to "about-phone" in settings
2.2 click on the "mi-version" 8 times  to enable developers mode.
2.2. Now select "developers options" in settings.
Then choose to "Select USB configuration" button in developers mode.
From that choose MTP(Media Transfer protocol) option.
Now connect your phone (Make sure its unlock) using USB cable and open Android file transfer software on your mac.
Voila ! It should work now and should show the files to transfer.

It it don't work connect different cable as sometimes some cable don't support mtp transfer or Reconnect the same cable


text:
How to enable LED notifications on Pie
On Android Oreo there was a special location in settings that you had to go to in order to allow an app the turned on the LED to actually be able to control it.  Now with Android Pie that setting is either gone or I am not correctly remembering where it was, because I can't find it.
How do I enable an app to use the LED in Pie?

There is a settings option called "Custom Restrictions".  I had to search the settings (from the search bar) to find this, but it didn't indicate where it was in the menu structure.  Under "While the screen is off" de-select the option that says to not blink.  If you do not see this option (as I did not) then you do not have a notification LED on your phone (shocker, I know!) and that is the reason you can't get the LED notification working.

Sometimes the app you download will have the notification light feature turned off you have to go at settings then at notifications then select the app you want and enable the notification light


text:
Can I prevent Google from collecting data by using a custom ROM?
Choosing a smartphone based on the operating system on a smartphone comes down to two options: Android or iPhone.
Both collect personal data, track activities and track location.
But with Android there's the option of replacing Android with a custom ROM.
Will replacing stock Android on a phone with a custom ROM and removing all Google apps prevent Google from collecting any data?

Short answer - yes, you can reduce /eliminate Google factor from your device. For some pointers, see this blog by Izzy. Izzy is a moderator here. In addition you can use other tools like Firewalls,  and Xposed modules, to prevent apps leaking PII, one of which is mentioned here. Also, see the tag wiki and questions of privacy tag, which you used for related helpful information

Using a custom ROM without flashing GApps will massively reduce that, yes. But then you also should avoid all apps from Playstore (e.g. by using F-Droid solely), and don't browse websites (only few, like mine, have no Google trackers involved). As @beeshyams already wrote, a Firewall (root: AFWall+ / no-root: NetGuard) can help reducing it further. Getting it to absolute zero is probably only possible by going into airplane mode.

You should mention what kind of data you are talking about here. If you are using a privacy oriented custom ROM but giving Google maps website access to location through browser app then it also counts as collecting data. If you keep your browser signed in with Gmail and browse the web Google still collects data about you.

Hi. Thanks for answering. @Izzy&@Firelord: I mentioned in the question that I intend to remove Google apps from the phone. Regarding trackers in the browser: would disabling JavaScript and disallowing cookies help?

@user942937 removing GApps from a phone? Have fun. That's not an easy task – and you can never be sure you've got them all (and broke nothing). Always better to start clean, using a custom ROM that ships without them. And while disabling JS might reduce tracker activity, it doesn't completely eliminate it (think of Web bugs) but certainly will limit your browsing experience when done "absolutely".

or you can try microG if you can't carry on without the google apps and 3rd party apps which require google play services to run. You can flash it from Magisk Manager. LinegeOS has a fork which has microG inbuilt give it a try.. I'm currently using the same. It drastically reduces the data collected by google.. Check this out you'll love it! https://microg.org/

Summing up from the comments:
There's more to it then just getting rid of "Google Apps" – though running a device without them certainly already massively reduces that data collection. A complete elimination can only be achieved by running the device in airplane mode (i.e. not permitting any network connections).
Using a custom ROM without flashing GApps will massively reduce the data collection, yes. But then you also should avoid all apps from Playstore (e.g. by using F-Droid solely), and don't browse websites (only few, like mine, have no Google trackers involved). As @beeshyams already wrote, a Firewall (root: AFWall+ / no-root: NetGuard) can help reducing it further. Getting it to absolute zero is probably only possible by going into airplane mode.
Even if you disable Javascript completely in the browser, there are still Web bugs to consider: tiny, invisible images (1x1 pixel) embedded into web pages for tracking purposes. Websites which are completely free of trackers are rare; at least two thirds of all existing websites integrate at least one (if not more) Google Trackers: Google Analytics, Google Tag Manager (both to be found even here at SE), Google Ads, Google Fonts, miscellaneous Javascripts (ajax.googleapis.com), Google Maps, Youtube, and so on.

TL;DR: You can massively reduce it, but you can't get fully rid of it without breaking stuff. Using a custom ROM without GApps is a good start, avoiding apps from Playstore helps a lot, using a firewall app (AFWall+ if rooted, NetGuard otherwise) helps further. Selectively enable Javascript for websites in your browser (e.g. using the uBlock Origin addon) massively improves on it.

A custom ROM on Android is usually a modification of the factory edition, a port from a different phone running the same kernel and Android version, or a cross-port to upgrade the version by merging needed firmware files with the new release. Sometimes if the custom ROM builder is intelligent enough, they'll build a complete ROM from the AOSP (Android Open Source Project). However, that usually requires access to kernel source and most manufacturers don't release this unless required by law.
To define a custom rom as a modified stock system with proprietary software removed for copyright compliant releases, then iPhone also has custom ROM's (firmware) because you can jailbreak an iPhone and modify the system to "customize it".
So, you can build your own custom ROM that is specifically designed to remove any Google data collecting software on Android, as Android is an open-sourced project, you can modify it to build your own OS if needed (one with removed Google data collecting software).

However, I assume from your question that "you don't want to be tracked in any manner".
Google has several methods of data collection, for example if you prefer to use Chrome then data analytic software will collect a lot of information about your browsing habits (for improvements to the software) and to be sold to third-party data-miners.
Even if you don't use Chrome and avoid using google.com and any related websites/companies or softwares, you'd still potentially have data collected by other applications and websites that'll sell this information to a global analytics company (usually AXIOM). The company releases information back to Google and Google can still "track" you regardless of your product choice.
For example, Facebook is also a company that provides personally identifiable analytics to AXIOM, that can and most probably are purchased by Google and nearly any other company working on artificial intelligence since it needs data to learn.
Anyway, you can remove a lot of data collecting software, but it's only going to either increase someone's interest in your device usage (Google) or end up causing data to be collected more often.
For example, if you used purchased software, it'll be constantly logging to Google that you haven't purchased it, this is because it's constantly connecting to Google's servers to check for purchases by your account, and reporting that it can't verify the purchase because it's missing the Google Play Services application. In time, this should increase someone's interest (Application Developers - Google - Others).
The question is, why? If you need to stop it from collecting your habits, try using alternative methods, like using DuckDuckGo.com (a search engine that doesn't track you).
Turn off unnecessary data collection in every application that you can
(sometimes the switch to turn off analytics is hidden in weird pages like help and info, etc.)
So to answer your question in one line: No, Google has other means of personalized analytics.

How is your answer addressing "Will replacing stock Android on a phone with a custom ROM and removing all Google apps prevent Google from collecting any data?"

A custom ROM is defined by many attributes, it is necessary to clarify the exact custom ROM, without that clarification i theorised that the questioner didn't fully understand the difference between a custom ROM and a stock ROM. assuming that the questioner has concluded that custom ROM means fully built independently from AOSP source, then you can remove all software that collects data whilst building it.

Hi. Thanks for answering. I am referring to the more popular ROMs like LineageOS, CopperheadOS, Replicant, etc.

@Zillinium OP didn't want to know what a custom ROM is, nor who can make one. It was specifically about whether it can prevent Google data collection, which you didn't address. So basically, this is NAA (NotAnAnswer). Or it is an answer, but to a different question.


text:
How to fix S7 edge performance degrade after Oreo update?
My S7 edge (G9350) upgraded to Oreo for a month and the performance really degraded. I did factory reset to my S7 but  nothing improved.
I want to flash my S7 edge G9350 from Oreo to Nougat/Marshmallow but did not succeed  because of FRP .I don't understand why I got locked by FRP even  when I entered correct Google account ( now my S7 working is functional except the performance )
Are there any possible ways to flash my ROM to Marshmallow ?

It is unlikely you will succeed because of Anti Roll Back feature. I am not sure if this feature is implemented on your device but  Knox feature of Samsung makes it more difficult. Nevertheless, you can search on forums like XDA on ways to flash a custom ROM

There is no way to downgrade as bootlader is now on revision 7 (if I recall correctly) and Marshmallow/Nougat uses way older ones. So an official update won't be an option.
The other method is to use a custom ROM from XDA (you'll find many there), but be advised that that'll void your warranty and could brick your device (tho unlikely).
If you want to use a custom ROM, you can either go for an old TouchWiz ROM or (like I did on my S7) use an AOSP-based ROM. Presonaly I use LineageOS 16.0(9.0), but 15.1 (8.1) is preferred for stability as 16.0 is still beta. I'd recommend you use a custom AOSP ROM over an old TouchWiz ROM as those old ROMs don't have security patches and using an old Android version is never a good idea, not only because of security, but also you're just downgrading your phone in terms of features.


text:
Is there a way to show the status bar in Adobe Reader in Reading Mode?
Adobe Reader has a "Reading Mode" that is very nice for reading books and other documents but unfortunately, it hides the status bar on my Essential Phone.
This phone has a notch so when the status bar is hidden, instead of disappearing completely, it becomes blank instead. I'd rather see my notifications and especially the clock at all times.
I tried with adb:
settings put global policy_control immersive.status=-com.adobe.reader

but it still didn't force it, the status area remains blank :(
Is there some sort of other adb command that can override this application control to show the notification area as usual, around the notch?


text:
Google Calendar notifications not displaying
How do you get events on the Google Calendar app to display notifications on the phone?
Steps I have tried:

Google Calendar app > Swiping left > Settings > (Calendar label) > Default Notifications: Set this to 1 minute before
Tapping on Google Calendar app > calendar item > edit > Notification: Set this to 1 minute before
Going to Phone OS system settings > Sound & Notification > App notifications > Calendar > Setting: Block all to 'off'; Treat as priority: on; Allow peeking: on;

Notes:

My calendar events are created via the web at
https://calendar.google.com
Phone os: 6.0
Phone: Moto E (2nd Gen)
All events are NOT all day. Instead they last for 1 minute.

Try clearing the cache of calendar app on device. If that doesn't help remove and add the Google account to force a fresh sync


text:
What does "staged" mean in the context of dictionary download?

Google search can't answer my question
What does staged mean?
Sorry I'm a pretty new to the tech thing

My guess is that it refers to a staged rollout, which means that it is available only to a few users not all. Since you are unable to download, you are being told that the dictionary is available but not yet for you (or people in your region)


text:
How can I figure out Android browser version?
Our company is developing a web application and I have tested it with different browsers. I have noticed that the application does not work on the default internet browser on my Samsung Galaxy S4 phone. However, our developer is unable to find compatibility information, because I cannot tell him the name and version of the browser. It was already installed when I got the phone and it's called "Internet".
I suspect it might be Samsung Internet for Android (https://en.wikipedia.org/wiki/Samsung_Internet_for_Android), but I have been unable to confirm it or find any version information.
My question is: How can I figure out, what browser this actually is and if it is Samsung Internet for Android as I suspect, what is the exact version that I have installed. (I don't have Google Play installed on my phone.)

Won't User Agent String tell you something or it is reporting something generic?

Open Settings
Open Apps ( or similar )
Swipe across to System Apps, or Enable them in the drop down menu
Find Internet and open the app
It should show you the Version Number & Package Name,
4.3 - Example Version
com.example.company.app

If you can't find it that way, you need to get the package name by opening the APK file like a ZIP file, open manifest as a text file and find the package name statement...
You can also list the packages with another software, this'll show the package names and icon's for easier package identification.
I'm sure you could list all packages on the phone using a terminal emulator, but it's hard to identify the package if you can only see an icon and name.

**Once you have the package name,    **
com.example.package.name

Search it on a reputable search engine like Google, considering it automatically links you to the app on the PlayStore, it should show relevant information as to what the package is.

EDIT
Check Browser UA
Here's a link to a simple PHP Browser checker....
Recommended to use User Agent String in Comments by Morrison Chang.

I found it, but it does not say any package name. It just says "Internet" and Version 2.1.34.90-0_110500_1177524.

There is also another entry that is called com.sec.android.app.sbrowsertry with a version of 2.1.34.203954, but it has almost no permission, so I think it might not be the right package. However, searching for it leads to Samsung Internet Browser.

Samsung Internet is aparently based on Chromium. If I could figure out what Chromium version it is based on, that would probably help me sort out the compatibility problem.


text:
Android Pie only showing two folders to Android File Transfer
I have a Pixel which is running Android 9 and I have a computer running El Capitan with Android File Transfer. Under "Use USB for…", I have "PTP" selected. Android File Transfer only shows the folders Pictures and DCIM and no other folders or files at that directory depth. Prior to selecting "PTP", I was on "No data transfer" and Android File Transfer told me I needed to select "File Transfer" or "MTP" for it to work. "File Transfer" mode results in Android File Transfer saying I need to reboot or disconnect my phone; this didn't work.
I've already searched for an answer to this and these are things that don't work:

I cannot select "MTP". There is no such mode, only "PTP".
There is no Settings > Apps > All applications > Media storage under which I can select Clear data.

I also can't even get a USB drive, connected to my Pixel using a micro USB to USB-C adapter, to show up in Android so I can transfer devices to and from it.
How do I fix this nightmare?
Update #1: I was able to fix this the first time by updating AFT. Several weeks later, I now have the same problem again. I've already updated AFT once more.

Enable developer option (by tapping build version in settings 7 times) and see if you have something like "select USB configuration" and in that choose MTP or other options. I don't have Pie running to check

@beeshyams I said there is no "MTP" option.

File Transfer is the option in Settings->Connected devices->USB and 'USB Controlled by - This Device' that works for me running Mac OS High Sierra with Android File Transfer (Version 1.0.11 (1.0.442.1500)). I can see multiple directories on a Pixel 2 with Android 9.0. When you say "reboot", have you tried rebooting both the phone and laptop?

@MorrisonChang No, I have tried rebooting the computer. It doesn't mean that and there is no need to.

@beeshyams There should be no need to.

Which version of Android File Transfer are you using?

@MorrisonChang  I'm using version 1.0.11, but that shouldn't matter since AFT can see the folders DCIM and Pictures in the top level as well as any files/folders beneath them.

I'm curious if you can see the other directories via the adb shell. That would require you to have Android SDK adb tool installed and enable developer mode. I have had to use adb to get pictures off a different device when AFT wouldn't show >300 (not real number) pics that I knew was there.

@MorrisonChang A few weeks ago, I was able to see the other folders after updating Android File Transfer, but now I'm having the same problem again. I'd like to avoid using adb if I can.

I have some tips for you to get it working because Android 9 lacks the notification popup which asks to select between modes(File Transfer, MIDI, PTP, No data transfer, Charging,etc.) when you plug your phone to your computer via USB.
You can try the following things:

Enable Developer Options.
Enable USB debugging.
Try changing USB port on your computer in which you are plugging your phone.
Make sure you are using data cable and not the charging cable.
Go to USB Default Configuration in Developer Options, there you will see different modes(File Transfer, MIDI, PTP, No data transfer, Charging,etc.) to choose from.
After selecting 'File Transfer', unplug and plug your phone again.

For more details, visit the link below: https://youtu.be/l8jP8YxDL5w


text:
How can I make my phone require a password to open Google Play Store?
I want my phone to require a password to enter the Google Play app, so if I let someone else, such as a friend, use my phone they can't go into the app and snoop around.
I have a Samsung Galaxy S9 with Android 8.0.

It is best if you setup a guest user account for complete isolation from your apps and data.

You can try AppLock.
On its Play Store page, it is stated that:

AppLock can lock Facebook, Whatsapp, Gallery, Messenger, Snapchat, Instagram, SMS, Contacts, Gmail, Settings, incoming calls and any app you choose. Prevent unauthorized access and guard privacy. Ensure security.

Below are the steps to configure the app:

Install the app. After the installation is completed, open it.
You will be prompted to create a pattern that will be used to unlock the app (I advise you use a different pattern than the one used to unlock your phone).

The next windows will ask to enter an email address for security purpose.

Next, a dialog box will appear asking to grant the app usage access. Click permit, then on the list select APPLock and switch on usage access permission.

Go back to the app, click on the Play Store. It will now be locked.

When you or anyone else try to open the Play Store, he/she be prompted to enter the pattern you created.

Disclaimer: I have no relation with those who develop the app.

+1 Maxlock is another good alternative, free software, works with and without root with automation features too. Most importantly, it hides the content of recent view of locked apps to ensure content is hidden from prying eyes

Mostly samsung devices have app lock by default if your device doesn't have just downlaod an app lock from play store and set it up and lock the app you wanna lock

It would terribly help if you could mention where this inbuilt app locker can be located in at least Galaxy S9 (if not the most Samsung devices as you said).

I searched everything and couldn't find it but I figured it out!!!

@NonaBinder can you tell us what you figured out? This could help future askers as well.

I followed the instructions for the  applock and now I have to put a password in to get into it!!!!! It worked perfectly!!!!


text:
How to prevent loud beeps before alarm rings
Using alarm xtreme on Samsung S8.
In the past it didnt happen but recently when the phone wakes up to play the alarm it plays a very loud 3 beeps and then starts the alarm.
The alarm is set to start quietly and raise but due to the beeps I wake up in panic.
Please advise

I'm using Alarm Clock Xtreme, which is what I assume you mean. I'm unable to reproduce your issue. So, what exact version are you using? Click the hamburger menu in the upper left corner, then About us (the exact words may differ, since I translated the localization back to English). And are you using Pro or the free version?

@DuaneDibbley the ver is 6.6.1.70000877
Thanks,
Nir

That's the same as I have. And like I said in my previous comment, I can't reproduce your issue. The only thing I can suggest now, is to dig through the various settings. The two that come to mind, are Sound type and Override system volume (again the exact words may differ), but if this is a bug, it may well be affected by seemingly unrelated settings too.

I received an update to Alarm Clock Xtreme just now. Since I can't reproduce your issue, I can't say if this update fixes it, but I thought I'd let you know that it's available anyway.


text:
App exporting to SD card
I remember android has disabled app exporting to SD card since i dont remember which version, but a person has showed me his 7.0 or 7.4 LG which actually is able to move apps to SD card. Why is this happening and how can i do the same at 7.0 androd? Preferably, without having to format SD card as internal storage

I'm not sure about formatting as internal storage, if your device can read it, it's already formatted for Android, and can be used as either internal or external... just switch it.
Also, some applications don't allow moving the app for compatibility and security reasons, it's not always device dependent.
Try scrolling through the apps and see if you can move any of them across.

Thank you, well, i remember many apps just as facebook or whatsapp were able to be moved in old android versions. And these apps still be transferable at this date while android is an older version. Why would these companies disable this on newest releases? Any of my strongest apps are  movable to SD card so im starting to be suspicious about the android's version

I'm not sure on the small details as to why, but while developing apps for my own projects, some permission usage's ( the method i used ) requires android:installLocation="InternalOnly" to have access to specific data on the internal storage, if you don't have this in the manifest the application crashes... I gather it's something to do with restricted folder access on a per-app basis.

I understand now, its more like a logistical error which has not been handled by the devs which causes: A) New permissions engine requires internal only manifiests B) Attempting a portable to SD app pushes you to not ask for permissions, which makes the app obsolete C) You have to choose between obsolete or internal only, so the most of the devs actually prefer to manifiest internal only for logics. Have i understood well Zillinium....?

I'll agree with that. . It's more complicated than that, but basically the same results, permission failures etc...


text:
Unable to copy certain backed-up folders from PC to new microSD card
I bought a bigger microSD card for my Samsung Galaxy S7 Edge. I took out the old card and copied its content to a folder on my PC, via a card reader. Then I put the new card in the reader, formatted it and started copying the data back onto it. One rather irrelevant .jpg file was signalled as damaged, so I skipped it, then some folder required admin rights to be copied, so I clicked the "continue as root" button. So far so good.
But finally a folder named "cache" couldn't be copied or skipped, and the only option I was left with was to abandon the whole copying process. I searched my backup folder for "cache" subfolders and there are quite a few of them, but all are buried deep in the recesses of the directory tree, so none of them is THE Android cache that I hear a lot about when googling for a clue.
Any ideas what it is I'm up against, and how to solve it?
My PC is running Windows 10.
TIA!

If your Windows ask you for admin permissions something is wrong - this should never happen as you just copied it from the other SD card.
Anyway copying and SD card file by files is IMHO not a good idea because the Windows Explorer does usually hide certain files.
Therefore I recommend to use a backup tool or alternatively use a compression program like 7Zip/WinZip/WinRAR and zip the whole source SD card to one file on your hard disk.
Then switch to the new SD-Card and restore the backup respectively decompress the created archive to the new SD card.
Edit: Note that a lot of SD cards on the market are "fake SD cards": Their controller has been manipulated to make the SD card look larger than it is (e.g. the card has 16GB flash memory but tells the Smartphone/PC it has 128GB). Writing to such a card will earlier or later end in a total disaster. Therefore I strongly recommend you to test any new SD card before using it. One of the best tools I know for doing so is a small Windows tool named h2testw (Language German and English). It writes files with a special pattern to the SD card until it is full and then reads it and tests if the pattern of every file is correct.

Up voted. You may also like to mention that dates of files are preserved using zip method. That would be much needed for photos for instance

Thanks for the reply. I found a software called EaseUS Todo Backup Free. After one failed attempt, it claimed to have successfully backed up the original card. Then I put the new one in the reader and told the soft to restore the data onto it. It started doing so in "disk-partition mode" or something like that, and was apparenty going to recreate the exact structure of the old card, including the same capacity - which would obviously make the whole investment pointless.

I hope the errors are due to botched formatting of the new card, and now I'm in the lengthy process of hard-formatting it (at 512 GB it will take a while). Stay tuned....

@Xirdal If your new SD card makes problems it may be defect or forged (see the last section I just added on that topic).

The phone is my wife's and she went to see her folks without me having enough time to fully format or test the new card. There is a gadget-expert brother-in-law over there who may be able to help; if he doesn't, I will probably be back with a follow-up to the story. Thanks again for all the replies.


text:
No home button (ViperOS for Motorola Moto G5)
I just installed ViperOS on my Moto G5 – and I cannot find the bottom bar with home, back and the other button. It is just not displayed. And I have not found anything on the Internet on how to solve this issue.

Problem solved. I installed a more recent version of ViperOS which does not cause any problems.

Bottom bar with Home(Circular), Back(Triangular) and Recents(Square) are called Navigation buttons. They are used to move to home page, Back from activity/opened app, and switch to currently running apps.

AOSP builds by google implements software buttons(on screen) for navigation.
Older devices contains capacitive buttons on bottom below the screen, which performs these activities. So, the custom ROM developers may skip enabling  Navigation bar(software buttons) of AOSP build, which may not be required as there is hardware button present.
But, modern devices with full view display(example: 18:9), doesn't contains capacitive buttons. Software buttons(on screen) performs this task.
Motorola devices are purely stock devices which have only software buttons. so, custom ROM builds have software navigation buttons by default.

Note: Please install Official custom ROM builds.


text:
Bluetooth constantly trying to pair
I have a moto Z running android 8.  I have run into a problem where it is constantly trying to pair with a device that isn't present.  Like every 30 seconds or so I get a message that "pairing with device mac failed."  The only way I have found to stop it is to turn off bluetooth on the phone, which kinda defeats the purpose.  Doesn't matter where I am, home, work, in a park miles from the car, if bluetooth is turned on I am getting the popup.  Symptoms are similar to this question, but not location sensitive...
I have tried reboots, powering down for an extended period, forgetting all of my paired devices, and resetting network settings.  Still getting the popup.  I have had to clear it about 12 times in the course of typing this post...
Anyone have any idea what might be causing this to happen?

See if that happens in safe mode too. If it doesn't, it may be an app that is causing it?

So it looks like this was being caused by an app.  Doing a MAC look up on the device it kept trying to pair with indicated that it was manufactured by Weber-Stanley.  I have a bluetooth grill thermometer that they made, but it has been shut off and in a cabinet for a month or more, and definitely has not followed me to all the places where this has popped up.
Uninstalling the Weber app that works with it seems to have cleared up the issue.


text:
Would the TWRP for Trend Lite work on Trend 2 Lite?
I obtained a secondhand Samsung Galaxy Trend 2 Lite and I am not sure whether this TWRP recovery for Trend Lite is compatible with Trend 2 Lite.
It mentions it is for Samsung Galaxy Trend Device, but I do not know when it mentions Trend also includesTrend 2 as well. Can you help me with that?

Unfortunately, no.
TWRP, despite it being called a "recovery", actually contains a full kernel to allow other components to run on a specific device, similar to a full ROM.
Due to this, many smallest differences (usually except storage size) can make a certain recovery don't run on another model.
In your case, they run on different, incompatible SoCs, so the TWRP for Trend Lite will not work on Trend 2 Lite.


text:
Flash USB drive on S9
How to read an USB flashdrive on a Samsung S9? I saw online that some OTG adapter is required. I want to know if there are other options requiring only an app or something.

When I got my S9, an OTG adapter came with it. https://youtu.be/KOzvjhCtdo4?t=23. Another alternative is getting a drive with built-in OTG support and USB-C connector.

But nothing happen inserting a flashdrive with that

@DuaneDibbley you were right

I'm running LineageOS on mine, so I can't say what the stock rom does. When I insert a USB flash drive with the OTG connector that came with the phone, I don't get any message box or any indication at all that the drive was mounted. However, when I check Storage in settings, it's there, and It's also visible and browsable in the file manager. N.B. If you write anything to the drive, don't forget to unmount it before physically disconnecting it. That's done from storage settings.

An OTG adapter should be included with the Galaxy S9. If you insert the male connector into your device's USB port, and a flash drive into the adapter's female connector, the drive should be automatically mounted. You may not get any clear indication that this happened, however if you check storage settings, it should be there. It should also be visible and browsable in whatever filemanager you're using.
Don't forget to unmount the drive before physically disconnecting it. This is done in storage settings. Unmounting makes sure all cached transactions are flushed. Technically this should be done every time, but it's especially important if you've written anything to the drive. If you don't do this, you may lose data, as it's only written to cache, and never flushed to the drive.


text:
How does android dm-verity protection validate blocks with hash tree
I am learning about android dm-verity protection and I try to understand how does the android dm-verity uses the hash tree for validation of "single block".
https://source.android.com/security/verifiedboot/dm-verity says:

Instead, dm-verity verifies blocks individually and only when each one is accessed. When read into memory, the block is hashed in parallel. The hash is then verified up the tree. And since reading the block is such an expensive operation, the latency introduced by this block-level verification is comparatively nominal.

After the block is read and hashed, it is verified up the tree. But how can I verify root hash, when I have not read all the blocks?? I can verify just that part of the tree I have read, and that means I do not have to go up to root hash.
I do not understand why we use a hash tree. StackOverflow thread says that main reason for using hash trees is when the hash is computed for every block and than for the whole file again, i don't get why it is used here.
So how it is actually implemented?? My assumption is that when the block is loaded to memory android just checks the particular branch and rest of values are taken from the pre-computed hash tree. But than I don't see the reason for using the tree. I would just store block hash values and after reading the block and hashing compare just the hash.
Edit: Let's assume this implementation:

split the whole block device to the blocks of 4K size.
hash each particular block and concatenate hashes(create layer 0 of dm-verity)
store the hashes (layer 0) at the end of block device
Now, when I want to verify 4K block loaded to the memory, I find the block position and compare the hash of loaded block with the stored hash.

In the situation as this using a tree makes sense, because you only have Merkle root available, but in Android, we have the whole tree, so why just not use the layer 0 (implementation above) and throw away the rest.
And while writing, I think I came up with an answer. Android stores the whole hash tree at the end. But the tree is not signed, only the dm-verity table(metadata) that contains the root hash. So, In my implementation, I would have to sign the whole layer 0. And that is probably wasting resources, so it's better to use the tree.

"But how can I verify root hash, when I have not read all the blocks??"

"In essence, the leaves of the tree are pages containing hash values; each higher level in the tree contains hashes of the blocks below it."
  Reference

Example:

"A merkle path is used to prove inclusion of a data element. A node can prove that a transaction K is included in the block by producing a merkle path that is only four 32-byte hashes long (128 bytes total). The path consists of the four hashes (shown with a shaded background in A merkle path used to prove inclusion of a data element) HL, HIJ, HMNOP, and HABCDEFGH. With those four hashes provided as an authentication path, any node can prove that HK (with a black background at the bottom of the diagram) is included in the merkle root by computing four additional pair-wise hashes HKL, HIJKL, HIJKLMNOP, and the merkle tree root ."
Reference

"I would just store block hash values and after reading the block and hashing compare just the hash."
You have to remember that cell phones have a limited amount of resources. Your way of doing it you have to read the whole block and compare to verify the validity before. With the tree you only need to read a part of it to verify validity.

"However, attempting to verify an entire block device can take an extended period and consume much of a device's power. Devices would take long periods to boot and then be significantly drained prior to use." Reference

To help with your research I think it would be important to know the hash tree theory. It is called the Merkle tree first patented by Ralph Merkle

From what I understand besides

Binary search tree never meets collision, which means binary search tree can guarantee insertion, retrieve and deletion are implemented in O(log(n)), which is hugely fast than linear time. Besides, space needed by tree is exactly same as size of input data.

You do not need to know size of input in advance.

all elements in tree are sorted that in-order traverse takes O(n) time. Which is key in things like phone contacts which are in alphabetical order.

Thank you. I haven't heard about Merkle path, and now it's clear to me how the blocks are validated. However, I still was not sure why they use the tree, so I will edit my question, to clarify what I did not get.

The main reason is security. Keep in mind that android is supposed to be read-only to the user. Modification to any block is equivalent to breaking the cryptographic hash. dm-verity verifies blocks individually and only when each one is accessed. When read into memory, the block is hashed in parallel. The hash is then verified up the tree. And since reading the block is such an expensive operation, the latency introduced by this block-level verification is comparatively nominal.

@BoLawson Late reply. I'm studying dm-verity, but I'm not convinced your answer is correct. You say "Your way of doing it you have to read the whole block and compare to verify the validity before. With the tree you only need to read a part of it to verify validity." and then you quote google's reference. Google's reference is talking about verifying the hash of the entire "block device" not "block". The OP is talking about verifying the hash of each block after you have already computed the hash of each block.

@BoLawson Additionally, you talk about limited resources, but that also does not seem relevant. I believe the entire hash tree actually is actually stored. How else would you move up the tree to verify the root hash? So I don't think your answer properly explains why it's not enough to just verify the hash of each block and not move up the tree.


text:
LG K10 MT6753 boot partition deleted
I have a little issue with my LG K10 K430. I was experimenting with it, to learn the adb function. Well, I stupidly erased the whole boot partition using rm, and then my phone is not booting anymore. It is showing the LG boot logo, but is not starting up, keeps rebooting.
I tried to:

Repair it through LG Bridge, to flash the stock ROM through LG UP and LG Flash Tool. But the phone is not staying in flash mode or download mode, cant boot into Fastboot. The only thing that apparently works is the Factory Reset mode, but only shows the interface. It only reboots the phone and nothing else.
Flash the boot image through SP Flash Tool but has no luck. The phone is detected by Windows but only for 3 seconds, then it disconnects. No matter what I do, when I connect the phone to my PC, it quickly disconnects, even with Driver Enforcement deactivated. I tried LG drivers and some other drivers for Mediatek, but still have no luck.

Is there any other way to recover the boot partition's data or to unbrick my phone?
I hope you can help me.
Thanks in advance.

@BoLawson the real location of that link (without Google Amp): https://forum.xda-developers.com/lg-g3/help/tutorial-fixing-fastboot-mode-started-t2995854/

Please have a look at this video on backing up MTK Devices ( Mediatek ) prior to any system changes MTK Backup & Restore

Ok, you definitely need your CDC Drivers ( MTK Preloader Drivers )
MY Stock CDC & MTK Drivers
Some drivers are .INF files, You need to right click and install ... These files are pulled from an MTK 6735 ROM   - CDC Drivers are usually universal for all MTK.
And probably the newest SP Flash Tool ( V 5.16+ )

5.16 has new support, so get the newest version if you don't already have 5.16+
SP Flash Tool 5.17.zip
Ok, I'll need more information to completely resolve the problem.
How exactly did you remove boot with RM ...
And have you got a Boot Image For The Device....
I can help get everything working but please make sure you have the files above, and you need to watch the video ( English ) to understand how SP Flash Tool works ... Please do all these things and comment the answers ( the code you used to wipe ) etc....


text:
Google Play error 501 when updating YouTube
I'm trying to update the YouTube app. Whenever the update downloads and it shows "Updating app". It takes a lot of time and after some time, an error is displayed "Unknown error 501". I've searched for many solutions on Google. I've tried all the possible solutions but didn't worked. Anyone can help?

Please  [edit] to mention what are the things you tried. Else somebody may suggest something that you have already tried and it's a waste of effort for both.

@beeshyams a list of Playstore error codes can be found on our google-play-store tag-wiki, linking to the relevant posts. But we don't yet have the 501 listed yet (this is the first Q for it). // Saad: Could you please verify if this tutorial helps you: https://appuals.com/google-play-store-error-501/ (I can't as I don't have the issue and do not use Playstore anyway). Alternative guide: https://www.unlockunit.com/blog/fix-google-play-store-error-501/ Please let us know if it (and what) did the trick. Good luck!

@beeshyams always check the tag wikis first :) We've often placed "core stuff" into them, so we can find it if needed. And I'd say we should continue doing so :)

Have you tried clearing Play Store cache and/or uninstalling Play Store updates? Worked for me. Posting as comment because I don't know if you've done this already

@user153812 yes i did. Didn't worked.

@Saad Khan- any success since then? Do post if you found a solution.

@user153812 Not yet


text:
Importing the Telegram contacts into the phone book - Android
I have a fairly serious problem. I lost all the numbers in the phone book, breaking the SIM card, but luckily I saw that most of them are stored on telegram. I tried with telegram desktop to export all contacts and the operation was successful. Now, how can I put them in the phone book? I hope there is a solution, even starting a new procedure from scratch.
Solution here does not work Sync Telegram Contact with Phone Contact

@Memmo's answer is great and put me in the right direction. However, the script does not work anymore, because the indention was changing for Telegram exports. Also I wanted a version that works for all country origins. My output CSV can also be imported into Google Contacts without the necessary step to convert it to the VCard. Here is my modified version:
import re

pathToFile = 'lists/contacts.html'

with open(pathToFile, encoding='utf-8') as f:
    lines = tuple(l for l in f.readlines())
    with open('csvToConvert.csv', "w", encoding="utf-8") as outputFile:
        outputFile.write('Name,Group Membership,Phone 1 - Type,Phone 1 - Value\n')
        for i,l in enumerate(lines):
            if '
' in l and '
' in lines[i+4]:
                tel = re.sub('^00', '+', lines[i+5].replace(' ','').replace('\n',''))
                outputFile.write(lines[i+1].replace('\n','') + ',* myContacts,,' + tel + '\n')

The data export can be found in Telegram Desktop in Settings > Advanced. The script above needs to be located in the resulting Data Export folder and needs to be run by Python3.
My final step was to merge the contacts using Merge + on my mobile after sync, because the script will make one entry per number, not per contact.

After exporting all the contacts with Export Telegram data, I created a Python script that extracted all the contacts from the generated website.
The script, positioned directly inside the Telegram Desktop folder, is the following:
#FIRST FOLDER TO CHANGE
pathToFile = 'DataExport_08_12_2018 (2)/lists/contacts.html'

with open(pathToFile, encoding='utf-8') as f:
    lines = tuple(l for l in f.readlines())
    with open('csvToConvert.csv', "w", encoding="utf-8") as outputFile:
        outputFile.write('nome, telefono\n')
        for i,l in enumerate(lines):
            if l.startswith('
') and lines[i+4].startswith('
'):
                tel = lines[i+5].replace(' ','')
                if not tel.startswith('+39'):
                    if "+" in tel and tel[1] == '3':
                        outputFile.write(lines[i+1].replace('\n','') + ', ' + tel.replace('+', '+39'))
                    else:
                        if tel[0] == '0':
                            outputFile.write(lines[i+1].replace('\n','') + ', ' + tel)
                elif tel.startswith('0039'):
                    outputFile.write(lines[i+1].replace('\n','') + ', ' + tel)
                else:
                    outputFile.write(lines[i+1].replace('\n','') + ', ' + tel)

Note that this script is aimed to the Italian telephone numbers (note the prefixes that are checked in some if clauses)!
However, once the folder is modified and the script is executed, a file called csvToConvert.csv is generated.
Subsequently, this file must be passed to a program called CVS to VCard, which takes care of converting the csv file into a vcard file.
Then, once the vcard file is generated, just enter it on google contacts (https://contacts.google.com/ > more > import), and you're done! Magically you will find all the contacts in the phone book of your android phone!
I hope I have been helpful.

You can export the Telegram contacts via the desktop app by going to Settings > Advanced > Export Telegram data. Now select only contacts and export as JSON.
Now you can transform this into a Google Calendar format CSV file using jq CLI-tool.
jq '[
  # Rename fields to Google Contacts CSV format and format phone number starting 00 to +
  .contacts.list[]
  | .phone_number |= sub("^00"; "+")
  | .["Given Name"] = .first_name
  | .["Family Name"] = .last_name
  | del(.first_name, .last_name)
  | .["Phone 1 - Type"] = "Mobile"
  | .["Phone 1 - Value"] = .phone_number
  | del(.phone_number, .date, .date_unixtime)]
  # Convert array of objects to CSV, from https://stackoverflow.com/a/71505734/13994822
  | (map(keys) | add | unique) as $cols
  | map(. as $row | $cols | map($row[.])) as $rows
  | $cols, $rows[]
  | @csv' \
-r "Downloads/Telegram Desktop/DataExport_[DATE]/result.json" \
| tee contacts.csv

This can then be imported at Google Contacts via the import button . As of 2023-05-15 this is on top-right of the application UI.


text:
How to create a home screen shortcut for a live streaming URL?
Is it possible to create create a launcher icon that will start a certain streaming video URL in an app registered to the specific media type? (or offer the app chooser menu, in case there are multiple apps matching the content filter).
In my case it is a M3U playlist URL pointing to a DASH stream and I would like to open it directly in a default app for the content type (i.e. mxplayer).
I am aware that it is possible to create a launcher shortcut from Chrome or other browser via Add To Desktop option, but in this case tapping the launcher will open the web browser first and then will redirect to whichever app can handle the content type. Can this be done in a way that does not require a web browser?
In broader terms, the question is how to create a launcher to a URL or local file that can be tapped from the desktop and would open in whatever app(s) can handle the content type?

Do you know the URL for sure? If yes, you can use Tasker to feed that URL as data when launching your video player. Further, you can use the Tasker widget to launch that task from desktop. You can alternatively send an intent that could show the apps in a bottom sheet to launch the URL.

yes, i know the exact url, but tasker afaik is a paid app, and apart from that i want to avoid running a dedicated service for that; basically I'm looking for an easy way to get a launcher which will start the intent with the correct arguments without me having to manually edit it

Stock android does not offer the possibility of creating custom desktop shortcuts since that's something handled by the launcher which is just an app like any other. While some launchers do offer to option to create buttons for any activity (e.g. Nova and others) they don't currently have the option of setting additional arguments for the shortcuts such as URLs or file names.
After trying half a dozen of apps from the play store I have identified at least two apps which can create generic shortcuts which will keep working even after the apps are uninstalled: https://play.google.com/store/apps/details?id=krow.dev.scheme.
With Intents the configuration that worked with VLC player is:

Action: ACTION.VIEW (android.intent.action.VIEW)
Package Name: org.videolan.vlc
Data <INSERT_STREAMING_URL_HERE> (for example https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/dash/nonuk/dash_low/aks/bbc_world_service.mpd)

Other shortcut creation apps I tried register the shortcuts to themselves and therefore uninstalling them will also delete the shortcuts.

If there are many shortcuts like this, adding ACTIVITY_NEW_DOCUMENT flag in Intent app is needed to launch them independently (rather than bringing up previous instance of VLC with previous stream running in the background).

Just out of curiosity, would it be possible save the url as a bookmark and call on that via intent/activity shortcut?

If you have a file manager (I use ES File Manager version 4.1.5.5) that can create shortcuts to the desktop, then it is possible to do what you ask.

From ES File Manager, press the file, select More.

Select Open As. A window appears with options. Choose either Audio or Video

A new window will appear with the options to select the app to open the file with. Select Set as the default app, then select your favorite app for playing the m3u streams. The app will open and play the stream. Close the streaming app.

Select again the file, click More followes by Add to Desktop.
A shortcut will be created; clicking it will open the stream using the app selected during step 3.

ES File Manager registers the launcher it its own intent type, and it's not possible to create a launcher for a URL, only for a local file. I tried putting the streaming URL into an m3u or m3u8 file but then the launcher opens it in ES Managers's own audio player which is unable to play it.

Remove the shortcut created that open using ES Manager's own audio player, then follow the steps included.

the shortcuts are deleted if es explorer is uninstalled and apart from that the app is extremely intrusive, so not really a viable/safe option for me

You can choose another app to create shortcuts. Yes the shortcut(s) will be deleted if the app is removed

As mentioned in my answer there are some apps which will create 'app-independent' shortcuts which will keep working even after the apps are uninstalled.


text:
Setting up Python so that it can be run on any Android terminal apps
I'm trying to get Python 3 to run natively on Android. By "native", I mean native Linux, just an Android variation of it. I'd like to be able to simply open a terminal and type python /path/to/script.py, so Kivy and Qslide will not work (to my knowledge, feel free to prove me wrong). Normally, Termux would do this, but I don't like the terminal app just the Linux packages it supplies, prefer to use another called Terminal Emulator by Jackpal.
I've tried booting into TWRP (I don't have root otherwise) and copying the necessary Python binaries and lib folder and the Termux data directory to /system/bin and /system/lib, but Python fails, saying it can't find libandroid-support.so. I realize Termux's Python is probably modified in some way to account for the directory structure required by an Android app and therefore couldn't find the .so even after I copied it to /system/lib.
So my question(s) are: How might I make the solution I tried work? Are there any other ways to get Python installed as a native Linux app*?

*Like I said, I want it to be just like on a desktop Linux where I can open ANY terminal app and use python just like any other command.

Why don't you simply run a Linux distro on Android device? It's fun to have power. But that needs root and in some cases a custom built kernel for chroot, namespaces etc. No apps need to be installed other than a simple terminal emulator. Termux packages won't work that way because paths of linked libraries are hard coded. Also, most of the Termux packages or other Android specific solutions are limited one way or the other.

@IrfanLatif how about drivers if we need access to peripheral devices?

I believe the solution for you is Python-for-Android (Py4A). Not only does it allow you to run scripts on your Android device, but you can go one step further because the project includes simple draft instructions on creating a standalone, downloadable Android APK package.
First, I would start by going to the readme section of Py4A. There is a recipes (script) that will fit your needs. The python3 recipe allows Python3 to run as a "standalone" on Android.
This excerpt from Linux Journal explains script installation on your Android device:

Running on a Smartphone
To run a Python script on your physical Android device, install SL4A together with Python for Android on your handset, then transfer your script.
To install SL4A on your physical Android device, enable the Unknown Sources option in your device's Application settings. This setting is required to enable the installation of non-Market apps on your phone. With this done, you can follow the same steps you used when installing SL4A and Python on your emulator. To speed things up a little, install Barcode Scanner from the Android Market and use it to “read” the QR Codes from your desktop screen.
Transferring Your Script to Your Handset
There are a number of ways to get your script onto a real phone. I've found the success of using something like Bluetooth connectivity or USB cabling arrangements can very much depend on the hardware on which you're running. What works on one handset, doesn't on another, and so on. Your mileage may vary depending on your actual device. When I need to transfer a file, I've come to rely on a solution that works no matter which handset I use (as long as the handset can talk to a local Wi-Fi network). What I do is switch on the OpenSSH server on my development PC running Linux, then use the AndFTP file transfer app on the handset to scp files from the desktop to the phone. AndFTP is available from the Android Market as a free download and installs in minutes. Once I connect to my desktop with AndFTP, I can navigate to a directory of my choice, mark the files that I want, then download them to my SD card on the handset.
AndFTP works well, and I've come to depend on it for all my Android file transfers (see Resources). Just be sure to transfer your scripts to /sdcard/sl4a/scripts on the phone to ensure that your script names appear within the SL4A list of scripts.
With your script file transferred to your physical device, start SL4A as before, tap your app's name and tap the run wheel. As expected, your app runs just as it did on the emulator, only faster! I haven't included a screenshot of the app running on a real phone for two reasons. First, it looks exactly the same as it did in the emulator, and second, it's running on your device, so you can take a look at it there!
Creating an APK
There's one further kink to SL4A that might interest you. The project includes draft instructions on creating a standalone, downloadable Android APK package (see Resources). Once created, the APK file bundles your custom Python script with information that allows other Android users to install Python for Android automatically onto their handsets and then run your app from the smartphone's main menu of apps. Describing the process of creating the APK likely would take another article, so I leave it to the brave among you to try out the instructions on the SL4A Wiki"

Python-for-Android website.

Not all devices allow runnng Linux within android and I've hard bricked a phone by deleting the Linux directory and having symlinks to Androids own system files followed so I really don't like that option.

Would it be possible to compile Python 3 from https://github.com/python/cpython/tree/master/Python on Android (hopefully with little to no modification to fix path variables) and (lacking a package manager for Linux apps) move everything into place from TWRP?

@Myersj281 vendors never want you run anything on the device other than their officially provided ROM. It's in their great benefit and also in user's benefit if he/she doesn't like playing with technicalities. Unlocking bootloaders, rooting, custom kernels, custom ROMs, everything has some degree of risk with it. But it gives you freedom. I've been using a lot of native code on my Android phone for last 2 years, including multiple Linux distros (Ubuntu, Debian, Void, ArchLinux) without any loss. My use is compiling programs natively rather than using cross compilers on PC. But it's a choice :)

True symlink can make things weird. Is this the symlink you mentioned: ln -sf "${TOOL_PREFIX}/sysroot/usr/include/"{linux,sys}"/soundcard.h" or ln -sf $(NDK_SYSROOT)/usr/include/linux/soundcard.h \ if so look at the path variable it includes sysroot. The sysroot is actually a merer copy of the file system of your target platform. Which is a directory which is considered to be the root directory for the purpose of locating headers and libraries. I suppose you can replace the sysroot option with another option. sysroot makes things less compilcated or change the crosscompiler.

@Myersj281 forgot to tag you first comment. Anyway, is it possible? most likely yes but difficult make it work. In my experience crosscompiling can be difficult but its easier than after its compiled figuring out, researching, and fixing thing to get it to work and be usable. It can get very frustratingat least for me. I quickly scanned through source code for sl4a and python3. I did not see any rm (delete) of a linux directory. Could you give a link the source file where the the linux directory is deleted please??

@ Bo Lawson: My bad. That's not a part of my problem here. @irfan latif suggested I try that option and I have done that before on another phone for different purposes and had bricked that phone in the process of removing the Linux directory (chroot container) so I don't like running Linux within Android. though to answer your question anyway I believe the symlinks pointed to files in the /sys and /dev directories (in Android) but I could be wrong. As for the sysroot idea you had, I think you were refering to the chroot thing but that is a good idea that might work here!

Wow. I've been checking out some files mentioned in https://devguide.python.org/porting/ and I'm realizing there's a lot of work beyond simply editing path variables and that I am definately not skilled enough of a programmer to port something as complex as Python to the version of Linux underlying Android! :(

Nope, I was referring to sysroot. Her is the documentation it is a little bit over halfway down this Controlling the Compilation Driver, gcc tutorial: http://gcc.gnu.org/onlinedocs/gccint/Driver.html#Driver Porting and Crosscompiling stuff is a lot of work. I is interesting and very frustrating. However, you learn a lot through the research involved in trying to make things work. I. Have just ported and cross-compiled a few ROM's to different devicesThis is a simple guide explaining the cross-compiling process: https://forum.xda-developers.com/showthread.php?t=2723240


text:
How to root Exynos S8 SM-G950F?
I have rooted devices before: an A3 2016 and a Note 3 Neo. I don't remember the exact procedure, but it was quite effortless.
Now I have an S8, the SM-G950F variant to be precise, and everyone states different things.
Do I need TWRP recovery that everyone is talking about to root the phone? Can I do it in a more simple way without 80 downloads and 50 programs? Also I'd like to use a rather reliable method to do it because not losing my data would be an added bonus.
I am using Android 8.0 Oreo.

Rooting has become pretty straight forward since Magisk came out. This is one approach to root your device.  All you need is a custom recovery and then just flash the Magisk systemless root .zip.
First step would be installing the custom recovery TWRP.
This device uses dm-verity!
This means that swiping to allow system modifications will prevent you from being able to boot if you are using the stock kernel. In order to bypass dm-verity's boot prevention, you will have to install a kernel that has dm-verity disabled in the fstab.
Odin Install Method (No Root Required):
You will need to download and install Odin on your PC.
Once you have Odin installed, download the proper .tar file for your device from the download link above.
Power off your device. Turn on your device using the proper key combo to get into download mode and attach the device to your computer via a USB cable.
Use the PDA tab or button to browse to and select the tar file that you downloaded and flash the device.

Note many devices will replace your custom recovery automatically during first boot. To prevent this, use Google to find the proper key combo to enter recovery. Once TWRP is booted, TWRP will patch the stock ROM to prevent the stock ROM from replacing TWRP. If you don't follow this step, you will have to repeat the install.

Time to root via custom recovery:
`Download the Magisk zip file.
Reboot to a custom recovery and flash the flashable zip
Reboot and check whether Magisk Manager is installed and the version matches the one in the OP
If for some reason Magisk Manager isn't installed/upgraded automatically, please install/upgrade manually!`


text:
Do I have to reboot between flashing ROM, root and Xposed?
I am going to flash a custom ROM, systemless root (Magisk) and Xposed Framwork through TWRP.
Can I flash them all sequentially without rebooting, or do I have to reboot the phone between each installation?
My device is the Moto Z2 Play and my ROM is the Pixel Experience 8.1.

You can flash the custom Rom and Magisk without rebooting. However, I would reboot after flashing the custom Rom and Magisk. That way you can ensure your system and root are setup. Xposed is a bit hacking and it is best to flash on its own.
As far as Xposed you very important to reboot after flashing xposed. Also depending on Rom size it could take around 10 minutes to boot while Xposed does its thing.

I'd just like to add that it's recommended to da a reboot after every flash. regardless of the modifications it makes to your device. Also Xposed isn't that much hacking, it just replaces two or three files on your system with vulnerable ones and then exploits that vulnerability. It's annoying to remove completely because most people dont know what it's done.... /system/bin/app_process is the file that sticks around after removing...  it makes your device vulnerable and should be replaced with the .bakup file that xposed made... New Super User programs do the same.

+1.Fully agree about reboot after flashing Xposed. IMO, it is better to reboot if you are doing any changes ; makes it easier to debug problems

Interesting, I guess it depends on the situation. Like sure after a freshly compiled ROM I reboot after every flash for debugging purposes to see what broke and needed to be fixed. As just a user I was taught you flash rom and gaps reboot recovery kernel, root, and whatever binaries mods reboot system set up OS and move files if needed reboot recovery then rm -rf /data/dalvik-cache. I have to disagree with rebooting after every single .extension is flashed for the average user but it okay. Everybody got their procedure 0_o @beeshyams♦ @Zillinium