text:
Notification with inverted color with dark mode
On Android 10, negative images i.e images with inverted color are displayed in the notification from custom-notification apps when dark mode is enabled.
Notification with light theme/dark theme:

How to prevent that from happening?

The image is not simply inverted since the inversion of blue<->orange. Instead, these are actually 2 different images specially designed by Amazon themself; one for light theme, another for dark theme. Perhaps the follow-up/real question is: "How to force an app using light theme's images on dark mode's notification?"

No, they aren't, Actually, I have only captured the screenshot of these notifications on my device. and they are same notification, the only difference is of theme .

It's possible for an app to detect if the Android system is on light/dark mode, then the app can customize the notification (or, everything) that depends on it, including the image on the notification. Also, considering that common ad/promotion images might have already been downloaded and cached already, so it can be swapped immediately. That said, we need more data points if this is only from this specific notification, or only from the Amazon app, or all images, and also it might be helpful to know the device model unless you know if this is a global issue on Android 10.

Firstly, this notification is not from amazon app, and this is happening only for custom notifications(layout designed with remote view) only if I use android-defined templet the notification image doesn't change color.

After a quick research, I noticed it also happened on the Facebook app and the New York Times app. I stand corrected. However, whether it's a bug or not, I'm not sure if there's a way for the end-user to fix this (perhaps need rooting? Magisk/EdXposed module?). For developer-approach solutions, you have to rely on Stack Overflow's community instead.


text:
How to modify or add more dictionary tabs in Cambridge dictionary fast app?

As you can see in the picture, this Cambridge dictionary app has some dictionary tabs, such as: Cambridge, Oxford. Those dictionary tabs have a link of their website. How can I add more dictionary tabs like collins, merriam dictionary?

May be you should simply contact the author and ask to add this feature?

@robert They might not take any action in this regard.

Unless the sites & parameters are not hardcoded but stored/configured somewhere else instead, I'm not sure it's possible for us to change anything. Reverse-engineering an app and doing some coding is outside of the scope of this site though.

How can I know the sites & parameters are not hardcoded? Is there any way to find it?

Hello Rajib. Please don't vandalize your post by editing it and making it incomprehensible.

I downloaded the APK file and loaded it into Jadx.
The dictionary tabs and their target are hard coded in the APK DEX byte code (it is a large switch case code entry in the MainActivity that sets the target url of each of the 6 tabs).
Therefore modification requires decompiling and recompiling skills - however such actions are out of scope of this site.
Therefore the only answer we can give to you is to contact the author of the app and ask if other dictionary sites can be added.

I can decompile this app . Please tell me what files should I modify? Please robert

@Rajib Sorry but I can and will not help you on that topic. Decompiling does not necessarily means you are able to recompile the app. The highest chance of decompiling and recompiling is using apktool however it decompiles not Java but Smali code and modifying smali code is a tough task and usually requires good programming skills.

source: Stack Exchange

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

sort: votes


text:
Factory resetting a Galaxy Tab 3
I haven't used my Galaxy Tab 3 in ages and would like to use it again, but it's not working as it used to. I would like to perform full system restore, but I'm having real problems.
Last month:
I press the On / Volume up / Start buttons to get to MANUAL MODE.
It gives me an option to do a factory reset, and says to use the volume buttons to get to this option.
I press to go down and it skips over the reset option, meaning I can't do it.
Today:
I press the On / Volume up / Start buttons and it crashes on MANUAL MODE saying:
-- Applying Multi-CSC...
Applied the CSC-code : BTU
Successfully appled multi-CSC.

How do I do a factory reset in another way?

If you have access to the OS, then the normal way should work? 1) Touch Settings.  2) Touch Privacy. 3) Touch Factory data reset. 4)Touch Reset device. 5)Touch Erase everything.  Of course, I assume you backed up everything already.

My bad. For the Tab3, it should be in the Accounts tab. Then Backup and Reset. I've recently had a Tab3 with lots of issues (crashing, etc.) and a factory reset solved it.

Yes, thank you - I found that. I'll run that a little later and hopefully this will clear everything. Thank you again.

I suggest to back up your data first if it has not been done. The standard way of resetting a Samsung Tab 3 tablet to factory is this:

From the Home screen touch Apps.
Touch Settings.
Touch the Accounts tab.
Touch Back up and reset.
Touch Factory data reset
Touch Reset device.
Touch Erase everything.

Please be advised that this erases everything on the tablet. Including history, documents, passwords, etc. Do not do this before making a backup if you have sensitive data on the tablet. Also, this will probably be different if you installed a custom OS. Refer to the documentation for said OS in that case.
Source: How do I perform a factory reset on my Samsung Galaxy Tab 3?

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


text:
Geo/Location tagging a photo when taken from 'lock' screen
I have enabled location / geo-tagging of photos on my phone (Samsung S10+, prior to that, S7 - same results). Photos taken generally record location information as expected. However - if I take advantage of the phone's ability to launch the camera app from the 'lock' screen (that is, without unlocking the phone by PIN/fingerprint/face recognition, etc) then location information is NOT recorded.
I can see how this would be an 'unintended consequence' behavior; if you don't unlock the phone session, then the camera app may be launched in a different 'security context', and in that context, it may not be able to read the internal GPS info. However - I cannot think of any scenario where allowing the camera app from a locked phone to access location information could be a problem, and I'd like to change this behavior if possible. I rely heavily on the 'geo-tagging' information stored in photos and it is quite often a pain to unlock the phone while hiking, etc (fingerprint reader still not exactly perfect, and having to enter PIN when trying to capture a 'scene' not always desirable).
I've tried every setting I can find relating to security and location services, and I've searched high and low for answers. Part of the challenge here is, keywords such as 'lock', 'location', 'camera' etc result in a high number of hits, and 99.9% of people seem to be asking for how to enable location tagging in general, not specifically when the camera is launched from the lock screen.


text:
How to install Twitter on Galaxy Tab 3
I've just done a factory reset on my Samsung Galaxy Tab 3, which is now running Android 4.1.2.
I've been to the Google play store and tried to search for Twitter app, but it doesn't show up.
I've found it in a search and followed the link, but it's showing This app is not supported on your device.
All other apps like Facebook, Instagram, Skype, etc, etc, show up and install fine, but not Twitter. Any ideas why?
Note : I've tried to update my android software, but this says there is an error and it can't be installed.

The latest version the Twitter app supports for Android 4.1+ is 6.39.0 (March 22, 2017).
Play Store prevents app installation if it is incompatible with the device (as of January 2020, AppBrain shows the minimum of Android 4.4+).
One way to install old apps is by downloading the APK and installing it. The APK is available on APK Mirror. The device also needs to be set to allow installation from unknown sources.
Note that even if it is possible to install the app, there is no guarantee that the app will work smoothly since it also depends on the current Twitter infrastructure. In that case, it is also possible for some browsers to create a shortcut on the home screen to the Twitter site.

Thanks Andrew, but I don't particularly want to install the old app, I'm looking at getting the latest official Twitter app, as I've done with Facebook and instagram ( + several others ). How can I update to Android 4.4+?

@WSix Samsung Galaxy Tab 3 7.0 only supports Android 4.1.2 officially. Thus, you have to rely on custom ROM for newer Android. You can refer to this question to find custom ROM, or this site for more information.

Thanks. I'll look into trying to upgrade via ROM, but I'm not sure about doing it just for running Twitter. Maybe I'll just stick to the online version - or use tweetdeck in the Firefox App.


text:
How can one change the battery saver to dark mode in Android 9 (Samsung Galaxy S9)?
I use Samsung Galaxy S9 with Android 9.
Screenshot from the Google Drive Android application, which seems to indicate that it is possible to change the theme in the battery saver:

How can one change the battery saver to dark mode in Android 9 (Samsung Galaxy S9)?

The "Set by Battery Saver" option only means that the app's theme is determined if Battery Saver is enabled or not.
The Battery Saver itself does not have its own theme, but apps can query if the setting is enabled or not for customizing its behavior, including the theme.
On Google Drive (and some other Google apps, and possibly 3rd-party apps), this setting means that if Battery Saver is enabled, then use the theme that saves battery (e.g. dark theme).
To summarize:

Dark: always use the dark theme
Light: always use the light theme
Set by Battery Saver:

If Battery Saver is off: use the light theme
If Battery Saver is on: use the dark theme


text:
How to delete some files on unbootable phone with low memory?
I had been ignoring low memory on my android phone (Nexus 6P running copperhead OS) for some time.
OS suddenly crashed out of no where and started booting up infinitely. After forcing it to restart and entering the password for decryption, phone never finishes the boot procedure. Seems that due to zero or very less space, some error must be occurring, which doesn't let the OS finish the boot procedure.
It's my assumption that low memory could have been the issue, so trying to find a way to delete files and let OS have some space to boot up.
(1) Bootloader is locked. I can see "Device is LOCKED." at bootloader screen. So, unable to boot latest TWRP via fastboot boot twrp.img. Receiving error FAILED (remote: unlock device to use this command)
(2) ADB sideload option available in copperhead OS recovery doesn't allow any random update.zip. Tried to run an updater script but it fails. It seems that recovery is validating the package. Errors are E: footer is wrong, E: Signature verification failed, E:error: 21 Installation aborted
(3) Tried to find some vulnerabilities which let bypass security features, but didn't find any except this which has been fixed in bootloader angler-03.79 being used.
(4) Phone is running an old android OS : 8.1.0 June 2018 AOSP build, and since then there could be security vulnerabilities being introduced. So are there any vulnerabilities or exploits which can be helpful here?

ask copperhead support if they can provide update.zip for wiping app cache

How did you install the Copperhead custom rom without unlocking the bootloader?

@alecxs I have asked. Let's see what reply I receive.

@Robert Earlier I had the ability for OEM unlocking as stock android was working. I used the official docs to first unlock bootloader and then lock it post installation of copperhead OS.

it seems there already exist OEM solution. ask for update recovery mode with new option "Lacking storage booting"
https://forum.xda-developers.com/showthread.php?t=3885938

I'm struggling with the same exact issue on CopperheadOS now. I just want to get rid of it and install Lineage after this is over. Did you ever have any luck with this issue? I'd hate to have to just ditch the phone because of a full disk and locked bootloader.

