text:
Update mksh to latest version
Android ships with mksh as shell, how can I upgrade to latest version (now R57, mine still on R43)?
Official site https://www.mirbsd.org/mksh.htm offers to compile from source, anyone building ready to run binaries?

mksh developer here ☺
The problem with distributing binaries is that the binaries need to be built against the exact same bionic libc as your phone provides, which needs both the libc binaries (as shipped on your phone) and the development headers (only present in the AOSP source tree of the person who built your image).
If you wish to use a generic ARM mksh binary instead, you can use one statically compiled against another libc (such as musl (recommended), dietlibc or klibc). However, these will differ in behaviour from the one shipped by Android:

Android has a different default PATH, using something like /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin instead of /usr/bin:/bin
Android has different directories for /etc (/system/etc), /tmp (/data/local), and the locations of ~/.mkshrc and default EXECSHELL differ

For these reasons I’d recommend to keep your /system/bin/sh as is and only add a /system/bin/mksh or even /vendor/bin/mksh executable with a newer version if you really need it and use that explicitly in scripts and/or interactively.
If you go to the Debian mksh package page you can download the Debian package for your architecture (arm64 for 64-bit ARM systems, armhf for 32-bit ARMv7 or newer; it’s unlikely you’ll need older ones; 32-bit might work on 64-bit systems but not the other way round), then once downloaded to your local computer, you can extract the package as follows (I’ll use the 32-bit version for this example):
ar x mksh_57-2_armhf.deb
tar xaf data.tar.*
find usr/lib/ -name \*ksh -ls

The last command will list all possible statically-linked-against-not-GNU-libc binaries; for the version 57-2, the output is:
  2633594    184 -rwxr-xr-x   1 user   user     185584 Sep 26 00:52 usr/lib/arm-linux-musleabihf/bin/mksh
  2633596    124 -rwxr-xr-x   1 user   user     126816 Sep 26 00:52 usr/lib/klibc/bin/mksh
  2633595    152 -rwxr-xr-x   1 user   user     152716 Sep 26 00:52 usr/lib/diet/bin/mksh

So, you can choose any of these three binaries; I really recommend using the musl-compiled one (that is usr/lib/arm-linux-musleabihf/bin/mksh, the path differs for arm64) as it’s the most correct and complete C library.
adb push usr/lib/arm-linux-musleabihf/bin/mksh /sdcard/mksh-new
adb shell
su
mv /sdcard/mksh-new /vendor/bin/mksh
chown 0:0 /vendor/bin/mksh
chmod 555 /vendor/bin/mksh

Now, unless another mksh executable is in the PATH before /vendor/bin/, running mksh script.sh or just mksh (or mksh -l for a login shell) will start the newer binary (but not read /system/etc/mkshrc unless you start it as env ENV=/system/etc/mkshrc mksh), but the system boot process will keep using the version it was designed for and tested with. (Newer mksh versions may contain bugfixes that cause scripts relying on those bugs or older interpretations of the POSIX sh standard to fail.)
As I am also the Debian Developer maintaining the mksh package there, you can consider those packages as official Linux/ARM builds of newer mksh versions (although lacking the Android specifics).
If you really need a binary with the Android specifics, I can access a Debian/ARM porterbox and compile mksh from source, with the different definitions (as listed above), manually and provide it for downloading; contact me (by eMail or IRC) if you need that, as it’s manual effort and costs me extra time.

Better support in IRC or per mail ;) I’ll delete the comments here to not be chatty.


text:
How to transfer my photos from my Android to my MacBook Pro?
Where to find the MTP mode in my Galaxy 5 phone and then how to transfer my photos from my phone to my MacBook Pro? Or at least have them automatically transfer from my phone to my drive in Google.

macOS by default does not support the MTP protocol. You'll need to download a utility provided by Google called Android File Transfer on your MacBook to transfer files from your phone to your laptop.
As for the second part, you can set up your photos to automatically be backed up to your Google Drive by going to Google Photos and selecting all the folders which you'd like to be backed up.

source: Stack Exchange

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

sort: votes


text:
How to prevent navigation bar from being hidden, globally?
I know I can set some apps to not hide the navigation bar. But I would like to globally set that it should be shown by default. My Android is not rooted.
Basically I want the old behaviour back in Android 4.0 (Ice Cream Sandwich) where it was not removable unless you root the device.  However, I don't mind being able to allow it to hide the navigation bar on a per application basis.

Normally phone have navigation icons or bar so to hide you can have full screen mode/(depends upon brand its  name changes) under it their will be settings to turn on full screen mode to all apps individually.so u enable(no navigations)/disable(with navigation) them.On turing on full screen mode no navigations will be there.you may have gesture navigation or swipe to show again the nav bar.in samsung devices there is an advanced option in navigation bar settings to show or hide bar

Can you mention at least one device and with which Android version first half of this answer is valid?

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


text:
External keyboard and ESC key on Android
https://www.logitech.com/en-hk/product/k580-multi-device-wireless-keyboard
This bluetooth keyboard (probably many others) has the back tick ` and Esc keys on it. Will these ` and Esc work on Android Apps such as Termux with Vim? Linux on Dex?
I think External Keyboard Helper Pro is an app that can help with this as well browsing the Play Store.

