text:
Access the call-log to complement what has been banned by policy
I used to use Appliqato's Call Recorder.
A few days ago Google Play's policy changed so no call-recording application could access the call-log information. This means now the calls are like "anonymous" and you "have" to listen to them to identify them.
This represents a handicap: If you get a bunch of calls (say 50 per day) and you leave the batch for one week, you can face to have to "manually identify" 500 calls easily which is absolutely a no-brainer.
Instead, the "normal" call-log from the phone has the call numbers stored.
Question
Is there any way I can download the call log information in a machine-processable way?
I'd do a script to post-process call logs and match the date and time to identify the numbers later.

Try https://wiki.termux.com/wiki/Termux-call-log and do tell how helpful it is. I haven't tested so far.

If Google has changed the policy this only applies to the PlayStore. Usually this means the the developer of the app provides two versions: One PlayStore compliant and one "original" app that can only be installed via side-loading. Ask the app developer if there is such a version.

@Dmitry Because not everything that is technically possible is compliant to the rules made by Google for the Play Store. Therefore apps that contain a certain functionality are not allowed in the Play Store, but if the app is useful a app developer can still sell it outside.

If you used a free edition (not the Pro), you can get an older version from ApkMirror.
Older versions of the Pro edition can also be found online, but since distributing it is not possible legally, you will only find it on dodgy websites where you must be very careful in order to avoid malware.

AFAIK, this answer only holds if your side-loading on Android 8 or before, since from Android 9 and above, call recording isn't permitted

ApkMirror asked for my credit card number.

@beeshyams You are incorrect when you say that call recording is not permitted. I can do call recording on both newly installed call recording apps. The sound quality is good on both apps. The only problem is that neither app has access to the call logs so they can't give me any call information.

I said in other answer Android has blocked call recording from Android 9 onwards.... see the issue tracker.  Google won't entertain wrong issue tracker. Good for you if it worked

@beeshyams I am relentless when I pursue these technical issues. Installing an older version does not allow access to call logs. Downgrading from Android 9.0 to Android 8.0 seems to be my only choice to restore full functionality of call recorders. The sound quality of the old version of one recorder and the new versions of two recorders is still very good.

Exports phone logs to an XML file
SMS Backup & Restore (exports phone log and text messages)
https://play.google.com/store/apps/details?id=com.riteshsahu.SMSBackupRestore
(a) Phone Number
(b) Duration of the call in seconds
(c) date: (Unix timestamp with 3 extra digits)
(d) Type of Call (incoming=1 / outgoing=2)
(e) Presentation of the call
(f) Date & Time of the call (human readable)
(g) Contact Name
The call date/time of the file is when the call ended. The call log has the date/time that the call began and the duration of the call.
From this we can do a filename to call log match-up.
Appliqato's Call Recorder uses AMR files by default.
Here is how you get the duration of the AMR file (as a double check).
https://stackoverflow.com/questions/17447508/android-get-duration-of-amr-audio-file-programmatically
Accessibility App Connectors allow access to phone call information

+1 Any app with READ_CALL_LOG permission are able to fetch call logs. So is the one you mentioned.

@IrfanLatif None-the-less this is the first actual answer to the original question.

@IrfanLatif I am still trying to figure out if I can grant root permission to the call recorder app to have it simply work.

I'd say what @beeshyams said in your other question: please read the tag wiki of rooting and learn what rooting means and how it works. E.g. the first paragraph from my answer: “You don't give certain apps root permission, but certain apps ask for root permission by executing su binary. It's the developer of the app who decides if the app would perform some tasks with root privileges or not. In order to let apps request root privileges, you need to root your device using e.g. Magisk, SuperSU etc. (whatever works on your device).”


text:
Removing multiple entries easily from the Google Play Store's "My apps & games" library
I have so many apps in my Google Play Store's library, and I want to delete all of them. However, individually deleting each one would be tedious.
Are there any easier/more convenient ways to remove multiple apps from there?

Google Store doesn't offer a public API like most Google products/services, thus writing an app or service with this capability would be a tedious work, and would require probably some low-level hacking and analyzing the protocols of the Google. On my best knowledge, no one did it until now.
According this answer, until around 2012, we could uninstall our apps from the web, which could have been a quicker option. Since then, even that was not possible any more.

You can use "Tasker" or any other type of automation apps to automate the process of removing each item (app) from the library. Then, program the tasker to repeat that process. I generally do this for repeated actions.

This seems like a lazy answer or a throwaway answer. Your intention might be right to answer this, but the result is not up to the mark. Consider editing this answer to add the necessary detail, which involves the steps needed to use Tasker to achieve the objective.

source: Stack Exchange

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

sort: votes


text:
LineageOS : upgrade nightly to unofficial, switching keys not working
referring to: LineageOS : upgrade nightly to unofficial
@Taknok:
Did this work for you? I tried to follow the instructions on the Wiki page you mentioned, but it did not work. I always ended up with the error described above.
I tried to run "migration.sh unofficial" from recovery which resulted in an error message:

CANNOT LINK EXECUTABLE "/system/bin/sh": cannot locate symbol "__aeabi_memset" referenced by "/system/bin/sh"...

I run the same script while LineageOS was running:
$ adb shell sh /data/local/tmp/migration.sh unofficial
Official to unofficial migration
Saving backup as /data/system/packages.xml.bak
Done

But when I go to recovery to flash my own build it still says:

Can't install this package on top of incompatible data. Please try
  another package or run a factory reset

How did you manage to do it?

so, today it worked fine! Here is what I did:
# changing to unofficial, unsigned builds:
adb root # This requires an userdebug/eng build and ADB root access to be enabled
adb shell stop
adb push migration.sh /data/local/tmp/migration.sh
adb shell chmod +x /data/local/tmp/migration.sh
adb shell sh /data/local/tmp/migration.sh unofficial
adb reboot recovery
# Now install the official LineageOS install zip

Then I modified migration.sh replacing the release_keys with my own ones and switched back to official.

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


text:
Shutdown/Reboot Process Hangs Device
Is there any reason a programmatic or command-line shutdown (or reboot) process in Android 7.1 might randomly result in a hard freeze-up, requiring a long (~8 second) press of the power button to force the shutdown? It doesn't happen every time, but seems to randomly happen infrequently, but frequently enough to be a problem.
Background Info...
I'm developing a "kiosk" style tablet, which runs 24/7. It's rooted and I have full control over it. It also has a customization from the supplier to automatically turn on when power is connected.
To keep things fresh and responsive, I want to issue a nightly reboot command. The reboot command was originally just a call to /system/bin/reboot -p via my own app "watchdog" kind of service that always runs in the background. (Yes, I know the -p causes the tablet to turn-OFF, but then our custom auto-boot will turn it back on immediately, if power is connected, resulting in a reboot situation... doing a pure reboot without the -p causes more problems)
Anyway, I've since moved on to experiment with all of the following commands to cause a shutdown/reboot, and none really fix the problem.

/system/bin/setprop sys.powerctl shutdown
/system/bin/svc power shutdown
/system/bin/am start -a android.intent.action.ACTION_REQUEST_SHUTDOWN
/system/bin/busybox poweroff -f
/system/bin/busybox poweroff -d 10 -f

One more bit of info... I made an app to shutdown/reboot the device every five minutes. I've been running it on about a dozen devices, and have about 4 or 5 failures every 24 hours.


text:
Android O VirtualBox can't set up device - Google Play services keep crashing
I have an Android O Virtualbox and when I go to set it up, it asks if I want to set it up with data from my old phone or start new. I've tried both options, and it says that the Google Play Services have stopped, every time I try. I don't know what to do.

Tested for ubuntu 16.04.

You can use this link to follow steps.,

https://www.howtogeek.com/164570/how-to-install-android-in-virtualbox/

for 32-bit system use this link for latest Android-orio.,

https://osdn.net/projects/android-x86/downloads/69704/android-x86-8.1-r2.iso/

for 64-bit system i used this link for latest Android-orio.,

https://osdn.net/projects/android-x86/downloads/69704/android-x86_64-8.1-r2.iso/
and at one step there is no Primary or Logical partition option as mention in the post, there you have to create a partition, you have to enter some values too, where there is default just let it be like it, and enter 8300 for linux. Actually that and name of the pariton is the only value i've entered in rest i just pressed enter.

I'm afraid I don't see this answering the question. The question is about Google Play Services on Setup Wizard, not about installing Android in VirtualBox.

@AndrewT. you want me to delete the answer?


text:
Turn off automatic microphone muting
I have a Samsung Galaxy Tab E 9.6, which I used with the built-in Android 4. Now I updated to 6 (CyanogenMod 13) and since then the microphone is behaving really perplexing.
No matter which voice recording application I use (I tried some of them), it is muting whenever I don't speak for a split second. Of course it turns on again, when I speak again, but nevertheless, this sounds quite weird, is there a way to turn this "feature" off?
Thank you very much!

How can you understand when the microphone is turning on or off ?

When I am speaking, I hear the background noise on the recording. When I am not, there is no noise. During replay, I hear constantly switching on and off.

Have you installed custom ROM of Android 6 ?

Yes, I did, exactly as I wrote in the question: CyanogenMod 13 is a custom ROM, as far as I know.

Then it might be the work of that OS to save battery power. Try changing some settings in the OS or communicate with the developer of the OS about this issue.

