text:
Nokia 7.1 recovery mode adb shell
Recently, my Nokia 7.1 stopped booting properly. When I turn it on, it just goes to the "android one" scree, then stops. I managed to boot into recovery mode, and I got the following options:
Reboot system now
Reboot to bootloader
Apply update from ADB
Apply update from SD card
Wipe data/factory reset
Mount /system
View recovery logs
Run graphics test
Run locale test
Power off

When I try to connect to my phone with "adb shell", I get the following error message:
error: no devices/emulators found

Is there a way to connect to my phone from ADB, running on my Linux computer, so I can recover data from it?

Stock recovery built under "user" mode doesn't have ADB enabled. If your bootloader is still locked (which is likely given yours is a Nokia), I don't see a way out.

instead of desoldering emmc one could just dump emmc in edl mode. but it's pointless because of encryption https://blog.elcomsoft.com/2018/05/demystifying-android-physical-acquisition

The stock recovery can only make use of ADB for sideloading of packages under the "Apply update from ADB" option in recovery. You cannot perform any other adb tasks.
Also, the issue that you are facing is mostly related to emmc which has gone into a r/o mode probably due to its lifecycle being all used up. As such, it is impossible to mount the emmc and recover any data. There may be some possibilities with desoldering of emmc and advanced read/write tools, but that's some advanced engineering thing.


text:
Huawei Y6 Elite - Wet, Can Charge But Not Booting
(If this is the wrong place to ask this question please tell me.)
I am in a bit of pickle right now.
It was quite rainy where I live, so when I took my phone (Huawei Y6 Elite Android 5.1) outside it fell in some water. It worked initially - I dried it and all.
Then, at the end of the day I powered it off.
I was trying to watch some YouTube, but then I couldn't power it on. I am 15 years old, and my dad gave me the phone (which used to be his) so I just said I'm going to charge it to him so he wouldn't be suspicious.
OK, so GOOD NEWS incoming.
Whenever I charge it, it shows up with the 'charging' screen.
I tried charging it for 1 hour and it wouldn't boot although it would show the charging screen.
Tried to put it in a bowl of rice for 1.6 days - took it out and still nothing.
I'm panicking right now as my dad would absolutely kill me if he finds out what I did to my phone, I need help ASAP.
Some of my ideas is to try to charge it for some more time and pray to G-d that it boots.
Another idea would be to tinker inside the components and dry them.
I need other ideas immediately. I am quite worried.
Thank you StackExchange - you have helped me with many issues at StackOverflow and I'm sure you can help a good friend out with this too.

Similar questions have been asked umpteen times on this site. Sorry to say but the only sensible solution is to let the service center deal with it and yes rice does not help

@beeshyams you're right. Time to tell my dad and face the wrath.

source: Stack Exchange

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

sort: votes


text:
How to write to an Android system file?
Why is writing to /sys/class/power_supply/battery/status having no effect?
Accessed manually via adb shell as root, eg echo "Discharging" > /sys/class/power_supply/battery/status does not change the file's contents. vi does not want to save any changes. touch also fails to create a test file in the same directory.
Permissions were 444 originally, but changed to 644 with chmod.
The goal is to use Battery Charge Limit to limit how much the phone's battery is charged, and that app writes to a control file to achieve this. Since the app isn't working on this phone I tried to test writing manually to diagnose.
The phone is a Samsung Gio GT-S5660M running Cyanogenmod 11 which is the most recent ROM I found for it.
File system and memory:
root@gio:/ # df
Filesystem               Size     Used     Free   Blksize
/dev                   136.9M   136.0K   136.7M   4096
/sys/fs/cgroup         136.9M     0.0K   136.9M   4096
/mnt/asec              136.9M     0.0K   136.9M   4096
/mnt/obb               136.9M     0.0K   136.9M   4096
/mnt/fuse              136.9M     0.0K   136.9M   4096
/system                206.4M   185.2M    21.3M   4096
/data                  178.4M   114.7M    63.7M   4096
/cache                  24.8M     4.2M    20.6M   4096
/mnt/media_rw/sdcard0     1.8G     4.3M     1.8G   32768
/mnt/secure/asec         1.8G     4.3M     1.8G   32768
/storage/sdcard0         1.8G     4.3M     1.8G   32768

root@gio:/ # free
             total         used         free       shared      buffers
Mem:        280276       267796        12480            0         3672
-/+ buffers:             264124        16152
Swap:        49148         4580        44568

root@gio:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
none /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/fuse tmpfs rw,seclabel,relatime,mode=775,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/stl12 /system ext4 ro,seclabel,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/stl13 /data ext4 rw,seclabel,nosuid,nodev,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/stl14 /cache ext4 rw,seclabel,nosuid,nodev,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/block/vold/179:1 /mnt/media_rw/sdcard0 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

@beeshyams If writing to the status file does not work, it could explain why BCL is not working. Even though BCL is no longer maintained, it is simple and works well on another phone. The Samsung Gio is very old and limited in storage (178MB internal). And I don't know if ACCA or Magisk still support android 4.4.4. Maybe I could try the ACC install on its own, but I would like to figure out why writing is failing on this ROM. Am I missing something simple?

Also the file is not identical in all devices, that is what I tried to explain in answer here https://android.stackexchange.com/q/167260/131553

@beeshyams To clarify, the file does exist and cat /sys/class/power_supply/battery/status always shows Charging even when fully charged. But I cannot write to it with echo or vi, even when root has write permissions to the file, and I can't create a file in the same directory with touch. I'm trying to understand why writing is not working and how to have it succeed before looking further about control files or charge limiting apps.

Similar problem I had way back and alternative that worked due me here https://android.stackexchange.com/a/127286/131553. I have no idea as to why this approach worked and yours doesn't

According to this, it's read only in some cases, while in others it can be used as you intend to/Maybe your's falls in that category?

@beeshyams Is read/write access in that documentation referring to file permissions? If so, as mentioned the permissions for the status file were 444 (read only) but I changed them temporarily with chmod to 644 but still could not write.

@beeshyams I just checked and SELinux is in permissive mode by default. I updated the question to include the output of df, free, and mount. Note that the phone's internal storage is only 178MB, so maybe the issue is with how sysfs or tmpfs is used? I don't know, just speculating.

The 1.8G comes from the 2GB microSD card that is installed.

By default, the /sys directory tree is read-only and maintained by Android's  Linux kernel. Using it to control charging would require a customised kernel, and AFAIK Cynogenmod had a pretty generic kernel.

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


text:
How do I disable Javascript in the stable version of Firefox in Android?
Sometimes I need to disable Javascript on some webpages for various reasons. From a rather old post on Mozilla Support and some other sources, I learned that it is done through about:config.
However, from the answer on this question on SE Android, I learned that about:config is no longer accessible on the stable version of Firefox for Android.
So I am back to the square 1, how do I disable Javascript in Firefox on Android?
I have the following constraints in roughly the order of decreasing concern. Please keep these constraints in consideration while answering the question, but I am still welcome to learn about solutions that violate some of these constraints.

I do not want to use nightly or beta versions. They might have security vulnerabilities or unexpected behavior.
I do not want to change any Firefox configuration files on the file system, unless from within Firefox. I don't know much about Android application and I am afraid I might break something while messing with files.
I do not want to install any add-on on Firefox unless it is opensource or is widely known to be trustworthy.

I do not want to install any add-on on Firefox unless it is opensource or is widely known to be trustworthy.

You're in luck today. Install NoScript Security Suite addon by Giorgio Maone. It is a GNU GPL 2.0 licensed addon. Has more than a decade of history of development, support and trust. It is a "Recommended" extension from Mozilla. It is also bundled with Tor Browser.
As per Firefox Help, meaning of Recommended extension is:

Recommended extensions are editorially curated extensions that meet the highest standards of security, functionality, and user experience. Firefox staff, along with community participation, selects each extension and manually reviews them for security and policy compliance before they receive Recommended status.

Your desired usage of web browser is in contrast to what NoScript offers. As such you need to configure this addon.
As I see it, you want all of your websites to work "with javascript enabled", except a few where you need "javascript disabled". To achieve that, install that addon in your Firefox for Android.  Open NoScript page (three-dots line in Firefox status bar -> Addons -> NoScript)
Click on the icon (with a small wrench) next to green colored Reload icon. Below in that page, in "General", under "Default" tick/check all items. This is needed so that websites don't break for you, because this is desirable in your question.
Load the website in your browser where you want javascript disabled. Open Noscript page again. To the website names/entries listed there, press CUSTOM and uncheck/untick script This would disable javascript for the entry/domain you selected.
If you have many websites where you don't want to repeat this procedure, go into Noscript settings, under "Per-site Permissions", add your domains and configure "CUSTOM" settings there.
This is a one-time only effort, but should work for long.