You can ask the OEM developers if they can help with an official solution. Problem is the 1st Level Support will always deny such requests. You can request the source code instead (in compliance with the GPL) and if you are lucky you will get direct contact (email address) to any developer this way instead.
OEM could easily provide (signed) emergency-update.zip containing following files

META-INF/com/google/android/updater-script
ifelse(is_mounted("/data"), ui_print("deleting cache files..."), abort("ERROR: Data not mounted"));
package_extract_dir("tmp", "/tmp");
set_perm_recursive(0, 2000, 0755, 0755, "/tmp");
run_program("/tmp/rmcache.sh");
ui_print("done");

tmp/rmcache.sh
#!/bin/sh
/tmp/busybox find /data/data -type d -iname cache -exec /tmp/busybox find {} -type f -print -delete +

tmp/busybox
use the busybox binary (toybox segmentation fault):
  www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl

this would free up storage space by deleting some unimportant cache files only. this way it will neither harm the device nor create vulnerability for exploits
this emergency-update.zip can be applied via the recovery menu's "Apply update from SD card"
after this you should be able to boot at least once and get the availability to immediately enable airplane mode (prevents data usage), usb-debugging (for adb uninstall in case system_server crashes) and backup/clear your Internal Storage via MTP USB (or adb)

Appreciate for providing the updater-script. I have a question here. How updater-script will be able to decrypt the /data. Shouldn't there be a command as well which uses the decryption password to first mount /data and then delete some files?

Fortunately, I have received reply from the copperhead, but it suggests towards adb backup which I am unable to figure out. I have tried adb backup -all in recovery mode, but that spits out adb: unable to connect for backup: closed. It should mean, backup is not available. I see only adb sideload <update.zip> to be enabled and a message in recovery mode : Supported API: 3. Among 3 APIs, sideload is one, what could be other two?

I have asked for either signed zip or key for signing the zip, as copperhead says Nexus 6P is out of support. Don't know about key unless it is being used somewhere else, but hope to receive at least the signed zip.

for sure they won't leak signing key, that would vulnerable all devices


text:
Will a hard reset remove any malicious software/viruses/malware from my Experia X?
I suspect my phone is compromised, and if a simple hard reset will fix all potential problems, I'll do that. Will that solve all potential problems? I'm concerned that the guy who just replaced my phone's screen (had my phone's password) installed something dubious. He said he also adjusted or replaced one or two other components, but did not charge for them.
When I got the phone back it was fine, but an hour later when I unlocked it it was reset, no apps, photos, etc, and the keyboard had changed from English to English-&-something-pictographic, maybe Chinese. I restarted the phone and it looks normal again. But the battery is draining at twice the speed it normally does, which leads me to suspect something is happening in the background.

password is not required for replacing touch screen. boot in recovery mode perform system integrity check. if nothing is modified and bootloader is locked, factory reset will fix your software issues. but bear in mind problem may hardware related

nevermind, seems sony has no recovery mode. but there is safe mode you can try for few days and compare battery drain

Does this answer your question? Can a Factory Reset fix Malware Problem?


text:
Prevent mobile data from automatically turning off after a while on Xiaomi Mi 4
I use Xiaomi Mi 4 (Android 7.1.2 Nougat) phone's hotspot to surf the internet on a laptop. After sometime approximately 20 minutes, the phone automatically turns off the mobile data and I have to turn on the mobile data manually.
I think the phone turns off the data automatically because it is left undisturbed and to save battery. However, the phone is already plugged-in to the charging spot.
How to prevent mobile data from automatically turning off after a while on Xiaomi Mi 4?

Thanks for the clarification. I have incorporated the info to the question while also removing unnecessary/unrelated info to solve the issue. If I accidentally removed/changed the meaning, feel free to [edit] and improve the question. Thanks.

https://i.stack.imgur.com/3au0S.png

Thanks @alecxs the last option in developers options > always keep cellular data open

this solved my problem
developer options > Networking > Cellular Data always active
toggle this option on


text:
Samsung Galaxy Buds immense RAM requirement
I was about to buy some Samsung Galaxy Buds but then saw in the system requirements that they required 1.5GB of ram to operate!
"Compatibility" section under "specifications"
https://checkout.telstra.com.au/consumer/rewards/headphones-speakers/145
I'm using an old S7 Android Galaxy phone. Right now it is using 2.9GB out of it's available 3.5GB of RAM just with the apps I have open.
I'm worried that my phone doesn't have enough ram to use the headphones.
Do the ear buds really require 1.5GB of RAM to operate?

I think this is just a misunderstanding:
The Galaxy Buds don't need 1.5 GB RAM free (nor do they use 1.5 GB RAM). The requirement means that your Android device needs to have at least 1.5 GB RAM installed in total. How much is free at the moment is of no concern (this is managed by Android).
Therefore older devices and low-cost devices with 1.0 GB or even 512MB RAM are officially not supported.
Your Galaxy S7 has 4GB RAM in total, hence you are fully compliant with the requirements.

My new headphones are on their way!  Thanks for the clarification

Your buds shouldn't ever need 1.5GB of RAM, since it's just a bluetooth device that relays information from your phone. If your device supports Bluetooth, then it's a given that it will be supported.


text:
How important is "Gorilla glass" in a smartphone?
My phone's glass has cracked over time, and I'm planning to replace it. I've noticed that a lot of the models I'm considering to replace it with (and my current phone itself) don't feature "Gorilla Glass".
My question: How significant is the lack/presence of "Gorilla Glass"? Are other covering glass types simply unbranded and not as well known, but similar in resistance to shocks/bending - or does "Gorilla Glass" really have a significant advantage?

It depends on the usage of your device. It's just a extra layer of protection and comes with some advantages over others (Like scratch resistance, splash proofing).

If your phone has a soft back cover and a glass protector on top of
  the screen then dropping it from a table or bed won't hurt that much
  but your phone will get some scratches on the body. Mild pressure like
  carrying your device inside your pocket or under the pillow or inside
  a bag won't affect. Corning Gorilla Glasses actually passed several
  drop tests, tension tests, scratch tests.

You can trust Gorilla Glass because they don't make glasses only for smartphones. They also make glasses for industries. Corning is the company who manufacture Gorilla Glass.

So, answer to your question is it's not significant at all. You must
  replace it with other unbranded screen protections. You must have to
  check the relaiabilty of that product before using it. And that's
  where brand recognition comes into place. Corning will provide you
  warranty on specific products. And because many users already used it
  so you can obviously trust them.
Choice will be yours. If you able to make the right purchase no matter
  it's branded or not it'll always worth.

Can you be more specific about what you mean by "usage"? I carry it around in a soft shell and a screen protector, but it does take some pressure, rubbing, and once in a while - a fall from tabletop-level or lower.

I corrected the answer and if it helped you then upvote it.


text:
Why does my phone contain WhatsApp Images both on my SD card and in my internal storage?
I know that WhatsApp Images are saved by default on the internal storage of my phone. However, on my phone there is also a WhatsApp media file on my external SD card. This folder contains the same number of image files that is also displayed in my Gallery App (when I click on WhatsApp Images). The WhatsApp Images folder on my internal storage also contains way more files than the one on my SD card. Can someone explain what's going on here?

it is a leftover from previous phone where you have used the same microSD card

Android version? Device? ROM? On stock Android apps cannot have direct write access to external SD card except to private directories. And I don't think WhatsApp uses Storage Access Framework. Explained here: https://android.stackexchange.com/a/218469/218526. Make sure by downloading new images if those are saved to external SD card. What's the path of external SD card where you see WhatsApp Images directory?


text:
Open Gapps Google Services installation on Android 5.0 based TV
Device:
manta.com.pl 43" TV with Android 5.0 on the board.
I have an root access through ADB shell.
Issue:
I need google services to run Youtube for Android TV.
How I tried to solve:
I donwloaded Open Gapps Nano for Android 5.0, extracted a few files from it and pushed to the /system partition. I don't have TWRP recovery there.
.
./etc
./etc/preferred-apps
./etc/preferred-apps/google.xml
./etc/permissions
./etc/permissions/com.google.widevine.software.drm.xml
./etc/permissions/com.google.android.media.effects.xml
./etc/permissions/com.google.android.maps.xml
./etc/sysconfig
./etc/sysconfig/google_build.xml
./etc/sysconfig/google.xml
./priv-app
./priv-app/PrebuiltGmsCore
./priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
./priv-app/PrebuiltGmsCore/lib
./priv-app/PrebuiltGmsCore/lib/arm
./priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
./priv-app/PrebuiltGmsCore/lib/arm/libwearable-selector.so
./priv-app/PrebuiltGmsCore/lib/arm/libAppDataSearch.so
./priv-app/PrebuiltGmsCore/lib/arm/libleveldbjni.so
./priv-app/PrebuiltGmsCore/lib/arm/libgcastv2_support.so
./priv-app/PrebuiltGmsCore/lib/arm/libgoogle-ocrclient-v3.so
./priv-app/PrebuiltGmsCore/lib/arm/libinertial-anchor-jni.so
./priv-app/PrebuiltGmsCore/lib/arm/libWhisper.so
./priv-app/PrebuiltGmsCore/lib/arm/libgcastv2_base.so
./priv-app/PrebuiltGmsCore/lib/arm/libjingle_peerconnection_so.so
./priv-app/PrebuiltGmsCore/lib/arm/libjgcastservice.so
./priv-app/PrebuiltGmsCore/lib/arm/libgmscore.so
./priv-app/PrebuiltGmsCore/lib/arm/libvcdiffjni.so
./priv-app/PrebuiltGmsCore/lib/arm/libsslwrapper_jni.so
./priv-app/GoogleServicesFramework
./priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
./priv-app/GoogleBackupTransport
./priv-app/GoogleBackupTransport/GoogleBackupTransport.apk
./framework
./framework/com.google.android.maps.jar
./framework/com.google.android.media.effects.jar
./framework/com.google.widevine.software.drm.jar

But google services don't start, I see the following native crash:
    I/ActivityManager( 2608): Start proc com.google.android.gms for service com.google.android.gms/.chimera.GmsIntentOperationService: pid=3452 uid=10014 gids={50014, 9997, 3003, 1028, 1015, 3002, 3001, 1005, 1007, 3007, 2001, 3006} abi=armeabi-v7a