Yes it will work.if virtual keyboard with /`` and esc` worked then why not hardware keyboard worked it will work.


text:
Bypassing FRP on SM-T567v Samsung Tab E Questions
My company currently has 70 Samsung Tab E's (model # SM-T567v) that are FRP locked that we are trying to repurpose but are currently not able to. I have 1 tab e that is currently unlocked.
I have watched and tried every youtube "solution" to bypassing the FRP I could find. None of them work. I and I cannot find the firmware version T567VVRU1CQHD to download and reflash with odin. I have tried a couple of software solutions like imyfone lockwiper but even that comes back saying cannot find country and firmware version.
Is there anyway I can essentially make an image of the one working tablet, put it on a micro sd card and then essentially reimage all of the other tablets? Would I have to root the devices? Can I even root the devices if FRP locked out?

Welcome to Android Enthusiasts! Have you already consulted our frp tag wiki? (Most of our tags have such wiki pages, where we collected the "core data" from related questions; always worth checking ;)

Ive looked in there but it seems like from what im gathering else where is that this specific model to due being verizon 4g lte cant be rooted and cant be re-flashed without bricking it and losing the cell data capabilities. I cant find anything to confirm or deny this. But I cant attempt this process and waste the tablet in the process. Seeking any help I can get here.


text:
Android 9 on Sony Xperia XA2 not accepting any incoming connections on WiFi
I got an XA2 and did all the updates, which gave me Android 9. I have a few other Android devices but all on versions 6 to 8.
I routinely use FTP servers on Android devices to get files onto them. And it always worked - but on this one, does not work. I start WiFi FTP and it says it has started but the PC can't connect to it.
Upon some forum advice, to see if the issue is with the FTP protocol, I installed Asus File Manager, which accepts HTTP connections for remote file transfer. Still no connection.
Moreover even a ping does not get through!
However, the phone successfully uses the Internet over the WiFi connection. It is also listed in the router's list of connected devices, though it is shown as having no host name, while other Android devices have host names.
So how can I get Android 9 (on Sony Xperia XA2) to accept incoming connections on WiFi/make FTP servers work? Or is this just perma-disabled in Android 9 and/or in Sony's mod?

I'm using SSH + FTP server on Pie for more than a year I think, even accessible on internet. Did you try connecting over hotspot? Android doesn't show hostname, that's expected: https://android.stackexchange.com/a/217171/218526

Hotspot connection worked! WiFi FTP Server sees no files for whatever reason, but ASUS File Manager works. It gives the wrong address in the UI but when I get the right address from WiFi FTP UI, I can use ASUS File manager. I can find an FTP server that will work now, probably. But I do wonder what is happening about a regular Wi-Fi connection.


text:
Is there a way to block incoming calls from specific phone numbers?
I want to block a number from calling me. I don't even want to know if the person even tried to call me. Don't want any notifications.
The person on the other end should not get a ringing sound when he tries to call me. He shouldn't even know that I've blocked him.
If possible, I would like to block text messages from that number as well.
The specifications of my device can be seen in the attached image: Redmi Note 5, Android 8.1.0, MIUI Global 10.2.3.
Is there a way to do it?

You can access Xiaomi call blocker that way:

Go to Settings > System Apps > Call Settings > Blocklist.
Enable Blocklist by sliding the toggle
To block any number you want, Click on the Blocked numbers > Click on Add & choose from the contacts or enter the contact you wanted to block manually.

(source: xiaomigeek.com)

You can easily use Truecaller to block unnecessary calls.
Otherwise, you can use call barring or call blocking in your default phone dialer settings itself.

But call barring won't block specific calls it will block all the incoming voice calls and if I block using Truecaller then it shows notifications and the person dialing my number will hear it ringing which I want to avoid.

In the settings of the Phone app, usually there are options to block calls and messages from specific numbers.
The call will be automatically blocked and the caller will think that you have hung up the call, but the call does not sound to you, it only appears in the logs.

Almost all the newer Android phones have native dialler apps that support call blocking. Your phone supports that too - a simple Google search shows so. Refer to this site:
https://www.hardreset.info/devices/xiaomi/xiaomi-redmi-note-5/block-number/

Choose Call icon from the main screen.
Tap on the right upper corner to select the Settings option.
Scroll the list down, pick the Blocked Numbers
Now, Add a Number to the blacklist.
Finally, the added number is blocked already.

Just a note that looks like this guide is referring to Google's Phone app, which is sometimes used as a built-in Phone app by some manufacturers.

This is possible in the phone dialer settings. In phone dialer settings, enable "Caller ID and spam protection" to ON and then click the "Block numbers" option and choose "Block unknown/private numbers" to ON. There is a problem if you choose "Block unknown/private numbers" to ON because if a new person from a company calls you for a job, you will not get that call. The best option is to add the numbers manually to the blocked list. Even if you block the person, you may see the text messages in the blocked list inside the messages app. You just delete all the messages in a while.

This looks like an instruction for Samsung's Phone app. Just a note since manufacturers can (and do) customize their stock apps, sometimes including the Phone app.


text:
Is there any way to make calls ring/vibrate only for specific contacts?
My friend has an Android phone but she hates actually talking on the phone and hates being distracted by ringing or vibrating. Her mantra is that she'll check it when she checks it. This is quite annoying when I really need to get a hold of her as she often won't notice I was trying to call/text until later. She has the phone set on silent and turned off vibration.
I am wondering if there's any way I can configure it so that either it rings, vibrates, or both -- but only if it's me calling? In other words, I'm asking if it's possible for only specific contacts to trigger a ring and/or vibration, while otherwise being silenced? I'm not sure if this is something that can be configured out-of-the-box as I have an iPhone and am unfamiliar with Android. But even if it involves installing a third-party app, that would be fine as long as it can achieve the same result. Is this possible on Android?

I don't know any direct method, but we can apply some tricks to it.
(I am assuming that we want to make all other calls silenced and only your call can ring or better we can say make a sound.)

Open a voice recorder and record silence. Name that recording at your convenience.
Now go to the settings and change the call ringtone to the one you just now recorded and save the change's made.
Now go to the dialer and select your contact and now edit your contact info.
(at this you need to be careful as every Android device has this feature in different ways). From there in the settings, select a special ringtone for your contact

Thus when others call, it will sound silenced, and when you actually call, then it will ring the tone you specifically selected for you.


text:
Mystery status bar icon (handset plus wifi signal indicator)
As the title says, does anyone know what this icon means? Just upgraded to a Samsung galaxy s10, but it's not an icon I've seen before. It sits between the wifi and cell signal strength icons.
Edit/Answer: To summarise the answer found in the above link, this icon indicates that "wifi calling" is enabled. I've noticed that the icon will appear and disappear depending on how close you are to your router, presumably because the wifi calling feature requires a good signal.


text:
How do I turn off suggestions to uninstall unused apps?
Google Play Store prompts me on a regular basis to uninstall unused apps. This prompt is a little bit dangerous because without much thinking, I could tap the confirmation dialogue and uninstall apps which I am using rarely, but do need. How do I turn off these suggestions?

Are you sure the dialog is created by Google PlayStore? I only know such dialogs by pre-installed system-cleaner apps e.g. on LG or Sony devices.

This article says it's Google Play Store: https://www.digitaltrends.com/mobile/google-play-store-uninstall-unused-android-apps/

I've been looking for that one too and did not find a way to turn that notification off. At least, not yet. I'm on Android 12 and they tell me like once a week which is an incredible waste of my time.


text:
"call_state_offhook list.size()==0 number is null" when I call someone with my Samsung Galaxy S9
I see a warning:

"call_state_offhook list.size()==0 number is null"

whenever I call someone with my Samsung Galaxy S9. What is the issue and how can I stop seeing this warning?

after installing a call recorder, have same message

Thanks,. I guess it's the call recorder that causes the message

I found it was due to my call recorder app, uninstalling and reinstalling made no difference. I had to go into settings, then apps, click on the app and storage, followed by clear data. This resolved the issue.


text:
Are these two different phones listed in Google Drive's Backups?
The following screenshot is from Google Drive's Backups.

SAMSUNG-SM-J327A backup

Apps: 30 apps
Call history: 94 KB - Last backup: Oct 13, 2019
Device settings: 4 KB - Last backup: Oct 14, 2019

Samsung SAMSUNG-SM-J327A backup

Apps: 32 apps
Call history: 101 KB - Last backup: Oct 13, 2019
Device settings: 4 KB - Last backup: Oct 13, 2019

They are listed as the same phone but one seems different with the number of apps.
How can I tell if these are two different phones?

You need to check whether there is another phone (in this case with the same model) that used the same account by going to Google Dashboard. From there select Android. The number of devices using the account will be shown and listed.
If there are 2 Samsung SM-J327A models, to differentiate between them, you can go here to use Find my device and compare the IMEIs of both devices by clicking on the info button.


text:
Error 64 when flashing OpenGapps
One Gapps (pico and nano) errors with 64 when I try to install using twrp-3.3.1.4. I know I'm using the right version. I'm on a brand new One Plus 7 Pro.
##############################
  _____   _____   ___   ____
 /  _  \ |  __ \ / _ \ |  _ \
|  / \  || |__) | |_| || | \ \
| |   | ||  ___/|  __/ | | | |
|  \ /  || |    \ |__  | | | |
 \_/ \_/ |_|     \___| |_| |_|
       ___   _   ___ ___  ___
      / __| /_\ | _ \ _ \/ __|
     | (_ |/ _ \|  _/  _/\__ \
      \___/_/ \_\_| |_|  |___/
##############################

Open GApps nano 9.0 - 20191017

- Mounting  /vendor

find: /system/system: No such file or directory
ls: /system/system: No such file or directory
- Gathering device & ROM information

***** Incompatible Device Detected *****

This Open GApps package cannot be
installed on this device's architecture.
Please download the correct version for
your device: arm

******* GApps Installation failed *******

- Copying Log to /sdcard

- NO changes were made to your device

Installer will now exit...

Error Code: 64
cp: can't stat '': No such file or directory
ls: /system/system: No such file or directory
cp: can't stat '/system/system/etc/g.prop': No such file or directory
cp: can't stat '/system/system/default.prop': No such file or directory
cp: can't stat '/system/system/build.prop': No such file or directory
cp: can't stat '/vendor/vendor/build.prop': No such file or directory
cp: can't stat '/data/local.prop': No such file or directory
cp: can't stat '/build.prop': No such file or directory
cp: can't stat '/system/system/addon.d/70-gapps.sh': No such file or directory
cp: can't stat '/cache/recovery/log': No such file or directory
__bionic_open_tzdata: couldn't find any tzdata when looking for CST6CDT,M3.2.0,M11.1.0!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
- Unmounting  /vendor

Updater process ended with ERROR: 64
I:Install took 9 second(s).
Error installing zip file '/sdcard/open_gapps-arm64-9.0-nano-20191017.zip'
Updating partition details...
I:Data backup size is 0MB, free: 227550MB.
I:Unable to mount '/usbstorage'
I:Actual block device: '', current file system: 'vfat'
...done
I:Set page: 'flash_done'
I:operation_end - status=1
I:TWFunc::Set_Brightness: Setting brightness control to 5
I:TWFunc::Set_Brightness: Setting brightness control to 0

I found that if upon receiving this error, before booting into LineageOS I can

Boot into the bootloader from TWRP,

Click on Reboot
Click on Bootloader

Boot into a new TWRP from the bootloader

Run twrp boot ./twrp.*.img

I can then install the gapps.

What cause this? Well my theory now is that the instructions on the Lineage OS suggest Wiping the System partition

Now tap Wipe.
Now tap Format Data and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage.
Return to the previous menu and tap Advanced Wipe, then select the System partition and then Swipe to Wipe.

I was doing that and it was working for the purposes of installing LineageOS, but I believe after the Advanced Wipe on the System Partition something wasn't working. It's as if the wipe was complete and LineageOS could be installed, but mounting the partition after the install of LineageOS required rebooting into the recovery again. If you allow LineageOS to boot up before you flash GApps all bets are off. Worse this was the only way for it to work because if I rebooted into the recovery I would get the LineageOS recovery -- LineageOS now replaces TWRP entirely. I may have been able to install GApps from the LineageOS recovery's ADB Sideload option, but  rebooting into TWPR recovery by proxy of the bootloader worked too.

So the main cause was the used TWRP version was too old?

@Robert see the update.

Same issue with my payton handset, rebooting into the bootloader from the initial LineageOS install TWRP boot & re-fastboot booting TWRP to (ab)use its ADB sideload work for me!

There are numerous reasons of why this could happen.

Have you mounted /system partition?
Try an older version of TWRP
Try SAR (System-as-root) version of recovery.

I tried mounting it and it was failing to mount, I also couldn't repair the partition in TWRP. I tried older versions of TWRP (from -4 to -1), and I tried newer versions. I also wasn't exactly sure what the SAR version of recovery meant but I seemed to get it working below. Thanks for the suggestions though.

not the TWRP is the problem. I also had to search a long time. Although the processor is arm64 Architecture only the image Lineage OS is based on Android arm. Please try 11 arm Pico7 or Micro on Lineage OS 18.1 ???
or see this???
https://wiki.lineageos.org/gapps
cu SMorphin

https://wiki.lineageos.org/gapps


text:
By what metric does Spotify decide whether a device is a phone or tablet?
Granted, the line between "tablets" and "phones" has been blurred for years, and there is no universally agreed upon distinction.
However, I am curious what metric Spotify uses to decide whether to call a device a phone or a tablet.
Most people would call my OnePlus 7 Pro a "phone", yet Spotify identifies it as a tablet:

What metric is used here? And why?

I don't think that you will get a definitive answer. The common way would be to calculate the screen size using resolution and density. If the screen is larger than a specific value it is most likely a tablet. My personal suggestion for a tablet/smartphone border value would be around 7 inch screen size, but it seems Spotify uses a lower value. The only way to definitely answer your question would be to reverse-engineer the app, however Spotify is AFAIK heavily protected therefore it will be difficult to find the relevant code part.

@Robert Your hypothesis of screen size is interesting, we could test it by creating an array of virtual devices in something like Genymotion. If they all have the same characteristics, and display is the only distinguishing factor, then it would strongly support the hypothesis if at a certain point of display size Spotify starts to call the virtual device a "tablet".

Found this answer in a Spotify Community post:

Free account on a tablet only allowing shuffle play
Solution

Spotify classes a tablet as anything 7 inches or greater. Anything under this will only have shuffle play in a free account.

Spotify needs to identify each tablet using its ID in the build.prop of your tablet. If you are using a lesser known tablet it may be that it has not been matched in the database. Please contact support using the contact form here and let them know your device model, Android version and display size stating that you only have access to shuffle play.

Source: Spotify Community - Spotify doesn't recognize device as tablet


text:
busybox list command show different time format for file last modified time
e.g. android busybox command:
busybox ls -ls foldername/

outputs are:
Jan  1  2015

or
Oct 16 14:18

The first one doesn't show time while second one does not show year.
How to make the output show complete date time e.g.Oct 16 2019 14:18?

You need to add --full-time to the command to view the complete date.
busybox ls -ls --full-time foldername/

As stated on ls command's usage:

--full-time     List full date and time


text:
Is it possible to boot into a different recovery from TWRP?
Normally I boot into TWRP with
fastboot boot twrp.img

Is it possible, after I boot into TWRP with the above command, to boot into a different version of TWRP (from a different image) without booting into a rom, enabling ADB debugging, booting into the bootloader, and then running the command above?

You can reboot to Bootloader from TWRP.

Using either the Reboot menu and clicking on Bootloader
Or from adb shell when TWRP is running using twrp reboot bootloader

From the bootloader, fastboot will work and you can run
fastboot boot twrp.img


text:
Can a virus/spyware install itself on a system partition remotely?
If I install malicious app accidentally can it copy itself onto the system partition? Or if a hacker gains access to my phone remotely can he install spyware onto the system partition?
I have read that malicious apps installed on system partition cannot be removed by factory reset or wiping the cache and the only way to remove them is by flashing the original firmware. Is this correct?
If possible then how can I prevent an unwanted software installing or being installed permanently?

On newer Android versions at least, chances aren't much. /system is read-only, protected by dm-verity, very strong framework. Apps are strictly sandboxed in DAC and MAC. Though vulnerabilities are never zero, what you suspect doesn't happen very often. Also Android's/Linux's executable code isn't that much open to accept viruses as Windows' is. So malware can't propagate that fast. Another margin is the hardly available administrative/root privileges on *NIX-like OSes.

You say newer versions are better protected. What versions do you mean?

New security mechanisms are added to new versions, bugs are fixed, so every new release is better than previous. Also security updates are released on monthly basis to fix any security vulnerabilities. So the priority should be to keep updated AMAP.

Yes, under certain circumstances it is possible to install software remotely on your system partition. And yes, once a software is installed on the system partition it is immune to a factory reset, as the factory reset never changes the system partition.
However for doing so your device must be vulnerable to an exploit that allows to modify the system partition, as this is normally not possible from within a normal app.
Consider the two scenarios which are common ways to infect your device:

You install an app that contains malicious code that uses an exploit to temporary root your device and then installs itself onto the system partition.
You are surfing the web using a browser that has a vulnerability. You end up on a web site that exploits the vulnerability of your browser to download malicious code into browser. Afterwards the code additionally exploits your system similar to the first infection variant.

If you don't want to be affected by malicious code that installs itself permanently onto your device there are some basic guidelines:

Don't download apps from the internet or other untrusted app stores.
Or even better, don't install apps you don't know.
Always install the updates for your favorite webbrowser app(s).
Use a device that regularity gets security updates from the vendor (the more often the better, for some devices there are security updates monthly). Hopefully this allows you to fix the security problems before an malicious app can use it.
Don't use a device that no longer receives security updates. If your device is no longer supported I would recommend to to root/unlock the device and install a recent version of LineageOS. Of course this usually means that you should consider this when buying a device (possibility of unlocking plus supported by LineageOS).


text:
what is Market, on an Android device?
In looking up an issue I'm having, I came across 2 questions and associated answers that talked about "Market" (for example, Application Always Downloading).
I've never heard of this app, and couldn't find anything on my phone that even resembled it. I also couldn't find it in Google Play or Google's search engine, and couldn't really find anything about it.

Something about how it was talked about on the aforementioned questions/answers made it seem a lot like Google Play. Turns out, it basically is.

Heh...I thought this answer was a bit rude...then I made it O_o Hope this makes someone laugh


text:
Google Camera says "Can't take photo: Not enough storage left on this device."
On a recently flashed LineageOS 16 Device, I'm getting with Google Photo

Can't take photo: Not enough storage left on this device.

The File Browser shows 234 GB Free.

Not sure if I did anything before hand, but force-quitting the application and restarting it made it work.


text:
Why can't I install anything? No error given, just endlessly "tries"
I have been unable to install anything on my Moto E5 Play (Android 8.0). It never gives an error, or any indication that something's wrong, it just eternally spins the loading circle around the app's icon and says "waiting for download." It'll go on for DAYS if I wait that long to press cancel.
I really don't think it's a data usage issue, as it just reset 3 days ago. I also don't think it's a storage issue, as I have 6+ GB free (16 total) and have not been getting any error messages that seem to go along with other questions that end up being storage related.
Things I have tried:
-rebooting (twice)
-installing ~5 other apps, including ones I've never had
-UNinstalling an app, and trying to reinstall it (can't)
-clearing cache for Google Play and Google Play Services
-turning data saver on and off again
-turning data saver on and telling it to let Google Play and Google Play Services have unrestricted data access
-killing and restarting Google Play at nearly every step

I'm probably rambling on this last bit, but I also have the tendency to leave out things that end up being important, so...
I have this vague notion that maybe, somehow, it has too many apps trying to install. My old phone broke a few months ago, and when I got this one, I found that any app I could remember having, was already endlessly trying to install. However, then, I could cancel and tell it to install again right away, and it would work.

It's been happening again lately, but 2 or 3 times now it's resolved itself when I cancelled another forever-pending update I never requested. I get the feeling it's like 2 or more updates are stuck in the door, and neither wants to let the other go first.
Whatever's going on, and in lieu of another, better answer, try this - go to Google Play, tap for the menu (the "hamburger" in the search field) and click "My apps & games." X off updates till one starts making some progress.


text:
Suddenly reboot
I am still using an old Moto G (2013)
It works quite well.
But sometimes it starts to behave as if a Power button is pressed - Power button menu appears, and then reboot is started, without any activity of mine)
I supposed, there is something about a mechanics in power button.
But, when I press the  button of charging phone it just splashes showing it is charging without a sign the button is working wrong.
The question :
Is it hardware or software problem?
If software, then could you guide me to file, where i can find log of booting
Thanks a lot!!

Sudden reboots of old devices often indicate a dying battery (voltage goes down for some milliseconds). How often does these reboots occur? Do they still occur if you are connected to a charger?

Robert, thank you for comment. Reboot occurs couple three of four times a day. Each time it is not a single reboot: system starts booting, then it reboots again while there is os logo on screen. And there can be couple reboots more until home screen appears. Reboot can occur even if device is connected to charger.


text:
Why is Magisk failing ctsProfile?
Under "SafetyNet Check Success", my Magisk shows ctsProfile is not passing? Is there anyway to check on this and figure out why?

https://topjohnwu.github.io/Magisk/tutorials.html#best-practices-for-magiskhide

Try using the MagiskHide Props Config. Install the module from the downloads section in magisk manager. The details can be found here:
https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228


text:
How can we remove the Work tab from the Samsung all-apps screen after the Profile is removed?
I have a Samsung SN9600 (international Note 10).
I recently left a job that pushed a Work Profile to the phone.
The Work Profile was locked by the employer, as it should be.  I found the settings to Delete the Profile, and also did my best to Delete or Disable any Work Profile apps.

Now I want to remove the Work tab in the screen of all apps.
.
.
.

.
.
.
 - Any ideas about how to remove this Work tab?

hah!  I've stumped you ;-p

Did you ever figure out the answer to this? I am in the same boat now.

no, not at all, unfortunately.  It doesn't seem to be a hot topic

@KarminWehr -- it looks like it can uninstall properly now.   I can't recall the screens from a year ago to say if they changed, but the answer added worked for me now

Turn on the Work Profile.
Next select Accounts and remove your old work account. (May not be needed)
Next select Uninstall Work Profile.
I did it so fast but I believe that was all the steps I took.

nice :)  If I had that option a year ago, it didn't remove the panel, and for sure noone online talked about it.  Right now I'm Android 10 and Samsung OneUI 2.1 and this worked.   After turning back on Work Profile, now there was an Uninstall option at the bottom and it does seem to have removed the panel.


text:
Is there a way to find the IMEI on a Pixel with a completely damaged screen?
A couple weeks ago my Pixel XL 2 (or Pixel XL, not sure) started to have black blotches all over the screen. They grow, enlarge and eventually engulf the entire screen. Now except for a sliver on the upper right corner, the screen is pitch black regardless if it is on or off. What kind of damage is this? There had been no physical damage to the phone. As far as I can remember, the phone has never been dropped or otherwise subjected to excessive physical forces.
I am trying to find the phone's IMEI, but I am not sure how to go about doing it without being able to see anything on the screen.
Also when it is plugged in to my laptop via a USB-C cord, my Windows 10 recognizes the phone, but I don't see an additional drive. How should I access the files on there? Is there a way to reset the phone and clear the data?

See my answer here to retrieve the IMEI using Find my device, Open the link on your PC.

Yes you can find IMEI of your damaged Pixel Device or any Android device if you have or had your google account logged in .
Check Google My Devices
or alternatively logon to Google Find my devices @ https://www.google.com/android/find
on your device list click the ( i ) information icon, you can see your device IMEI.
Hope this helps.

Another source of a phone IMEI and serial number is the package box the phone was bought in.
On the outside of the box there are usually the device serial number and IMEI printed as text and small 2D barcode.


text:
How to get rid of grey error/alert message popup (toast)
I keep getting grey pop-up error messages from an essential app I don't want to uninstall ("xDrip+: No sensor found"). The messages keep displaying outside of the app which is annoying. Is there a way to disable those messages?
I tried finding that out myself but I couldn't even find what this element is called. Any help, even just saying what this message type is called by Android would be a step forward.
I'm quite surprised that apps are allowed to display those intrusive messages whenever they want.
edit: The alert is called a toast.

xDrip+ is an app, most likely you have it installed: https://github.com/NightscoutFoundation/xDrip

Hi Robert, I stated I don't want to uninstall the app. I'm looking for a way to disable its toasts (at least outside the app itself) without having to uninstall it. The toasts feel very crude and more like last century UI to me - so I'm surprised they are actually part of Android.

Setup [tag:adb] in your PC, and issue this command: adb shell appops set PKG_NAME TOAST_WINDOW deny to prevent toasts from reappearing. Replace PKG_NAME with the package name of the xdrip+ app. To find it, follow my answer here.

@Cornelius It is an open source project. You can simply create an issue here and describe the problem you have and how annoying this toast is.

@Firelord: This sounds great, I'll have a try!
Robert: Good point, I will do that, too. Maybe they can simply add an option to disable the toasts from within the app to the notifications menu. Bit of an XY-problem ;)

@Firelord Where did you find this command? Is there also a command to check the current status of the app (of this configuration), too?

@androiddeveloper through curiosity. A new Android was released. Decided to dig into system binaries and got my hands on it. XDA might have been another source. Don't remember for sure. As for appops configuration of a  package, the command appops takes other arguments too. Just type 'adb shell appops' to see them. To see appops config of a package, type 'adb shell appops get PKG_NAME'

@Firelord Thank you. It's not documented anywhere? From which version of Android is it available?

@androiddeveloper the executable and the underlying functionality of permissions was introduced in Android 5. But it had issues in working. Since Android 5.1 it seems to be working fine. Over the years it has improved with more arguments available. No, there is no documentation available. Searching adb shell appops actually leads to its source code! As for which ops can be changed, I also had to search that in another source code once!

@androiddeveloper  The backend AppopsManager documentation is here though. https://developer.android.com/reference/android/app/AppOpsManager The oldest api support seems to be from Android 4.4. I don't know much though so that's all I can help. :)

@Firelord Interesting. Do you think it can grant/deny special permissions, such as accessibility, admin, ... Maybe also setting as default app of something? BTW the link is dead.

@androiddeveloper I have fixed that link. Try that again. Special permissions, I don't know about. The source of AppOpsManager.java (android 11) does mention certain capabilities related to Accessibility. You can see for yourself if it does have support or not. As for admin, no. It is manipulated through dpm binary when using adb. http://adbcommand.com/adbshell/dpm

@Firelord Wait you know how to grant/deny both?

Let us continue this discussion in chat.


text:
Disable "DeX on PC" notification each time S10 connected to PC
Since a recent update (I can't say exactly which or when) each time I connect my Samsung S10 to my PC, I get a Samsung DeX notification...

I don't want DeX, but I do want to get rid of the notification every time I connect my phone.
Is it possible disable/remove the notification?  The app notifications is not giving me the slide-switch option to disable it...

See if my answer helps. https://android.stackexchange.com/q/163338/96277

Thanks @Firelord - I was hoping there might be a quick and easy solution, but I'll have a look at MacroDroid over the weekend when I have a bit of time

If you would rather remove Dex from your phone instead of disabling it, and you have ADB and USB debugging setup, you can remove it with this command:
adb shell "pm uninstall -k --user 0 com.sec.android.app.dexonpc"

Open Settings, go to Apps. Press the three dot symbol, and tap "show system apps". Then go to Dex for PC, tap storage, clear cache. Go back one screen, tap Force stop and Disable. You might have to repeat this after reboot or software upgrade, haven't tested that.


text:
How to bind mount a folder inside /sdcard with correct permissions?
I am using a Sony Xperia M4 Aqua. As is well known, the internal memory is rather small. Especially the Media directory of WhatsApp uses a lot of precious space, therefore I am trying to move it to the SD card.
I am using Android 6 and I have formatted the SD card to have an adopted storage partition.
Adopted storage would be normally used to migrate all /data to it, as discussed here.
I am however interested in moving just the single directory WhatsApp/Media somewhere else (possibly in the adopted storage partition), and then bind-mount it to its original location.
For this purpose, I moved the WhatsApp/Media directory to the adopted storage. Then, following this discussion, I have modified the script /system/etc/init.qcom.post_boot.sh adding the following mountcommands (the phone has no support for init.d scripts)
mount -o bind /mnt/expand/4fdb2500-9aa7-44bc-a2c4-80aeae28e764/WhatsAppMedia /storage/emulated/0/WhatsApp/Media
mount -o bind /mnt/expand/4fdb2500-9aa7-44bc-a2c4-80aeae28e764/WhatsAppMedia /mnt/runtime/write/emulated/0/WhatsApp/Media
mount -o bind /mnt/expand/4fdb2500-9aa7-44bc-a2c4-80aeae28e764/WhatsAppMedia /mnt/runtime/read/emulated/0/WhatsApp/Media
mount -o bind /mnt/expand/4fdb2500-9aa7-44bc-a2c4-80aeae28e764/WhatsAppMedia /mnt/runtime/default/emulated/0/WhatsApp/Media
mount -o bind /mnt/expand/4fdb2500-9aa7-44bc-a2c4-80aeae28e764/WhatsAppMedia /data/media/0/WhatsApp/Media

Notice: /mnt/expand/4fdb25.... points to the adopted storage partition.
This only apparently works: if I open a shell with adb I can correctly see that the WhatsApp/Media directory contains the mounted directory. Also, I see no additional views that contains the WhatsApp directory, as can be checked by doing, in an adb shell
find / -type d -name WhatsApp

Nevertheless, WhatsApp is not able to access the Media gallery. For instance, in the chat I just see blurred pictures (like a preview), and clicking on it I do not see the full picture. Moreover, if somebody sends me a picture, all I can see is a blurred preview with the download icon. Clicking on the download icon does not produce anything.
Wrong permissions are presumably the source of problems. For example, some permissions/group ownership appear to be incorrect on some views:
root@E2303:/ # ls -n /storage/emulated/0/WhatsApp
drwxrwx--x 0        1015              2019-09-04 14:37 Backups
drwxrwx--x 0        1015              2019-10-19 02:00 Databases
drwxrwx--x 0        1015              2019-09-04 20:24 Media
root@E2303:/ # ls -n /mnt/runtime/write/emulated/0/WhatsApp
drwxrwx--- 0        9997              2019-09-04 14:37 Backups
drwxrwx--- 0        9997              2019-10-19 02:00 Databases
drwxrwx--x 0        1015              2019-09-04 20:24 Media
root@E2303:/ # ls -n /mnt/runtime/read/emulated/0/WhatsApp
drwxr-x--- 0        9997              2019-09-04 14:37 Backups
drwxr-x--- 0        9997              2019-10-19 02:00 Databases
drwxrwx--x 0        1015              2019-09-04 20:24 Media
root@E2303:/ # ls -n /mnt/runtime/default/emulated/0/WhatsApp
drwxrwx--x 0        1015              2019-09-04 14:37 Backups
drwxrwx--x 0        1015              2019-10-19 02:00 Databases
drwxrwx--x 0        1015              2019-09-04 20:24 Media
root@E2303:/ # ls -n /data/media/0/WhatsApp/
drwxrwxr-x 1023     1023              2019-09-04 14:37 Backups
drwxrwxr-x 1023     1023              2019-10-19 02:00 Databases
drwxrwx--x 0        1015              2019-09-04 20:24 Media

Permissions and group ownership of the Media directory should be the same of the other (non bind-mounted) directories Backups and Databases.
Oddly enough, an attempt to remount the directories with the correct gid
root@E2303:/ # mount -o remount, gid=9997 /mnt/runtime/write/emulated/0/WhatsApp/Media
root@E2303:/ # mount -o remount, gid=9997 /mnt/runtime/read/emulated/0/WhatsApp/Media
root@E2303:/ # mount -o remount, gid=1023 /data/media/0/WhatsApp/Media

does not produce any changes in the group ownership: ls -n as above gives identical results.
Even more strange, but maybe unrelated, omitting the space between remount and gid=... results in
mount: Invalid argument

How to bind mount WhatsApp/Media folder from external SD card with correct permissions?

I have been using two different approaches (in fact many with small differences) on my older Android versions to mount whole /sdcard/WhatsApp directory from external SD card. I have tested, it works on Android 9 too, but the storage things have changed on Android 10.
Before getting into practical details, we need to keep in mind a few points:

/sdcard isn't an actual but emulated filesystem. Android uses sdcardfs (or FUSE) to emulate actual storage on /sdcard. See What is /storage/emulated/0/?
Both of the above filesystems have a fixed SELinux context: u:object_r:sdcardfs:s0 (or u:object_r:fuse:s0).
Normally /data/media is emulated over /sdcard, but in case of Adoptable Storage when data is migrated, /mnt/expand/[UUID]/media is emulated. See How to free Internal Storage by moving data or using symlink / bind-mount with Adoptable Storage?
Files and directories on /sdcard have fixed ownership and permissions which depend on if the app has android.permission.[READ|WRITE]_EXTERNAL_STORAGE permission granted or not. Files have never executable permission. Apps' data directories in /sdcard/Android/data/ have ownership set to respective app's UID. For details see What is the “u#_everybody” UID?
We assume here that every app is allowed to write to /sdcard by setting ownership 0/9997 (user/group) and permissions 0771/0660 (directories/files).
To achieve above said behavior, since Android 6 every app is run in an isolated mount namespace and /storage/emulated is bind mounted to a different VIEW: /mnt/runtime/[default|read|write]/emulated with private/slave mount propagation. So mounting directly to /storage/emulated won't appear in apps' mount namespaces unless you enter every app's mount namespace explicitly. The same is true if you mount from some app's isolated mount namespace. See Partition gets unmounted automatically in Android Oreo.
We are going to mount from root mount namespace to /mnt/runtime/write/emulated which is propagated to all apps' mount namespaces.
read and default views have different permissions than write (1), but mounting to both is usually unnecessary. Permissions READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE belong to same permission group. So granting one to an app through GUI also grants the other, and all apps with Storage permission will only see write view. default is only to let apps (which don't have READ/WRITE Storage permission) traverse /sdcard/Android/data directories. So mounting to default will let such apps just pass through subdirectories on /sdcard/, no files will be visible.
Also at least with sdcardfs emulation, read and write are bind-mounted (2) from default and mounting to one also mounts to other two. So it's not possible to mount all of three with different permissions.
/sdcard does not support Extended Attributes (xattr) and Access Time (atime). Other mount options include nosuid, nodev and noexec. See mount manpage for details.

First of all make sure you are in root mount namespace as explained in the link given above. Or use nsenter to get a root shell in global namespace:
~# [ $(readlink /proc/1/ns/mnt) = $(readlink /proc/self/ns/mnt) ] || busybox nsenter -t 1 -m /system/bin/sh

1. MOUNT SD CARD MANUALLY:
The straightforward way is to format external SD card as portable storage with exFAT or FAT32. Since these filesystems aren't native to Linux, their in-kernel driver implementations support uid, gid, fmask and dmask mount options. You can use exfat or sdfat drivers with exFAT and vfat with FAT32. Former has also a userspace implementation mount.exfat-fuse which requires only FUSE support from kernel. Check with grep fuse /proc/filesystems.
Let's say /dev/block/sda1 is your exFAT partition:
~# mount -t exfat -o nosuid,nodev,noexec,noatime,context=u:object_r:sdcardfs:s0,uid=0,gid=9997,fmask=0117,dmask=0006 /dev/block/sda1 /mnt/runtime/write/emulated/0/WhatsApp
~# mv /data/media/0/WhatsApp/* /sdcard/WhatsApp/

* Replace u:object_r:sdcardfs:s0 with u:object_r:fuse:s0 or whatever label your /sdcard has.
You can also create multiple partitions on SD card. Or after mounting with required mount options you may also bind mount a directory instead of whole partition. Let's say you first mount SD card to /mnt/my_sdcard, then bind mount WhatsApp directory:
~# mount -o bind /mnt/my_sdcard/WhatsApp /mnt/runtime/write/emulated/0/WhatsApp

Downside with this approach is that vold mounts external SD card on boot, so you need to un-mount first.
Secondly the data on SD card isn't encrypted, though there are multiple ways to encrypt manually. See Decrypting microSD card on another Android device or desktop computer.
2. ADOPTABLE STORAGE:
An easy way to counter the above said downsides is to make use of kernel's built-in FDE by formatting the SD card as Adoptable Storage, but only if you don't want to migrate all /data/media/ to external SD card. Once formatted, external SD card will be mounted at /mnt/expand/[UUID] (filesystem UUID is a 16 bytes number). But we can't simply bind mount a directory from there to /sdcard because the filesystem on Adoptable Storage is ext4, which follows UNIX permissions model but the apps can't handle those as explained above. Even if you make it work somehow (using chown, chmod etc.), every app will create files with its own UID which won't be accessible to other apps e.g. Gallery may not be able see pictures downloaded by WhatsApp.
For this method to work your kernel must support sdcardfs (check with grep sdcardfs /proc/filesystems). Create a directory on Adopted SD card and emulate it to /sdcard/WhatsApp:
~# mkdir /mnt/expand/[UUID]/media/0/WhatsApp
~# mv /sdcard/WhatsApp/* /mnt/expand/[UUID]/media/0/WhatsApp/
~# restorecon -rv /mnt/expand/[UUID]/media/
~# mount -t sdcardfs -o nosuid,nodev,noexec,noatime,mask=7,gid=9997 /mnt/expand/[UUID]/media/0/WhatsApp /mnt/runtime/write/emulated/0/Whatsapp

Please note that we necessarily need to use path /mnt/expand/[UUID]/media/ because it's labeled as media_rw_data_file (3) (like /data/media (4)) which is allowed by SELinux policy to be accessed by apps (5). If you use a different path, you need to modify SELinux policy. Unlike other filesystems sdcardfs itself doesn't change SELinux context when accessing underlying filesystem.
3. PORTABLE / ADOPTABLE STORAGE:
This method is the most flexible, it works if you want to use:

Portable storage but don't want to mount whole partition, instead a directory.
Adoptable storage but your kernel doesn't have sdcardfs support.
Adoptable storage but don't want to use /mnt/expand/[UUID]/media/ path necessarily.

Use a third party tool named bindfs (which uses FUSE) to simulate the behavior of emulated filesystem. Actually Android's built-in tool /system/bin/sdcard does exactly this on pre-sdcardfs releases but it has some fixed paths and other unnecessary things, so its source code needs to be modified to achieve what we want. You can build bindfs yourself or try this this one.
~# DIR=/mnt/media_rw/[UUID]    # for Portable Storage
~# DIR=/mnt/expand/[UUID]      # for Adoptable Storage
~# mkdir $DIR/WhatsApp
~# mv /sdcard/WhatsApp/* $DIR/WhatsApp/
~# bindfs -o nosuid,nodev,noexec,noatime,context=u:object_r:sdcardfs:s0 -u 0 -g 9997 -p a-rwx,ug+rw,ugo+X --create-with-perms=a-rwx,ug+rw,ugo+X --xattr-none --chown-ignore --chgrp-ignore --chmod-ignore $DIR/WhatsApp /mnt/runtime/write/emulated/0/WhatsApp

Side notes:

sdcardfs also works partially with this method except it doesn't support SELinux context= option (so far). So it depends on what is the SELinux label of backing directory on SD card.
Other tools like rclone, encfs, sshfs etc. which make use of FUSE can also be mounted inside /sdcard the same way. Related: How to mount rclone on Android?
-u and -g options require /etc/passwd and /etc/group to exist on bindfs < v1.14.2.

So you may go with whatever method suits you. Usually in-kernel drivers perform better than userspace solutions, and methods native to Linux kernel are more robust and stable. FUSE (over FUSE) may exert performance penalty sometimes e.g. if SD card itself supports high speed data transfers.
You can place the required mount commands in an init.d script or define and init service. See How to run an executable on boot and keep it running?
Note:

Apps which don't scan /sdcard filesystem themselves but rely on Android's MediaProvider for any changes may need a forced media scan for new files on mounted filesystem to appear immediately.
If you use multiple users or profiles, you need to mount new filesystem for every User_ID. For device owner it's 0.

RELATED:

How to bind-mount “data” and “obb” folders from external SD card in “/sdcard/Android”?

Hi Irfan . Going through your meticulous answer... ( and thanks for the same ) ... My situation is a multi partitioned ext4   card where even the main partition is ext4. My ROM is a Stock ROM  that will unlike lineage not support ext4 mount out of box . I can mount my partitions with an approach similar to init.d and they are visible to rooted TC apps but they are not RW. I would like partition wide RW for  certain apps. Not just private dirs. I tried vold-posix it does not like my OS and arch. not executable: 64-bit ELF file I get this error for bindfs. Any other ?

getprop ro.product.cpu.abilist gives  armeabi-v7a,armeabi . Any other approach so I can get a RW partition wide mount for  specific rooted and non rooted apps ( non rooted app is stock ROM's file manager that is invoked by default by all apps to traverse directories ) . As I understand ,Android 'deprecates this but I'd  appreciate it' , if you can throw in your 2 cents !

If this partition wide approach is not feasible then at the time of mounting  want to give specific app IDs RW.  as part of mount. How can I do this ?

@user1874594 we have been through similar discussions on your previous questions and could hardly conclude anything. So I don't think I'd be able to explain anything newer than what I've already done. I don't have a 32-bit ARM bindfs binary, you have to build from source. If you can't, let me know and I'll build one for you when I get time. As far as your other queries are concerned, they cannot be explained (again) in comments. You may ask a precise and unique question with all necessary information and I can try to briefly explain steps specific to your situation.

https://stackoverflow.com/q/60770589/1874594

yes this has been discussed in different context after that I could manage mounting part but making it RW is where I am stuck and I hope I am clear now sorry I do apologize if I wasn't clear enough articulating my situation and objective

https://android.stackexchange.com/questions/222205/making-manually-mounted-partition-folders-write-accessible-to-all-apps                                                                                sorry I moved it to Android Stack from 'regular stack' above is the right link

@IrfanLatif Great answer. It works as expected, but it doesn't seem I'm able to unmount a mount I make this way. The original mount command creates the three mounts in /mnt/runtime along with two duplicate mounts in /storage/emulated/0. umount called on these directories returns no errors, but trying to re-mount to the same directory later doesn't propagate to non-root namespaces. SELinux is set to permissive. Only thing that fixes it is a reboot of the tablet. Using LineageOS 16.0 (Android 9) with Magisk.

This is for an in-car tablet with OTG storage via permanently-mounted USB hub. When powered-off and back on, the OTG storage needs to be unmounted and then remounted, since the device gets re-probed (i.e. /dev/block/sdb1 will disappear on loss of power, and then when power is applied, it will appear again as /dev/block/sdc1).

@IrfanLatif I made a question here... I'd greatly appreciate any input you can provide: https://android.stackexchange.com/questions/230436/how-to-properly-propagate-unmounting-of-usb-otg-storage-to-all-mount-namespaces

@IrfanLatif How do you build the bindfs?

@Jtnqr using GCC.

@IrfanLatif I compiled bindfs   and it does seem to atleast execute with whatever options you have shown. I am on Android 10. Unfortunately after trying each and every option with various user id and group ID's and mounting options..... I am still not able to get right access to the target folder which is actually the WhatsApp folder. in light of this can you please modify your  answer for Android 10 or else maybe del it ✌

@IrfanLatif :  just to update. With  bindfs  I can  as much as re-name with non root  privs. But creating  folders is a NO.  Any combination  .Here is my context for the target u:object_r:media_rw_data_file:s0  so why is that no Folders cant be created .  I see something like an untrusted process app is accessing media_rw . But that 's happening with your bindfs e.g.  as well. Any ts-shooting help wd be appreciated ✌


text:
Can a lost rooted/unlocked phone be decrypted by a thief?
Someone stole my One plus 7 Pro.
It was rooted and had TWRP and Magisk 19.x ( latest subversion before 20.x dropped). I had a passcode and fingerprint set up on my phone. It was stolen at a technical convention for students. Assuming the thief has knowledge about Android can my phone's encryption be broken to give access to my files?
TWRP requires the passcode to be able to decrypt the storage, so does the phone on boot.
Any input is appreciated.
TLDR;

Phone got stolen at a technical convention
  Thief might have knowledge of Android
  Running Stable Android 9 latest firmware before Stable 10.0.1
  Running Magisk 19.x (Latest before 20.x dropped)
  Running TWRP 3.3.1.x
  TWRP requires the pin to decrypt

My concern, Can it be hacked/cracked to give access to the storage inside?
Thanks in advance
EDIT: My passcode was 5 digits long.

How many digits does your passcode?

The passcode is 5 digits long

In that case, there are only 90,000 passcodes (combination of digits) to try. Seems doable with any machine. TWRP provides the adb shell access through which "adb shell twrp decrypt xxxxx" can be run multiple times. The tricky thing is to get a success response back which seems doable. In other words, your data is in danger.

If your phone is encrypted, then it cannot be decrypted without having access to the decrypt option in Settings. And since you have a fingerprint lock set up, as far as my knowledge goes, you are safe - no one will be able to access your data, even if you are rooted. Decrypting the phone externally should require extensive hacking algorithms and knowledge about the phone architecture, and I doubt anyone will spend that much time.
If, however, the thief wipes your phone (factory resets it) from TWRP, then all the data will be lost, which again means that your data will not be available to the thief, and you are still safe.


text:
Decrypting an SD Card after the phone is wiped?
I have a Samsung Galaxy with an encrypted SD card, but the phone got factory reset.
Is there a way to decrypt it?

Have you tried decrypting it using the same password that you used to encrypt? Please provide us with what you have tried.

The purpose of an encryption is to make it impossible to get access to the data without the correct key.
The encryption key of the SD-card is stored on the device and was deleted by the factory reset.
Therefore the chance to decrypt the sd-card is nearly equal to 0.


text:
Boot loop recovery with access to Download / Recovery modes, OEM / FRP lock enabled
Context:
I have a Samsung Galaxy Tab S3.  Which, seemingly sudden, entered a boot loop - The Device name and Samsung logo screens will cycle indefinitely until There is no power left or I interrupt by using key combos to boot in to Download or Recovery Modes.
I do not have any experience with Android Development or android devices. I am very comfortable with linux terminal environments.
As of now I have tried flashing new Stock firmware using Odin. The feed back from the Odin software indicates the flash was successful yet the bootloop persists. I am guessing that the OEM and or the FRP lock could be why.
I have read it is possible to disable these locks using adb,and I believe fastboot may be of some use as well. But since I can not access my phones settings to enable USB debugging I can not find a way to connect to adb.
To be more specific about my question: Is there a way to connect to adb and fastboot and trouble shoot / repair a boot loop with only access to recovery and download modes?
Picture of recovery screen:

Have you tried Factory resetting the device from the recovery menu??? About how long did you wait for it to boot after flashing through Odin. Lastly, if the kernel gets up and running during your boot loop then you can pull some logs to see what's going on. Open a command prompt and throw the command adb logcat -v long < ~/Desktop/logcat.txt

I have tried the factory reset and wiping the cache and it seems to have no effect. I posted a picture of the recovery screen if that helps. I have tried the command you suggested but I only get a waiting for device message. adb devices shows an empty list, which leads me back to the original question - How can I communicate with adb without being able to enable usb debugging.

What firmware did you try to flash and where did you try to get it?  Do you try to root or add some custom binaries? Sounds like Dm-verity was trip and not allowing your device to boot. Of that's the case it can be solved through a patch and custom recovery or possibly just formating the /data partition.

As to your ok original question it can be done through a custom recovery such as TWRP. TWRP has ABD enabled already. https://android.stackexchange.com/questions/126646/enabling-usb-debugging-from-open-file-system-access-using-custom-recovery/126661#126661


text:
Dual phone SIM card - how to disable both SIM's
I've a dual phone SIM card (Pocophone). How can I to disable both SIM's without power down everything?

Airplane mode..

Simply switching on Airplane/Flight mode will do the job.

Usually in dual phones in android settings there is a setting as which sim to use for call,data ,text I had such a setting in my sony xperia.I am not sure about it in other phones because my Mi A3 does not have such a setting. Look in your phone settings sim setting and there should be setting for each sim in tray.
If you have such a setting then only you can disable both sim the way you want to.


text:
How can I know whether my Samsung Galaxy S9 phone got rooted in the past (Android 9, One UI 1.0)?
How can I know whether my Samsung Galaxy S9 phone got rooted in the past (Android 9, One UI 1.0)? (even though it might have been unrooted afterward)

Related https://android.stackexchange.com/questions/19821/is-it-possible-to-determine-whether-the-phone-has-been-rooted-or-not?rq=1

@ReddyLutonadio Thank you, hopefully there is some solution for Android 9.


text:
How can I get edits done in aCalendar to sync?
Any changes I make within aCalendar (e.g. adding an event, changing the calendar for an event, adding or deleting a calendar) aren't reflected within the local Google Calendar app or from the Google Calendar website. The changes may be reflected in other calendar apps on the same device (e.g. Business Calendar). Moreover, opening one of these other calendar apps may cause the changes to propagate to the local Google Calendar app and the Google Calendar website. Within aCalendar's "Manage calendars" screen, the Google Calendar account has "io-error" next to it.
The phone is connected to WiFi and the cell network. Account sync is turned on for the Google account, and synchronization is enabled for Google Calendar. Data saver and battery saver are enabled.
How can I get aCalendar to synchronize its changes?
System info:
LG V20
Android Oreo 8.0.0
Google Calendar 6.0.56
aCalendar 2.2.7

aCalendar's help docs ("General Sync Issues / Sync of two devices" and "Problems with Google Calendar Synchronization") list a number of settings to check, including:

background data
energy/battery/power saver

In particular, if the phone's energy saver mode is turned on, background apps are restricted. aCalendar relies on Google Calendar running in the background for synchronization, so energysaver mode thus interferes with calendar synchronization.
To get calendar sync to work, go into the energy saver settings and exclude/exempt Google Calendar. It should not be necessary to exclude aCalendar or other calendar-related apps (e.g. Calendar Storage).


text:
How to get past stalled initial station search in NextRadio?
I have a phone with an FM chip. To make use of it, I installed NextRadio. During onboarding, NextRadio is supposed to look up local radio stations. However, it hangs on this step, displaying a throbber but going no further and not responding to any input. How can I get past this step so I can use the app?

With data networks (cellular data, Wi-Fi) disabled, NextRadio's station search will fail immediately instead of hanging.
Try enabling airplane mode, then re-opening NextRadio. Instead of stalling and showing the activity indicator, it should give you a message that it couldn't find a station listing. Tap "OK" to proceed.
Now disable airplane mode, as it also disables the radio. Using the basic tuner, you can add stations as favorites to assign a name to them.


text:
How to install EdXposed on Android 10 without triggering safety net
Further to this question What are the alternatives for Xposed framework on Pie? Preferably without triggering Safety Net?
How does one install EdXposed on Android 10?
Notes:

This is a self answered question consolidating information from several threads on XDA / Github and my experience on Oneplus 7 to give a helpful start to that dying breed who like to install xposed-framework modules . Edxposed is still in beta and Android 10 is recently released, so there would be many changes to this answer in future. Since I do not intend to update this answer with developments, others are welcome to add and modify. Moderators are welcome to make this a community wiki if warranted.
Answer is generic in nature and for issues relating to installation / modules you are better off asking in respective device/module threads in XDA.

xposed-framework is de facto dead , the last update being more than two years ago and that too for Oreo and there is no news of further updates.
EdXposed , being open source is a preferred alternative for me and hence this answer. EdXposed officially supports Android 10 (Incidentally,some Xposed modules were working in earlier versions of EdXposed too) .
Pre-requisites (need to be updated from sources or as prompted by EdXPosed manager).

Magisk v20 + , with Magisk Manager from official Magisk thread.

Riru-core latest release from Magisk modules or from GitHub. (See , this answer too. Simply put, latest may not be what you want always)

EdXposed drivers YAHFA/Sandhook from Github

EdXposed manager. Note that EdXposed installer /  original Xposed Installer are  not supported / recommended (respectively).

Installation

Obviously you have a rooted device running Android 10, with Magisk installed.

Install Riru-core module first.

YAHFA or Sandhook drivers. YAHFA is relatively slower but stable by most accounts compared to Sandhook. You would need to check XDA for what works best for your device/Android version. For me, it has been YAHFA on my earlier and current device. These can be installed directly if using Magisk 20.2 plus

Note: Prior to 29 February 20,YAHFA /Sandhook modules available on Magisk repo  required patched drivers / custom Magisk. This was a little tedious and the process is at the end of the answer, retained for history and not applicable anymore (hence strike through text)

Reboot, install EdXPosed manager , add Android 10 ready modules and profit!

Does it pass Safety Net?:  Yes
Edit: Not anymore. Please see Magisk will fail Safety-Net hereafter. Why?
Notes

Xposed module development isn't what it used to be so there are only a few Android 10 ready Xposed modules. The ones I care for and  Android 10 ready are:
* [XPrivacy Lua](https://forum.xda-developers.com/xposed/modules/xprivacylua6-0-android-privacy-manager-t3730663). This works beautifully with the same module that worked on earlier Android versions.

Gravity Box for 10 (beta). With EdXposed Whitelist functionality turned off in EdXposed Manager

3C All in one toolbox.

Xposed Edge Pro.

Ill advised as it may be, one may be tempted to try other modules too. If they work, please update here. But if they don't work and create freezes, reboots , system lags (pretty common symptoms), you need to disable those modules without a nuclear factory-reset. To do that you have two methods available:

Magisk Manager for Recovery Mode (mm). This module can be installed directly from Magisk but it will not work because it hasn't been updated to support Magisk versions beyond 19. You need to boot into TWRP (if TWRP is not permanently installed) and sideload the module. Next,from the recovery terminal run  mm or sh /sdcard/mm and disable all modules or the offending module and reboot.

Grant shell privileges to Magisk (this would have security implications, I guess) . Source

The best way is to grant shell su privileges with magisk in advanced by doing adb shell then su . Magisk will then ask to grant root to shell and you can use it even while bootlooping.
If you were to bootloop you'd then run adb shell then touch /data/adb/modules/riru_edxposed_sandhook/disable (or YAHFA )

There is a tool on XDA that may help (not tried by me).

From Ronan's comments (thanks)

Don't forget that if a module does boot loop you, you can delete the EdXposed module via TWRP. Just go to the file manager and head to data/adb/.magisk/modules

Other tips as mentioned here may be useful.

Happy Xposing !
Screenshots from OnePlus7 running stock Android 10 (Click to enlarge)
[][1]
[][2]
[][3]
[][4]
[1]: https://i.stack.imgur.com/hNmZ4.jpg
[2]: https://i.stack.imgur.com/BOMNC.jpg
[3]: https://i.stack.imgur.com/EUTtM.jpg
[4]: https://i.stack.imgur.com/seTc8.jpg

Text below is redundant but retained for context
Now, comes the tricky part. As you can see in the official support for 10 release, these drivers cannot be directly installed through Magisk (by going to Magisk downloads, pressing + and flashing the zip). These require some sepolicy changes to be done:

Through Magisk once the request (PR) is accepted by Magisk developer , in which case the drivers hosted on Magisk modules should work. This was hoped with the latest release of Magisk today , but it didn't happen. Update 15/12/19 likely to be officially supported soon

or

Custom Magisk build links are hosted here. From Magisk settings , the update channel needs to be changed to "custom" and the link at custom update channel pasted there. This would prompt an update request and once you accept it, you have the custom build installed. I was wary of going this route fearing possible complications and also because PR as mentioned above was not accepted by Magisk developer.

or

Using drivers that have the sepolicy changes incorporated in the drivers themselves , instead of Magisk side. At the moment, you can find  here . This hopefully would be a temporary arrangement and the first option of changes being incorporated in Magisk itself materializes soon (you can add your voice for support in the PR
:)

In case you are wondering, Magisk Manager looks different because I "hid" it to hide root from some apps. As a side note you can even name the manager with emoticons instead of text!

Cat and mouse game continues... If safety net is tripped this fix may help ( worked for me). It's always advisable to keep track of Github issues

As mentioned in the official telegram channel the new safetynet mechanism should (might?) only be enabled on devices with "non-software attestation level". It's not all lost.

@mirh- your source says may, so it's not certain. This was also discussed in the tweets of John Wu but the conclusion was that is a temporary breather. Thanks for drawing attention

It is not certain in the sense that the author could not test this himself imo. But I struggle to see how else the situation could work out if you don't have the required hardware-backed credentials at all. Either they pull the plug on every phone older than ~2017 (stock or not), or these should keep working as they have always done. Then yes, they are indeed still experimenting and support for even all other phones is still "swinging", but that wasn't my point.

@mirh Yes, I agree there's confusion. One cm only hope it works in our favor. Thanks for your interest and look forward to your inputs

what is latest Riru version compatible with EdXposed installer? can I update Riru after EdXposed was installed or will it break?

@alecxs sorry don't know , I am using LSPosed which I mentioned in my similar answer on Android 12 installation// It's far more better IMO// Yes, you can and should update Riru, it won't break

I think I will stay at EdXposed for reason https://forum.xda-developers.com/t/edxposed-vs-lsposed.4297433/post-86057527

@alecxs that is fine if you have incompatible modules //device is smoother with Lsposed, though more efforts are needed.  Ultimately, it's what you are comfortable with //But with Riru officially deprecated... How long can one carry on with Riru?

Magisk is dead anyway as topjohnwu sold his soul to the devil


text:
Can SMS be received by Samsung's smart watch if a third-party SMS app is used?
I own a Samsung S7 and the phone is connected to my Samsung Galaxy Watch Active.
Is it possible to use another SMS app in order to get the SMS on my watch rather than the default Samsung application?

Yes.
I have a Galaxy Note 9 and a Galaxy watch and I use Yaata SMS.
You don't get any extra features that you would get in the 3rd party SMS app but you can still read and reply to text messages the same as you can with the default app.


text:
Why can't I find a CERT.RSA file in my Android APK?
I need to view the certificate of an Android APK, however when I look in the META-INF folder, there is no CERT.RSA file. I know that somehow the APK must be signed, because I was able to put it on an android emulator and run it, and Android won't install any unsigned apps, so it must be signed.
I just really need to actually see the signature but I cannot find it.
I am using Android Studio.
Any help would be greatly appreciated. Thanks!

This seems to be an XY problem: your question isn't where the cert is, but how you can verify the signature, right? The tool for that is apksigner (can be found in Android's build tools), and you run it like apksigner verify --verbose --print-certs *.apk.

Sometimes the "CERT.RSA" file is called something else. No idea why. I have often found the certificate file to be called something".RSA".
For example, when I decompile the "wp.wattpad" APK, it has its certificate saved as "BNDLTOOL.RSA"
My advice to you would be to find the file in the META-INF folder that has the extension ".RSA". It is probably the certificate.

Does every android app has META-INF folder ? I dont find it anywhere

In my case it was saved as KEY0.RSA

check your mini sdk version, if it is >23, the v1 scheme signature will be ignored.
Is it only signed in v2?

Only the v1 scheme signature needs *.RSA files. You can use the apk signature tools which under the android sdk dir to verify the apk is signed.


text:
I don't know how these files got in my photos
I get photos saved in a folder named files, I don't know the people in the pictures . there not photos I took ! How could they have gotten into my phone? and details show /storage/emulated/0/Android/data/com.littleengine.wordpal/files/ .......plz help.

This seems to be the Data asociated to an app called World Wars maybe some other (you can google "com.littleengine.wordpal" to know what aplication is, that is the package name), it's possible those photos are there because are saved data from gameplays or other players avatars, in this case there is not too much to worry about, except for the space of course. If you don't trust the source of the application i recommento to uninstall it, but if you installed it from the Play Store there are almost sure not problem at all.
Anyway, if there is not such application like World Wars or any other, find that folder with the pics and delete it, there'll no be problem, if the folder appears again, consider to install an antivirus or something

Google Play as origin != safe apps.

It's true, Google Play =! safe apps, but if Google finds out that an app contains malware, bye bye, app!

If you take a closer look at the application, you can see that these pictures in the particular folder are profile pictures from the app. So the app uses this so-called folder files as a temp folder. If you are using this game regularly and you are annoyed by these pictures in your gallery app, you should exclude this folder.


text:
Automate WhatsApp backup to Google Drive on demand /schedule
Daily backup offered by app isn't an option since the device needs to be connected to Wifi at night time, which is a waste of battery. I have Titanium Backup schedule running but I would like to automate cloud backup too.
I am sure it can be done but I lack the knowledge to do it.
I am looking for a solution that preferably does not use gesture automation. But if that is the only way, I am fine with it.
Setup

Oneplus-7, rooted with stock Android 10.

EdXposed installed with Xposed EdgePro and Gravitybox.

MacroDroid automation app is the preferred choice.

Note that "launch shortcut" action in MacroDroid requires fingerprint gesture accessibility permission, which is not possible with Oxygen OS. My guess is that one would need to use Xposed Edge Pro to trigger a bunch of actions.

In Macrodroid, are you able to use the "UI Interaction" action?If yes, you can combine many "UI interaction" actions to open the Chat backup setting page of WhatApp, and then click the "Back up" buton.

@ReddyLutonadio: Thanks for the suggestion. It doesn't work. I am a big fan of MacroDroid but it can't really keep up with Android changes plus WhatsApp closed nature. I am looking for a more powerful, root solution that can work reliably. I think xposed edge pro is the right candidate

Just in case it helps, the activity name for this screen is com.whatsapp/.gdrive.SettingsGoogleDrive. However, the "Back Up" button doesn't trigger an external method that can be logged from the logcat, so I'm stuck at this point.

@AndrewT. Thanks for the tip. Let me see if I can exploit it for a solution. Like I said in my previous comment, this activity is not exposed and hence the challenge

shell am start -n com.whatsapp/.gdrive.SettingsGoogleDrive with root permission did open the activity, just now I tried. And then I'm stuck...


text:
ssh to termux server disconnects after X seconds
I upgraded termux recently.
When I do:
ssh phone

it disconnects after 44 seconds. It disconnects even if there is activity in the session (eg. ping google.com).
If I am active in termux using the phone, then ssh does not disconnect. So it seems Android is killing the ssh connection. tcpdump confirms that and shows a reset packet is sent from the phone killing the connection:
13:30:37.093254 IP 192.168.1.122.2222 > 192.168.1.129.41938: Flags [R.], seq 4542, ack 5622, win 396, options [nop,nop,TS val 3374991 ecr 3768615485], length 0

Before upgrading termux this did not happen. So something happened during the upgrade that caused this to happen.
I have tried both to click acquire wakelock and release wakelock. Neither helped.
I have tried both to click allow and don't allow in Battery Optimization for Termux. Neither helped.
As a workaround I can connect USB. Then Android does not disconnect the ssh-connection. This makes me think the disconnection is deliberate and related to power saving.
How can I make Android not kill the ssh connection?

Android isn't killing ssh but Termux app because it doesn't have a background service running. You  need to keep Termux in foreground. Or disable Battery Optimization for Termux and Acquire wakelock. When phone is charging over USB, Battery Optimization isn't in effect.

Thanks to @IrfanLatif I looked at battery options again.
And my phone was in Power Saving mode. When I disabled that, everything worked - whether Termux is running in the foreground or not.
So the problem was not related to the upgrade of Termux.


text:
Getting "ssid bytes size out of range" error on Android 10 if WiFi is enabled
I have OnePlus 7 Pro that got updated to Android 10. Since then, the phone randomly reboots. It seems it's related to WiFi since the random reboots almost never happen when WiFi is turned off (regardless if it's actually connected to a network or not)
Logcat:
Error: AndroidRuntime

*** FATAL EXCEPTION IN SYSTEM PROCESS: ClientModeImpl
java.lang.IllegalArgumentException: ssid bytes size out of range: 64
    at com.android.server.wifi.util.NativeUtil.decodeSsid(NativeUtil.java:278)
    at com.android.server.wifi.WifiScoreCard.computeHashLong(WifiScoreCard.java:588)
    at com.android.server.wifi.WifiScoreCard.access$100(WifiScoreCard.java:63)
    at com.android.server.wifi.WifiScoreCard$PerBssid.<init>(WifiScoreCard.java:380)
    at com.android.server.wifi.WifiScoreCard.lookupBssid(WifiScoreCard.java:530)
    at com.android.server.wifi.WifiCandidates.add(WifiCandidates.java:374)
    at com.android.server.wifi.WifiCandidates.add(WifiCandidates.java:393)
    at com.android.server.wifi.WifiNetworkSelector.lambda$selectNetwork$0$WifiNetworkSelector(WifiNetworkSelector.java:911)
    at com.android.server.wifi.-$$Lambda$WifiNetworkSelector$Z7htivbXF5AzGeTh0ZNbtUXC_0Q.onConnectable(Unknown Source:15)
    at com.android.server.wifi.SavedNetworkEvaluator.evaluateNetworks(SavedNetworkEvaluator.java:279)
    at com.android.server.wifi.WifiNetworkSelector.selectNetwork(WifiNetworkSelector.java:900)
    at com.android.server.wifi.WifiConnectivityManager.handleScanResults(WifiConnectivityManager.java:342)
    at com.android.server.wifi.WifiConnectivityManager.access$900(WifiConnectivityManager.java:73)
    at com.android.server.wifi.WifiConnectivityManager$AllSingleScanListener.onResults(WifiConnectivityManager.java:425)
    at android.net.wifi.WifiScanner$ServiceHandler.handleMessage(WifiScanner.java:1429)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.os.HandlerThread.run(HandlerThread.java:67)

PID: 28683
TID: 28862

The following error message says:

FATAL EXCEPTION: main
Process: com.google.android.gms.persistent, PID: 30417
DeadSystemException: The system died; earlier logs will point to the root cause

This is consistent and the same exact error shows up every time the system crashes/reboots.
Why, and how to fix this issue?

The error message is caused by SSIDs containing more than 32 bytes.
According to the Wikipedia,

Unlike basic service set identifiers, SSIDs are usually customizable. These SSIDs can be zero to 32 octets (32 bytes) long, and are, for convenience, usually in a natural language, such as English. The 802.11 standards prior to the 2012 edition did not define any particular encoding/representation for SSIDs, which were expected to be treated and handled as an arbitrary sequence of 0–32 octets that are not limited to printable characters. The IEEE 802.11-2012 defines a tag that the SSID is UTF-8 encoded and when interpreting could contain any non-ISO basic Latin characters within it. Wireless network stacks must still be prepared to handle arbitrary values in the SSID field.

Note that the limitation is 32 bytes, not 32 characters. While each character in ASCII encoding is 1 byte, characters in UTF-8 encoding can take up to 4 bytes. Example:

Test consisted of 4 characters and 4 bytes.
テスト consisted of 3 characters but 9 bytes.

If the offending SSIDs are in your control, then the simple fix is by reducing their byte size (length).

The check on the Android-side that produces this error message was added on April 2019, which is between Android 9 (August 2018) and Android 10 (September 2019).

NativeUtil: Perform range checks on ssid bytes size
NativeUtil.encodeSsid/decodeSsid should perform range checks because the
  output/input is coming from binder/hwbinder interfaces which assume
  the ssid is not malformed (i.e within spec mandated size range).
Most of the callers of these methods already handle
  IllegalArgumentException (including the hidden network list built in
  WifiCondControl). This should fix the reported issue of a hidden SSID
  added with size > 32 causing crash in wificond.

As stated, the problem might be unavoidable if the SSIDs are out of the reader's control. Alternative solutions/workarounds are worthy of a new answer!


text:
My Android YouTube App won't play certain codecs but plays others just fine
The Android YouTube app on my phone won't play any video with the vp09.00.51.08.01.01.01.01 codec, which seems to be every main stream, popular video.
My Android YouTube app will play videos with avc1.4d401e (134), which tend to be obscure low view videos. The only way I know how to check the codec is to look up the video from a desktop browser, right click the video and click "stats for nerds".
There are no errors shown in the app. The screen simply shows black and the audio plays normal.
YouTube works fine in the phone's browser, but not the app. I've uninstalled, reinstalled, cleared the cache, restarted the phone, and several combinations of all the above and can't get my YouTube app to work right.
Is there a way to update the codecs, or some other insight how to resolve the problem?
Edit:
The phone is a Korean model LG v20 F800L, so what Hax0 says makes perfect sense. I'm testing his answer now.

You did not mention the device you are using. Your device does not seem to have license/support to play the VP9 codec in its HW codecs.

One workaround is to tricking the YouTube app that you are using a different device which has license for VP9 codecs (Most recent devices does). Unfortunately you need to Root your device to achieve this because it required to modify System Build.prop file or use Xposed modules.
Other option is to use third party or modded YouTube apps like Vanced Youtube which has option to Force VP9 codecs. Use google to download this.

I tried installing Vanced Youtube and it still does exactly the same thing. I think the codec is simply missing altogether. Any other suggestion?

Did you enable the "Force VP9 Codec" option from settings?

Delete  the app then Go into settings and allow  unrecognised apps and it should work?


text:
Any way to find the list of webpages I added to homescreen from Chrome Android?
I had to disable Chrome Android on my phone today due to an unrelated software install issue. In the process, all the webpages I had added to my homescreen on my S8 phone from Chrome Android disappeared.
Is there somewhere I can find a history of all the pages I added to my homescreen? There were like 18 pages and I can't remember them.

Unfortunately, the information you are looking for is simply lost. The shortcuts that a user adds to the homescreen are saved inside the default home launcher's data directory. Typically, it is a database (named launcher.db or similar to it), usually within a table often named "favorites".
I checked the relevant database (for Nova Launcher) after adding some Chrome shortcuts to the homescreen, and then disabled Chrome, and then checked again. The relevant entries were no longer there, and they were also not restored when I enabled the app again.
Unless your default launcher was provisioned to be backed up by Google and was indeed backed up recently, or if you manually backed it up (highly unlikely), it would be futile to proceed in this direction any further.

I have no launcher. Just the default from the phone. So how come disabling Chrome removes the homescreen shortcuts but all the tabs I had open in the browser are still there?

It doesn't matter which launcher you are using. The home shortcuts are stored by the default launcher, so the answer applies to any launcher you are using as default. As for the tabs, they are not part of launcher app's data but of Chrome browser's data. Disabling an app doesn't delete data or cache of that app. It simply makes the app inaccessible to the user and the apps.


text:
How to boot system-as-root device always as rooted?
I have a Samsung S10 5G device that is actually a system-as-root device. I have rooted it by following the instructions given here.
As the system-as-root devices have no ramdisk in boot.img but in recovery.img so, I have to always boot the device with a recovery combination to get the root access.
Is there any way to achieve the root on a normal reboot?
I have a full ROM image of the device so, I believe there should be some way. Please share your thoughts.

https://forum.xda-developers.com/t/how-to-patch-system-img-to-root-the-samsung-s10-5g-qualcomm-device.4005919/post-81742693

If you go through How Magisk works and How to manually root a phone it would be easy for you to figure out why it's impossible to achieve what you are looking for.
init is the very first process started by kernel, which at its early stage sets SELinux enforcing (if it's not already enforcing). Before that happens, we need to modify SELinux policy so that it doesn't restrict the root daemon (magiskd) from running. Also init.rc needs to be patched to inject magiskd service.
A simple option is to patch /sepolicy and modify /init.rc when rooting the device and save the files on device. But on system-as-root devices both files are on system.img (and possibly vendor.img), not on boot.img. So modifying them would break "systemless" approach and other related things, in particular dm-verity and OTAs.
Another option is to run a process even before init which patches SELinux policy and changes init.rc on the go. And the easy way to achieve this is to replace original init file with Magisk init so that kernel executes the latter. However on SAR devices init is also on system.img, so we can't replace it. But we can always boot to recovery mode which does have a ramdisk where Magisk's init can be placed and executed before any other process. On A/B SAR devices recovery ramdisk is in boot.img, so Magisk always boots to recovery by forcing kernel to ignore skip_initramfs cmdline parameter received from bootloader.

Is there any way to achieve the root on a normal reboot?

On non-A/B SAR devices (like yours) there is no ramdisk in boot.img, so the only option to retain systemless approach is to place Magisk init in recovery ramdisk on recovery partition, and always boot to recovery mode. From there system.img is mounted at /system_root by Magisk init, contents of ramdisk are then copied to / cleaning everything previously existing, files are added / modified in rootfs /, /system_root/system is bind-mounted to /system, and finally [/system]/init is executed for normal boot.
However things have changed with Android 10, now system.img is mounted at / but the files to be added / modified like /init.rc and /sbin are overlaid with bind mounts as tweeted by Magisk developer.

You have mentioned "So modifying them would break "systemless" approach and other related things, in particular dm-verity and OTAs." so, Is it possible to root the device with the system-modify approach, disabling dm-verity and not updating the device with OTA updates?

@VatishSharma yes definitely possible but manually, no automated way.

Also, Is patching only Magisk policies on system.img is enough for service with Magisk context to work?

Not enough. Do allow magisk * * * and allow * magisk * *.

Stuck here: https://android.stackexchange.com/questions/218371/stuck-in-boot-loop-when-unpack-and-pack-system-img


text:
How to fix "dmesg: klogctl: Permission denied" for normal user on Android?
I have a rooted Samsung device(system-as-root). When I open adb shell and run the dmesg  then it behaves differently for su and normal user. It throws

dmesg: klogctl: Permission denied

error when I run it without su shell.
Please suggest how can I fix this?

dmesg calls C library's klogctl wrapper function for kernel's syslog syscall which reads kernel's ring buffer by accessing /dev/kmsg character device. adb shell dmesg returns permissions denied error because adbd which runs with context u:r:shell:s0 is not allowed by SELinux to read kernel log. You need to explicitly allow it (requires root):
~# supolicy --live 'allow shell kernel system syslog_read'

If property ro.logd.kernel is set to true (default on debuggable builds), Android's logging daemon (logd) writes kernel messages to a separate buffer named kernel, which can be read using logcat (doesn't require root):
~$ logcat -b kernel


text:
How to make SELinux permissive with `systemless-root` on a `system-as-root device`?
I have a Samsung S10 5G device that is actually a system-as-root device. I have rooted it by following the instructions given here.
As the system-as-root devices have no ramdisk in boot.img but in recovery.img so, I have to always boot the device with a recovery combination to get the root access.
I have an app that requires some SELinux policies to work. I have injected them with the help of sepolicy-inject using following commands:
    sepolicy-inject -s init -t su -c process -p transition -l
    sepolicy-inject -s su -t system_file -c file -p entrypoint -l
    sepolicy-inject -s init -t su -c process -p rlimitinh -l
    sepolicy-inject -s init -t su -c process -p siginh -l
    sepolicy-inject -s su -t shell_exec -c file -p read -l
    sepolicy-inject -s su -t shell_exec -c file -p execute -l
    sepolicy-inject -s su -t shell_exec -c file -p getattr  -l
    sepolicy-inject -s su -t vendor_toolbox_exec -c file -p execute_no_trans -l
    sepolicy-inject -s init -t su -c process -p noatsecure -l
    sepolicy-inject -s su -t toolbox_exec -c file -p getattr -l
    sepolicy-inject -s su -t toolbox_exec -c file -p execute -l
    sepolicy-inject -s su -t system_file -c file -p execute_no_trans -l
    sepolicy-inject -s su -t storage_file -c dir -p search -l
    sepolicy-inject -s su -t storage_file -c lnk_file -p read -l
    sepolicy-inject -s su -t tmpfs -c dir -p search -l
    sepolicy-inject -s su -t mnt_user_file -c dir -p search -l
    sepolicy-inject -s su -t mnt_user_file -c lnk_file -p read -l
    sepolicy-inject -s su -t sdcardfs -c dir -p search -l
    sepolicy-inject -s su -t sdcardfs -c file -p append -l
    sepolicy-inject -s su -t toolbox_exec -c file -p read -l
    sepolicy-inject -s su -t toolbox_exec -c file -p open -l
    sepolicy-inject -s su -t sdcardfs -c file -p read -l
    sepolicy-inject -s su -t sdcardfs -c file -p write -l
    sepolicy-inject -s su -t sdcardfs -c file -p open -l
    sepolicy-inject -s su -t media_rw_data_file -c file -p read -l
    sepolicy-inject -s su -t media_rw_data_file -c file -p write -l
    sepolicy-inject -s su -t media_rw_data_file -c file -p open -l
    sepolicy-inject -s su -t media_rw_data_file -c file -p append -l

but after reboot, I need to run this command again as they are not persistent. I don't want to use a key combination on the device to use my app on the root mode of the device. So, I am searching for any way to inject them permanently.
I can think of the following solutions:

Modify init.rc file of system.img to run these commands but when I have tried to modify init.rc with just adding a comment and flashed it on the device then that comment is lost. Don't know what happens. I have flashed it with all Odin files and within AP file. This AP file is patched by Magisk.
Change the SELinux from enforcing to permissive. I am not sure how can I do it with either root access or Modified ROM Flashing.

Any suggestion?

I am searching for any way to inject them permanently.

As explained in my answer to your previous question: How to make SELinux injected rules persistent without unpacking-packing boot.img? you need to modify SELinux policy file in order to inject rules permanently.
Policy could either be monolithic (pre-compiled sepolicy file on initramfs or /system or /vendor) or split.
In latter case it can be either pre-compiled SEPolicy (/vendor/etc/selinux/precompiled_sepolicy) or you need to compile it from .cil files in /system/etc/selinux/ and /vendor/etc/selinux/ using SEPolicy compiler (/system/bin/secilc).
In former case the hashes of both platform and non-platform policies (/system/etc/selinux/plat_and_mapping_sepolicy.cil.sha256 and /vendor/etc/selinux/precompiled_sepolicy.plat_and_mapping.sha256) must match, otherwise init won't load it.
In either case you can't retain systemless approach.

Modify init.rc file of system.img to run these commands but when I have tried to modify init.rc with just adding a comment and flashed it on the device then that comment is lost.

As explained in my answer to your previous question: How to boot system-as-root device always as rooted? on rooted SAR device system.img is mounted at /system_root by Magisk init, contents of ramdisk are then copied to / cleaning everything previously existing, files are added / modified in rootfs /, /system_root/system is bind-mounted to /system, and finally [/system]/init is executed for normal boot. So you need to edit /system_root/init.rc for permanent changes. Please note that modifying system.img (or vendor.img) would break dm-verity and OTAs.

Change the SELinux from enforcing to permissive. I am not sure how can I do it with either root access or Modified ROM Flashing.

SELinux is set enforcing by init (if it's not already enforcing), so you need to modify init source. Or on userdebug ROMs pass androidboot.selinux=permissive kernel command-line parameter. For details see What sepolicy context will allow any other context to access it?
With root access just execute the following in any .rc file:
on property:sys.boot_completed=1
    exec u:r:magisk:s0 -- /system/bin/setenforce 0

For details see How to fix SELinux “avc: denied” errors?


text:
How can I reset MIUI 11 features?
I turned off MIUI optimization and some features were lost and I can't retrieve them after I turn it on again.

I've done that but I still can't get back the MIUI 11 UI display

You need to enable Developer options on your MI device.
To unblock the developer options,

Go to Settings >About, find the MIUI version and tap 7 times continuously.
You could see a message “You have enabled developer option” once you have successfully done that.
To access developer options, Goto Settings > Additional settings > Developer options.
Now scroll down till the end to see the option to toggle MIUI Optimization. You’ll need to restart the device once you enable the option.

Even though it is just a toggle which we enable, it causes the way which the system behaves, in turn changes the way many apps behave.

Source