The settings seem to be a bit twisty but I hope I will get get better with it.

@AbdullahBaig post a question if you don't get better. :D


text:
Sent WhatsApp Images do not appear in gallery
For uploading Instagram posts, the images need to be on my phone, so I tried sending the image on WhatsApp Desktop so that I have it on my phone, but this doesn't save it in the gallery. What can I do to automatically store these images and videos in my gallery?
If this is not possible, is there an app or something that automatically sends a WhatsApp message back to me, so I can send my images to that number and it sends it to me so they appear in my gallery?

@beeshyams I already tried all of those, this is what I normally do,  I also removed all the .nomedia files and I activated media visibility and I checked my secure folder.

@beeshyams nothing works, all of the online tutorials don't work. I even have a new mobile phone and new phone number, nothing works

Can you check your WhatsApp directory and see if they are saved on some other folder, for instance documents? (/storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media)

I just tried it and I found the image sent from whatsapp web in above path `media/sent'. if you still can't find it I am surprised and maybe take a backup of Whatsapp, uninstall and re-install cleanly? Also make sure you are on the latest version

@beeshyams Ok, I have found the folder, and the images. I deleted the .nomedia file, but after sending another image, it appeared again, the images are not in my gallery.
Edit: There is a folder of sent WA-Images in my gallery, but the new images only appear there after deleting the .nomedia file again, but it won't stay deleted

@beeshyams Media visibility is already on :/

There's no way to automatically download and save sent media from WhatsApp web to mobile, but there's a workaround.
You need two mobile numbers and the ability to run two WhatsApp accounts either using a built-in dual account feature if available or using a third-party dual app provider to achieve this (for a second mobile number, there are several apps like TextNow which gives you an American temporary number for free and you can make WhatsApp accounts with it and even get those numbers permanent for dirt cheap prices)
Once you someway managed two WhatsApp accounts, the rest is rather simple - turn auto download media on the number your phone has and send a pic from the desktop using WhatsApp web from another number.

Actually, no need for 2 numbers. Just create a WhatsApp group and send the image there.

Sounds like your main problem is getting pics from a PC to show up in your smartphone gallery, presumably an Android.
To get this job done, there isn't a need to hold on to WhatsApp at all and create 2 accounts (although that's an option - the gallery won't catch the pictures from 2nd clone account easily, especially if it's running in some kind of virtual environment). So here are your options.

Wired Xfer from Phone to PC. Connect the phone to the USB port and it'll ask how you want that connection to behave - charging only, file or player. Choose files (or storage). Navigate to the gallery folder which would be {internal storage}/DCIM/100Andro (or Camera instead of 100Andro) and copy if there. It will then def. be in your gallery.

Wireless Transfer. There are a lot of apps like Airdroid that can do this. (Many times the device manufacturer throws in their homemade tool). Follow these guides here & here (video guide) to get Wireless transfer working.

adb connect. Refer to this XDA guide

In either case, for pics to show up in your gallery without hassle, they need to be copied to {internal storage}/DCIM/100Andro (or Camera instead of 100Andro). You can use a non-stock powerful 3rd-party gallery app like F-stop that can scan all places on your phone for pictures instead of just a few limited paths.


text:
Secure boot requires PIN (2 tries left untill factory reset the phone)
I have a situation where I recently set PIN, activated Secure boot and booted up my phone and entered the PIN incorrectly 28 times. Now I have two times to enter the PIN correctly else the phone will be reset to factory defaults (images, all data deleted) which I want to avoid.
Do you think it's possible to reset the number of tries again to 30 for secure boot if I already used 28 times? The phone which I am using is Samsung S9+.

secure startup means android is not booted therefore FindMyMobile not available. counter can be reset in crypto footer but that requires raw access via chip-off method (or samsung signed firehose programmer if your device is qualcomm usa model)

Thank you so much for the answer.
Do you think that it's possible to disable secure startup in such a situation? If the phone would bootup, I could use finger print or face ID.

DEK is re-encrypted with new KEK and PIN. the only way back is factory reset

Thank you! I just have few more question:
I desperately trying because I have some vacation photos inside my phone and I am very afraid to lose it.

Do You think if I flash custom recovery such as TWRP would I be able to BACKUP everything to an external SD card and use two PIN guesses, then if I fail and the device is the factory reset - restore from SD card using TWRP and try again two more times until success?

Do you think such a solution would work? to Install TWRP and using in-built File Manager and deleting following files inside /data/system folder:
Gatekeeper.password.key
gatekeeper.pattern.key
locksettings.db
locksettings.db-shm
locksettings.db-wal

In such a situation, would you bring such a device to Samsung support? I doubt if they could help

Do you think I am completely screwed and I should reset to the factory and forget the photos?

no. there is some cheat to by-pass gatekeeper via emergency call menu but requires android. /data/system is encrypted and TWRP not flashable on locked bootloader

Do you think it's possible to mount my Samsung to try PIN guesses without counting towards 30 PIN guess limit (like on Secure Startup)? I thought maybe if I guess over my pc, perhaps it wouldn't be counted but I never managed to mount my Samsung partitions on PC

there is absolutely nothing you can do besides backup/altering crypto footer via chip-off method or EDL mode

Thank you so much, I am very thankful. All the best for you


text:
How to use phone as camera and microphone for PC via ADB?
There are many previous questions asking about how to use the phone as camera and microphone for PC. For example:

Use my Android phone as the camera and microphone for PowerPoint slide recording
Using Droid as a computer microphone via USB?

However, all the answer involve installing an app in the phone. In my experience, DroidCam and IP Webcam are way too lagged. I cannot use them for online conversations, like using with Zoom. I think if there is a way to do that via ADB, then it will be much faster. We have such solutions for projecting phone's screen.
Is there a way to do so? If no, then why is that?
My Android version is 7.1 (SDK 25).

You can use the combination of scrcpy and sndcpy. both uses adb.
scrcpy github: https://github.com/Genymobile/scrcpy
sndcpy github: https://github.com/rom1v/sndcpy

Your answer is too short and mainly consists of two links. Please extend it and describe in details how the two tools can be used to use the phone as camera and microphone.

sndcpy only works for Android 10 and above


text:
Clear app default actions in Android 10
Mi App has silently taken over everything related to documents in my Gmail and printing in general in my phone. Whenever I do any action that is "an inch close to printing) then Mi App appears.

I cannot change it in the usual way because my Motorola Moto One / Android 10 (One) claims that Mi App has no defaults defined and so there is nothing to clear:

This is super-duper annoying because right now I am even not able to preview a .docx or .pdf attachment sent alongside some email, because each such tap instead of showing document preview, opens up Mi App claiming that there is no printer added.
How it is possible that some app is making some "silent" takeover of some action, without clearly showing this fact in Android's or app's configuration? Even more important -- how to get rid of this and bring the default action (of documents previews) to my Gmail?
EDIT: Since this is Android on board Motorola device, it should be very close to stack Android without any significant changes from Motorola side.

AFAIR, I never seem to succeed using the per-app "Clear defaults". I have to use "Reset app preferences" instead.


text:
AFwall+ sometimes can't apply rules and doesn't get root
Sometimes AFwall+ has an error. It says it can't apply the iptable rules and that it failed to get root. I look in Magisk and there is no entry for it. Rebooting the phone fixes the problem. I'm just wondering if there's a more permanent solution?

Which Android device and Android version are you using? Which Magisk version are you using?

@Firelord Galaxy S20 with its stock Android 11. Magisk 23. Used to have Xposed but removed it.


text:
Turning on "show pointer" breaks mirrored screen. How to turn off without phone screen
I am trying to help a friend who's screen broke on their Huawei P30. The screen is dead-dead. No touch, no light, nothing.
So I tried to connect an external screen to it, an voila, I have a screen. I even have a mouse and keyboard working. However, I want to copy the contents of the phone onto the computer, and nothing is showing up on the computer when I plug it in. So I tried to get ADB to help me.
ADB is not trusted, or something along those lines. So I go back to the screen, and turn on developer mode, and try to change settings to hopefully bypass the notification asking to give permission. Nothing works, I keep trying new settings.
This is where I mess up. Apparently there is a bug or something, because when you turn on (and I have no idea why I did this) "Show Pointer" the external display goes black with a grey bar at the top theoretically showing the pointer X and Y coordinates, etc.
If I reboot the device I see the home screen for 0.5 to 3 seconds before it reverts back to the black screen. If in this time, I click on the settings icon, it immediately goes to black.
Question: Is there a way, without access to the screen of a device to:

get ADB to work without it been an authorized device (I'm guessing not), or
turn off pointer location somehow using ADB or similar method, or
navigate the menus of the phone with a keyboard only, no mouse, no clicking, just keystrokes, so I can disable this blind (using another phone or video to know how many times to press down, for example)?

Any advice at all would be great. Since they already have a new phone, I don't want to have to pay to replace the screen, but that is last resort (which I hope would work).

Before Google acquired the company that developed Android, the whole system was designed for a non-touch display. From that time all Android commands have keyboard shortcuts. Therefore option 3 is realistic unless you device manufacturer has destroyed them while modifying the Andorid OS. My suggestion would be to use a Bluetooth keyboard and try to authorize adb blind.

Any tips on what terms to search for to find that? I'm coming up empty when i search. (read: full of spam ideas not relating to what I'm actually searching.)

I would search for Android keyboard shortcuts and e.g. end up here https://www.howtogeek.com/175267/the-htg-guide-to-using-a-bluetooth-keyboard-with-your-android-device/

Unfortunately that HowToGeek link focuses on shortcuts within apps or creating , and not how to navigate around in Android. :-( I tried searching for android navigation using keyboard, but they are all either related to the developer software, or specific apps in Android. I fear this is only going to be resolved by replacing the screen...


text:
"File as" not working for Contacts
Many contact management tools (such as Google Contacts or Microsoft People) have a field called "File As", which allows to save a contact using a nickname, while keeping the first and last names hidden, just in case you forget who they really are.
It would be really useful, but it doesn't work at all on Android. While the contacts are displayed correctly on the web app, Android applications like WhatsApp still display my contacts by first and last name.
Is this a Google/Microsoft problem or is it caused by android/WhatsApp itself? Is there any workaround to make it work (at least for WhatsApp)?
It's ok for me if it involves coding or installing an unofficial version of any application, but it would mean a lot to me if I could fix this issue for me.

Looking inside the Android Developers reference I couldn't even find any information about the "File As" field, so I wouldn't know where to start!

Apps can query the address book of your device. How they display the different address fields is decided by the developer of the app. Therefore if Whatsapp does not show the contacts the way you like then this is a problem of Whatsapp.

@Robert thanks for your response. Is there any way I can make WhatsApp think that the file as field is the actual contact's name? As said, altering the app or the address book is ok, as long as the contacts on my Google Account remain the same...

Related: How can I make WhatsApp use the "File As" field?


text:
Is it possible to feed sound from bluetooth source through phone to bluetooth headset?
We use 2 way radios for communication at work. It's often difficult to hear the radio over background noise, so I ordered a bluetooth adapter to plug into the radio to go to an earpiece so I can hear the radio better. I already often wear a bluetooth headset connected to my phone to make phone calls or listen to music when appropriate. What I want to know is would it be possible to link the radio adapter to my phone, and then route the radio sound to the headset linked to the phone, so that I could both make phone calls and talk on the radio with the same headset?
I have an S21 ultra, and the two bluetooth headsets I have are an aftershockz trek air or an axil gs extreme if that makes any difference.

Some headsets support being paired with to sources at the same time. And switch between both. I think it is called "Bluetooth multipoint [pairing]" .

I was under the impression that the multipoint would put a priority on the devices, and while it would be connected to two devices, it would only recive sound from the higher priority device?


text:
Close tab and end current page in browser. When I restart FireFox, Chrome or other browser on Android phone or tablet, last page browsed comes up
On my Windows computer, if I close a browser page, the next time I launch the browser, it goes to my home location. This is true regardless of the browser so far as I can tell.
On my Android tablets (Samsung Galaxy 10, Amazon Fire Tablet) or phone if I close the browser and then reopen it, it returns to the last page browsed, not to a home page. I have to back out from the last page back to the original page to get to that.
How can I change this so that upon opening a fresh page, it goes to a home page?

In Firefox on Android as of 89.1.1:

Go into settings
Scroll down to Delete browsing data on quit under the Privacy and security header.
Enable Delete browsing data on quit.
Untick(!) everything except Open tabs.

...and now it should forget the previously opened tabs, and thus instead start the home page, after you quit the browser.
Unfortunately I can't help with Chrome.

Thank you. I'll give it a try.

Firefox > settings> advanced> restore tabs


text:
Problem with downloading files to SD card
I have a problem with downloading to my SD card and I tried using different browsers: chrome, brave, firefox but couldn't find a satisfactory solution. Basically on Chrome I set the download location to SD card and the path is "sdcard/../../Android/data/org.android.chrome/Downloads'. This is the only choice under SD card so I select that. But when I download any file, chrome displays "download error" in the notification bar, but the file has been downloaded to the above path. The only way to open the file is to use a file manager and navigate to that directory which is a hassle if I have to do that each time.

I tried the same with firefox beta and about:config settings following instructions floating around on google. But Firefox completely ignores the folder path and always downloads to the internal storage.

I don't mind saving to that weird path but the download manager I have (Files by Google) does not recognize it as a downloads folder and so the file does not show up in my Downloaded files list, so it's kind of annoying.
I have a MIUI 12.0.4 phone running on Android 10.
Does anyone else have experience with this sort of bug and if so is there a solution for that? (Alternative brower, other settings, a way to map that folder to Downloads in file manager, anything is welcome)

Just to avoid a misunderstanding: the path /sdcard and all directories below this path also are located in the internal storage. The path is just called sd-card for historical reasons.

@Robert the path is copied directly from the file manager and I can see the file downloaded to that location, it's just not convenient to access

Can you check Chrome's app permission for the storage permission? Android 10 changed their storage access policy.

Thanks. I have added storage permission for chrome but there's nothing specific to SD card in there

I'm having the same issue on my Vivo v21e. But I found the solution. You can use 1DM downloader (available on play store) as an external download manager but you have to use Firefox to make it work. Just go to the Firefox settings and turn on external download manager after downloading 1DM and it'll fix the problem..


text:
How to prevent WhatsApp (Web) from losing received media?
EDIT: The problem described happened to be related with the use of WhatsApp Web instead of WhatsApp app on the phone.
In my WhatsApp chats a couple of months old, I see placeholders for photos, videos, or voice messages. However, the photo itself is not shown, and when I click on it, the error message appears "Photo unavailable. Can't view this photo because it's no longer on your phone."
I myself have never deleted any of these photos from my phone. The message has not been deleted by the other party. I guess it's WhatsApp itself that deletes the media files after a couple of months. How do I stop this? I want all my sent or received WhatsApp media to be kept on my phone for unlimited time.

The described behavior is particular to the use of WhatsApp Web (or, maybe, also the WhatsApp app on the computer, I did not try).
I typically use WhatsApp from the web browser on the computer (WhatsApp Web), not from the phone. When I click on a media in WhatsApp Web, the media is shown, and I assumed that it would be synchronized with the phone (downloaded to the phone, saved there, and then shown on the computer). No. It is not downloaded to the phone, only to the computer. What is more, it is not saved on the computer but is only shown directly in the app.
Consequently, as time passes and the original media is no more available for download, there is no copy saved on the computer, and there was never any copy saved on the phone.
In order to have the media downloaded to the phone, you need to open the WhatsApp physically on the phone and tap the media. Presumably, after that the media would be saved to the phone and will not disappear anymore, as the other answer indicates.

WhatsApp doesn't itself delete photos. I have once faced such a problem myself, and it's nothing serious.
Here are two solutions:
1.Go to the Phone Settings > App Settings > WhatsApp and clear the cache. If possible, force stop the app too. Now, restart the aplication and it should work.
2.If the above method doesn't work, restart your phone once.
3.If your WhatsApp data (media files) is set to be stored in any external storage device (SD Card), then go to the relevant phone settings, turn off the option for external storage, and then turn it on again. The problem should be solved by now. If it still doesn't work in this case, then unmount and remount your SD Card.
Hope this helps!


text:
What is the Root app in Android and why is it connecting to the Internet?
The Root app is showing up in ProtectStar Firewall, but not the Settings app list with System Apps visible. It tried to connect to 99.86.100.101, an AWS (Amazon Web Services) IP address according to that app's log. What is it doing?

Give us its package name. Its name is useless to us. Android doesn't come with any package named Root. Use my answer if you need help in finding package name. https://android.stackexchange.com/a/198096/96277

You probably refer to the Android system user 1000. This has several components "reaching out" – for example for name resolution (nslookup alike), time services (NTP), Captive Portal Check and more. Without the full entry it's hard to say what it might be doing at AWS. The IP you give belongs to Cloudfront, which is a CDN, so it can be many things.


text:
How to spoof NMEA sentences on physical Android 8.1 phone for apps like WeChat?
The problem. Location spoofing is fairly simple for most Android apps. It's done either by using Xposed modules such as XPricyLua or by using a location spoofing app such as Fake GPS Location or even both. But few sophisticated apps such as WeChat or GPS Info & NMEA Logging will anyway detect your real location even if you use an Xposed module or a FakeGPS app or even both. It happens because they utilize hardware level SDK (e.g. BaiduLocationSDK) and will relay on NMEA sentences rather than LocationManager and FusedLocationProvider APIs. There's a related post on stackoverflow that haven't been resolved.
Spoofing methods I have tried and they haven't worked (even on rooted Android):

Xposed Modules such as XPrivacyLua and LocationInjector (apps see NMEA sentences from real location)
Anything using Developer options, mock location app (Fake GPS location, MockGeoFix, Bluetooth GPS Provider)
Fused location provider spoofing with apps using both mock location and Xposed module (Mock Locations (fake GPS path))
IP geolocation spoofing (VPN)
GPS provider spoofing & IP geolocation spoofing
geo nmea and geo fix commands (worked on emulator, MockGeoFix doesn't show NMEA sentences)

Ideas. Some GPS-over-bluetooth/network/serial apps such as GNSSTool or GPS Connector almost do the work. They are able to receive NMEA sentences from other hardware devices (e.g. Android phone) or even replay them from nmea-files BUT but WeChat and GPS Info & NMEA Logging doesn't see satellites and NMEA sentences anyway (as mock location app selected).
The question. Are there any other applications, modules (Xposed, Magisk), methods or ideas to spoof location in apps relaying on NMEA sentences on a physical Android 8.1 phone?

It seems to be possible by kernel modification, see post here: https://stackoverflow.com/questions/38382931/android-emulate-gps-satellites-not-only-location

HackRF is proven hardware solution at about $300: https://www.youtube.com/watch?v=g-bdK7tRpBI


text:
How can I connect Redmi K20 Pro back to my PC?
It was all fine before I removed windows 10 old folder from my system due to space problems from my c drive, I can connect easly my redmi phone through USB and it will show in explorer like a charm.  But now I cant connect my redmi phone through USB. Its not showing as drives as earlier. I can see it in device manger with driver error (yellow exclamation). I have been trying to get the driver back by searching google for the last two days and I failed and ended up in a mess. my phone are redmi Note 4, Redmi 4A, Redmi Note 7 Pro and Redmi K20 Pro. Can anyone help me with the correct driver to get  back my phones connected to PC. My PC is Lenova G50 with windows 10 Build 19041.vb_release.191206-1406. 64 bit os.
I am getting this while I try installing a pack which I recieved from web

For Windows, try downloading the OEM USB driver from here.

Cross-posted to SU: https://superuser.com/q/1656702/356789


text:
Setting up new phone for kid: interplay between family link & multiple accounts
I have a OnePlus 5 on which I installed LineageOS 18.1 with Google Apps.
My intention is for this to be my child's phone, who is underage and whose account is limited by Google Family Link. (I'm not particularly in love with Family Link; it just comes automatically with honesty when registering the kid's Google account, i.e. not lying about their age. The screen time limitation is the only feature I actually find useful.)
I also installed Magisk v23 to root the phone. I realize that with enough determination my kid could potentially circumvent Family Link using root and e.g. adb, and don't mind.
I used my own Google account for the initial setup, but eventually I'd like to transfer my kid's apps and data from a previous device.
My first thought was to use the "multiple users" feature. I created an account for the child on the phone, and was going to use Titanium Backup to restore the backups of apps and data from the previous phone.
However, I'm beginning to have second thoughts. Is this a good way of approaching this? For example, if I continue as the "device owner", won't this device pollute my location sharing/location history?
Do I understand correctly that there is no way to change who the owner is (i.e. promote the child from "user" to "owner" and simultaneously demote myself from "owner" to "user")?
Would it be a better idea to instead, in the device owner environment, remove my Google Account and add the child's?
I would like to avoid lengthy experiments if possible, but will answer my own question if it comes to that.
My principal specific question is: what would be the consequences of these two approaches?

kid continues as user; I am owner
add kid's google account to device owner profile; remove mine

Update: adding kid as user is not straightforward; apparently (and logically) there is a whole new mount namespace so the TitaniumBackup directory I copied to the /sdcard directory of the primary account isn't visible, and even an elevated adb shell doesn't have access to /storage/emulated/10 (which I gather is where the new storage space lives). I couldn't be bothered to workaround this, so I removed the kid's user.
I then tried adding the kid's account alongside mine, but that doesn't work because it's managed by family link; I have to remove my account first. Did that, and when trying to add the kid's account I get into an endless loop where it says it'll install family link manager, I click next, and it informs me that this step is necessary; repeat ad nauseam. I think the issue may be that it doesn't pass the SafetyNet check, because logcat has lines like
06-16 15:49:05.915 11187 11187 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:49:05.916 11187 12931 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at EdHooker_1d32fd428893610d3914110116abed3745926464.hook(Unknown Source:185)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:15914)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:81)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.921 11187 12930 I BaseTask: ScheduleSafetyNetJobTask finished (5 ms). [CONTEXT service_id=42 ]
06-16 15:49:05.928  1444  3734 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (1954917)
06-16 15:49:05.938 10959 10959 W DeviceAdminAdd: Unable to set profile owner post-setup, no default supervisorprofile owner defined
06-16 15:49:05.993 11187 11187 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:49:05.994 11187 12931 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:49:05.996 11187 11187 W System.err: java.lang.Exception: Result is true
06-16 15:49:05.996 11187 11187 W System.err:    at m.cqr.c(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:49:05.996 11187 11187 W System.err:    at m.cqv.j(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.gms.kids.setup.fragment.KidSetupFragment.cm(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.gms.kids.setup.fragment.ActivateProfileOwnerFragment.onActivityResult(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.chimera.FragmentProxy.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at fd.ht(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:49:05.996 11187 11187 W System.err:    at aes.g(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:49:05.996 11187 11187 W System.err:    at eic.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at eih.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edb.support_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edg.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edg.public_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.997 11187 11187 W System.err:    at rie.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):4)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.Activity.dispatchActivityResult(Activity.java:8310)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.deliverResults(ActivityThread.java:5002)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5050)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
06-16 15:49:05.997 11187 11187 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:106)
06-16 15:49:05.997 11187 11187 W System.err:    at android.os.Looper.loop(Looper.java:223)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7660)
06-16 15:49:05.997 11187 11187 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.997 11187 11187 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
06-16 15:49:05.997 11187 11187 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_1d32fd428893610d3914110116abed3745926464.hook(Unknown Source:185)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:15914)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:81)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:06.003 11187 12930 I BaseTask: ScheduleSafetyNetJobTask finished (9 ms). [CONTEXT service_id=42 ]

I disabled EdXposed, leaving me with
06-16 15:58:55.797  6486  6486 W DeviceAdminAdd: Unable to set profile owner post-setup, no default supervisorprofile owner defined
06-16 15:58:55.852  6269  6269 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:58:55.853  6269  6634 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:58:55.855  6269  6269 W System.err: java.lang.Exception: Result is true
06-16 15:58:55.855  6269  6269 W System.err:    at m.cqr.c(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:58:55.855  6269  6269 W System.err:    at m.cqv.j(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.gms.kids.setup.fragment.KidSetupFragment.cm(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.gms.kids.setup.fragment.ActivateProfileOwnerFragment.onActivityResult(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.chimera.FragmentProxy.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at fd.ht(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:58:55.855  6269  6269 W System.err:    at aes.g(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:58:55.855  6269  6269 W System.err:    at eic.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at eih.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at edb.support_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at edg.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.856  6269  6269 W System.err:    at edg.public_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.856  6269  6269 W System.err:    at rie.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):4)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.Activity.dispatchActivityResult(Activity.java:8310)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.deliverResults(ActivityThread.java:5002)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5050)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
06-16 15:58:55.856  6269  6269 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:106)
06-16 15:58:55.856  6269  6269 W System.err:    at android.os.Looper.loop(Looper.java:223)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7660)
06-16 15:58:55.856  6269  6269 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
06-16 15:58:55.856  6269  6269 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
06-16 15:58:55.856  6269  6269 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
06-16 15:58:55.858  6269  6618 I BaseTask: ScheduleSafetyNetJobTask finished (6 ms). [CONTEXT service_id=42 ]
06-16 15:58:55.952  1395  2506 I system_server: oneway function results will be dropped but finished with status OK and parcel size 4

I will now disable all Magisk modules one by one to see if I can get past this step eventually.
Update 2: the "activate family link manager" loop issue might not be related to Magisk at all. It's been reported to Google at e.g. https://support.google.com/googleplay/thread/15850322/activation-family-link-manager-error-message-loop?hl=en and https://support.google.com/googleplay/forum/AAAA8CVOtD88XvbDIUaPF0/?hl=en&gpf=%23!topic%2Fplay%2F8XvbDIUaPF0. For at least one person, hacks like manually making the family link app a device admin in " Settings -> Security -> Device administrator" as well as "Settings -> Application manager -> Reset app preferences" helped, but "it looks like the Family Link Manager expects to be able to open the settings app on a specific page, which doesn't look to exist on all devices. This also happens on the Xiaomi MiPad as well...
https://xiaomi.eu/community/threads/first-xiaomi-eu-rom-released-for-mipad-4.46337/
Manually settings the App as a device admin does not get you past this check.", which I can confirm.
Update 3: I got past the "Next, you'll activate Family Link" loop by manually converting com.google.android.apps.kids.familylinkhelper and com.google.android.apps.kids.familylinkmanager into system apps. With Magisk, /system/app is a writable tmpfs (i.e. not persisent); I remounted / (which the real /system/app is on) rw using mount -n / -o rw,remount, then bind mounted it under a directory: mkdir /mnt/root; mount --bind / /mnt/root. I copied the two APKs from my Titanium Backups to /mnt/root/system/app, then rebooted and Family Link setup was able to complete.
Now let's see about restoring all the apps from backup.

The logcat clearly shows that the Xposed module com.aviraxp.adblocker.continued has a bug. You should file an issue on it's Github project.

Thanks; I reported it.

The reported GitHub issue is still open.  Development appears stalled.  I wonder if anyone has forked AdBlocker Reborn and resumed development.

I have a partial answer:

You apparently can't add two Google accounts to the same Android user profile if one of the accounts is for a minor (and thus under Family Link supervision).
The multiple users feature is relatively complex and breaks assumptions such as "I can access all files via adb shell if necessary".
The way to change the device owner is to first remove all Google accounts from the owner's profile, then add the Google account of the new owner.


text:
android firefox 68.0 weird background colour
The firefox browser on my Samsung tablet appears to have a pink background on the bookmark list panel and "back button" history list pane. On the history panel, there's a pink stripe under the 'recently closed and 'synced devices' section (behind where it states the number of tabs or devices, and stretches across the screen) all the other backgrounds are the default whitish colour. Anybody know what's going on and how to sort it? I couldn't find anything in config, and I have another tablet with the same version of firefox which does not have this issue.
Cheers!pg)

Hi, could you take a screenshot and post/upload it here? Is it similar to this question?

Hi Andrew, updated the original post with pics :)

Is this really the latest Firefox version for your device? On my tablet Firefox shows version 89.1.1.

No, it's not the latest, Robert. But I don't like the new UI/layout of the latest versions (e.g. buttons not being as readily accessible)


text:
Android 10 system taking up too much hard drive space
I have a Nokia 5.3 running Android 10. Of the 64GB hard drive space, the system file is currently taking up 52GB.
Couple of days back, it was taking up 48GB and my phone was complaining of running out of hard drive space, so I removed some old apps and files to free up some room, and now it looks like the system file has just expanded to take up the available free space, and again it's complaining about running out of hard drive space.
How do I go about reclaiming some of the space taken by the system folder(s), as I can't believe that it's needed to write 4GB worth of data in a few days, nor that the OS really needs 52GB of hard drive space, when my old phone only had a 32GB hard drive for the same OS.
(apologies, I'm not entirely sure what tags to use for this)

There is no "system file" on Android. Android has a system partition which is of fixed size unless you completely repartition your device (and erase all user data). If you have a large file on your device you should use a file explorer to look at it and note the full path. Then edit your question and add this path.

Following Robert's comment, you can try DiskUsage to list all big files on the storage (disclaimer: not affiliated, just a long-time user). However, you need root access to also list the internal storage.


text:
What kind of storage is IPSM?
I am working with a mobile device running Android.  In addition to the common Internal shared storage, it also has an IPSM card.  Does anyone know what IPSM stands for in this context?

Hi, could you add the brand/device model for additional info? Is it Honeywell? According to this forum, it's Intel Persistent Storage Manager.

Intel Persistent Storage Manager is the correct answer, thank you. If you want to make a formal answer I will go ahead and accept it.


text:
Access connected Android phone camera from Chrome browser on my Macbook
I know there are programmatic ways to request media from another device's camera, but is there any simple way I can access my phone camera from my (localhost) web app?
I connected my phone to my laptop via USB, but it's not showing up on Camera settings

(You can see that my laptop camera is the only option)
I've tried installing an app called Iriun, but it only transfers video to its own desktop app, not to Chrome.

If you have the Iriun app open on your computer, it will appear as a camera in the browser.  You just need to iterate through all of the available cameras.
function getCamAndMics(){
     // List cameras and microphones. in the menu

     navigator.mediaDevices.enumerateDevices()
     .then(function(devices) {
         devices.forEach(function(device) {
             console.log(device.kind + ": " + device.label +" id = " + device.deviceId);
             var audioSelect = document.getElementById("audioPicker-select");
             var cameraSelect = document.getElementById("cameraPicker-select");
             if(device.kind=="audioinput"){
                 //add a select to the audio dropdown list
                 var option = document.createElement("option");
                 option.value = device.deviceId;
                 option.text = device.label;
                 audioSelect.appendChild(option);
             }else if(device.kind =="videoinput"){
                 //add a select to the camera dropdown list
                 var option = document.createElement("option");
                 option.value = device.deviceId;
                 option.text = device.label;
                 cameraSelect.appendChild(option);

             }
         });
     })
     .catch(function(err) {
         console.log(err.name + ": " + err.message);
     });

}

You can see this with https://record.a.video - just make sure you have Iriun running on your computer when you use the website. Sample code from https://github.com/dougsillars/recordavideo


text:
ODIN : Binary size is too large
Device Name : gt5note10lte/SM-P555/Samsung Galaxy Tab A
TWRP Source : https://github.com/minimal-manifest-twrp/platform_manifest_twrp_omni
Android version : 10
I am trying to build TWRP for my device. The stock ROM is running on Android 7.1.1.
When I am trying to flash the recovery.img file using ODIN, the error "ODIN: Binary size is too large : recovery" is displayed in Download mode. Anyone faced this issue ?
From the description, I understand that the recovery partition is small. What is the best way to move forward ? Any help is much appreciated.

Why? TWRP already exists for the device here.

the version that is available for my device is 3.0.2.1 (I think it is based on android 7 too) and I am trying to upgrade my device to Android 10. So, trying to move to latest version too.

TWRP version isn't strongly tied to Android version. The 10 branch is for devices shipping with Android 10+, AFAIK. That said, 3.0.x is a lil old in terms of features, so try the 9 branch.

Thank you very much for the clarification, I had that doubt too. I have also tried the twrp-7.1 from this link which generates the same error too. https://github.com/EngMoPro/platform_manifest_twrp_omni

Does this answer your question? Unable to mount storage on twrp-3.5.2_9-0


text:
Why do my recent sms show elapsed time instead of time sent or received? Pixel 3 android 11
Why do my recent sms show elapsed time instead of time sent or received? ie:"10 min ago" instead of 10:27pm.
Pixel 3 android 11

This depends on the Messaging app you're using. Since this is Pixel 3, is this the default Google Messages app?

Yes, default app 'messages'


text:
Android TVs and LINUX 4.9.118+
Perhaps an obvious question for some, but, is my Kogan brand Smart tv using Android and google play pre-installed apps running Linux 4.9.118+

Can you please check your posted text, I think you forgot to include the question. Please edit it and add your question. Stack Exchange is an Q&A system, therefore without a question we can't do anything here.

I'm guessing your doubt is about how an Android SmartTV have some info about Linux...
Surely you have saw this Linux info into Settings>About TV and this info is about the Linux Kernel version built-in the device.
BR


text:
Touchscreen gets disabled when I put the palm on screen
Actually I wanted to write some notes on my 'Android' tablet
Name: Lenovo Yoga Smart Tab
Model: Lenovo YT-X705X
Model no. - ZA540019IN
Android version: 10
But I found that whenever I rest my palm in the screen, the screen becomes unresponsive.
So, I did some touch testing and found that the screen isn't registering any touch when I keep the palm rested on the screen.
So basically, when I keep the palm very lightly on the screen, it detects as one giant touch point, but if I keep the palm just like I keep on paper, then the entire screen becomes non-functional.
Please tell me a solution. Is there some option in setting that is turned on or is it not possible to fix this?

You don't mention what device make/model/OS you are using. Regardless, if you did a search on "touchscreen palm rejection" you would learn that it is a feature of some large screen device to avoid accidentally triggering unintended areas. Too large a touch area for a regular device means the touch screen driver designed for fingers is overloaded. At worst, use a mousepad/cardboard/insulator under your hand so that only the capacitive pen/finger is active

Oh! Thank you so much! Can I answer my own question?

You can always answer your own question, I would still update your question to include make/model/OS version in case there is some setting or to at least confirm the lack of a setting for future readers.

Nothing I have found would indicate that device supports active pen or has capacitive palm rejection. As you have the device, feel free to write an appropriate answer.

Hi, I am very sorry for replying late but I wanted to ask something related to this. You said that it is a driver problem, so, Can some custom rom fix this issue? I don't know if it is a hardware limitation. Thanks!

Touchscreens have I believe a hardware defined number of touch points that it can resolve and send data on. Modern phones handle around 5 which is good for pinch-to-zoom with rejection for errant finger/foreign matter on the screen. A palm could be one or several errant touch points which needs to be rejected. If all of the user's hand touch points don't overload the digitizer, a driver/Custom ROM seems possible but I'm not sure of the effort involved for whatever piece of software is doing the rejection. See: http://dirkmittler.homeip.net/blog/archives/tag/palm-rejection for other paths.

This tablet handles 10 touch points. I tried that app with the "safe zone" feature where it rejects touch input, but I found that when I put my palm on that area, the screen still becomes non functional. So, it seems like it is an OS or hardware limitation.  And I don't think the palm is acting like multiple touch points because when I put my palm lightly it acts as one giant touch point, so maybe the overloading of the touch driver is a more probable reason. Thanks!

By the way, could you please tell me how the phone determines the size of a touch input? I heard that it has something to do with distortion of electrostatic field of the touchscreen. If that's the case then it seems it is a problem of the controller or something like that. I don't know. Thanks!


text:
How do I block the Tethering and Hotspot Active notification from showing?
The device is Samsung Galaxy M31. I have searched for a method but couldn't find out. Can anybody help me out?

Make your search query generic. Such as, how to hide or remove a system app persistent/sticky  notification in Android. See my answer. https://android.stackexchange.com/q/163338/96277

@Firelord thanks!


text:
There is no way for me to boot recovery mode on my tablet
So, I recently thought about rooting my Lenovo Tab M10 (according to the TWRP site, TB-X605F), so I flashed the latest version of TWRP to my tablet from fastboot, and realised: "Oh. I can't boot recovery on this." Holding power+volume down brings me to fastboot again, as expected. Power+volume up shows a weird "FFBM Mode" message in what looks to be the Arial font, centred on screen, on a grey background. Holding power and both volume buttons boots as if i was just holding power. I have no idea what to do. None of the fastboot boot commands exist on my tablet, nor do some of the fastboot oem commands. I am running Android 9.0 Pie on my tablet, and Linux Mint on my PC, using the adb and fastboot packages if that would help.
UPDATE: I managed to (accidentally) find out that if I boot to android, then hold power, volume up, and volume down at the same time until it turns off, then release power as the Lenovo logo appears, I can boot the stock recovery. However, I need to flash TWRP, and then boot it before booting android so it doesn't get overwritten. I still have no answers, but at least I know I can actually boot recovery mode.

So you have enabled OEM unlock in Android Settings and unlocked bootloader?

that's strange because Vol Up should work. try again with/without usb cable. if no success you are left with rooting via official method and 'reboot recovery' from adb or terminal (with root)

I've always managed to boot into recovery by pressing PowerButton+VolUp+VolDown until the phone boots up. It usually enters recovery after that. I have tried this on another lenovo device I have codenamed a6020a46.

@alecxs still doesn't work, weird

@Robert i have, and i can't re-lock it from the developer settings for some reason

@linux_enthusiast oh, i forgot to add that doing this just boots normally, i'll add that in the post
(edit: i didn't forget, oops)


text:
Installing SuperSU with Twrp to root android
I am having trouble installing SuperSU from Twrp Recovery. The steps I used are as follows:

Boot into bootloader: adb reboot bootloader
Flash recovery to twrp image file: fastboot flash recovery twrp-3.5.2_9-0-ali.img
Open recovery mode, opens twrp
Twrp asks for decryption password, I don't know what to do so I
press cancel
Twrp asks if I want to keep system read only
I swipe to allow modifications
I click install
I find /external_sd
I click UPDATE-SuperSU-v1.80.zip
I swipe to confirm flash
It says successful, but also says unable to mount storage unable to mount /data/media/TWRP/.twrps
I click wipe cache/dalvik
I swipe to wipe
I click reboot system
I input my password to start device
I look for the SuperSU app, I don't find it.

So something messed up and SuperSU didn't install. Any ideas?

How old is the device (which is it and what Android version runs on it)? Nowadays nobody installs SuperSU, everybody uses Magisk instead.

Its a Motorola G6, I can try Magisk later, but I think its a file access error.

11 failed because you didn't pass 15 into 4


text:
Do WhatsApp photos need to be kept on the device in order to save them?
I have Google Drive backups turned on for WhatsApp, which I understand is for restoring lost conversation history. Android often prompts me to clear out my WhatsApp photos folder, though, to free up space. It makes me anxious because I may accidentally click yes, leaving me with my conversations but no photos.
If I clear the folder, are the photos gone forever?
If not, are they backed up in Google Drive along with the chats? Are they still shown in the app as thumbnails to download from the backup? How does it affect the user experience?
Once cleared, can the photos be accessed in another way? Either through a "preview" of my whole history (unlikely), or a folder in Drive with the photos (still unlikely since it's probably a hidden, app-specific folder)?

Google Drive backup is not linked in any manner to the WhatsApp folder of your device's internal storage. When you accidentally clear that folder, the media files gets deleted, and hence WhatsApp becomes unable to show those files. You can only see the chats, while the media files' thumbnails get blurred in the chats.
The way out is the following. Uninstall WhatsApp and then reinstall it. Make sure that the Drive account where your WhatsApp backup is stored is present in the device where you are installing WhatsApp. Now login to WhatsApp with your WhatsApp number, and WhatsApp will prompt you to download your chat backup. Accept that prompt, and your chats will be restored, along with all the deleted media files. The media files will even be restored in the WhatsApp folder of the internal storage.
Note: Three crucial points to remember:

After your media files get deleted accidentally, make sure WhatsApp doesn't perform any chat backup (if in case, the daily or weekly backup option is turned on in your account). If a new backup happens after deletion of media files, the previous Google Drive backup will be modified and a subsequent restoration through the process mentioned earlier won't be able to restore the media files.

After reinstallation of WhatsApp, if you don't accept the backup prompt, then you won't get any option to download backups later.

If WhatsApp doesn't prompt you with any backup message, it's probably because the Google Drive account isn't linked to your device (or maybe some other glitch). You will require to uninstall and reinstall WhatsApp again, and follow the mentioned procedure.

Hope this helps!


text:
How to counteract USB Rubber Ducky (or other bad USB) on Android devices?
I've read somewhere that it's possible to use mouse and keyboard on Android devices. Because that's possible, it's also possible to use devices like USB Rubber Ducky to automate key presses to hack into an Android device.
So, how would I counteract that?

I'm assuming you are thinking of a PIN brute force attack. If no root/no Custom ROM you are limited to: (a) if the device doesn't supports USB-to-Go / USB HID so a keyboard/mouse might not work (b) the default behavior of that ROM for a PIN / Pattern attack. You should clarify if root/Custom ROM are options.

afaik gatekeeper prevents too many attempts and increases timeout and depending on password strength it will factory reset after 30 attempts anyway - do some test


text:
Android IoT device using excessive data over random ports
I have a large number of rooted IoT devices from an industrial supplier that are meant to run as an advertising unit. The goal was to install a standard piece of advertising software designed for android and configure it in it's housing for deployment. These devices are running a rooted Android 6.0.1 Kernel Version 4.1.17-g900299-dirty
However some of these devices are consuming insane amounts of data - over a 30 day period, 300gb of ethernet data is being used by the device, this is according to the Data Usage view within the OS Settings. However the application causing it is "Android OS"...
I used a packet sniffer to perform a couple 30 second packet captures as well as a couple longer ones. I reviewed the data and I see that across each device affected the port is random, but it's consistent that there's always 1 port transferring 80-90% of the data seen in the capture. The traffic seems mostly upload traffic (bytes sent from device to remote host), but that hasn't always been the case. Triggering a reboot seems to cause the service to pick a new port during boot.
I tried using netstat -tulpn in termux to check what process is using this, but the pid section is blank across the board. I see this port is listening, though.
I've looked at lsof -i | grep <port> but nothing comes up on any of the affected devices.
ps aux | grep <port> is not returning anything either.
Within the captures, it seems like there are a couple consistent hosts that they're reaching out to within a single device, but across devices this is not true. However I'm noticing that the remote host port we're contacting tends to be 4001... is that relevant?
I've read that it's possible it's an OS Upgrade issue where we're downloading updates that somehow fail and cause this awful cycle... but when I looked into the services running that it seems like it's already disabled (as referenced here: Google Play Services High Internet Consumption )
Does anyone have any suggestion of how I can track this down and stop it?

If you have multiple of those IoT devices use use and place it in a network you monitor via Wireshark (especially check for DNS requests to understand which server the devices communicate with). My guess would be that those devices are infected with a malware (e.g. crypto miner or ad fraud clicker). The only question is if they have been infected after installation or if they come "pre-infected" from the manufacturer. Regular updates are 99% of all cases delivered by a http(s) server on port 80 or 443.

@Robert yes that was my fear... I did use wireshark for this, the hosts being connected to are anonymous, reverse dns lookup hasn't yielded any information other than they are cloud hostings themselves. Good to know that google sends updates of http/https. Thanks for your feedback!

Just to clarify Google does not send any updates. Android updates are provided by the device manufacturer. And the device polls for them using configured update URLs. If you don't see DNS queries at all communication is done on IP level which would be really suspicious. Make sure to first start your sniffing environment and then boot the device to be checked.

I have found the issue. It appears that the application Apache Storm was loaded onto these machines.
It was being called by a shell script install-recovery.sh that was sitting in the /system/bin directory. This shell script was being invoked by the init.rc script, a quick search for the shell script name in the init returned it being called as the flash_recovery service. Pretty sneaky...
To address some other issues I had, I couldn't find the pid or process name in netstat because I wasn't the right user, swapping to the root user using su was wrong, I needed the tsu package so that I could retain the bash environment scripts that termux was giving me - going to root caused me to enter a different shell type that had different commands, which is why netstat was failing.
Hope that helps someone in the future.
Thanks


text:
Prevent app auto-install when accidentally clicking an ad
I have Samsung Galaxy S20. When I get an ad on something like a game or whatever, I'm obviously going to click the X (close button) in the corner.
The problem is, sometimes I miss it because they make it so small, and when I miss and click any part of any ad, it will automatically start installing it even tho I never gave it permission.
It used to just open the app store, which was annoying but I'd prefer it to this nonsense breach of my privacy. All ads do it, not just weird ones. It did it for Candy Crush once.
I know it's not the setting "ask before download" because I've tried that.
Is there a setting or something I can do to stop it from automatically installing these apps from the ads?

Which Android device and Android version are you using? This is pure malicious behavior on part of ad playing app.

You might want to report this app on Play Store (or respective app store) if you installed it from there. This behavior is usually not permitted by the store's policy.


text:
open failed: EACCES (Permission denied)
I am trying to copy the file from /storage/emulated/0/test.txt to /cache/SH_DIR/ via android user application ,
getting error like below :
java.io.FileNotFoundException: /cache/SH_DIR/test.txt: open failed: EACCES (Permission denied)

When I have created as system application like , Included Application code as past of AOSP then able to copy the file to /cache/SH_DIR/ location.
May I need to add anything in the SEpolicy to copy file to /cacahe/SH_DIR/ from user application.
Can you please help me , Thanks in advance.

How do you copy files - using an app (then please edit your question and provide app name and link to Play Store) or from a PC via USB/MTP?

I am trying copy file from application (pragmatically), and that application I have developed.

Sorry but this site is for Android users only. For app development questions please use https.//stackoverflow.com. When posting there include the relevant code parts of your app into the question so that the other developers can help you identifying the problem source.

Sure, Thank you

BNTW: Are you sure an app has write permissions to create a file in /cache/SH_DIR/? I have never seen an app using that directory. Even with adb I don't have access to /cache.

Question has been recreated on SO: https://stackoverflow.com/questions/67999464/java-io-filenotfoundexception-cache-test-test-txt-open-failed-eacces-permis


text:
WhatsApp backup to Google Drive
I am planning to switch to a new phone. so on the old phone, I start WhatsApp backup to Google drive and I waited until it was completed. then I wanted to make sure that it is completed so I started the backup again and it showed me that it has some data and started uploading again.
I am now confused. are my chats backed up or not?

Well, even I have encountered such a weird problem. But no worries, your chats are already backed up. For further confirmation, visit your Google Drive account and go to the Backups section. You should see a backup listed, namely, WhatsApp Backup , along with the time when the backup was completed. Each time you do a new backup, the time gets renewed.
If such a backup isn't listed, then perform the backup again. If it is, you can conveniently proceed.

Every time you do a new backup, it will be uploaded to the Google Drive cloud. So, that's a cycle you'll forever keep on seeing. If one backup is complete, then you can switch to your new device.
Just in case something goes wrong, the data will remain on your old device and you can re-login there using the SMS OTP. Once you're satisfied that all data is restored on the new device, you can wipe your old device.


text:
Oem unlock failed- fastboot
What's the reason for oem unlock failed? I searched a lot, couldn't find an answer.

fastboot flashing get_unlock_ability

oem unlock  is as the command implies an OEM command which means it is manufacturer specific if it is implemented and how it works. A lot of devices don't have this command at all. Make sure it is really supported by your device.

@alecxs as i mentioned my device  bootloader is unlocked now. So get_unlock_ability should be true/1

I am sorry but your question is very confusing please state exactly what you are trying to do, what command(s) you execute and what result/errors you get for each command.

No prob :) Edited my question

so we went from unlock failed to how flash custom rom? not only headline is misleading but also your comments. Why do you want unlock bootloader if bootloader is unlocked already? if partition system doesn't exist you probably should flash it to existing target (like system_a) or use fastbootd (dynamic partitions)

@alecxs  Apology if you got me wrong. I edited because Robert found my description confusing and asked me to clarify things. My question is still the same. In edited and unedited part, I used total 3 "?". All of which are about  OEM unlock failed . Your reply was helpful too :)  I will use fastbootd I think.

I also used fastboot flash a_file.img  which produced error - oem unlock failed unlike  fastboot flash system hsjsj.img  which give partition error. I noticed fastboot flash something produce oem unlock failed error, that's why I wrote "if I try to flash.........." In 3rd line.

please read Robert's 1st comment - there is no error and nothing to fix. furthermore can't see  "flash something produce oem unlock failed error" on your screenshot - are you sure about that?

It's my 2nd time unblocking this devious. Previous time when I unlocked the bootloader "fastboot oem unlock" worked. This time I'm getting error. My screenshot was about partition error which I posted   in a gsi group to get help. Added here to reference step 8. Also it contains the oem unlock failed error.

This post is getting messier and perhaps out of topic. I guess I need to improve "how to ask".... After Robert read  I will remove the edited parts and also improve and shorter my description to make it more cleaner. Can you answer why  error- Oem unlock failed occur in general? Thanks a bunch to both of you for your replays and time :)

fastboot flashing unlock is the official command. fastboot oem unlock is something only oem knows how it works. if bootloader is unlocked already that is probably the reason why it fails (you won't ask your mom to open the door if it is already open, or she would give you an error on that command at least) I barely see the relation between flashing failed and oem unlock failed if your bootloader is unlocked already

I'm not asking about the behaviour of fastboot oem unlock. Or anything particularly about oem.I'm asking about error- Oem unlock failed. I get this from  multiple commands. Anyway I am closing and removing the edited parts.

you get "error- oem unlock failed" [...] "from multiple commands"?? which command(s) exactly (others than fastboot oem unlock)!? what error exactly!?

Question closed as per OP's attempt to close their own question but the vote expired.

Make sure you have OEM Unlock enabled under Developer settings from your phone.
And also install Android Bootloader drivers on windows. https://stackoverflow.com/a/35076765/942317


text:
Securely Sideloading In-House Apps
I am working in a secure environment where we do not have wireless communication of any kind, so the only way of installing an app on our Android devices is to sideload it - the original sideloading, over a MTP USB connection.  I would like to mitigate the inherent risks associated with sideloading by only installing apps whose signatures are verified using our public key.  I am working with Android 8.1+, so I get the relatively safer opt-in per app setup.  Is there any way of letting Android know to (only) install apps that my organization has signed?

Do you use an Mobile Device Management (MDM) system to be able to apply policies onto the devices?

Currently no.  I'm not aware of any MDMs that work without wireless capabilities, do you know of one?

So your devices do not have Wifi and they do not have a mobile connection? You did not mention that in your question. Have you thought about running an isolated Wifi hotspot for configuring the devices (a hotspot that just allows to connect to an isolated PC with a web server).

Edited, clarified.  No wireless communication of any kind; the only means of data transfer is via USB (MTP in particular).


text:
Prevent Screen Wake / Activity from Android Timer
I've got an android timer running through the base clock in android 11 (oneplus 7t).
EDIT: It appears I'm wrong. This is the oneplus clock, not the base android clock. Why they would bother replacing that is an entirely different question of stupidity.
Every few minutes it lights up the screen to let me know the progress of the timer. This is the most useless and dumb features I've seen in a long time. I cannot find any way to turn it off.
To reproduce, go into clock > timer > set one for say thirty minutes. Lock screen. Watch screen illuminate and wake in a process of infinite stupid.
Please help, this is annoying as all hell. I need to have my screen visible in case I receive an important message etc, but I don't want this thing stealing my attention every few minutes.

No repro on Pixel 3a running Android 11 with the default Clock app. The behavior may depend on the Clock app, and OnePlus might customize their own Clock app. Try different 3rd-party Clock/Timer app instead.

Well damn, you are right, it appears to be a oneplus app disaster!


text:
Tried to ungoogle my android device, but accidentally removed a vital package, and neither it or google play store reinstalls through adb or apk's
I've got Coolpad Porto S, which is running Android 5.1. The apps I have been trying to reinstall were com.android.vending and com.google.android.webview (I don't have concrete evidence but after uninstalling it I am unable to access any browser application like duckduckgo or even steam) by using "pm uninstall -k --user 0 APP".
I've been trying to install those back using apks I got from apkmirror, but if I do through my phone or through adb they appear in the app list as "Downloaded", however they're also "Not installed for this user". I tried installing them through using "adb install -r app.apk" command, then going into "adb shell" mode and using "pm install -r --user 0 app.apk", but still same result. If I don't use the -r option, it just gives me INSTALL_FAILED_ALREADY_EXISTS error.
If it helps, upon doing "pm enable --user 0 com.android.vending" it gives me "Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=4418, uid=2000, package uid=10015" error.
My phone is not rooted. Anyone got any ideas?
Edit: After tinkering about for a bit, I am still having a ton of issues with doing that. If it helps, I found the base apk location for the webview app. It didn't work trying to "pm install -r --user 0 directory", because INSTALL_FAILED_DEXOPT, but I managed to get the crash in logcat.
E/installd(  263): DexInv: --- END '/data/app/com.google.android.webview-1/base.apk' --- status=0x0100, process failed
I/PackageManager(  777): Dexopt done on: com.google.android.webview
W/PackageManager(  777): Package couldn't be installed in /data/app/com.google.android.webview-1
W/PackageManager(  777): com.android.server.pm.PackageManagerException: scanPackageLI
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.scanPackageDirtyLI(PackageManagerService.java:6343)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.scanPackageLI(PackageManagerService.java:5635)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.replaceSystemPackageLI(PackageManagerService.java:11107)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.replacePackageLI(PackageManagerService.java:10917)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.installPackageLI(PackageManagerService.java:11432)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService.access$2800(PackageManagerService.java:248)
W/PackageManager(  777):        at com.android.server.pm.PackageManagerService$6.run(PackageManagerService.java:9278)
W/PackageManager(  777):        at android.os.Handler.handleCallback(Handler.java:815)
W/PackageManager(  777):        at android.os.Handler.dispatchMessage(Handler.java:104)
W/PackageManager(  777):        at android.os.Looper.loop(Looper.java:194)
W/PackageManager(  777):        at android.os.HandlerThread.run(HandlerThread.java:61)
W/PackageManager(  777):        at com.android.server.ServiceThread.run(ServiceThread.java:46)
D/PackageParser(  777): isGmoROM() return false
I/PackageManager(  777): Linking native library dir for /system/app/WebViewGoogle
I/PackageManager(  777): Perform pre-dex opt for package: com.google.android.webview
I/PackageManager(  777): Installation done for package: null
V/PackageManager(  777): + starting restore round-trip 20
V/PackageManager(  777): No restore - queue post-install for 20
V/PackageManager(  777): Handling post-install for 20
I/art     (  777): Explicit concurrent mark sweep GC freed 28070(2MB) AllocSpace objects, 23(1188KB) LOS objects, 14% free, 22MB/26MB, paused 1.836ms total 161.529ms
I/art     ( 9195): System.exit called, status: 1
I/AndroidRuntime( 9195): VM exiting with result code 1.

Not sure if it helps, but here it is.

If your device is not rooted you can simply perform a factory reset and all apps will be there again.

Yeah I would do that, however I am more looking for a way to do this without factory resetting my device since I do have some applications (for example, bank authentication) that can't be easily reinstalled after factory reset.

Instead of re-installing you can just try to re-enable them. Both should be system apps that can not be deleted from your device thus you can not uninstall them just disable.

I've already tried it, and as stated in the post it gives me "Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=3298, uid=2000, package uid=10074" error message. Doing it through phone and not adb doesn't work either, because it shows the app as being enabled, and disabling it resets it to factory state which does not function because of the same "Not installed for this user" message.

pm install-existing com.google.android.webview – the APKs are still on the device, you just made them unavailable to the specified user.

Doesn't work, it doesn't recognize install-existing. I'm pretty sure you've meant "cmd install-existing com.google.android.webview", but that feature is, as far as I'm aware, only usable with android 7.0+, and my android version is 5.1.


text:
where is configured how an app will auto restart?
For ex, i know several apps that i have stopped will auto restart exactly at 00:00h everyday, making it lag horribly or even crash any game i am playing, what severily degrades my android realm user experience.
Others will instantly restart like the nosy weather app.
Others start when wifi connects, when the screen still locked wakes up, like watzap and gmail.
but Others i cant guess, like the useless email server (as i use gmail app), or chrome, and a few others. I could still try to uninstall a few of these, but others are really useful and i dont want to.
If there could have a way to tweak this auto-android-messing feature, so that it could be suspended while i play games, my android realm user experience could greately improve and i would be happier again.
Any tips?
Android 6.0.1
sm-j700m

When an app instance is created is determined by Android and should base on events like battery state changed or something like that. Additionally apps can schedule events for themself so a certain action is getting executed at a certain time. For battery saving in idle mode Android my move those events forth or back in time and combine them so the system doesn't have to wake up that often. Not sure if this also happens if the device is not idle/sleeping. If it also happens this could explain the behavior you encountered at midnight.

What games are affected? Does your phone really meets the requirements for playing them? Especially that your device has only 1.5 GB RAM may be on of your problems if the game needs it's all.

Exactly, the game needs it all, and works great after i unbloat the phone by uninstalling many apps thru adb shell. So the real problem is not the hardware. I pkay AnimA and pubg mobil elite.

Good idea, i will try the battery saving mode (not the ultra), may lower the insistence!

Apps can schedule background tasks in a number of ways. So they are awakened by the system whenever needed. Services (foreground and background), broadcast receivers, cloud messaging and widget providers are common examples. This answer may help stop apps running in background: Disable autostart on boot and restrict background execution.

Prevent just autostart/restart (but still allow it jusr after reboot) would be great. But when i run: adb shell appops set com.android.vending RUN_IN_BACKGROUND deny; it will "error: unlnown operation string: RUN_IN_BACKGROUND", Edit: my version has it not https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-6.0.1_r81/core/java/android/app/AppOpsManager.java

RUN_IN_BACKGROUND op was added in Nougat.