W/ProviderHelper( 3430): Unknown dynamite feature providerinstaller
I/DynamiteModule( 3430): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller( 3430): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
V/NativeCrypto( 3430): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 286 native methods...
W/ResourcesManager( 3452): Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
W/ResourcesManager( 3452): Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
W/ActivityThread( 3430): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
W/System  ( 3430): Could not create com.google.android.gms.org.conscrypt.OpenSSLSocketFactoryImpl with ClassLoader android.app.LoadedApk$WarningContextClassLoader@3dc96d1d: com.google.android.gms.org.conscrypt.OpenSSLSocketFactoryImpl
I/ProviderInstaller( 3430): Installed default security provider GmsCore_OpenSSL
I/art     ( 3172): Explicit concurrent mark sweep GC freed 2659(106KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 4MB/7MB, paused 1.726ms total 35.015ms
I/Safeboot( 3430): Checking safeboot...
W/art     ( 3452): Verification of void rtf.onCreate() took 138.949ms
W/DynamiteModule( 3452): Local module descriptor class for providerinstaller not found.
W/ProviderHelper( 3452): Unknown dynamite feature providerinstaller
I/DynamiteModule( 3452): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller( 3452): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
V/NativeCrypto( 3452): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 286 native methods...
I/art     ( 3430): Background sticky concurrent mark sweep GC freed 33203(1508KB) AllocSpace objects, 1(16KB) LOS objects, 13% free, 10MB/11MB, paused 7.459ms total 861.420ms
I/Safeboot Condition( 3430): No need to enter Safeboot.
W/Primes  ( 3430): Primes not initialized, returning default (no-op) Primes instance which will ignore all calls. Please call Primes.initialize(...) before using any Primes API.
W/ActivityThread( 3452): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
W/System  ( 3452): Could not create com.google.android.gms.org.conscrypt.OpenSSLSocketFactoryImpl with ClassLoader android.app.LoadedApk$WarningContextClassLoader@21fd60b7: com.google.android.gms.org.conscrypt.OpenSSLSocketFactoryImpl
I/ProviderInstaller( 3452): Installed default security provider GmsCore_OpenSSL
I/Safeboot( 3452): Checking safeboot...
I/Safeboot( 3452): Not entering safeboot; wrong process.
W/art     ( 3452): Suspending all threads took: 6.199ms
W/Primes  ( 3452): Primes not initialized, returning default (no-op) Primes instance which will ignore all calls. Please call Primes.initialize(...) before using any Primes API.
I/art     ( 3452): WaitForGcToComplete blocked for 3.045s for cause HomogeneousSpaceCompact
W/art     ( 3452): Suspending all threads took: 9.346ms
F/libc    ( 3452): Fatal signal 6 (SIGABRT), code -6 in tid 3452 (gle.android.gms)
I/DEBUG   ( 3304): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 3304): Build fingerprint: 'AndroidTV/nt72668_hikeen/nt72668_hikeen:5.0/LRX22C/huangds04090501:userdebug/release-keys'
I/DEBUG   ( 3304): Revision: '0'
I/DEBUG   ( 3304): ABI: 'arm'
I/DEBUG   ( 3304): pid: 3452, tid: 3452, name: gle.android.gms  >>> com.google.android.gms <<<
I/DEBUG   ( 3304): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
I/DEBUG   ( 3304):     r0 00000000  r1 00000d7c  r2 00000006  r3 00000000
I/DEBUG   ( 3304):     r4 b6736114  r5 00000006  r6 0000000b  r7 0000010c
I/DEBUG   ( 3304):     r8 2b4ae920  r9 a3aa2761  sl 00000000  fp be41a8b8
I/DEBUG   ( 3304):     ip 00000d7c  sp be41a578  lr b66bff29  pc b66e4250  cpsr 600e0010
I/DEBUG   ( 3304):
I/DEBUG   ( 3304): backtrace:
I/DEBUG   ( 3304):     #00 pc 0003b250  /system/lib/libc.so (tgkill+12)
I/DEBUG   ( 3304):     #01 pc 00016f25  /system/lib/libc.so (pthread_kill+52)
I/DEBUG   ( 3304):     #02 pc 00017b43  /system/lib/libc.so (raise+10)
I/DEBUG   ( 3304):     #03 pc 00014399  /system/lib/libc.so (__libc_android_abort+36)
I/DEBUG   ( 3304):     #04 pc 00012b68  /system/lib/libc.so (abort+4)
I/DEBUG   ( 3304):     #05 pc 000a082d  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #06 pc 00017557  /system/lib/libc.so (pthread_once+90)
I/DEBUG   ( 3304):     #07 pc 00072fc5  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #08 pc 000a086d  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #09 pc 000a063f  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #10 pc 000a0753  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #11 pc 0003c70b  /system/priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
I/DEBUG   ( 3304):     #12 pc 01c9a8bd  /data/dalvik-cache/arm/system@priv-app@PrebuiltGmsCore@PrebuiltGmsCore.apk@classes.dex
I/DEBUG   ( 3304):
I/DEBUG   ( 3304): Tombstone written to: /data/tombstones/tombstone_00
W/art     ( 3430): Suspending all threads took: 1.387s

Any suggestions how I can solve it?

I think you need Google Account Manager first, then the Google Services Framework to install Google Play Services?

Do I need Google Account Manager and Google Play?

Yes. You need them since Youtube is a google app. You need Google Account Manager, Google Services Framework and then Google Play Services. As for Google Play, if you can install it it is the easiest way to install Youtube afterwards.


text:
Pixel 3A Android 10 Assistant auto comes on and stops gesture, unable to reset connected devices
I have a brand new Pixel 3A with the recently updated Android 10 update.
Google Assistant has been activated while in my laptop bag.
I'm assuming this is because of the incessant urgings that Google displays on screen, and of course the new android doesn't swictch the screen off when you hit the power button, it leaves an 'awake' screen that can respond. Well, however it happened, Assistant is enabled and it is causing a number of problems, and I can't switch it off.
The main issues are:

Assistant repeats continuously on the arcane workings of the system. Voice messages like 'Checking WebAPP for updates' 'Downlaoding update' '10% downloaded, etc'
Assistant stops the phone Whenever any event status changes Examples of this are 'Home screen 1of 2, double tap to enable' etc., etc., etc totally take over the user interface.
The UI is now a triple tap pause system. To do anything, you tap an icon and wait for it to be highlighted (at which point a stream of help instructions are played back) then double tap to activate. This happens for each and every tap including back buttons, home buttons, whatever.The system is now an incredibly slow, novice system.
The gesture system is disabled. This is the real killer. Without the gesture system you are locked into only what is visible. You cant get into the app drawer, for instance. And you can't get beyond the displayed items in the settings screens.

My Problem is:
The instructions to switch off assistant are as follows:

Open the google app
Tap the compass at the bottom right
Tap the profile button top right
Tap the Assistant
Scroll down to the Assistant devices,Devices section and switch off.
BUT gestures and scrolling are disabled

You can see to the Face Match setting, but connected devices is somewhere way, way down below that. And one can't get there. Not for love nor money.
Under Android 9, I could deactivate with a voice command.
That seems to be gone.
Is my only solution to do a factory re-set?
Anyone out there with a solution for me?

The whole description looks like the TalkBack accessibility feature, not Google Assistant. Related: Accidentally turned on talkback and How to scroll screen when using text-to-speech accessibility?

Thank you Andrew T., that was the the solution. Two fingered swipe.


text:
How to install new Python modules in the Dcoder app?
The Dcoder app supports the Python programming language. However, for a code that requires 3rd-party modules (e.g. mlxtend), it will show the following error when running:

Traceback (most recent call last):
  File "fun.py", line 7, in <module>
    from mlxtend.data import iris_data
ImportError: No module named mlxtend.data

Process finished with exit code 1.

How to install new Python modules in the Dcoder app?

Does Dcoder have a console? This may be out of scope for this site, but you may be able to use the pip module to install your missing module.

As of 2 February 2020, Dcoder does not support 3rd party modules.
This was their developer's statement on the Twitter

Currently we do not support 3rd party modules, we are working on 3rd party module integration, keep an eye on our updates.

Below is my personal reasoning before getting their reply.
The reason is, as stated in their app's description, it uses an online cloud service to compile and run the code.

Disclaimer: Dcoder uses array of strong cloud based compilers to compile the code and display output, [...]
[...]
Dcoder is an online compiler, now run, compile and execute your code snippets on your own android mobile devices.

To put it simply, Dcoder does not install Python nor compile the code on the user's device. Instead, the app works as a code editor, sends the code to the online compiler and runs it, then returns and shows the result on the app. As such, the modules are restricted to their online compiler.
To list which modules are installed, run the following code on Dcoder
set1=set2=set3="None"

set1 = 'list(k[1] for k in pkgutil.iter_modules())'
set2 = 's.modules.keys()'
set3 = 's.builtin_module_names'

import pkgutil, sys as s
def calculate(what): return eval(what)

print(calculate(set1))
print(calculate(set2))
print(calculate(set3))

Code modified from SOLOLEARN's Discussion Board


text:
Cannot disable safe mode by restarting, how to disable safe mode?
My Android 10, Nokia 7.1 phone ended up in safe mode. How do I disable this?
Tried restarting and turning off/on as per instructions I've found online but it always starts up in safe mode.

Is your volume down key responding correctly? Have you had possibly liquids get inside the buttons?

You could try booting to recovery and clearing cache from there. If your battery is removable, shutting down, removing it and the SIM card for a few minutes, and putting everything together again is also reported to help in some such cases.


text:
How to boot Ubuntu persistent live USB on Android?
I'm discovering the possibilities offered by persistent live USB using Ubuntu 19.10 and I was wondering if it would be possible to boot with Ubuntu on Android (i.e. using your computer capabilities through your smartphone) using those multi-plug USB sticks which have both USB3 and micro-USB2.
In other way: can I get some kind of a boot menu on an Android device in order to boot with a persistent live USB in order to access my Linux computer tools and setup from a wider range of devices?