Thank you for the idea, I tried it and indeed found an option to turn off battery saving for specific application, but unfortunately, it did not help. Now I removed the custom ROM and reinstalled the factory firmware.


text:
Gboard suddenly changes keyboard layout
I'm using Gboard on my Android 7.0 phone in Skype. I'm using the English (UK) keyboard with QWERTZ and QWERTY layout. My problem is that when I set QWERTY the keyboard layout suddenly changes to QWERTZ after some time.
How can I prevent this random changes in the keyboard layout?

Does this happens only when you are in Skype app ?

@PuspamAdak I recognized it only in Skype app because I'm most of the time using this app.

Then that issue might be caused by that app, because I had also updated the Google Keyboard (Gboard), but till now I haven't faced any such problem.

I have also noticed that in WhatsApp, the default emojis in the keyboard gets replaced by different ones. So, these things happens because some apps try to modify the input methods.


text:
How to give a wakelock to an app?
How can I give a CPU wakelock to an app so that It can work even when the screen is off?
(Usually android halts CPU too, when screen is off)

Apps get wakelocks programmatically using PowerManager APIs. You can acquire and release a wakelock manually by writing a string to /sys/power/wake_lock and /sys/power/wake_unlock respectively.

@IrfanLatif  Thank you! :) That's the answer, though I don't have root :(

If you don't have root access in your phone, there are many apps in the Play Store which can take a partial wake lock. Just start the app manually when you need it. Because, if one app takes a partial wake lock, other apps can also take the advantage.

Thanks, I didn't know that the wakelock affects other apps too. and I don't have root :)


text:
How to determine what if any charge will actually occur when sending to an SMS short code
I keep getting texts from a short SMS number asking me to fill out a survey, or reply "STOP" to stop getting these messages.  But when I reply "STOP", Android gives me the message:
this may cause charges on your mobile account

I did a Google Search for this message and found one specific service which said this is just referring to whatever charge your provider assesses to send texts, so with unlimited texting there would be no extra charge.  But the number that is sending me this message is not the service the web site is referring to, and I want to make sure that I'm not charged some extra amount just to opt out.
Is there some place I can do a lookup on the number that is texting me to see if there will be a charge and if so how much?  I have replied to other short codes before without ever having got this message so I assume there must be something to this number that I might need to worry about.

Is the number 10-digit ?

@PuspamAdak No, it has 5 digits.

According to my experience, generally Rs. 3 gets deducted for sending SMS to 5-digit numbers.

You can call your service provider and ask about the cost.


text:
How does AOSP on a dual sim smartphone handle data?
How does AOSP on a dual sim smartphone handle data? Does it provide the option to choose the SIM when I do tethering or use the native hotspot?

AFAIK tethering has nothing to do with how your device is connected to internet. Tethering works even if there is no mobile data or even if you have setup Wi-Fi as the source of internet. Access Point is created by hostapd while dnsmasq runs as dhcp and dns server. Rules to forward network traffic are defined using ketnel's routing table and netfilter. So the traffic flows through whatever connection of internet you have. But a ROM may add extra feature to choose SIM when tethering is turned on.

This is mostly a question about UI, not architecture. Ideally, I could pick which sim I wanted to use for data. Does the UI afford any feature like this?

Not in my knowledge, but neither too far from possibility.

According to digitalcitizenlife, you have two screens you can change this under the Default Mobile Data option,

There is also a Huawei FAQ about this, "Dual SIM settings
"

I am not sure but the screenshots and the link seems to be all Huawei specific. How does this answer the question about dual-sim on AOSP?


text:
How do I access to my WhatsApp backup in Google Drive?
My phone was stolen and I was unable to reclaim my number from my telco. Therefore, I'm not able to log in to WhatsApp with my stolen number. There are very important messages and contacts that I have to retrieve, and I knew that the backups were in Google Drive, but I can't locate the backup file.
Any help that I can retrieve my chat history from Google Drive?

Does simply trying whatsapp on a different phone not work? Login to the same Google account on the other phone and see if the chats download.

There are commercial Products that claim that they are able to extract Whatsapp backups from Google Drive:
Elcomsoft Explorer for WhatsApp
Extract and Decrypt Android WhatsApp Backups from Google Account


text:
Just rooted and can't enable premium messaging
When I attempt to enable it, it's stuck like in the picture.

I then receive the message: Free Msg: Unable to send message - Message Blocking is active. I've tried other messaging applications, but I can't get it to work. My phone is a Xiaomi Mi Mix 2S.

You probably need a root hider or root disguise. That is probably checking to see if you have root access and if so won't compete.


text:
Links always open google first
This just seems wrong. When I click a link in an email (gmail), or anywhere else on Android, it first loads a google page then opens the link. Like google is tracking every link I click. Seems inappropriate. Any way to disable it?

Hi, what do you mean by "a google page"?

What's funny is you're using gmail. They literally need to work with the url of the link so they have access to that and more. If you're paranoid about them doing something then why use gmail?

That I use gmail was just an example. If I click a link in a pdf it does the same thing. Or if I am at some other website reading an article, same thing. every link opened by chrome seems to load a google page first, unless I hand type the url into chrome.

Also, if you read the question, it says, "...or anywhere else on Android..."

As this behavior occurs with every app on your system most likely the configuration of the "Default Application" for http and https links has been changed.
You can configure all default Applications in the Android Settings. The exact path to the Default Applications settings depends on your Android version and device vendor (some vendors modify the Settings menu).
For example on Android 7 you have to open the Apps section and then the gear icon in the top right corner. Select the Browser App and you can choose which app to use as web browser.
On Android 8 there is in Settings the entry Apps & Notifications -> Extended -> Default-Apps where you can configure the default Browser app for example.

This is not the issue. If I click a link in gmail, and the link is specifically www.yahoo.com/somepage, then chrome opens and FIRST goes to a google page, loads it very briefly, then goes to the yahoo.com link. If I click a link in an article I am reading, same thing happens. FIRST it loads a google page, then it loads the link. I believe this is an inherent function of google tracking activity on android, but I could be wrong. a couple months ago, I think maybe their server had issues, because it would hang on the google page for awhile before finally loading the page I wanted.


text:
Print Spooler is crashing in 480 dpi screen
Please understand this question before marking this as duplicate.
In my phone, the Print Spooler app is working perfectly fine when the screen density is set to less than 400 dp. But, when I set the screen density to 400 dp or more, the app simply crashes whenever it is launched.
See the screenshots below :
Screen density less than 400 dp:

Screen density greater than or equal to 400dp:

Here is the adb log:
--------- beginning of crash
03-06 14:56:28.770  1008  1008 E AndroidRuntime: FATAL EXCEPTION: main
03-06 14:56:28.770  1008  1008 E AndroidRuntime: Process: com.android.printspooler, PID: 1008
03-06 14:56:28.770  1008  1008 E AndroidRuntime: android.view.InflateException: Binary XML file line #112: Binary XML file line #273: Error inflating class android.widget.ImageView
03-06 14:56:28.770  1008  1008 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #273: Error inflating class android.widget.ImageView
03-06 14:56:28.770  1008  1008 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at java.lang.reflect.Constructor.newInstance0(Native Method)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.parseInclude(LayoutInflater.java:994)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:854)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:424)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.app.Activity.setContentView(Activity.java:2419)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity.onPrinterRegistryReady(PrintActivity.java:329)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity.-com_android_printspooler_ui_PrintActivity_lambda$2(PrintActivity.java:320)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity$-void_-com_android_printspooler_ui_PrintActivity_lambda$1_android_os_IBinder_documentAdapter_LambdaImpl0.run(PrintActivity.java)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:836)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:103)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:203)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6251)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
03-06 14:56:28.770  1008  1008 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Drawable com.android.printspooler:drawable/ic_expand_more with resource ID #0x7f020005
03-06 14:56:28.770  1008  1008 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_expand_more.xml from drawable resource ID #0x7f020005
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:725)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.content.res.Resources.loadDrawable(Resources.java:972)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.content.res.TypedArray.getDrawable(TypedArray.java:931)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.View.<init>(View.java:4226)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.widget.ImageView.<init>(ImageView.java:150)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.widget.ImageView.<init>(ImageView.java:145)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.widget.ImageView.<init>(ImageView.java:141)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at java.lang.reflect.Constructor.newInstance0(Native Method)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
03-06 14:56:28.770  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.parseInclude(LayoutInflater.java:994)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflate(LayoutInflater.java:854)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:424)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.app.Activity.setContentView(Activity.java:2419)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity.onPrinterRegistryReady(PrintActivity.java:329)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity.-com_android_printspooler_ui_PrintActivity_lambda$2(PrintActivity.java:320)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.printspooler.ui.PrintActivity$-void_-com_android_printspooler_ui_PrintActivity_lambda$1_android_os_IBinder_documentAdapter_LambdaImpl0.run(PrintActivity.java)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:836)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:103)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:203)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6251)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
03-06 14:56:28.780  1008  1008 E AndroidRuntime: Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #22: <bitmap> requires a valid 'src' attribute
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.java:771)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:731)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1229)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:188)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:116)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1229)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1202)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:715)
03-06 14:56:28.780  1008  1008 E AndroidRuntime:    ... 36 more