Near duplicate: Is it possible to boot an Android phone from a USB drive?
You question has two parts:
1. How to boot from USB on Android device?
On most of the recent Android devices you can't boot even Android from USB, rather Ubuntu or some other OS.
PCs:
PC world has a standardization. BIOS / UEFI, ACPI and discoverable buses make every PC almost identical to the OS, so we can boot any OS. BIOS lets you select boot device, loads bootsecotor / MBR and bootloader which loads OS kernel. UEFI Boot Manager is even more sophisticated, it can read filesystems and load one of multiple BLs or even Linux kernel directly from EFI System Partitions (ESP).

Multiboot compliant BLs can load multiple OSes. Windows BOOTMGR and Linux GRUB can also chain load each other. Latter can act as 1st stage BL (MBR/VBR) as well as 2nd stage (GUI boot manager which reads configuration from filesystem). See Boot Process: Android vs. Linux
Phones:
Phone's world has a lot of fragmentation. They are based on SoC design, so every vendor implements its own closed-source firmware. Non-enumeration-capable buses depend on Device Tree, which is stored on flash storage as blob (DTB), and loaded by final BL (like U-Boot, LittleKernel / Aboot) and Linux kernel. So SoC firmware has to bootstrap the device to BL stage so that it's able to identify hardware.

Image source: Exploiting Qualcomm EDL Programmers
SoC firmware cannot boot from a generic MBR/VBR or filesystem, instead it has hard-coded paths to partitions containing BLs. Also the strict Chain of Trust in boot process loads only signed binaries, unlocked BL can break this chain. See Rooting Android phone without unlocking BL, VB and AVB.
However final BL allows somewhat interaction with user to boot fastboot, or Linux kernel from boot or recovery partition. Both partitions don't have filesystems, but a standard raw format as per Android specifications.

Conclusion:
So due to small size, non-standardization, closed-source / signed nature of firmware and minimal functionality, SoC firmware + DT + Aboot setup is no way comparable to BIOS / UEFI + ACPI + GRUB setup. Functionalities like USB communication and graphical selection menus would make the BL kernel bigger than the by-design acceptable size limit. Note that "on embedded ARM platforms the core of LK is typically 15-20 KB."
However SoCs can boot from USB, particularly those used with development boards or single board PCs. See Difference between BootRom and BootLoader.
EFIDroid is a 2nd stage BL based on UEFI (EDK-II). Currently it replaces kernel in boot partition (like other multi-boot hacks), not the original BL.
But we may see (SoC firmware and/or) some (or all) BLs being replaced with UEFI and Device Tree with ACPI (particularly on ARM as it's not very unlikely). It'll make booting from USB devices on mobile phones more probable. For instance Qualcomm's Sanpdaragon 835 already has its SBL replaced with UEFI-based XBL (which also supports ACPI on Windows) and Aboot with ABL. See UEFI on ARM-V8  based Linux Embedded System.

2. How to boot Ubuntu on Android device?
On Android devices it's not possible to boot Ubuntu even from SD card or internal flash memory, rather USB.
Hardware Discovery:
Generic OSes like Ubuntu are not modified for a specific hardware environment. On an ACPI compliant system, after power on, OS may immediately start querying buses: "what hardware is attached to you?", which is not the case with DT based devices. See The case of UEFI for Windows on ARM.
Similarly on PCs Power Management is looked after by ACPI while on phones PMIC is usually a part of SoC - again hardware specific.
Kernel:
Ubuntu userspace is not compatible with Android kernel as latter is largely modified e.g. Paranoid Networking, qtaguid, USB gadgets etc. It's theoretically possible to boot Ubuntu kernel from boot.img e.g. using fastboot, or load it by Android kernel using kexec. However even bigger problem is vendor's incomplete implementations of hardware drivers in kernel, which are not part of upstream kernel source (the one used by Ubuntu). Running console login and traditional X server etc. might not be easy to achieve, see Android vs. Linux.
Binary Blobs:
Android is not strictly based on UNIX's "Everything is a file" theory. Mainly due to license issues, a lot of hardware work is managed by (again) closed-source vendor specific HALs which act as bridge between Android's native/Java framework and kernel e.g. sound, graphics, RIL, fingerprint, camera, sensors and so on. Since Android 8, HIDL (based on Binder IPC) specifically separates vendor-specific binary blobs from AOSP as well as Linux kernel.
Hardware Abstraction:
In addition to binary blobs, AOSP userspace daemons like surfaceflinger, audioserver and gatekeeperd also interface Java stack (which runs apps) on one end, and kernel or HALs on other (which interface hardware). So every hardware component is not simply a file in /dev with well documented kernel interface, instead there are layers of Android-specific IPCs and APIs between apps and hardware.
This model enables AOSP Java framework to be agnostic about lower-level driver implementations, and restricts apps direct access to hardware resources. Apps need manifest permissions to pass through protected APIs in order to access a system resource including storage, network, camera, mic, sound etc.
Partitions:
AOSP depends on a few partitions like /system and /data but HALs need more. On Qualcomm devices vendor daemons like sensors.qti, qseecomd, rmt_storage and wcnss_service read and write to raw block devices (e.g. ssd, rpmb, fsg) and filesystems (e.g. modem, persist and dsp). So camera, sensors, TEE, Wi-Fi, bluetooth, fingerprint, aDSP etc. won't work without extra partitions. SoC, processors, modem, TZ, RPM and BLs also use other partitions for boot process, OTAs, recovery, secure boot, encryption, boot/charging logo and so on. Read more about Android Partitions and Filesystems.
So it's not possible to boot an OS entirely from a single partition. PCs can be started if there is no storage device, but Android devices won't turn on if eMMC / UFS is damaged. Hardware-specific partitions are required at pre-kernel as well as post-kernel stages. That's why Android devices are more vulnerable to be permanently bricked.

Conclusion:
On Android phones there is no generic Android OS, instead we have ROMs which are tightly bound to a specific hardware. So booting Ubuntu on Android device requires integrating all hardware-related vendor code in Ubuntu kernel and/or userspace.

LINKS:

Why don't Android hardware manufacturers build to a common BIOS specification?
Device Tree: What It Is?
Engaging Device Trees.pdf
U-Boot on Arm32, AArch64 and beyond
Nvidia Tegra Boot Flow
LK BL Overview.pdf
Booting Android (Slides)
Comparison of bootloaders
Android HAL and Device driver architecture


text:
Is there a setting to blank the screen when the on/off switch is pressed for lockscreen?
I"m running Android 10, and I've not had this problem/issue with the lock screen on any previous iterations of the OS.
The problem
In the past, When the on/off switch is pressed, this enables lockscreen and the system goes into a wait state. The screen blanks and stops monitoring gestures or taps. It needs the on/off switch or the finger recognition scanner to come back on.
What I'm looking for
A setting that will switch the screen off until I hit the on/off switch, preferable not the finger scanner

I think you are trying to disable double tap to open...? You can disable it in Gestures/Moves in the settings.

No, Double tap is resolved. The Accessibility problem arose because I put my hand in the laptop bag in the front pocket (where stuff is kept) and touched the finger scanner. Because the screen remains active during lockscreen, it switched on and then (as chance happens) bounced about  unseen until it hit talkbalk. I've had every iteration of android since that first Motorola (remember that one? with the sliding keyboard?) and the most recent was the Nexus 5X. All of them blanked the screen when the off button was depressed. Problem is as stated.

This issue pre-dates the TalkBack. Having an 'active' screen means that whenever the phone is bumped (in the pocket, laptop bag etc) it momentarily responds with an unlock screen, this drains battery, and can't be good for the phone. The inadvertant  finger scan is an escalation of all this, of course.

Resolved after a factory reinstall


text:
How can I use a dark theme for all webpages on Chrome for Android?
How can I use a dark theme for all webpages on Chrome for Android?
I don't mean having a dark theme for only the Google chrome UI (which can be done via Settings, Theme, Dark Mode) but also the webpages themselves, so this can be done with https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en on Google Chrome for desktop.
Example of website with no dark theme:

This is usually done with CSS injection, which this question asks (but not yet answered...)

@AndrewT. thanks for the pointer

Open Chrome
Tap the 3 dots in the top right corner
Tap Settings
Tap Themes
Select Dark

I haven't come across a site that this doesn't work on yet

Thanks, doing so changed the Chrome UI to dark theme, but not the webpages themselves, from what I can see.

Strange. Which version of Chrome are you using? Mine is 79.0.3945.136

I use the same version. Example of website with no dark theme: https://i.stack.imgur.com/lQBud.jpg do you have a dark theme?


text:
Where Firefox for Android is keeping add-on generated files?
I want to find a folder, where Firefox for Android is keeping files generated by installed add-ons (list of saved tabs in OneTab, for example).
I've tried to do a full root file system search (e.g. onetab.html, store.json) and looked insede specific app folders (e.g. /data/data/org.mozilla.firefox). Found nothing but the .xpi extension files.
According to Help @ one-tab.com, tabs data is located in C:\Users\Username\AppData\Roaming\Mozilla\Firefox\Profiles\Profile Folder\jetpack\extension@one-tab.com\simple-storage\store.json for a Windows desktop version. On Android, using rooted Amaze, I've found nothing similar.
Where should I search next? Are those files even visible for a root user?

Browse into the location /data/data/org.mozilla.firefox/files/mozilla/. Among many directories there would be one directory whose name would end with .default. That is your Firefox profile directory. Within that directory, you can find what you are looking for. Extensions (xpi) are saved inside the extensions directory. Some extensions may have data inside the directory browsers-extension-data while others may have it stored inside storage/default.
You can access those files by entering the URL file:///data/data/org.mozilla.firefox/files/mozilla/ in your Firefox browser. If you want to access them using a non-Firefox app, such as a file explorer app, than you need to have root access.

Thanks. In case of OneTab, found an .sqlite file with some blobs. Guess this could be a storage of a list of links. Investigating...


text:
Is it safe to remove "thermal-engine" from system/vendor/bin
I want to play PUBG on LG V20 so I renamed this file. Is it safe? Maybe it's safe until phone doesn't start turning off? Using LOS 15.1.

Umm, what does it have to do with playing PUBG? Did you rename this file because it's mentioned somewhere?

Yes. https://www.reddit.com/r/PUBGMobile/comments/99n9j1/one_plus_3t_fix_for_frame_lags It helps a lot to play PUBG

I think this question can not be answered as there is clear definition of "safe". The higher the temperature of your CPU gets and the longer it stays with this temperature the faster the CPU degrades and will die earlier. Therefore the only "safe way" is not to manipulate the system and not to play...

@Robert Okay, thanks, if you really want to play game, would you let GPU and CPU to heat up to 85°C?

What I would do does not matter, the only question is if you want to take the risk. As nobody knows how high the risk is there is not much we can do to you. You simply have to decide yourself if you want to accept the risk or you don't.

No, you must find a way to disable thermal throttling in kernel modding (make custom kernel). Thermal driver will panic if you delete thermal-engine, mine after delete this all thermal driver enabled. I have to disable it every time phone booted

As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.


text:
Mathematical symbols issue in displaying
I'm having a strange issue on my android device. Oh, this is mathematical:
On my android device, using Brave, Opera, or DDG browsers I cannot see many symbols in mathematical pages on wiki. The symbols do not show up or are showing up as white. It seems to be just a few symbols but it can make it very difficult to follow what is going on. The symbol p usually is missing(but q show sup).
e.g., https://en.wikipedia.org/wiki/Neighbourhood_(mathematics)
All the p's and V's are missing(but they take up space).
I have no idea what is going on and I don't know where to look for to ask. Is it a wiki problem? MathJax? These browsers? My device? This is making it very painful to use the device to read wikipedia. I haven't seen it on other sites but I don't go to many other sites for math.
Any ideas?

A screen shot would be good that demonstrates the problem. And also please add the Android version and the device model you use.

Unlike the usual suspect of "missing font", this looks like an SVG rendering issue on browsers since Wikipedia uses SVG images for Maths symbols, or those images are blocked by the network. Could you mention the device model and the Android version? Also, are those images shown using different Wi-Fi/mobile data?

@AndrewT. I thought it might be related to SVG. I don't have mobile data. Android 6 Lenovo. Although I don't know why it would matter.  Do you have any idea what I can do to figure it out? Is SVG rendering external to the browsers? Would there be a possible browser I could try that could help narrow down the possibilities?


text:
How to block app silent installation
Recently I noticed I have opera browser installed. I definitely did not install it because I was sleeping at that time. I checked installation time and revealed it was the day before yesterday

Checking installation source like this outputs android:
adb shell dumpsys package com.opera.browser | grep -e "installerPackageName"

so I don't know whether it was through Play Store or through APK.
Can I found out who have done this and how can I prevent future intrusions?
P.S. I have MIUI 11.0.3 Global device
UPDATE:
INSTALL_PACKAGES permission
apps

com.miui.msa.global
com.android.vending
com.miui.cloudbackup
com.google.android.packageinstaller
com.xiaomi.mipicks
com.android.managedprovisioning
com.facebook.system
com.miui.analytics
com.xiaomi.discover

users

android.uid.backup
android.uid.shell

services

com.lbe.security.miui/com.lbe.security.service.SecurityService

REQUEST_INSTALL_PACKAGES permission

android
com.miui.msa.global
com.android.browser
com.miui.player
com.google.android.gm
com.google.android.apps.docs
com.android.chrome
com.xiaomi.midrop
com.miui.hybrid
com.miui.securityadd

users

android.uid.bluetooth

AFAIK playstore always sets the installer, so I rather suspect a different source. I'd copy adb logcat ASAP (might be too late for this case, as the buffer is certainly already overwritten after two days) and grep that for evidence. For potential culprits, check which apps have the permission to install other apps (INSTALL_PACKAGES) – though AFAIK only system apps should be granted that. Logcat still is the best approach, if you catch such an issue in time.

check which apps have the permission to install other apps (INSTALL_PACKAGES) how to do this system-wide? or the only way is one-by-one approach?

adb shell dumpsys package | grep INSTALL_PACKAGES would come to mind. Or just taking the output of dumpsys package and use some editor/viewer to look for that string (might be easier to get the context that way). Of course you could also "automate" that by something like for app in $(adb shell pm list packages |awk -F: '{print $NF}'); do adb shell dumpsys package $app | grep INSTALL_PACKAGES; done, which then should give you a list of package+perm.

unfortunately logcat was overwritten already. Is there any way to increase logcat persistence period?

@Izzy added apps with permissions in question update, anything looks suspicious to you? should be facebook able to install?

look at this. Can Facebook App Manager install anything or only his own apps?

Might be possible. But please forgive that I cannot analyze your apps for you – especially not those I don't use myself (or even have on my devices). My hints were intended to get you started, I cannot dig deeper into that myself.

but what is the correct way of analysis? can you give hints or some docs?

Sorry, I currently lack the time to dig into that. There are some apps capable of "collecting" the logcat, keeping a "full copy" e.g. on the SD card for later investigation (see here and watch e.g. for "Syslog") – so once you notice such an app popping up, you can grep that collection for details; installation should appear there, too. That's the approach I'd try.


text:
How to let phone calls from a specific number bypass 'Do Not Disturb'?
I often turn on 'Do Not Disturb' mode, especially at night. I would like a few specific phone numbers to be able to bypass the Do Not Disturb if they call me, so that I can be altered in case of emergency. Is there any way to do it?

Never tried it, but doesn't "starring" a number whitelist it for DND? Or was there an additional setting involved? I just vaguely remember "starring" (marking a contact as favorite) was involved. Worth a try while waiting for answers. Let me know if it did the trick ;)

You should be able to set an exception rule to allow calls and texts from certain people (All/Contacts/Favorites).
Different manufacturers will have different set ups but you should be able to get to this setting by going
Settings > Sound & notification > Do Not Disturb > Exceptions
You may need to turn on Do Not Disturb to alter these settings.


text:
Which one has lower latency? HDMI to Type-C or HDMI to HDMI or the same?
I wonder if Android smartphones with HDMI port has advantage versus without if they have USB Type-C. If I have Type-C, I can use Type-C to HDMI adapter.

I don't believe there exists a smartphone with HDMI? All the phones I know need an adapter. I think you mean to compare MHL with USB-C.

Is this not HDMI?

Wow...there's one that exists. But it's 10 years old and Android 2...so people wouldn't use it nowadays. Virtually no name branded phone from the last 5 years have hardware HDMI afaik. It's just too big to fit on a phone.

If the phone supports output of display signal via USB-C alternative mode (Displayport signals) you should get the lowest latency if you don't convert the signals and connect a monitor via Displayport. For example using an USB-C to USB-C cable and an monitor with USB-C input port. Or an USB-C to Displayport adapter plus matching cable. HDMI signals are always converted and may therefore have a small latency.

@Robert Thanks, I have LG V20. Is DP Alt mode support is the same as MHL support? I found that my device support MHL but didn't find info if it supports DP Alt Mode. I'm planning to buy this. Will everything work on my device?

@vasik988 No, MHL is the ancient Micro-USB based version of transmitting. It seems that there is also a version that uses the USB-C alt mode but the data is according to the spec different to Displayport via USB-C alt mode. Therefore you need special USB-C MHL converter that output e.g. HDMI: http://www.mhltech.org/usbtype-c.aspx

What specs are saying that it isn't compatible with my device? I also took a look to Microsoft Display Dock and I saw a video in Youtube that can be used with LG G5 and in specs there is nothing about MHL. I think, item from Aliexprees, should function the same like this Display Dock. Do you see any difference?


text:
How to disable popup/heads up notifications globally in Android 9 Pie?
I recently upgraded to a Samsung Galaxy S9 with Android 9 Pie installed. It has an annoying feature, each time I e.g. get a message via Telegram, a pop-up window appears over any other application I am currently using on top of the screen:

I want to disable that for all apps. I found this reddit answer:

When you're in notification settings for an app, there's the label for
  the notification channel and the checkbox next to it. Checking the
  checkbox enables/disables notifications entirely. Tapping the label,
  as unintuitive as it is, brings you to the advanced settings where you
  can disable pop up/sound/vibrations.

If I go to e.g. Settings>Notifications>Telegram, I can tap each single chat and disable pop-ups. This is tedious, surely there is a global option to turn this invasive feature off?

On a regular Android device you can configure notification in Settings -> Apps and Notifications -> scoll down and disable notifications every listed app. But as you are on a Samsung device this may be a bit different as Samsung does not want it make it users that easy...

Related topic: How to disable Heads Up notifications in Android Lollipop?, How to disable Peek / Heads Up notifications globally in Android Oreo?

@AndrewT. Thanks. So it seems in 5.0 you need an app do disable these notifications, and in 8.0 you need a command line tool but then the setting is gone once you restart the phone. In the words of AVGN, what were they thinking?

Yes there is!

Set-up adb. Use THIS for reference
Enter adb devices and make sure your device is there
Enter adb shell settings put global heads_up_notifications_enabled 0
And you're done!

If you want to enable it again then just replace the command in step 3 with adb shell settings put global heads_up_notifications_enabled 1
Simple as that!

This is the best answer for disabling it for all apps. I don't want to go through the settings for all apps... Thanks!

My S9+ is running Androud 10 UI2 and Telegram 6.0.1
I had the same issue which I finally solved. I went all through the app settings, then i tried android-apps-telegram settings with no luck.
I finally looked in android-settings-notifications and down at the bottom it says "looking for something else?" Click on the Smart pop-up view option and shut telegram off.

Awesome, they actually listened to the users apparently! For Android 9 I ended up solving it with the Android Debug Bridge as linked to in the comment by @Andrew T.

My S9 is running Android 10 by now and this does not work.

The in-app solution for Telegram 7.1.3 on Android 10:
Menu -> Settings -> Notifications and Sounds -> Private chats (or Groups or Channels) -> set Importance from Urgent to High


text:
Where does Android store the binaries of the apps themselves?
In operating systems like windows there is a special folder like Program Files where the executables themselves are stored. But in android it's kind of amazing that the binaries themselves are hidden after their installation via an APK file, and the APK can be deleted safely. Moreover, the only way to uninstall an app is via the application manager! Can anyone give me insights to the reason behind this design ?

Upon installation the APK file is copied and partially extracted. That you don't see it anymore is not relevant. In any way on Windows you can't edit the program files folder unless you are admin - on Android this would be root and regular devices don't allow anybody to to something with root permissions. Hence there is a different way required to manage applications.

there are no pre-compiled binaries stored for use, android compiles on the fly as needed. if you delete apk from app folder, app will uninstalled on boot https://android.stackexchange.com/q/75166

@alecxs But what if the apk was initially inside a removable SD card, and then the SD card got removed or replaced ?

As others said, all apps don't have native binaries, some are only Dalvik code which is compiled during runtime or at installation time. It runs as a virtual machine. In either case original apk is copied to /data/app/, so it's no more needed. Related: Where Android apps store data? - Why are superuser permissions needed to acess /data partition? - Android apps for “armeabi-v7a” and “x86” architecture

Just answering as the comments suggested,
 /data/app/package.name/base.apk

The APK File is placed inside the data partition.
This is different from Windows as you mentioned.
Windows uses a different protection for System Software called UAC (User Access Control)
whereas Android uses a separated Partition on the HDD ( SSD ) called the System Partition.
All Stock Software is stored under
system/app/*app name*/app name.apk

&
system/priv-app/*app name*/app name.apk

or
system/app/appname.apk

&
system/priv-app/appname.apk

Additional Software from OEM's is usually stored under
system/vendor/app/

However since the new partitions in Android 7.0+ i believe that Vendor is now designated its own partition, making the app directory
vendor/app

Or similar.
Some Vendors put APK's into the system tp be automata installed also under "custom" partition or root folder
custom/app

Furthermore, applications can be built by binaries under
system/bin/

&
system/xbin/

If you're the Administrator of your PC, you can hypothetically destroy the systems integrity on Windows - however due to any changes being placed in /data partition on Android, you can not delete system software or destroy the system integrity without root access.
The data partition & cache partition hold every single modification made to the device - this means a "Factory Reset" just Erases the Data & Cache partitions on Android - VS windows reinstalling the entire system from a separate backup partition.

Thankyou very much!!!


text:
Root my oreo device?
I have some experience with rooting, upgrading, installing twrp and another stuff.
My phone is Samsung Galaxy J7+ with (oreo).
Btw, based on some articles that i've read, it's too risky if i want to root my device in os 8.1 (oreo).
And i just want to make sure if i can still make it.
When i'm rooting my device as far as i know, i need twrp (tar files and installing this will need ODIN) and in this case i want to use superSU, bcz i have bad experience with Magisk and anyway i just want superSU. And i don't really remember if installing twrp and rooting my device will cause my internal data to be erased or not.
And i've seen some videos on YT explaining another alternative without twrp, that is using cmd or whatever but please don't suggest me to use this way cz it looks complicated and i doubt if i can do that. Another way is using "KingRoot". But it doesn't work when i tried it on my device with os 7.0 (Nougat). It seems KingRoot only work on the old os?
Back to my main question, So to make it easy, i'll list my questions :

Is it possible rooting device with os 8.1 (oreo)?
Will my internal data get deleted if i install twrp and root?
How to root my device without losing my internal data?

Hope you can help me.
Actually i'm frustated bcz i accidentally deleted some files a month ago and lost my important photo. And there is no way except rooting my device to get back my deleted photo.

yes 2. yes 3. no way

Installing TWRP is not a technical requirement for rooting but usually the rooting methods are designed to be easily usable through TWRP. Similarly erasing data is not directly related to TWRP or rooting, but unlocking bootloader is usually the prerequisite which erases data (on most of the devices). But the situation vary for different devices, even for same device sometimes. The possibility to root a device usually depends on if the bootloader is unlockable and if the device got community's attention so that TWRP and rooting methods are available.

Does this answer your question? Is there a way to root an Android phone without unlocking the bootloader?

Why are the rooting apps like KingRoot not working anymore?

https://forum.xda-developers.com/showthread.php?t=3747535


text:
How to remove the android OS version from the DHCP request?
When my phone connects to my home WiFi network, it sends DHCP request in order to get an IP address. It looks like the following:
22:50:53.743535 IP (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a0:39:f7:5f:c0:45, length 300, xid 0xddd7abec, Flags [none]
          Client-Ethernet-Address a0:39:f7:5f:c0:45
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Client-ID Option 61, length 7: ether a0:39:f7:5f:c0:45
            MSZ Option 57, length 2: 1500
            Vendor-Class Option 60, length 18: "android-dhcp-7.1.2"
            Hostname Option 12, length 9: "localhost"
            Parameter-Request Option 55, length 10:
              Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
              MTU, BR, Lease-Time, RN
              RB, Vendor-Option

As you can see, there's Vendor-Class Option 60, length 18: "android-dhcp-7.1.2" which contains the OS version. Is there a way to remove this from the request?

It's hard-coded in Java DhcpClient:
...
    private String getVendorId() {
        if (testOverrideVendorId != null) return testOverrideVendorId;
        return "android-dhcp-" + Build.VERSION.RELEASE;
    }
...

So the only way is to rebuild your ROM with modified source code. Or use a different DHCP client from command-line. For reference: Connecting to WiFi via ADB Shell.

You can use an extender. My Android comes in the through a TP link extender as:
Vendor-Class Option 60, length 12: "udhcp 1.22.1"

Probably not want you want, but a possibility.


text:
"System" using 342GB storage?
I have a Samsung Galaxy S7 Edge in which I put a 400GB SanDisk micro-SD card to expand its storage space. Seems that didn't work though. The space is not available to me. And I can't really figure out why or how I can make this space available.
When I inserted the SD card, I selected that this SD card needs to be adopted as internal storage (I don't intend to take it out any time soon). And I had Android reformat it as it likes. However the storage app seems to be confused or the partitions messed up.
Bottom line, I'm not able to take more photos or transfer more music onto the phone because it's running out of storage.
Here's what the "Storage Settings" settings menu says about my disk usage:

367GB total used of 728GB

Internal shared storage: 366GB used of 367GB

Apps: 845MB

Images: 483MB

Videos: 0

Audio: 19.50GB

System: 342GB

Other: 3.17GB

Cached data: 112MB

SanDisk SD Card: 0.96GB used of 361GB

Apps: 2.71GB

Cached data: 40.42MB

Bold is my highlight. I don't understand why System is using 342GB or why it's counting the SD card double (the phone itself comes with 32GB built-in storage). Why is it not letting me store these files on the SD card?
I have Termux installed and here's the output of the df command:
Filesystem       1K-blocks     Used Available Use% Mounted on
rootfs             1680128     4560   1675568   1% /
tmpfs              1816220      448   1815772   1% /dev
tmpfs              1816220        0   1816220   0% /mnt
/dev/block/dm-0  378585556  1006608 377562564   1% /mnt/expand/612126b2-7bab-4bf8-8a24-ebacec5b0c23
/dev/block/sda14   4233152  1095448   3121320  26% /system
/dev/block/sda15    197472      188    193188   1% /cache
/dev/block/sda18  25772320 25243840    512096  99% /data
/data/media       25772320 25243840    512096  99% /storage/emulated

So I understand that this /storage/emulated is the one that's full, but somehow in this /dev/block/dm-0 there is this 377.6GB of space being unused. How can I make that space available to me? I've got ADB installed on my computer if necessary. It seems that the only thing saved on the SD card is several apps.

Are you absolutely sure your SD card is not a fake card? What is the source...? I suggest testing it elsewhere if possible.

I did test it in my computer using an SD card adapter before formatting it for Android. Windows showed it had 378GB of space and it had some SanDisk back-up utility on it then. I wiped it. It seemed normal to me then, so I'm pretty sure the SD card itself is (or was) fine. The source was bol.com, a common webshop here in NL, basically our Amazon.

Did you try unmounting and mounting it again? There might be software issues with this capacity as an adopted storage. I suggest using it simply as secondary storage.

You have adopted the SD card as internal storage but data is not migrated. /storage/emulated is still on your actual internal storage (/data/media). // Android's storage reporting is not reliable. There come very frequent questions regarding the confusions caused by this. See my answer to How disk space is used on Android device? for some explanation.

How can I make that space available to me? How to free Internal Storage by moving data or using symlink / bind-mount with Adoptable Storage?

@Natsu We are talking about a Samsung device here. AFAIR Samsung does not support adoptable storage on any device, to force the users buy the more expensive version with more storage.

@Robert not sure about Samsung but dev/block/dm-0 ... /mnt/expand/... shows SD card is adopted.

The answer was found through a comment by Irfan Latif here: "System" using 342GB storage? While I'd found this question prior to posting my own, I had dismissed it as being inapplicable since my df output is very different, and I hadn't found the menus shown in the screenshots there.
What I had to do is to go to Settings -> Storage -> The (almost empty) SD card. Then click on the grippy 3-dot menu in the top right, and select Migrate. You then get into the menu mentioned in the above answer (which was apparently supposed to show up when first installing the SD card, but didn't show for me). I moved the content, which took 15 minutes or so. And since then my phone indicates:

Internal shared storage: 344GB used of 367GB
SanDisk SD card: 26.32GB used of 361GB

When plugging in the phone, it now also indicates 334GB available space, and I can load more music and take more pictures.
Thank you for the suggestions, everyone.

if adoptable-storage is supported from this ROM, all new installed apps will go to microSD Card by default, as long as android:installLocation="auto" is defined in AndroidManifest.xml

check available disk space (of /data or /mnt/expand/*)
uninstall some apps
check available disk space
install some apps
check available disk space

you will see available disk space for /data increases

The apps themselves are not really the problem. I moved apps back and forth in order to install this SD card. The problem is where my photos and music are stored. I put the music on there via USB cable from my computer, but they get stored apparently on the very limited 32GB internal memory now.


text:
Is dhcpcd used in newer Android versions? How to configure new DHCP client?
Basically, there's a file /etc/dhcpcd/dhcpcd.conf . Is this file or dhcpcd used at all? My phone runs Android 7.1.2 and I wanted to change the default hostname using the hostname somename line in this file, but it looks like it was ignored (there was no change in dhcp request).
I've read something about "legacy Android DHCP client" in the dev options, but I don't have this position there, and also I couldn't find anything about the modern DHCP client, which I think is used now - does it have any config file like dhcpcd?

dhcpcd is not used in Android 6+, it was deprecated in favor of Java DHCP client. "Legacy DHCP client" option was available during transition phase but was removed in Android 7 (1, 2). Quoted from source:

The legacy DHCP client has been removed from the platform. The only DHCP client that the platform supports is the DHCP client introduced in M.

net.hostname is set (up to Android 7) by ConnectivityService (runs in Java stack), and DhcpClient uses it (at least up to Android 10). You can set it manually using setprop command or add in some init's .rc file to set on every boot.

does it have any config file like dhcpcd?

No. Java processes running in system_server are not configurable except through some command-line tools e.g. /system/bin/service. However no method is available to set net.hostname.

RELATED:

How do I change the name of my Android device?
How to ping a local network host by hostname?


text:
ADB Root Grant Root Permission to App or Package
I am having a little trouble with my Development Board it is Orange Pi 4B, running Android 8.1
Currently I have access to ADB root and also can modify the system folder or even place files inside the system folder but I want to grant Root Permission to my Application which the OS is not allowing. It also has SU placed in xbin folder but when I install SuperSu it says root undetected.
The commands that I try to gain root access to system were
adb root
adb disable-verity
adb reboot
adb root
adb remount

These all commands execute with success and I have access to modify the system folder but after trying everything I am still not able to grant SU access to my Application.
Even I tried to flash TWRP but the board is not entering Bootloader with the following command.
adb reboot bootloader

the shell starts running as Root. But i want to grant my app permission to have root access

In terminal Emulator SU says Permission Denied. Using Terminal via USB Cable it turns into #.

The issue is that supersu never pops up asking for permission. It grants permission to adb shell running via usb cable and denies all apps that are installed on the board.

Let us continue this discussion in chat.

Just to make it clear: even with the su binary the app(s) will not run with root permissions, they just have the possibility to execute other binaries with root permissions (just like you on a adb shell), but the app itself will still run with regular user permissions.

I ended up building custom image of android and then making the app system app

@UmerKiani right. Marking duplicate for future visitors' reference.

Does this answer your question? How to grant certain apps root permission through ADB?

No this doesnt work on newer android versions

@UmerKiani what doesn't work?


text:
Are there (developer) tools to remove files from Android "Rom" cache, if the smartphone doesn't start properly?
(I have also asked on stackoverflow, as I assume the use of developer tools is neccessary, but I would be very glad to get any working help on here also.
The Google Photo App filled up the 16 GByte "Rom" of my Motorola G5: Google memory overview showed around 6.5 GByte of "Google Photo" data, whereas real (not deleted) photos and videos were only 4 GByte and I had moved those 4Gbyte to the SD card. To be on the save side before hitting "delete" of the 6.5 GByte, I removed the SD card beforehand. But now, when trying to restart, Android is stuck in the booting/start sequence. (I still can enter the pin, then the normal boot/start screen appears, but that only disappears shortly each 5 to 10 seconds. Stuck there.)
Question: Could I access in any way the "Rom" of the smartphone, so I could remove all or part of the 6.5 GByte occupied by "Google Photo", using for example adb?
I have Android 8.1 on the G5 and Win 10 on my computer.

microSD card is readable in windows card reader?

The smartphone doesn't start, regardless which SD card is in it, or if there is none at all.

I ask reformulated: microSD card is formatted as adoptable-storage (bonded to internal storage) and you tried re-insert the same already, but doesn't start?

Yes. (And usually it started with or without SD card, formatted or not formatted.) Though I'm not sure anymore, if I tried another SD card beside the original. Should I try with another SD card??

then you are left with OEM backup tools and factory reset. be aware if microSD card is formatted as adoptable-storage, you will lose this content too

which backup tools?

And what should I do to prevent being asked for the google account password after a factory reset? I can't exclude, that I sadly have associated some randomly generated google-account with some more or less random password. I read, I can't use the smartphone anymore else.??

Could the recover logs of the recovery menu be of any help? Could I apply a helping update from SD card? (via the recovery menu's "Apply update from SD card")

maybe you can figure out google account from logs

How should there the password be in? Let's hope not.

once you remember the google account you can try https://www.google.com/accounts/ForgotPasswd

it is possible to dump (encrypted) userdata partition with QSaharaServer by using the read tag with readbackverify="false" (experts only). for FBE you could then just delete some files. sadly your device uses FDE. the only (unrealistic) chance is to downgrade bootloader in order to make bootchain vulnerable, disable avb and flash twrp (which decryptes userdata). this will take several days for research. you can start with figuring out how to boot in EDL mode via test point

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

https://www.motorola.com/us/lenovo-motorola-smart-assistant


text:
Reverse tethering without rooting or third-party software
The option "USB Internet" can be found by default in the settings of some Androids, allowing to reverse tether.
How could one know that the option does exist and work before buying a device ?
Does it depend on the Android version only ? or the manufacturer ? both ?

That must be a manufacturer specific and device specific thing. Stock Android doesn't provide such feature (though not complicated to implement).

could you provide more details/sources about "not complicated to implement" ? I've read somewhere that it requires a piece of hardware in the smartphone, but I'm not sure about that, that's why I'm asking.

If direct tethering works on your device, all that it needs to setup reverse tethering is a few network routes on PC and Android. On Android it can be added using some VPN-based app (non-root) or manually using ip command (requires root). I'm not sure what kind of source you need. A web search on "reverse tethering" returns a lot of information. You can provide the link to source asking for special hardware, to make your question clear.


text:
Can I charge my Galaxy S9+ with a laptop charger
I was wondering if i could charge my Samsung Galaxy S9+ safely with a USB C laptop charger.
here's what is says on it:
INPUT:100-240V~1.3A 50-60HZ
OUTPUT:20V--2.25A/15V--3A/9V--2A/5V--2A

For Lenovo information equipment use only

Theres a lot more stuff on it but I'm pretty sure thats the only stuff thats important.

The data of the power supply indicates that it is compliant with the USB Power Delivery Standard (USB-PD). If it has an USB logo there should be some sort of "power flash" within that logo to indicate that it supports USB-PD.
The USB Power Delivery standard defines backward compatibility, this means that by default the charger will output 5V and only switch to 9V, 15V or even 20V if the connected device has signaled by the USB PD protocol that it supports this mode.
Based on the information I found the Galaxy S9 / Galaxy S9+ support USB Power Devlivery, however they don't make use of the modes with higher voltage.
Therefore connecting it to the described charger it should charge with 5V 2A.


text:
What would be necessary to use a Rasperry pi zero W as a wifi to usb-C gateway for Android Auto?
As many new infotainment systems in cars support Android Auto, but not wireless. I was wondering if I could program something that would allow to use a cheap Raspberry Pi as a gateway. Effectively emulating a phone on the usb side, but recieving the real data from a real phone through wifi. I'm a programmer, but I don't understand the inner workings of Android's USB system to know if it's possible or not (with or without root).
If I know where to start, I can create an open source project on github. I have experience in both a little Android programming as a few languages like .net core or python to make it work on the raspberries side.
android phone <--wifi--> raspberry pi <--usb--> car system

Like for example Renault easy link that is in my Renault Twingo (2019).

Dont runs Android on the raspberry, just use Raspbian and use it to provide a Wifi access point plus forward the traffic the car system (however the car system works). On the raspberry you just need dnsmasq and hostapd to provide the Wifi access point (there are dozens of tutorials on the net.

Yes I was looking for forwarding the data itself as if the phone was connected by usb

I don't think that this is possible without having to build a totally new Android system. Especially the part "connecting an Android phone via Wifi to whatever but the device (and all apps) thinks it is connected via USB".

Small update: there are now a few devices that do exactly as I described. I'm glad I bought one for €120 instead of spending months and probably more money than that to make an inferior version myself.


text:
Why am I getting an SSL error on my captive portal?
I setup a captive portal on a wireless access point.
If I use a laptop to connect to it, the laptop pops up a browser telling me to login to the captive portal. I can open any browser on the laptop (IE, Chrome, Firefox) and it works fine.
With my Samsung Galaxy S8 (Android 9), when I connect to the wireless access point, Android automatically checks for captive portals, same as every other device does these days. Since it detects it, it also pops up a browser and tries to load the login page, and on my phone, it shows an SSL cert error. Other Android phones don't have this error.

If I tell my phone to stay connected to the WiFi despite not having logged in, and open Chrome on my phone, the exact same captive portal redirect loads without any issues. It is clear that whatever internal browser my phone is popping up, it's not the regular Chrome browser, as that one works fine. It also doesn't appear to be the "Internet" app my phone shipped with, as that shows no SSL error either.
What browser is my Galaxy S8 using to detect captive portals? Why does it have an SSL error when other browsers and devices don't? How do I even begin to debug this?
Note: My SSL cert was generated by LetsEncrypt. It points to http://ocsp.int-x3.letsencrypt.org as the server for verifying that the cert hasn't been revoked. I added this domain to my captive portal's walled garden (bypass) list, so that connections to that domain are NOT redirected, but it didn't help.

Your captive portal has the HTTPS url https://cprewrite.hyperlinkinc.ca? Do you correctly publish the captive portal via DHCP (see rfc7710).

Yes - the device creating the captive portal redirects requests to our login page, located at cprewrite.hyperlinkinc.ca. I know normally captive portals redirect to a web server on the LAN, but ours is remote. As you can see, cprewrite.hyperlinkinc.ca has a legitimate certificate issued by lets-encrypt that is accepted by every modern browser there is. It sounds like the DHCP option might help Androiid detect that there is a portal if it wasn't detecting it, but it clearly does, or there would be no popup.

I would say it is the other way around: announcing login portals via DHCP is the standard and captive portals are outdated hacking techniques.

Please check the developer settings on the device which browser is selected as "WebView Implementation". Make sure the same web browser is selected as you had used for opening the captive portal page. Note: According to SSLLabs the used server certificate is not trusted.

@Robert My Galaxy S8 WebView Implementation lists Chrome, and Android System WebView. Chrome is selected. The other one is greyed out. The Captive Portal popup is definitely not using Chrome, so it's weird that this setting says it should be. Unless you're seeing different results on SSLLabs than I am, or I'm reading it wrong, the report says that the Grade is capped at B because the server doesn't support Forward Secrecy, but the certificate is trusted by "Mozilla, Apple, Android, Java, Windows", which is almost everyone. Certainly Android.

I made a quick change on my Nginx server to enable SSL Forward Secrecy, and now SSLLabs shows an A Grade, but my S8 still shows the SSL cert warning.

My SSL is handled by a reverse proxy, which means the client browser needs to support SNI. I thought maybe whatever browser this was, didn't, so I bypassed my reverse proxy so that a public IP would always return the same SSL certificate. Didn't help. I've been stuck on this problem for months.

Let us continue this discussion in chat.

After a ton of digging, I finally figured it out.
First - a quick recap: The captive portal's job is to intercept any requests to the internet, and redirect it to the captive portal's login page. Because my login page is cprewrite.hyperlinkinc.ca, a remote website, I had to add it to the whitelist. Any requests to that domain will actually get online. This works great.
The problem is that when the user is redirected to that web page, the web page's HTML reference some external resources. My page relied on bootstrap for some css formatting. My bootstrap was stored locally, on cprewrite.hyperlinkinc.ca, so that wasn't a problem. Unfortunately, when I read the source code for bootstrap (bootstrap.min.css), one of the first lines reads:
*/@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");

Essentially bootstrap references an external resource for its fonts. This makes the Galaxy S8 try to load the resource. Because the link is an HTTPS link (not HTTP), it is expecting to receive an SSL cert for fonts.googleapis.com. Since fonts.googleapis.com was not in the whitelist, my captive portal was redirecting the request to itself, returning its own SSL certificate, rather then the expected one.
Some browsers, like the regular Google Chrome browser on Android, just fail silently. Others, like this In-App browser, fail loudly, and show an SSL warning.
I'm still not entirely sure what this browser is that pops up when captive portals are detected, but the question is now moot, since I know why it didn't like my page.


text:
After update to Android 9, moto g6 vibrates on home button press even though vibrations turned off
My phone just updated and now every time i press the home button i get a vibration. How do i turn off vibrations?

here's a photo of my vibration settings.

Do you use "One Button Nav" to replace the "Back, Home, Recent" buttons? Please read your user manual; it mentions haptic feedback as part of this mechanism.

I do not use one button navigation.


text:
How to recover from recovery boot loop in Galaxy A20?
Everything was fine on my rooted device with magisk, until I flashed a custom recovery (TWRP) on RECOVERY partition.
That didn't work, resulting in a message "recovery error validating footer vbmeta" during boot into "download mode".
Perhaps the device was still ok after that.
However, trying to fix the message and put TWRP to work, I flashed a vbmeta.img on VBMETA partition.
This resulted in the current boot loop, I suppose because of some checksum regarding vbmeta and the (stock) root partition.
Is there any hope for this device?
I am still waiting for the battery to drain, but so far all the attempts with using the buttons/USB failed to be able to communicate with the device in any way.
I does anything other than just rebooting.

Following @alecxs advice, I managed to exit loop and enter download/odin mode:
1) Just drain the battery until it turns off.
2) Hold vol+ and vol- while connecting usb cable.
3) Press vol+ to enter download/odin mode.
ps. The fix of the system is subject of another question.


text:
ADB dumpsys batterystats - How does one read it?
Why on earth does the adb shell dumpsys batterystats command not print regular timestamps? (Like usagestats does for example, or literally anything else on the planet.)
Instead, it gives you a "RESET TIME" within the file, and the lines after that show how much time has passed since that time. "RESET" times mostly appear just once at the beginning, sometimes however they appear multiple times within the log, sometimes even skipping hours, seemingly at random.
And as if that isn't bad enough.. Let me just show a real-life example:
adb shell dumpsys batterystats

Gives me (among other things of course) this:
                0 (9) RESET:TIME: 2020-01-29-01-37-39

Good. So the time starts at 2020-01-29-01-37-39. Alright. Only reset time in the output.
I just turned the screen on. Here is the entry in the log for that:
      +21h44m19s484ms (4) 057 +wake_lock=1000:"PhoneWindowManager.mPowerKeyWakeLock" +screen screenwake=1000:"android.policy:POWER"

Great. +21h44m19s. It is now (well, it was when this happened) 2020-01-30-00-16-00.
"RESET" time of 2020-01-29-01-37-39 + 21h44m19s = 2020-01-29-23-21-58.  ?????

Okay, down to my actual questions:

Why does dumpsys batterystats not use normal timestamps?
How does one read those timestamps? They seem beyond broken.
Is there a way to change it to "normal" timestamps?

(My goal is to track when exactly the screen (and optionally WiFi) was on and when it was off. If there is any other way to do that besides batterystats, please leave a comment.)

This is a partial answer that needs more details through the full dump to understand whats the and read the output of what the system is trying to convey.
The data unit is a number taken from the following list:
 1: Number of objects
 2: Number of bytes
 3: Number of milliseconds
 4: Number of allocations
 5: Id
 6: Percent
 s: Number of seconds (monotonic time)
 Default value for data of type int/long is 2 (bytes).
Breaks down to what I think is:
The data unit is a number taken from the following list:
1: Number of objects = (4)
2: Number of bytes {057}
3: Number of milliseconds. +21h44m19s484ms wake_lock=1000 screen screenwake=1000
4: Number of allocations wake_lock=1000, screen screenwake=1000
5: Id. android.policy:POWER
6: Percent
 s: Number of seconds (monotonic time)
 Default value for data of type int/long is 2 (bytes).
https://android.googlesource.com/platform/system/core/+/master/logcat/event.logtags
The time value starts at boot to current breaking the time down to.
+21h44m19s484ms
First the time since thw device was bopted and reads like:
21h is 21 hours.
44m is 44 minutes
19s is 19 seconds
484ms is 484 milliseconds.
However there is more going on since it reads line by line meaning one line is not the complete story. In order to understand whats going on the full log or dump is crucially needed.

My question's solely about the timestamps used (I must admit I'm confused by the first part of your answer, but that's not really what I'm asking about anyway). It would indeed make sense if the time value starts at boot (equaling the RESET TIME), but as I said in my question, that can't really be the case. It might be accurate at the beginning of the log, but as in my example it goes off a lot towards the end.

It not complete it presents like the broke part of the brain reads but gives enough info to tell you what's going on. you can pull more verbose or detailed information through variety of options or log types. I believe you have a bit of tunnel vision preventing you from seeing the how the syntax is presented in a simple way expecting a more complicating answer or reason.

I think you do not understand my question.. I'm not really asking about the syntax of the log, or the verbosity, or anything like that. My question is all about "Why does batterystats use +*h*m*s*ms instead of an actual DATETIME stamp?" and why the times it uses doesn't match up.
See, it'll say for example boot and reset time was at 1am, then it will say +5h in the log, which would be 6am, right? Except for in reality it was, let's say 6:40. That's what my question is about. The times in the log do not match with the real time.

Do you have an example of that? Leading to the syntax is very important to the meaning.

The energy consumption by Android devices is estimated based on the amount of time certain hardware components are residing in different states (e.g., WIFI ON, WIFI OFF, etc.). For each hardware component, there is a power value for each state of the component provided by the manufacturer. So with the amount of time a hardware component resides in a certain state times the power value, the actual energy consumption is calculated.
Each time a state change is triggered, an event is recorded in the batterystats tool. The batterystats tool collects the events based on a timestamp starting from 0 at the mentioned RESET event.
Your questions:
(1) The timestamps in the batterystats output start from the last reset of the batterystats tool. You can manually reset the timestamp with then batterystats reset command. I don't know what are the exact triggers within the Android system to reset the batterystats, probably when the battery is fully charged.
(2) As you mentionend you have the system time of the RESET event. You read the example +21h44m19s: 21 hours 44 minutes and 19 seconds since the RESET event.
(3) Whatever you mean with "real timestamps" you transform them to any date format you like by adding the batterystats timestamp to the reset time. The batterystats output cannot be changed.

I did try the adding the timestamps to the reset time, but many many times this does not yield accurate results (e.g. sometimes a timestamp ends up in the future or completely off)


text:
Malware automatically installing unless I disable the play store
So I have been working on my brother's Elite 6.0l+ Sky device. This poor thing has been struck by the xhelper virus which auto installs firedoor, firemyn and an app that likes to hide itself by appearing to be settings.
I have been chasing this malwares source for a couple of weeks and through a ton of trial and error I've discovered that disabling the playstore seems to keep the malware from being reinstalled. However, if I re-enable the playstore so I can grab a game or check for app updates, the malware is immediately re-installed on the device.
I have also discovered that the device itself is apparently known to come with pre-installed problems (SKY/x6069_trx_l601_sky/x6069_trx_l601_sky:6.0/MRA58K/1482897127:user/release-keys) but what I can't find any where is solutions!
While disabling the playstore does keep the malware off the device, it's not exactly a perfect solution and if it's at all possible I want to remove this malicious pest at the roots so the phone will actually be totally functional.
does anyone know how to deal with this? I'm tech savvy and completely comfortable in command prompt, and I'm not afraid to work with code if need be as long as I have instructions.
Thank you in advance for any and all help!

boot in recovery mode and run system integrity check. delete everything that not passes this check

https://www.xda-developers.com/mediatek-su-rootkit-exploit

regarding xHelper

unpack firmware247.com/sky-elite-6-0l-plus-firmware
install VCOM preloader usb drivers
install Mediatek SP Flash Tool
load the scatter file, DESELECT all checkboxes (especially preloader)
switch off device completely
flash boot, system (click Download only, Download, then connect usb-cable)
flash cache, userdata (= factory reset if you wanna be 100% sure)

regarding OTA updater
readback boot.img with SP Flash Tool, patch with Magisk Manager, flash magisk_patched.img into boot, root the device and disable the OTA updater from terminal or adb shell
su
pm disable --user 0 com.adups.fota
pm disable --user 0 com.adups.fota.sysoper
pm disable --user 0 com.fw.upgrade.sysoper

after this, restore the original boot.img (unroot device) and uninstall Magisk Manager
(Note: unlocking bootloader is most likely not required for this old device, SP Flash Tool can flash with locked bootloader. However, be aware unlocking bootloader will perform factory reset)

If the device has already been rooted, I find it better to suggest  nuking the malware instead of merely disabling it. Since you have already provided flashing instructions, if the device fails to boot after nuking malware than OP can just reflash everything. Otherwise, a factory reset would bring up those malware apps again if they only disable them.

@Firelord it's not malware it's the official Firmware OTA and should therefore not deleted. i have disabled and it's fine (can't even remember if disabling requires root at all). the malware of course should be deleted, but do you know how to identify xHelper package?

https://www.symantec.com/blogs/threat-intelligence/xhelper-android-malware