I had also tried clearing the Print Spooler app's data and cache, but I was out of luck. Please help me out about what is the cause of this problem and how to fix it?

Enable the developer mode and ADB in your phone, connect it via USB to a PC, instalal ADB on the PC and connect to your phone via adb logcat. Then use the app till it crashes, most likely you will see the Exception on the logcat output which describes the error reason.

Sorry for being late, but I learnt about ADB logging recently. I have edited my question, please review it.

I am sorry but it looks like the ´com.android.printspooler`app has a bug (it tries to load a dialog layout that has an error) and therefore crashes. As a user you can't do anything about this even with root permissions it would be difficult to fix this kind of error. You can only install the latest firmware for your device and pray that it fixes the problem.


text:
How to install two versions of the same app so Android wont install it as an update
I have a game called mindustry on my phone, and want to use the .apk for the current version separately from the beta version. What would I need to do to make my device not install the newer .apk as an update?
Sorry if my question is unclear. If you need clarification I will do my best to provide it, this is just a weird problem and I could not think how to ask it.
EDIT: repackaging the app worked, app functions normally, only had to change the app package and nothing else

What you want to to is called app repackaging. Android identifies apps based on the packagename in the androidManifest.xml file.

Uh, there are other ways that are on-topic here (repackaging is developer stuff and thus off-topic here). Maybe better rephrase along the lines of "how to use two versions of the same app in parallel". There are some ways, I remember (but not enough to answer).

Thank you very much, I will see if this works.


text:
adb shell input text ignore characters
In android emulator adb shell I send the following command:
input text \!\$\#\?\%shelllllllooo

And result:

All same characters(exclude special like !?#$) been ignored.

Try wrapping what you want to send in quotation marks; i.e., input text "\!\$\#\?\%shelllllllooo".  Also, keep in mind that %s will be treated like a space.


text:
How to disable symbols pop-up on long press on GBoard or make the key long-press delay really long?
I am trying to disable the symbol pop-up on long-press on GBoard in Android. My device is rooted. The link here shows how to increase GBoard height above the highest level by changes the preferences file at /data/data/com.google.android.inputmethod.latin/shared_prefs/ . However, I could fine no such setting for disabling the symbol pop-up. Another way to do this would be to increase the long-press duration to 2-3s instead of the deafult max of 700ms. However, there is again no setting in the preferences file related to this. Any suggestions if this is doable by modifying the system files in a rooted device or by any other method?

Settings>Language & input>Google Keyboard>preference check there

That allows only up to 700ms. I want to go beyond that limit.


text:
How to remove this annoying mobile data pop up?
Whenever I toggle off mobile data, this pops up. Does anyone know how to remove it? It occurs every time I toggle it off.

It is a warning message provided by the system. If you want to remove it, you need to root your phone. I don't know about the process, that's why I wrote this in comment.

Alternatively, an OS update could remove it should they have done so. If there will be another for the device then maybe it will in time.

Can you provide a bit more information, which device and version OS are you running? For general reference, it would be worth checking out this thread to see what other samsung users have been experiencing https://forums.androidcentral.com/samsung-galaxy-tab/727756-how-remove-mobile-data-turned-off-notification-notification-list.html

To me i get prompted this when I disable data from settings but when I disable it from status bar tile it doesn't so try that at least.

You could use a package disabler app, find out the name of the package(some apps will show the packages, use adb, or by Google Search) and then disable that message. Most package disabler apps require root but some don't.

authors: Једноруки Крстивоје


text:
Google cards suddenly showing mixed languages
My Google cards are acting weird. 40% of the cards are in other languages which I have no clue of. It's sometimes Urdu, sometimes Russian, and sometimes god knows which one.

I have tried hitting "not interested" on several of these, but it keeps coming up in my feed. I'm pretty much sure that I have not changed any language and settings on my phone. I haven't had any recent app installs too.
Anybody help me with this?


text:
Can I update my Redmi 5 beta to Stable manually?
Can I update my Redmi 5 beta to Stable manually by going to
About phone > system update > choose update packages.
N select the stable zip file n flash.
Can I do that ?

Definitely. You can install zip file from your updater from settings. I tried switching from chinese to global, beta to stable on my Redmi 1s several times. Keep in mind that device get into factory while switching. Backup recommended before any operations.

@RahulGopi Okk. Thank you.  Device get into factory. Means my data will be erased ?

If you're installing stable zip over beta version, then your data will be erased. Also, the same for switching from chinese to global. If you're trying  stable zip over stable zip, then there's no data loss.

@RahulGopi Okk Thanks

Should I download Fastboot ROM or Recovery ROM ????

If you download recovery rom, you can install it from updater app in miui, for faatboot, you need to go-to faatboot mode and install


text:
How to enable picture in picture mode in Samsung Galaxy mobiles?
I have enabled the picture in picture mode option in Youtube App settings though unable to utilize the Pic in pic option. Am I missing anything to enable?

From YouTube's help center, you need 1) YouTube Premium members on Android mobile devices worldwide, or 2) US Android users running Android Oreo or greater, with ad supported PiP playback.

Source
Picture-in-picture is turned on by default for all devices running Android 8.0 (Oreo) and above.
To turn on picture-in-picture:

Navigate to your Android settings > Apps & notifications > Advanced > Special access > Picture-in-picture.
Tap YouTube.
Toggle "Allow picture-in-picture” ON.


text:
Changing default behaviour of the Contacts app in Oreo
When you open up the Contacts app second or the following time, it always shows last view (i.e. where I left it), i.e. the most recent contact search.
I am using this app purely for searching the contacts, so the need of tapping Back to go back to recent search results list and then tapping X to clear the last query each time I want to search for another contact simply kills me. This is as stupid UX approach as it can be.
Is there any way to change the default view, in which Contacts app opens by default each time?
My stack:

Motorola Moto Z2 Play,
Android 8.0 Oreo.

I am using the default, system Contacts app. No 3rd party solution.

On my Sony XA2 (Android 8) the contact app works exactly the way you want.

it occurs because you didn't clear it from the recent apps, next time clear the contacts app and relaunch it.


text:
Changing default behaviour of the Phone app in Oreo
Each time when I open the Phone app, I see Favourites tab (first one) as default.
This is completely useless for me, because Google uses its weird logic to tell me which contacts are my so called favourites and this logic produces completely wrong results -- i.e. I see "favourite" contacts which aren't truly my favourite ones.
This tab is also useless, if your contacts have more than one phone number, because instead of showing a list in this case and letting you pick the number, it always calls the default number. This isn't working in my case, because I have a lot of contacts which I contact both privately (i.e. during weekends and evenings; using private phone number) and on business grounds (using company phone number). So using the default phone number and Favourites tab is pointless in my case.
For the above reasons, I am not using Favourites tab at all and I am always forced to switch manually to recent phones / call history tab.
Is there any way to make that tab displayed as default each time I open up the Phone app.
My stack:

Motorola Moto Z2 Play,
Android 8.0 Oreo.

I am using the default, system Phone app. No 3rd party solution.

A possible solution is to automate the process of clicking the Call history tab when the phone app is opening. It is not elegant but may help you.
Using Automatem create the following flow:

In the Apps section, select App start. Click it, in the Package option select the Phone app from the list. Click Done.
In the Interface section, select Interact. Click it, set the Proceed option to When UI element appear, then click Record Interactions. A small widget will appear. Open the Phone app, then click on the call history. Click the check mark on the widget. It will take you back to Automate, and many parameters of the Interact block will be filled for you. Click Done.
In the Flow section, select Flow stop.
Click the Flow beginning block, give the title a name; then click on "Install home screen shortcut".
Link the blocks as seen on the image, then save and give the flow a name.
Give the required permissions when asked.

On your home screen, there will be a shortcut created with the label (title) you inserted in step 4. Clicking it will open the Phone app, then show the call history,

It is not elegant because for a fraction of a second, you will see the Favorites tab before the call history is shown.


text:
XIAOMI Redmi 6: how to change or remove the pin of the sim?
I have XIAOMI Redmi 6 phone, model M1804C3DG. Android version: 8.1.0, kernel version: 4.9.77+ .
There is no options in the menu to remove or change the pin of the sim.
I have enabled developers options too, but no options are displayed related to the pin of the sim.
If I insert this sim in another phone (ios operating system), the options to remove or change the pin is displayed in the menu, and it works: this means the sim works properly.
How to remove the pin, using this XIAOMI Redmi 6 phone?
Thank you

Go to Settings -> Additional Settings -> Privacy.
Find SIM Lock section, select the SIM you want to change the pin, then click on "Change SIM PIN".

If there is the option "Lock Sim Card", enable it first, then change the pin.


text:
What is the purpose of "Tracing" settings in Google Chrome Canary?
I use Chrome Canary and I found an option named 'Tracing' in Chrome > Settings > Developer options. The option doesn't exist in stable Chrome version and I guess it exists in Beta and Dev releases.
The option has 3 segments (see image)

Here are some checkboxes inside every option:

What is the purpose of this option? Maybe bug reporting or something else?

In software development, tracing is the process of logging information while a program is running or executed. It serves mainly to debug a program.
In case of Chromium (or Chrome I presume)

When diagnosing performance problems it can be valuable to see what Chrome is doing "under the hood." One way to get a more detailed view into what's going on is to use the about:tracing tool.
Tracing records activity in Chrome's processes (see multi-process architecture for more on what each process is doing). It records C++ or javascript method signatures in a hierarchical view for each thread in each process. This is a lot of information, but sifting through it can help identify performance bottlenecks, slow operations, and events with irregular lengths (leading to e.g. framerate variation).

This is just what is happening with Chrome Canary.
The categories selected are those the apps will log information, details while running that will help the developers diagnose potential problems with the app.


text:
Cant move apps to my sd card. Please help me with this as i have 29 gb available and i cannot shift
I have a tablet with less space. I have an sd card with 29 gb available but I can't move all apps to sd. I downloaded phone2sd but it said no movable objects. If root is the only way please tell me how to root myself. Thank u

Typically this will require root to accomplish. However depending on your tablet, on the newer version of android there is a capability to format the sd to the type for your tablet and will combine it with your internal memory.


text:
Is Android Pie vulnerable to ADB server attack?
According to The Hacker News, many Android devices are running insecure remote ADB service:

Thousands of Android Devices Running Insecure Remote ADB Service
Despite warnings about the threat of leaving insecure remote services enabled on Android devices, manufacturers continue to ship devices with open ADB debug port setups that leave Android-based devices exposed to hackers.
Android Debug Bridge (ADB) is a command-line feature that generally uses for diagnostic and debugging purposes by helping app developers communicate with Android devices remotely to execute commands and, if necessary, completely control a device.
Usually, developers connect to ADB service installed on Android devices using a USB cable, but it is also possible to use ADB wirelessly by enabling a daemon server at TCP port 5555 on the device.
If left enabled, unauthorized remote attackers can scan the Internet to find a list of insecure Android devices running ADB debug interface over port 5555, remotely access them with highest "root" privileges, and then silently install malware without any authentication.
Therefore, vendors are recommended to make sure that the ADB interface for their Android devices is disabled before shipping. However, many vendors are failing to do so.
[...]

Is Android Pie vulnerable to the ADB server attack as mentioned above?

That article mentioned that full root access can be granted using adb. It doesn't discusses the RSA fingerprint confirmation needed (since Android 4.2.x) for actual access to Android system, neither it discusses how root access can be granted without presence of su binary or other similar mechanism through adb. I may be wrong here, but the article seems incredibly poor in meaty content or to be precise, lacks proof-of-concept.

I very much doubt at least the root part – we would have heard about such an "easy rooting method" years ago. Further, even if USB debugging is enabled, the network part is usually not. And I have never heard of any device that shipped with both enabled. I might have missed something here – but those must be very rare cases, if they really exist (well, "thousands" is very little compared to the multi-million devices that must exist).

We did here about this years ago...

It was as easy as running adb reboot and adb shell mount rw,remount /system... The reboot bug was removed around 4.2+

The attack is unrelated to a specific Android version (including Pie, Q, and beyond), but to all devices with ADB over network enabled.

[...] it is also possible to use ADB wirelessly by enabling a daemon server at TCP port 5555 on the device.
If left enabled, unauthorized remote attackers can scan the Internet to find a list of insecure Android devices running ADB debug interface over port 5555, remotely access them with highest "root" privileges, and then silently install malware without any authentication.

This is made worse when some manufacturers/vendors ship the device with the setting enabled.

Despite warnings about the threat of leaving insecure remote services enabled on Android devices, manufacturers continue to ship devices with open ADB debug port setups that leave Android-based devices exposed to hackers.
[...]
Therefore, vendors are recommended to make sure that the ADB interface for their Android devices is disabled before shipping. However, many vendors are failing to do so.

For more information: Malware installed with remote debugging

To secure the device, check whether the ADB over network is disabled or not. This setting is available under Developer options, which normally also needs to be enabled first (usually by tapping "Build number" on the Settings 7 times)
To enable Developer options (in general):

Go to Settings - About phone
Tap "Build number" 7 times (or until any notification about developer option already enabled appears)
(If this step doesn't work, check with your device manual or other resources to enable Developer options)

To disable ADB over network:

Go to Settings - Developer options
Check whether the "Developer options" is enabled or not by toggling the switch on the top. If you don't need any features from this setting, disabling it is recommended. However, if you need some features from it but still need to secure the device...
Scroll until the Debugging section, and check whether "Android debugging" and "ADB over network" are enabled or not. Either disable both if you don't need to debug any apps, or just disable "ADB over network" to prevent this attack.
(Otherwise, if you need to use ADB over network, just don't forget to disable it when you end the debugging season)

is it possible for a malware to enable usb debugging by itself if it was installed accidentally on the phone ?

@androidbeginner that looks like a different question tangential to this issue, please post it as a new question.


text:
What is the meaning of an "eye" system icon on Samsung devices?
This is a Samsung device showing an "eye" system icon on the notification bar.

What does it mean?

Samsung Smart Stay.

AFAIK, it is the Samsung feature which keeps the display turned on for as long as you're looking at it. This is helpful if you're reading something off the display and don't want it to sleep.
The setting/feature can be disabled in Display Settings of the phone.

thanks, does this mean that display knows when u look at it and when not? and how is this possible? what technology is used?

AFAIK, it's just the front cam looking at your face and figuring out if you're looking at it or not. Samsung explained a bit here - https://www.samsung.com/uk/support/mobile-devices/what-is-the-smart-stay-feature-on-my-samsung-galaxy-s4/


text:
Should I be cautious about Huawei-modifications for popular apps?
What's the difference between Booking app on Huawei app store and the version on Google play store. Why Huawei always wants to update Google Play version to their Huawei app store version. As soon as Google Play publish new version. Immediatly Huawei release a newer version than the one on Google play. For example the Google Play version is 12.0.0  Huawei will update it  to be like 12.0.0.0.1
Should I cautious of these modified versions of the same app from Huawei? I choose Booking as an example but there are some other apps like CamScanner ect.

Should I cautious of these modified versions of the same app from Huawei?

We don't know if they are modified versions; and if they were, we don't if Huawei or the legitimate developers modified them. I have not seen any articles accusing Huawei of modifying apps. Even when using only Google Play Store, there may be a difference in the version of an app depending on the device. See below for Booking.com's additional information on Google Play Store

In Huawei's AppGallery Review Guidelines, the following is stated about what developers should do for their apps to be compliant and pass the review on the App content section:

4.5 Your app must not be a cracked version of another copyrighted app.

On the user privacy section, it is stated:

7. User Privacy
You must handle user data with caution and ensure your app complies with the laws and regulations of the countries or regions where your app is to be released. The following requirements must be met:
7.1 Your app must not collect, transfer, or use users' privacy data, such as location and contacts, without the user’s consent or other legal basis in applicable law.
7.2 Your app must provide anti-virus or security protection functions and privacy notices, and the privacy notices should include the following information: What user data will be collected or transferred, what such data is used for, and with whom such data is shared, and any other information as required by applicable law.
7.3 If your app transfers users' personal data, users must be informed how and where such data is going to be used.
7.4 Your app must encrypt users' personal information, such as identifiers and authentication, when collecting, storing, and transferring such information to ensure confidentiality and completeness.
7.5 During transactions using third-party payment services, your app must not record users' transaction authentication information or disclose users' personal information irrelevant to the corresponding transactions to any third-party.
7.6 If your app is used to handle financial, payment, or identity information, it must not disclose any of the user's personal data.
7.7 Your app must not use permissions or data that are irrelevant to the apps' functions.
7.8 Your app must not modify users' personal data within itself or other apps.

In App Audit FAQ, there is the following quesion:

Q11 Is security inspection the same for overseas and China apps?

A
    The security inspection on an overseas app features high industry standard, and is therefore more stringent than domestic ones in terms of data acquisition and permission requirements.

If Huawei is modifying apps without their owners' consent, then it will be liable for infringing not just their own guidelines but more importantly other nations' laws.
You should worry about any apps unless you have seen and reviewed their codes. However, none of us has the possibility of doing that with most apps being closed source. Google might be modifying apps from other developers. We are left only with giving or not our trust due to past experience(s) using an app or what we have heard about an app, developers or companies.


text:
Unable to install custom ROM, missing options in recovery menu

In recovery, perform a full factory reset, wipe cache, dalvik cache
  and wipe data/factory reset. (source: https://www.naldotech.com/how-to-install-custom-roms-on-nexus-6p-with-custom-recovery/)

But in my Android Recovery I can only see following options:

Apply update from ADB (or SD card)
Wipe data/factory reset
Wipe cache partition
Mount /system
View recovery logs
Run graphics test

No such thing as full factory reset, wipe cache, dalvik cache. There is also no "install" option.
My Recovery screen says:
Android Recovery,
google/angler/angler,
8.1.0/OPM6. ...(long version),
user/release-keys

Prior to that I have installed custom recovery (TWRP) from Play Store. Perhaps TWRP should be installed differently?

Twrp can't get installed from play store. You need to unlock bootloader and then enter to bootloader mode and install twrp through adb commands.

@RahulGopi when you are in fastboot mode, adb commands don't work. Only fastboot commands work. overdrive, as suggested above, you need to flash a compatible Twrp image in your device. You cannot flash a custom ROM using stock recovery (not permitted).

@Firelord Thanks. I forgot about fastboot during commenting. Only adb is remembering at that time.  some commands example: https://handsetgeek.com/adb-fastboot-commands.html

@overdriven this link may help you https://forum.xda-developers.com/nexus-6p/general/guides-how-to-guides-beginners-t3206928


text:
Creepy caller blocked, but still gets through to my voicemail
I gave my phone number to someone who turns out to be unstable individual...crazy dude. I blocked him from my android phone, blocked from calls and messaging. Somehow he managed to call me, doesn't show the call on my call log at all..never heard or was alerted of the call. And he then left a voicemail and when I go through the menu to get the callers number it is silent..blank. How is this happening? And how can I block him all together? Seriously, this guy is freaking me out. Help please if you can.

Sounds like you blocked it at the Android level, but have you tried logging into your service / phone carrier's website and blocking the number from there?  At this point it may be worth switching to a new phone number.

Blocking phone numbers on Android is not possible...
The work-around that developers use is a redirection to the voicemail number, redirecting calls to voicemail is the only option...
HOWEVER, From the Voicemail side & Mobile service provider's side, things can be blocked !

Call your service provider and request the number to be fully blocked from ever connecting at all..  .

Alternatively ( if you don't use voice mail )
A workaround i found using the call setting....
• Change your voicemail number,
It is called ( redirect on unanswered ) an can be configured in the call settings.
I changed my number to +610   and it allowed the change. . The voicemail ( redirect service ) will redirect the call to a non existent number like +610 and then end the call ( They'll hear - "This number is not connected" )   .

This would be a network / mobile provider solution, they would be able to blacklist a number for you and prevent it from connecting,
there are blocking options on android phones, but these don't stop calls connecting and voicemails being left.
You have blocked on the phone, which is great, and that is why you were not notified of the incoming call at the time, the mobile provider does still deal with a call if the phone does not answer it.
As others have noted, mobile network provider would be the best step forward, there is scope for blacklisting a number, alternatively another good suggestion is consider getting a new number.

Simple answer, contact the phone carriers account holder for that line, if it's not you. Either you or they need to call carrier and inform them you would like to block a phone number on your account.
This is s true call block.


text:
Installing downloaded APK after accidentally denying
I was trying to install a downloaded APK onto my Pixel 3.  During the initial install attempt I was presented with a screen that looked approximately like this one (without the added emphasis on the correct 'Install anyway' option):

I took one quick glance of this screen before concluding "big green button, that must be what I want here!".  Which was a substantial error, because the big, green button in fact denies the app install.  Oops.
And now what's happening is when I go back to the APK and try the install process again, I'm no longer prompted about whether or not I want to 'Install anyway'.  Instead it just goes straight to the "App not installed" screen.  The one with the gray triangle on it.
How do I get the device to forget that I denied installation to this APK, so that I can successfully install it?

You can disable Play Protect.

But that could be a security risk if you consider Google a life saver :)


text:
What's the difference in contents of `/odm` and `/vendor` directories?
I have a little idea about the /odm but no idea of /vendor dir. Can someone please explain in the best way possible?  I looked up on Google and it didn't help.
What I'm really confused is with whether OEM's make changes to the files underlying these directories or is it the Android's source.
Reference:

From /system, init launches and starts mounting all the other partitions, such as /vendor, /oem, and /odm

Is /odm a directory on your device? Please edit your question and only use full paths and also add your device name and vendor.

no i didn't find /odm dir in my device. a guy answered to my question regarding /proc dir. he replied https://android.stackexchange.com/questions/208792/adb-shell-directories-under-root so this kinda confused me .. can i get a brief explanation?

/odm contains files from Original Device Manufacturer. /vendor contains files from SoC manufacturer. I'll share my thoughts on this when I get some time.

odm contains all specific device librarues such as sensor HAL, etc.
But vendor contains SoC specific libraries. This is because for android 9 and higher the idea is having a general/same image for all devices and using product, vendor and oem for every device.

You could obtain this informacion in Source Android Documentation

ODM -> This partition contains original design manufacturer (ODM) customizations to system-on-chip (SoC) vendor board-support packages (BSPs). Such customizations enable ODMs to replace or customize SoC components, and implement kernel modules for board-specific components, daemons, and ODM-specific features on hardware abstraction layers (HALs). This partition is optional; typically, it's used to contain customizations so that devices can use a single vendor image for multiple hardware SKUs
Vendor -> This partition contains any binary that isn't distributable to AOSP. If the device doesn't contain proprietary information, you can omit this partition.


text:
I Have an LG P769. I am trying to root it and it is not working
Forewarning: I am not exactly an expert on this type of thing.
I have tried several things, but the problem seems to be that I cannot get into the bootloader via "adb reboot bootloader" or by pressing any of the physical buttons.
I have gone through most of the steps I can find on the internet, but all of them require that I first get into the bootloader. Here is what I am getting:
(ME): adb devices
List of devices attached
338A000600000001015D7E810201F01?        device
(ME): adb reboot bootloader
(PHONE): reboots, but not into bootloader
(ME): [any of the following:] "fastboot OEM device-id"; "fastboot reboot"; "fastboot devices", and so on
< waiting for any device >
[crashes, and I have to reopen the PowerShell]

As of right now, I think it might be an issue (or intended 'feature') that the phone has. If anybody can help me out with this, I would be very grateful. Thanks!
[I will be sure to update this with any details I remember or am asked for, and with updates.]

For Lg devices you must use a flash tool similar to Samsung's  Odin. A good site to download required files is enter link description here. If you can't figure it out from that site just google search those tools and there's plenty of tutorials.

Is this just to unlock the bootloader, or to fully root it? I really need to get into fastboot mode.

It can be used for either. One thing to be aware of is your screen will remain black when entering into fastboot, the only way to know if the button press method worked is by connecting via usb to computer and then running the fastboot devices command. Lg's tend to be fairly tricky to root.


text:
How to remove quick links in Chrome for Android homepage?

How do I remove these quick links from Chrome for Android app?

I have not found an option to remove the icons, however you can configure certain options via chrome://flags. Search for ntp (stands for new tab page).

To remove one at a time:

Long-press on a link ( I think the correct name is shortcut).
When a menu appears, click Remove.

To remove all:

Click on the 3-dot, then Settings.
Click on Home page, enable it if it was disabled.
Click on "Open this page". Enter about:blank or any website you would to open when you open Chrome. You might have to restart Chrome for the changes to take effect.

However, they will re-appear again based on the history.

Go to Play Store and uninstall Chrome. It will uninstall the updated version. Then go to your Chrome. Shortcuts never appear again. You can update Chrome. 100% true solution, fixed my own Chrome.

Aside from Chrome will revert to the original version if it is a system app (otherwise, the app will be really uninstalled and need to be reinstalled), I think this will have the same problem that it only clears the links temporarily, and will reappear after some usages.


text:
Accessing Exchange GAL on Android
On iPhone, in contacts, you can tap Groups, Global Address List, and then search the GAL for a contact.
I cannot find a way a way to do this on Android.
Is there a way of searching the GAL of a connected Exchange account?

When I open my contacts app I can select the Exchange account as source and then perform searches in that address book.

I imagine you are talking about Exchange Online. On Android, it is not possible to search the GAL from the Contacts app. There is one way to do it: install the Nine email application, which is an alternative to Outlook. It enables the integration even for Contacts app (besides allowing from the Nine app itself).

Motorola's Android did this natively a few years ago. The integration into company things was just awesome

I developed and used to maintain an app that did exactly this (see https://github.com/vivekiyer/corporateaddressbook) . However this project is no longer active. I can re-enable this in the play store if you think there is value.

i was a big proponent of your application before I moved to iOS. Now I am back again on Android and sorely missing the Corporate Address Book App since I do not want to sync my entire exchange addressbook to my phone. I want to selectively search and save contacts to my phone. Please help.


text:
Can you limit Google Maps timeline for alternate accounts on your android phone?
I have multiple accounts on my Android phone, some shared with my kids.  I would like my location sharing to only be my primary account.  Is there any way to configure that?
One side effect, my son has his location shared with me.  But most often, when I look for his location, it shows where I am.


text:
ADB Access in TWRP recovery mode - samsung A3, Linux
I can access my Samsung A3 (a3xelte) in "normal" mode in Linux using adb.
Today I installed the TWRP 3.2.3-0 recovery mode and entered it. According to this DroidWiki article(the article is in German), I should be able to use adb commands in this mode as well. However, "adb devices" shows me nothing. Any ideas or is the information wrong for this phone?
Reason I am asking: After resetting the phone to factory settings, some valuable Memo-Notes seem to be deleted. I would like to copy an image of the partition to my computer (as described in this answer from StackOverflow), and then use testdisk to potentially still find the relevant deleted file. The phone is not rooted which seems to make things a lot more complicated...

Sounds like you don't have the correct drivers installed... The ones used for the device when the OS is running may not be the same as when in TWRP, which are the generic Android ADB drivers. The link you gave in your question even mentions this. Unless you use Linux, then you don't need any drivers.

I am using linux (even in topic). So shall I install different drivers?

No, Linux doesn't use "drivers" fir this, the modules are built in the kernel. I would contact your maintainer (likely via the XDA forums official post for TWRP for this device) and determine the issue. They may have had to implement it differently due to device constraints.


text:
Unable to delete anything in telegram
My question is that I am unable to delete any message or photo in a group chat.

EDIT
It might be worth having a look at telegram today, they have announced some new features, including the unsed/delete anything.
Details are here: Unsend Anything
If you are in a channel, then the behaviour you have highlighted would be expected, you would be able to reach out to the creator and ask them to delete the message(s) or discuss being given access rights on the channel.
As per Telegram FAQ:
The creator of a channel can broadcast messages, delete any messages, add members (the first 200 only), remove members, change the channel's name, profile image and link, as well as delete the channel completely. The creator can also add and remove administrators to help manage the channel.
Have a look at Telegram's website here for more information: What can administrators do?

but it is basic functionality to delete a message, why did they excluded this

@AvinashKumar
That would be at the discretion of the creator of the channel.

It's a group not channel


text:
smbv2 samba sharing between Windows 7 and Android stopped working for MyUser, but it works for admin
I used 2 apps that can connect from Android (Nougat)  to PC (Windows 7). Hitherto that worked perfect. Now I get user authentication problem when I try to connect from Android to PC with "username" credentials. But I can connect without issues using administrator.
It tells me that there is a user specific setting that changed. I didnt change anything. What setting is this? Any idea?

Have you set up password authentication to MyUser account?

If you are using a local user connection go to manage->users and reset the password.
Maybe the user's password is blocked. there is a windows mechanism that if someone tries to connect X times using bad credential the user turned to be blocked.

@E Cohen. WELOME to stack. Typically you 'answer' only if that is 100% the solution and anything short goes in comments,  Windows password works perfectly and the user wasn't locked out but actually incidentally the password too was changed to see if that  made a difference - nope "failed to authenticate" still happens

@user1874594 because I'm new to this comunity I cannot write a comment if the answer or question is not mine.
Try to open a wireshark ans set a filter "smb || smb2" and see what is the error code that the Server returns to your connection request. (look for SessionSetup request/response)
One more thing that may help is to look in the "event viewer" in Win7 and search for SMB server (I'm not sure that Win7 has this ability) and try to find there the reason of the failure.


text:
Need help in connecting my Samsung mobile
I use [TP-link Archer AC1200] as my primary router (according to my phone, I think my router’s IP address = 192.168.0.1) with SSID-1. Connected to it is the [TOTOLINK A2004NS] (whose LAN IP = 192.168.31.103) with SSID-2. It is followed by another router [TP-link WR1042ND IP] (IP address = 192.168.31.8 ******) with SSID-3.
I have three cell phones:
  (A) Redmi 6 plus
  (B) LG Stylus 3
  (C) Samsung A6-2018
Both (A) and (B) can access all those SSIDs, but (C) can access SSID-1 and SSID-2 only. It can detect the signal from SSID-3, but reports that there is no internet connection.
Below. The pictures on the right show that All three can be interneted via SSID-1. Those on the left show that Samsung alone canNOT be internet to SSID-3 while the other two can. [The meaning of those Chinese words shown on the Samsung means "internet option may not be available".]

Are there any other extra settings that I need to fix the Samsung phone?
Additional info:-
This incident happens when I have added the AC1200 as the new primary router. That is, before that I just had the A2004NS and the WR1042ND but all three mobiles worked well.

Why do SSID-2 and SSID-3 have the same IP addresses?

@ReddyLutonadio My post was edited (but wrongly). Fixed with additional info.

If SSID-1 and SSID-2 are off or down, is the phone able to connect to the internet via SSID-3?

@ReddyLutonadio Since SSID-1 is the primary router and therefore is the main passage to the internet, it must not be down. Tried just shutting down SSID-2 alone, all of the phones were down; including the computer (through  network cable).

@ReddyLutonadio I have added some pictures to clarify my question.

I am sorry but the image quality is so bad that I can't see anything of that photos. Use the screenshot function on the affected device to create images and upload them separately. Does the affected device really has no Internet access (sometimes Android is wrong) - ehich IP address does it get? BTW: Your network design is really strange. Why 3 routers? Are they cascaded -if yes why? Which router is the one that has really Internet access? Which one is active as DHCP server?

@Robert  The facts I want to show are (1) (Pictures on the right) Phones are placed side by side on the same spot & the result is all 3 can be interneted w/o any problem. (2) (Those on the left) The Lan, Lg, & Redmi can be interneted thro the same router (SSID-3) but the Samsung cant. I think the explanation is:- (1) I just have my  broadband changed from 500m to 1000m recently. That router (150 m only) is too old. (2) The checking for a good internet connection by Samsung is too strong & therefore it doesn't let go while the non Samsung's have lesser requirement. Will take away the old.


text:
SD card had bad sectors after chkdsk. Is that Logical or physical ?and path from here
This is about data corruption on android . The primary issue relates to bad blocks / clusters and it happens to be android platform. So this is a super user and NOT android enthusiast question. answers to this question will apply to ANY corrupt card whether PC or android. So its thoughtless to tag this is android
This is a Sandisk 128gb  ( leave this link  - its not an ad .Specific card indicates other paras like memory channels , write speed etc card I am using on an Android Nougat device.
This is the 2nd time the card had corruption issues. 1st one I bought got Write Locked . Present Replacement was provided
The card has a lot of bad clusters. 2 things got me to sniff this :

whatsApp directory ( which had a bind to whatsapp dir on internal ) : the image directory can no longer be written to
Phone randomly reboots and next time  exFat partition is not mounted ( I used app2sd and partitioned the card to ext4 10gb  to link my apps and rest if exfat )

ran a chkdksk on windows 7 and it would autoterminate on initial run & persisting on running gave me repeated message "# cluster moved for file " ( cant recollect exact verbiage ). It could Never complete it but aborted with the message . "corruption found in card "
questions :

How do I know if there is logical  or physical bad cluster. Any tool / test ?
 Here's something I did - that made me think logical. I removed the images directory ( which was  write locked and so as long as the binding was on , whatsapp images could not be downloaded. Once I  switched off folder mount tool that enforced this, it would work ) after moving the contents to dir2 and renamed dir2 to original dir. after del the original dir. Now for sometime  whatsapp binding would work and the same problem came again . So I tend to think but need confirmation.
I am thinking of salvaging the contents of exfat partition and then format partition and instead create 2 ext4 partitions ( or FF2S. Tell me which is better) . One is for less write apps. My photos etc here and other smaller one just for whatsapp and then copy back contents to relevant partitions.

If I do this. There is no  out of box support for ext4 partitions for android ( isn't ,pl confirm) ? how do I auto mount without 3rd party utils ( fstab ? )
How do I auto mount the extra ext4 - fstab ?
Will this help avoid the above problem ?

While I still have the corrupt block partition  is there ANY other tool that will run  till the end and identify all bad blocks so they can be  kept aside .I tried aparted for android which runs fsck ( exFat sub ) and the report came normal in < 1 min .

Some errors are marginal, not hard or foreseeable, so you cannot assume anything. Our advice on SD card errors have always been the same : Get a new one, nobody can fix a bad card.

Are you sure the SDcard is genuine? I strongly recommend you to test it before using it. For example using the Windows tool H2Testw it uses the full sdcard and checks it it really has the size it claims to have.

I am aware of fakes. Yep this is tested by H2testW - before I used it I ran the brute test

Sometimes the specific card ( usually depending on price ) will have extremely fine wiring, this is the case with many large storage device's on small physical devices like USB Memory Sticks & SD Cards... The card actually has an overheating protection to stop the wires from becoming damaged, This will stop Read & Write access to the device temporarily to allow cooling... This seems to cause a R/W Error for a computer... Instead of waiting for access, it immediately registers the current sector it was scanning as unusable... You need to follow the manufacturer instructions carefully... 5mb p/w

Have you tried BadBlocks on an Android... @Unknown:/ $ badblocks Usage: badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf] [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks] [-p num_passes] [-t test_pattern [-t test_pattern [...]]] device [last_block [first_block]]....... OR FIX THE DRIVE WITH CHECK DISK ... chkdsk -Drive -f .... If a nondestructive -f won't fix it... try a destructive fix with -r (it implies -f ) chkdsk -r

As a Side comment to the "Nobody can fix a bad card" ... You can fix a bad storage device... Bad sectors & clusters have always been a part of digital storage, HDD's used to come with detailed formatting instructions to format around the bad sectors from building it... It is impossible not to get a bad sector every now and again... The fix & the reason we don't need to format around bad sectors anymore is because computers do it automatically, they have a reserved amount of usable sectors that are only ever used as replacements if and when a sector becomes unusable... ....

You hypothetically just need to force the device to use the reserved sectors.... However... If you run out of reserved sectors, you need to do an Old School low level format... Around the bad sectors per-say

Yes I ran chkdsk with /r /x  options & thats when it  puked with all these errors .  My questions are 1) How to successfully run some file system utiility that will make  bad sectors .chkdsk aborts 2) if I back up data and format all partitions will those bad sectors  be again available for use ( logical bad sector ) or they will cause the same issues again

system utility that will mark bad sectors


text:
Install and update app without play store
If I install an app on Android outside Play Store. Will it ever be updated? How so?

If you app is not available in any store app you are using there will be no updates. If you want to update it you have to install a newer version of the app's APK file manually.
If the app is available on Google Play or a different app store the situation is different:
On Android 7 and below there is only the Google PlayStore which can update an app. If the manually installed app is also available on PlayStore you can open it in the PlayStore App and install an available update. Once you have done this Google PlayStore will continue to include this app to the apps it will look for updates.
Other app store apps can also provide updates for apps, however the user has to manually confirm such updates (similar to a downloaded apk file that is installed).
Starting with Android 8 the user can configure which app is allowed to install other apps. Therefore alternativ appstores can provide an store app that can check installed apps for updates and install them accordingly.


text:
Disable autostart on boot and restrict background execution
Is there any way to disable autostart apps at boot time? I need to disable some of them (not all) like Facebook, etc to get quicker boot time. I'm asking how to do this on Android 9.0.

Preventing an app to start on startup requires root permissions: https://stackoverflow.com/questions/9715214/how-to-disable-run-the-app-by-boot-completed

Without getting into the details whether or not one  should stop autostarting apps, and what  could be the consequences as discussed in a plenty of other answers, here are my simple solutions which may work without any third party apps, at least on Android Pie.
ROOT SOLUTION:
Apps use BroadcastRceivers to listen for broadcast ACTION_BOOT_COMPLETED so that they can run on boot. Broadcast receiver is an app component that can be disabled with root privileges.
Using Package Manager list all broadcast receivers listening for BOOT_COMPLETED:
~# pm query-receivers --components -a android.intent.action.BOOT_COMPLETED

It will give a list of broadcast receivers in format package_name/component_name. See dumpsys activity broadcast-stats and dumpsys activity broadcasts for more details.
Now to disable a component:
~# pm disable <package/component>

There are apps like Autostarts (com.elsdoerfer.android.autostarts) and SD Maid (eu.thedarken.sdm) which can do same for you. File /data/system/users/0/package-restrictions.xml can also be edited directly to disable apps or their components, but it's not recommended.
It's possible to disable multiple broadcast receivers of an app, and a single receiver can also possibly listen to multiple types of broadcast events.
NON-ROOT SOLUTION: (non-universal)
In order to receive android.intent.action.BOOT_COMPLETED, apps need android.permission.RECEIVE_BOOT_COMPLETED which is a normal permission and hence can't be revoked by user.
However there is a hidden permission management framework, named AppOps that provides a slightly more fine-grained control of (permission-like) operations. OP_BOOT_COMPLETED is one of those but it's not a part of AOSP, only added by some custom ROMs like LineageOS. If you are on one of such ROMs, you can control the autostart behavior through adb shell:
~$ appops set <package> BOOT_COMPLETED deny

Now the app won't be allowed to receive BOOT_COMPLETED broadcast. There are apps like App Ops (rikka.appops) which can do same for you. Some custom ROMs have built-in front-ends to AppOps with different names like Privacy Guard, AutoStart Manager etc.
Please note that AppOps:

is not generally intended for third party application developers; most features are only available to system applications

So its usage without root may be disallowed or get harder in next Android releases.

Both of the above methods can stop apps from starting on boot only. An app can listen for some other broadcast events too and it can keep on restarting if killed, or run in background continuously (as a service) if it's designed to be so. See dumpsys activity services for more details.
A slightly different approach would be to stop apps from running in background by using OP_RUN_IN_BACKGROUND (introduced in Nougat) and/or RUN_ANY_IN_BACKGROUND (introduced in Pie) which are part of AOSP:
~$ appops set <package> RUN_IN_BACKGROUND deny

They don't have an equivalent manifest permission, but there is an experimental permission with same name.

This question was marked as duplicate but other questions doesn't have good answers as yours. Thanks. I think that AppOps is easy solution. I forgot to add in question, I have rooted my phone.

@QkiZ yes, provided that your ROM supports it. Or you can go for root option.

since when is pm query-receivers supposed to work? on my Android 7 I get: "Error: unknown command 'query-receivers'"

@FrederickNord seems like this was added in Nougat: https://android.googlesource.com/platform/frameworks/base/+/6ac42aeed905181b484f97a53db57a17134ef7a8%5E%21/#F12. Also try query-intent-receivers.

It says "error: unknown operation string: RUN_IN_BACKGROUND" i tried also wiith RUN_ANY_IN_BACKGROUND and OP_RUN_IN_BACKGROUND, Edit: my version has it not https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-6.0.1_r81/core/java/android/app/AppOpsManager.java

@VeganEye probably you didn't read the answer: "A slightly different approach would be to stop apps from running in background by using OP_RUN_IN_BACKGROUND (introduced in Nougat) and/or RUN_ANY_IN_BACKGROUND (introduced in Pie)"

You should add this answer to the "duplicate" questions for higher visibility, it's better then all the other answers there.

Can confirm the root option works on Android 13. I disabled the receivers in the app SD Maid's AppControl for Spotify and worked. I had to factory reset the app to get it all working without a hitch, but that might just be a Spotify storage problem.

Some devices require root access to manage auto start permissions... However Android 5.1 Allows this via Auto Start settings in Security.

Open Settings   >  Security

Open Auto Start Settings

Disable the app from Auto Starting

This option should be available on any system with AppOpps
Also If Not On Android with these settings

Open Settings
Open Apps
Open the desired Application
Select Permissions
Disable Auto-start permission

Which device are you using? I have used stock ROM is Nexus 6 (Android 5.x - 7.x) and OnePlus 6 (Android 8.1) , and I never came across such an option.

@Firelord it's common on custom ROMs to have an AppOps manager builtin. It's not a stock AOSP.

No stock ROM... Not Custom... AppOpps is a part of Stock Androids

Yes, appops is part of AOSP, but that option in the screenshot is not available. That's what I meant. Which device and ROM are you using?

AppOps is part of AOSP, not AppOps managers (GUI).

@Firelord it's built with many releases of CM, LineageOS, AEX, RR and even OmniRom if I remember correctly.

I'm using stock Android 5.0.1 on ZTE Blade L4 Pro

@Zillinium it would be helpful if you provide link to AOSP where the source code of Auto-start management exists.

It is not called Auto-start management.. It is permission management... Auto Start requires the following permission... "android.permission.RECEIVE_BOOT_COMPLETED" .. ... You stop or Manage the Auto-start by disabling the Receive Boot Completed permission for that application... Please Reffer TO... Permission Management...


text:
Boot Loop with old CyanogenMod: Unable to stat various files
My old One Plus One suddenly refuses to boot without any changes from my side. OS is CyanogenMod 11. The device is rooted and there is TWRP 2.8.0.1 installed on it and debugging is active. The symptoms are as follows:

Once turned on the 1+ logo is briefly displayed as usual
Then the CM logo which looks like a turning bolt is shown indefinitely

I can boot to TWRP recovery mode. However, before attempting a factory reset I would like to do a backup with TWRP. This goes well for /system but fails for the /data partition. There are error messages  Unable to stat 3 files.    /data/data/com.android.providers.settings,
/data/data/com.android.settings/databases/google_analytics_v2.db-journal
and /data/data/com.android.settings/files.
When I try to make a backup with adb, I get stuck at the stage where I am supposed to confirm the backup on the phone itself.
Is there any possibility to enforce the adb backup and skip the confirmation? Any other means of making a backup od App date prior to attempting factory reset? Are there any other forms of backup which I could use?
I am also thinking about pulling the entire /data/data directory to my computer via adb. Would this be a viable option for restoring data later?
Thanks for any help!

The CyanogenMod 11 may not even touch DATA/ however that is obviously what is causing the issue... corruption.  Try flashing the stock Cyanogen Zip you used to update... and then Do Not Wipe Data... Just Dalvik Cache & Cache ... Try the system repair first... Then see if it is actually DATA or SYSTEM causing problems....

Also try JUST WIPE DALVIK Cache & Cache... With no reinstall


text:
Lowest Bluetooth audio volume is too loud
I recently acquired a pair of Galaxy Buds to use with my Galaxy S10+. I am using them to listen to Spotify at work.  Everything is working fine except the lowest volume setting is a bit too loud. If I were to turn up the volume to 25% then it would be blasting.
I looked around in the system settings and the Galaxy Wear app settings but I don't see any option to adjust this.
Is there a way to decrease the overall Bluetooth audio volume so the lowest notch isn't so loud?

If in Developer options, "Disable absolute volume" is enabled, try to disable it.

@ReddyLutonadio Thank you for making me aware of that setting. Unfortunately it was already disabled. I played around with it for a bit and didn't notice a difference.

There are some apps in PlayStore like "Precise Volume" that claim that they can massive increase the number of volume steps which makes it possible to change the volume below the old minimum.

@Robert I gave the Precise Volume app a shot. It lets you set the volume from 0% to 100% at intervals of 1%, which seemed promising at first. However, on my device, it seems 1% through 9% are the same volume, 10% through 18% are the same volume, etc. So the notches that I'm normally allowed for Bluetooth volume still seem to be enforced.

Then I would contact Samsung support complain about the volume. As phone and headphones are Samsung products they should provide a solution - or at least learn that something is wrong with their product.

I was able to fix this by using the Samsung SoundAssistant app.

Install app from Galaxy Store.

Go to Individual app volumes.

Add application.

Adjust volume for that app.

Browsing to the link provided, which is https://play.google.com/store/apps/details?id=com.samsung.android.soundassistant, resulted in "We're sorry, the requested URL was not found on this server."  So in researching this further I found a built-in method to reduce the volume.  I posted an answer for that heres; https://android.stackexchange.com/a/255971/13886

Under the Spotify settings, switch the volume level setting from normal to quiet and restart the app.

If anyone has a better answer as to how to reduce the Bluetooth Audio volume across all applications instead of just Spotify, please post it and I will switch the accepted answer to that one.

This feature is available for Premium accounts only.

I have an MTK Android phone so I don't know if it will work on others (Snapdragon, Exynos, Kirin, etc)

Launch MTK Engineer Mode app: MTK settings > Hardware testing (tab) > Audio > Volume > Audio playback

Change the selected channel from System to Music.

Then experiment by decreasing the values of Index 1

This answer might be phone-specific (my phone is an "Samsung Galaxy S21 Ultra") or Android version-specific, but I am posting this answer anyway just in case someone finds it useful:
I had a similar issue with a set of Bluetooth earbuds (Amazon ASIN B0BPS83P1W), namely this: Pressing the phones volume button to the lowest level (just one level above the level where the sound completely shuts off, or mutes the sound) results in the volume being still too loud for my ears.  I observe that my pair of earbuds is likely different from the OP's earbuds (completely different manufacturer, etc.), so I reason this is an issue that must be rectified in the Android system via app or other means, and might not implicate the bluetooth earbud manufacturer.
I examined DavidEG's answer on 2024-01-27, and particularly the
SoundAssistant app mentioned in that answer, and found it was non-existent (browsing to that link resulted in "We're sorry, the requested URL was not found on this server."). I then searched through for other apps that might directly allow controlling the effective volume level and did not find any app (I did not purchase any apps but only examined cost-free apps) that could effectively reduce the volume level. There may be apps that can do so, but it was next to impossible to identify them without testing them all, which is prohibitively expensive in time-cost. Thus I gave up on that.
I then hunted through my phones built-in settings and found an Equalizer that seemed to work: I found that the levels for all of the frequencies could be lowered. In this particular use-case, I lowered all frequencies down to the same level, as I do not require amplification or attenuation of different frequencies but instead attenuate all frequencies.
The advantage of this approach is that it does not require installation of apps to address this issue only to find they come with other hidden costs such as ads. The possible disadvantage is that this may be phone-specific or Android-version specific, and if so, your phones customized version of Android may not have a/the so-called "Equalizer" setting.
Regardless, below I show the screenshots of how to navigate down to the Equalizer and lower the volume for all frequencies. Other phones may have similar means to lower the volume globally:


text:
Local offset of clock
I'm using the App ClockSync on a Android 7.0 device (Huawei P9 Plus) and on a Android 5.1 device (Huawei MediaPad M2) and I face two problems.

I'm synchronizing the time with ClockSync on my Huawei P9 Plus device. When I then restart the device, the clock has a local offset of around 76 seconds. Why is that? By the way the device is rooted (TWRP). This only happens when I restart the phone.

On my Huawei MediaPad M2 device the local offset of the clock (shown by ClockSync) increases over time. After one hour I have an offset of 1 second. How can I decrease this massive offset? Automatic time synchronization is no option because I'm recording sensor data and I don't want to have a sudden jump in the timestamps.
On the other hand on my Huawei P9 Plus device the offset is not monotonically increasing but just jumps around and is always lower than 1 second. Why is the local offset jumping around? I have disabled automatic time synchronization in ClockSync and also in the system settings.

As your device is rooted have you tried to simply re-configure the built in NTP system? BTW. Android can also use GPS or mobile network for time synchronization. As you have problems with the correct time I assume the device is GPS-offline and Wifi only, richt?

@Robert Ok I could set the ntp server but how do I know when the time is synchronized? For example I would like to have every min a synchronization.

@Robert Yes, it is GP-offline and Wifi only because it is used indoors.


text:
Can I use DNS-over-TLS below Android Pie?
Unfortunately DoT isn't part of Android below version 9. Is there a workaround app or should I better install LineageOS 16 on my old smartphone device?

You can set up dnscrypt-proxy.

You are looking for this: https://play.google.com/store/apps/details?id=com.cloudflare.onedotonedotonedotone&hl=en_US


text:
VPN disconnects immediately
My android phone connect to VPN then immediately disconnects, I tried most of VPNs on Google Play Store but it's not working.
OpenVPN connects barely and disconnects in less than 1 minute, my network is good and I can connect VPN on my laptop with my network.
01:06:43.695 -- EVENT: CONNECTED info='ir443391@nl.ovadd.com:800 (134.19.177.20) via /UDPv4 on tun/10.11.3.202/ gw=[10.11.3.201/]' trans=TO_CONNECTED
01:08:09.304 -- EVENT: DISCONNECTED trans=TO_DISCONNECTED 01:08:09.321 -- EVENT: CORE_THREAD_INACTIVE
01:08:09.322 -- Tunnel bytes per CPU second: 0
01:08:09.323 -- ----- OpenVPN Stop ----- –

Have you checked the OpenVPN log file (there should be an option in the app to view it)?

Is your Android phone killing apps from the background? Check for background activity manage, battery optimizer or a similar option in your device settings and disable it for your VPN app.

I disabled Battey optimizer for all VPN apps


text:
How do I find what type of file system is of an attached USB or SD card?
How can I find the file system type of USB drive without using computer? Drive is attached to Android phone and I can see the files in it. I want to know if it is extFAT etc.

Related question: How to detect filesystem type of un-mounted partition?
Just to complete some missing pieces:
Usually we use mount command to see mounted filesystems, it works without root e.g. from a terminal emulator app or adb shell:
~$ mount
...
/dev/block/sda1 on /mnt/media_rw/C8BA-D0E2 type sdfat ...
/dev/block/sda2 on /mnt/media_rw/C78E-434F type vfat ...
/dev/block/sda3 on /mnt/media_rw/C81D-4E8D type vfat ...

It shows mounted filesystems on external USB drive to be sdfat and vfat which are not actual filesystems but filesystem drivers. A driver can support multiple filesystems and a filesystem can be mounted using different drivers. sdfat can be exFAT, FAT32 or FAT16. vfat can be one of latter two. Similarly filesystem types sdcardfs, fuse or fusectl aren't actual but virtual filesystems (FUSE can be used to mount any filesystem theoretically). So the output of mount command or apps like DiskInfo can be insufficient or misleading.
A more certain way is to read filesystem magic (file and blkid commands do this). But the problem is that storage devices are enumerated as block devices by Linux/Android kernel and device nodes are created by Android init/vold with restricted permissions so that only root processes can access them (see How to read ext4 filesystem without mounting on a non-rooted device?). So it's not possible to read partitions directly which hold filesystems inside them.
With root access:
~# blkid
/dev/block/sda1: ... TYPE="exfat"

~# file -s /dev/block/sda*
/dev/block/sda2: DOS/MBR boot sector ... FAT (32 bit)
/dev/block/sda3: DOS/MBR boot sector ... FAT (16 bit)

* Android's builtin blkid does have filesystem magic values but toybox file applet doesn't have. Use e.g. file on Termux which looks for a large magic database.
~# hexdump -C -n100 /dev/block/sda1 | grep -o '[EX]*FAT[0-9]*'
EXFAT

* hexdump is a busybox applet.
exFAT magic is found at offset 3, FAT32 at 82 and FAT12/FAT16 at 54. So for exFAT hexdump -e '"%_p"' -n5 -s3 /dev/block/sda1 returns EXFAT.
Similarly for EXT4 hexdump -e '"%X"' -n2 -s1080 should return EF53 and for F2FS hexdump -e '"%X"' -n4 -s1024 should return F2F52010.
Without root access:
Another option is to check logcat soon after boot or inserting USB drive or SD card. vold uses blkid at back end to detect filesystem before mounting which appears in log:
~$ adb logcat -v brief -s vold:V | grep TYPE=
V/vold    (  752): /dev/block/vold/public:8,1: LABEL="disk" UUID="C8BA-D0E2" TYPE="exfat"

For adb logcat, if I run that command C:\blah>adb logcat -v brief -s vold:V  and I take out the SD card and put it back in.   I get this output  https://pastebin.com/raw/dt3zFb6L  which says within it. /dev/block/vold/public:179,65: UUID="21FE-E026" TYPE="vfat"  So still not so specific.  More specific than the mount command though that said sdcardfs!

By the way  you wrote "sdfat can be exFAT, FAT32 or FAT16. vfat can be one of latter two. ".   A google shows that vFAT can be FAT12, not just FAT16 or FAT32.  "The vFAT filesystem format is primarily used on older windows systems and portable USB drives or flash modules. It comes in three types FAT12 , FAT16 , and FAT32 all of which are supported by the vfat kernel module."

Apps like Disk Info also provide the format (enable "show file system" in settings).

no, sdcardfs is a driver, not the actual thing(as answerer irfan mentions).  For an app showing file system on sd card, the other suggestion of devcheck  by answerer "fred", works

The app DevCheck will show you the actual filesystem of /system and /sdcard.  (unlike the "diskinfo" app).

if you see here this screenshot https://i.stack.imgur.com/aOqel.png  granted it doesn't say sdcardfs  which mount said and what diskinfo would probably have said  .  But it says vfat (which might be ab it more descriptive but still isn't the actual file system).     Irfan mentions "sdfat can be exFAT, FAT32 or FAT16. vfat can be one of latter two"