text:
How can I see the calendar from Android work and private profiles together?
The organization I work at has added the option of using Android For Work (AFW) aka Android Enterprise (AE).  Under this setup I have two profiles: private and work.  These are completely separate spaces, so apps installed in one profile aren't available in the other, and files are kept separate.  Even Android's share functionality is separate, so I can't share a file I received at work to my private profile.
The only thing that I've seen that is somewhat shared is the phone app.  When I search for a contact, I get results from both work and private profiles.
The question is, is there any way to view my work and private calendars together?  While the profiles are separate, there is only one me, so I would like to be able to see all my schedule constraints in one place.  Is there any way to do this?

no, this doesn't help.  In my case I want the opposite - view calendars from two profiles on a single widget (or app)

See if calendar widgets from Izzy's list can help

It doesn't look like it would help, because all of those widgets are apps that are installed either in the work profile or in the private profile.  Apps that are in one profile can't access data from the other.

Yes. This issue has been raised last year in Google forums and apparently there is no way unless you can export to Gmail or have a common account provider for calendars https://support.google.com/calendar/forum/AAAAd3GaXpEUzTYjxDEQjs/?hl=en

You can share your work calendar with your private id or share your private calendar with work id. This way you can see both calendar together.
This applies if it is google calendar for both work and private use.
Please let us know if you have some other configuration in calendars.

I'm not sure I understand.  Are you talking about sharing my google calendar with another google user?

I guess you have one google id for your work account and one for your private account. So for Google your work email is one user and your private account is another user. You can share colander with yourself.

My work account isn't a google account.  I don't have the option of sharing my calendar outside the organization.

I have a Microsoft Exchange account for work and I use Outlook on Windows. I have a Android work profile calendar app on my phone. I used the following steps and was able to see my personal calendar events on my work profile calendar app on android phone.

On PC, go to Google calendar in browser. Click on Settings for the personal google calendar that you want to add to your work profile app.
Under "Integrate Calendar" copy the URL that said "Secret Address in iCal format". You can use public link for public calendars.
In Outlook on Windows PC, choose Open Calendar -> From Internet. Paste this URL and click "ok"
Sync Android work profile calendar app. It should start showing events from this new calendar added just now.

I cannot yet change the colour of this new calendar in the Android app (setting different colour in Outlook doesn't help). It would be ideal to see them in different colours, but I'll live with this.


text:
How to disable all notifications from the lock screen
Can anyone kindly tell me how to disable notifications from appearing on the lock screen? I have tried going to settings and then notifications but it just gives me a list of all apps, and I would like to disable them all.
Thanks.

In settings -> Notifications we see all apps list. On same screen there is a gear icon or advanced menu which will launch advanced notification settings. From options select 'On the lock screen' and select don't show notifications at all.
You can also search 'lock screen' in settings to easily find it.
If this doesn't work then edit and  mention your handset model in the question.

source: Stack Exchange

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

sort: votes


text:
How to completely remove spam bots from Telegram groups?
I'm managing a small Telegram groups. Unfortunately a couple of days ago a user added a bot to the group. I immediately removed/banned that user and the bot. However all other member still see the bot on their Telegram messenger:

which when selected expands to:

I have looked everywhere but for the love of god I can't find any way to remove it entirely from the group. I would appreciate if you could help me with this.

This is because the bot that has been added sent a ReplyKeyboard as its ReplyMarkup. This ReplyMarkup are the button(s) you see at the bottom of the chat. To remove this you might want to add a bot that can send AND remove the Keyboard.
I know that @combot can do this with it's command !nokeyboard. This will send a keyboard to everyone in the chat and instantly remove it.
Hopefully this will help.

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


text:
Have transferred all music to SD card but still seem to have full system/ user data
My galaxy S7 external SD card seemed to have stopped working. Which caused my phone to show full internal storage. I replaced the SD card with a new and larger one and transferred all my google play music to it. My phone is still showing full storage. 30.5 GB of storage is consumed by userdata/system. I removed the external sd card and checked if the google play music was showing any data still. No data is showing. So I can not for the life of me figure out what data and where is consuming all my storage.
Next step is clear the cache.
Last step is master/hard reset. Really don't feel like that though.
Ideas?

And clearing cache did nothing.

So I figured I would just start throwing things at the wall. I ran a graphics test in recovery mode. Then went back in to settings>device maintenance>storage>update and ran a 360 security database update. Then wettings>device maintenance>storage settings>phone memory. Interestingly is showed my music and audio to be the main culprit. I selected it and it opened my google play music app. Verified that it still was set to external storage and then went back in to my settings>device maintenance>storage and lo and behold my storage dropped from 31.5 GB used to 18GB used.

My assumption is that even though google play music app had transferred the files to my sd card it still retained the files in some hidden directory. By running the security database update it must have recognized the files and deleted them from the internal storage. That or my phone was drunk and needed to sober up and realize the files were transferred.

You can self answer the question too, to help others in a similar situation :)


text:
Alarm not sounding on an Honor 6X
Note: I have researched this online, but none of the answers seem to work.
Currently, my honor 6X does not make any alarm sound. Obviously, this can lead to some predictable problems. I've made sure of the following:

My volume, ringer, alarm, and calls are all turned to max.
My regular volume works perfectly
I am using the default clock app
I deleted all my alarms and tried again, to no avail
My phone was restarted (I do not want to do a factory restart unless that is the only possible solution)
The alarm pops up, but has no sound
I gave clock priority over other apps and gave it all the permissions possible
I've tried different alarm sounds and reset it to the default
I have turned off Bluetooth
I have cleared all other apps
I have turned off the Android given task manager
I have no other clock apps
Although, my phone is rooted, but for over a year now, and have only encountered this problem very recently, so I think I can cross that off my list.

I am completely lost now on what to do, I have basically tried everything possible. So how in the world can I get this to work? Any opinion or idea would be greatly appreciated

In alarm settings, please check whether you have enabled gradually increase volume to never. ( I am using Google clock)

Have you disallowed notifications for the Clock app (including disallowing sound there)?

Also check if it is a protected app or whatever it is called now for those apps that switch off after screen is off

@wbogacz nope, all permissions granted

@beeshyams I completely turned off the "protection app" for all apps.

@Rahul Gopi I can't seem to find that setting in my clock settings

this image shows settings for timer which is similar to that of alarm. https://i2.wp.com/mashtips.com/wp-content/uploads/2018/08/AddClock_Timer.jpeg?resize=600%2C320&ssl=1

you can also try the following two methods.

In the Settings - Smart Assist - Gesture setting, there is an alarm to turn the mute to see if it is caused by flipping the phone and causing the alarm to be muted.
Wait for the new version and upgrade to the latest version


text:
What if a thief disabled Android Device Manager in settings
I have my phone stolen and It has no Lockscreen pattern. No sim Card. Location Turned off. No Data/WiFi.
What if the thief is smart enough to turnoff the Android Device Manager first before doing stuff with the mobile?
Does Android require Google account password first before disabling the Device Manager?
Will the Remote Erase work once the device goes online ? (Do they use device Id or IMEI for this)

Hard luck. Without any security like PIN etc, he is as good as the phone legitimate owner and if he turns off Android Device Manager, you can't wipe the device. Remote erase only works if it is enabled

Law One of Computer Crackers: If I can touch your device, I own your device.
Law Two of Computer Crackers: If you device does not have a password, I definitely own your device.

Okay, so those are not really laws, at least not written ones. I am just stating them to make a point.

Because you have no device security to access it, anyone who gets hold of your phone can do anything they want.

What if the thief is smart enough to turnoff the Android Device Manager first before doing stuff with the mobile?
Does Android require Google account password first before disabling the Device Manager?

Then you are out of luck. You do not need a password to disable/uninstall any application through settings.

Will the Remote Erase work once the device goes online ? (Do they use device Id or IMEI for this)

No, it uses your linked Google account to erase the data.

No sim Card. Location Turned off. No Data/WiFi.

But before any of this, you say there is no sim card (meaning no carrier service available) and no wifi. That alone means that you are not able to do anything with device manager. If the thief were to connect it to the wifi, then you could, unless they have removed your account before connecting to the wifi.


text:
Pattern unlock not working after OS upgrade to android 6.0.1 Sansung J7
I upgraded my Samsung Galaxy J7 device from system update menu. It was working fine after the upgrade but it is not accepting my pattern after the restart. I don't remember the PIN also.
I have tried following things to unlock the device :

I have tried logging on to Android Device Manager, but there is nothing like resetting password there in the options. It just allows you to display some message on the device.
I have tried unlock through Samsung website but looks like this is something I should have setup before the device was locked up.
I have tried pushing Aroma File Manager zip file through adb sideload and also through SD Card but through both ways it is giving same error :
E:footer is wrong E:Signature verification failed

To disable Signature verification I tried pushing CWM custom recovery but I am not able to sideload that also as I get the same error.
The recovery is only giving me option to connect to adb sideload. So, I can't delete files through adb shell.
Please tell what other methods I can try.

Sideloading custom recoveries like CWM or TWRP won't work as they are not cryptographically signed by Samsung and as such the stock (default) recovery will refuse to install it. Also, factory resetting your device no longer resets the lock since Android 5.0 Lollipop, it's an anti-theft measure. Does your device require the pattern on startup (on a black screen) or just on the lock screen? Does it ask for a PIN on startup instead of the pattern? You can try contacting Samsung support or a nearby service center to help, but the phone is most probably encrypted and your data will be deleted.


text:
A/B (Seamless) update device questions
The internal storage of each Android device is separated into partitions such as system and boot. Most devices have only a single copy of each partition, but devices that support seamless updates have two copies of certain partitions—slot A and slot B, hence A/B—so that one copy of the partition lies dormant while the other is in active use. Because each partition is a copy, they can be used interchangeably to boot into Android. This also means that you can update one partition in the background and then swap to it when you reboot—thus your update is seamless!
I need to know more about this for a stock unrooted device:

After OTA system update, does the device install OS to both partitions? Or  install to only one partition.
whether the device continues to same(current) android version until reboot manually?(after installing version update). Or whether it updates current to latest version overnight.
When normal reboot(not after update), how can a user identify whether device is booted to which slot (A/B)? Else, will the device continues to current slot on normal reboot(for example if it is A).
If any one slot got corrupted, Is it possible to use other slot only.

After OTA system update, does the device install OS to both partitions? Or install to only one partition.

and

whether the device continues to same(current) android version until reboot manually?(after installing version update). Or whether it updates current to latest version overnight.

It installs only to the inactive partition, which becomes active on reboot after update. Figure explains clearly

When normal reboot(not after update), how can a user identify whether device is booted to which slot (A/B)? Else, will the device continues to current slot on normal reboot(for example if it is A)

On a normal reboot, it always reboots into the currently active partition. You can verify by running this command pre and post normal reboot
fastboot getvar all | grep “current-slot” (On Linux)
On Windows, fastboot getvar all and search for current-slot
Edit : You can see current slot using apps like Dev check

If any one slot got corrupted, Is it possible to use other slot only.

If you mean by corruption , the update has failed,

....the device will roll back to the working build on the other slot....Your data is kept perfectly intact, even if the update is borked, as there is only one partition (userdata) which houses your data.

From How A/B Partitions and Seamless Updates Affect Custom Development on XDA and for more technical details see A/B (Seamless) System Updates
Edit:

Here is a  more detailed picture from Android Police

Also see A/B (Seamless) System Updates from Android developers.


text:
Can I use Android tablet as a handsfree or headset Bluetooth device profile? (Status in 2018)
This question is a duplicate of Can an Android phone be used as a Bluetooth headset/speakers? from 2011. I am asking because I suspect Android may have been subject to an update or two since then.
My use case is:

Old car with aux input
Tablet screwed into the dashboard
Tablet audio out into the car radio and wired microphone next to the rearview mirror into the tablet

I want to get in my car and take a call, without taking my phone out of my pockets. I've been searching an hour, reading 25-page long forum threads, still no definitive answers and almost all threads are from 2012 or so.
With all the people screwing tablets into their car's dashboard, there just has to be a way to do this, right?

Hello user Andrew T, I would have messaged you about this but strangely this website lacks any form of private communication. I mostly agree with your edit on this very old question however I just wanted to point out that "there just has to be a way to do this, right ?" and "there just has to be a way to do this right ?" do not mean the same thing

Both sides of Bluetooth handsfree profile (they are called handsfree unit, HF and audio gateway, AG) are implemented and present in Android source code. As a developer, you can develop firmware supporting HF, or AG, or even both (automatically or manually selecting what role will currently be active). But generally, firmware developed for smartphones and tablets supports only AG role and firmware developed for car head units supports only HF role.
I have not tried to search such information, but possibly alternative firmwares for specific tablets with dual roles support exist. There are no serious difficulties to implement it at a firmware level. But I am not sure that the implementation of standard second role at the application level is possible.
Upd: It can be difficult to support dual roles if audio streams are processed and routed by hardware, and there is no default streaming for one of roles.


text:
Why is my phone detecting two taps instead of one on the screen?
I'm observing a strange behaviour on my phone out of the blue. Yesterday, the left side of my screen stopped working properly. I started having a hard time clicking anything next to the left edge, typing the keyboard or pressing buttons on the left.
I enabled Developer Options > Input > Show touches, and I was able to observe that when I try to tap the left side of the screen, the screen appears to detect two taps on opposing sides of a column, as if the whole column of pixels were damaged. The phone hasn't suffered any hits or gotten wet. This is just out of nowhere.

I've uploaded a video of this to make it clearer here.
This is an Xperia Z3, D6603, running Android 5.1.1.
Has anyone encountered something like this? I've tried restarting the phone to no avail.

Do you have any gesture apps installed? Sometimes they are even native to the particular phone? Maybe the allowable trigger real estate is defined especially broad? Multi-app/multi-screen enabled?

Hi @wbogacz, I don't have any gesture apps installed. But if that were the case, wouldn't that affect the entire screen? If you look at the video you'll see it happens all along a vertical area alongside left edge of the screen.

This is a hardware problem. The screen sensor is faulty. The actions most likely to solve the problem:

Factory reset
Cleaning of the screen ribbon cable
Replacement of the screen.

can you please explain how to clean the screen ribbon cable? Can you point me to a video or article somewhere that explains this? Also, how does a factory reset solve a hardware problem?

In the end I had to take it to a technical service shop where they replaced the screen. Unfortunately on this model that also means replacing the entire frame because the screen and frame are one.

Sony official support is very bad in this regard BTW. They basically refuse to even try to fix a device that's past warranty. So if you face this problem take it to a good third party. They'll replace the screen using spares from other scratched devices but it's your best shot. The reason for the "double touch" symptom is that when a pixel goes out, the entire column goes with it. I guess it's a design issue. They told me humidity might have caused it.

It some time happens when some of the apps in the background are going through connection or network problems and they are third party they start behaving badly and they start making your phone to hang and make waste touches

I've killed/dismissed every app and restarted twice, but still observe this. Any idea on how to solve it?


text:
File not deleted from Downloads message (but got disappeared)
When I try to delete a file using the downloads app (Android 8.1 app), I sometimes get the notification that my file couldn't be deleted and subsequent message by tapping the notification that my file wasn't deleted.

 (click to enlarge)
But after this, the file is nowhere to be found in the downloads app, even when using a file explorer like Files Go or ES File explorer. I wonder what happened, whether my file got deleted or if not, then where is it?
I am using Nokia 3.1 Android version 8.1.0 Oreo.
This problem has been there since my phone was new and had Android 8.0 Oreo.
Any help is much appreciated.

The Downloads app gives a list of all files that were downloaded - like a browser history. If the file was deleted already, it would still show up in the Downloads app even though the file doesn't exist any more. In that case, when you try to delete the file, the deletion will fail as you're seeing now.
This would happen if you deleted the file from the Downloads folder using a file explorer app (or some other app) instead of using the Downloads app, or if an app requested the download but deleted the file as soon as it finished using it.
This isn't the only explanation, but it's the most common one that fits your description.


text:
My phone dials #3282 (#DATA) by itself. Which app did it?
For about the last month, I occasionally find my Cricket Samsung Amp Prime (Android 7.1.1) dialing #3282 (#DATA) without me initiating it.  According to my call log, it started on October 1, 2018.  It has happened about 6 or 7 times over about five weeks, with no noticeable pattern.  It does seem to happen after I've been actively using the phone.  On Cricket, this results in a "Your call can not be completed as dialed" message.  I think it used to be an active feature but is no more.
I suspect that an app update is behind this, but I'm not sure which one.  I have about 20 apps with phone permission enabled.  Is there a way to log when an app uses phone privileges?  Or straighter to the point, does anyone know which app might be causing this?

In my case, the app was Nova Launcher.  I had recently enabled the permissions needed for gestures, and presumably, one of the defaults is to dial #DATA when a user swipes down on the screen.
To disable this gesture, start Nova Launcher, go to Settings, and edit the Swipe Down gesture (or whichever gesture is assigned) and choose None or another action.


text:
WhatsApp doesn't prompt to restore from local storage
I ran into this weird situation, where:

I backed up my WhatsApp to local storage, inside the Databases folder

Then I changed my WhatsApp number (to another new SIM)

Format my HTC Phone (HTC One E9+ Dual SIM).

Copy back all WhatsApp folder back to the Internal Storage

Re-install WhatsApp, but, all it asks me is this (below)

Upon "Skip", nothing, no chat restored.

I have already renamed the database file as per Restoring your chat history to msgstore.db.crypt12 and also kept the same file with the name msgstore.db.crypt. But, it simply, doesn't even detect it & asks nothing as backup found/restore.
Any guess/idea?

Disclaimer: this solution is offered to those who as myself found this post via googling for "whatsapp not restoring local backup", I have not changed my number.
I've tried giving permissions before Whatsapp starting as advised in other answer, but to no success, restarted my phone - again no success. But then I noted "Whatsapp" folder as seen by android file manager contains only "Media" folder, whereas to my Linux mounted drive I copied all folders, which gave me a clue. I  copied all "whatsapp" previous phone folder to some folder on the "new" phone via laptop and copied from there to "whatsapp" folder via internal android file manager app. Then Whatsapp found backup. Looks in my case the issue might have been with Linux-Android USB link.
ADDED:
Android 11 release issue and solution:
WhatsApp is now in [Internal storage]/Android/media/com.whatsapp/WhatsApp/Databases - that you can check for yourself after installing it on a new phone (install first - not run yet, then copy files from old phone over to new one in that new folder, then start WhatsApp on new phone).

I wanted to confirm that this method works! Somehow the folder was moved from data/whatsapp to Android/media/com.whatsapp/WhatsApp. I had to copy the backups and databases folder and then it worked. Also this article helped me
https://faq.whatsapp.com/android/chats/how-to-restore-your-chat-history
(you can rename the backups if you want to restore a specific date)

I had to copy to this new folder and then give permissions in advance (see other answer). Thank you!

@RobieBasak Thank you. Yes, the process is "Install WhatsApp without starting", "If started though, clear storage", "Copy WhatsApp folder over", "Give WhatsApp all necessary permissions", "Start WhatsApp". Let's go.

This worked without granting Contacts permission. I did grant the media permissions, so I don't know if it would have worked without those.

Android 11 release issue and solution:
In my case, after backing up the WhatsApp folder via USB and restoring it using the same method to the new phone, I discovered that WhatsApp was unable to find the backup in the path /data/media/0/WhatsApp (which is mapped to USB on my Android 11 Pixel 4a as "Internal Storage").
Moving the folder instead to /data/media/0/Android/media/com.whatsapp/WhatsApp did the trick for me. No permission changes were necessary. I did this via a root shell on a custom ROM, but it should also be possible on a regular phone to simply recreate the folder structure using the USB connection:

Force close WhatsApp
Go into app settings and clear WhatsApp's storage
Via USB, create Android folder if it's missing
Create media subfolder if it's missing
Create com.whatsapp subfolder if it's missing
Copy your WhatsApp folder to the com.whatsapp subfolder

I had problems with this too, and today finally it worked.  I'm not sure which of the following additional steps did the trick, so I'll list both:

I copied the entire WhatsApp folder over from the old phone to the new one (apparently the asker already did this).
After installing WhatsApp, I gave the app all possible permissions before running it: under Settings/Apps, select WhatsApp, tap Permissions, and then select all permissions listed under "denied" and tap "allow" (you can revoke the permissions again after the backup is succesfully restored).

After doing this, running WhatsApp and confirming my phone number, I was finally prompted to restore the local backup. Before that, I had selected "give permission" in the popup from the screenshot above, then approved the permissions it asked for, but apparently this is only for the Google Drive restore. It looks like restoring a local backup only works if the permissions are already present?!

Hi you mention "Google drive restore". Strangely I could not find a way to give such permission via neither "app permissions", not in "drive" app. http://www.rawinfopages.com/tips/2015/10/who-can-access-your-files-on-google-drive/ says to use drive.google.com address, but does not work on my Android. Do you know where is it?

I had to copy to the new folder (see other answer) and then give permissions in advance. I then agreed to let it look in my Google Drive (even though I've never backed up there) and then it found the local backup. Thank you!

I also had to disconnect Whatsup from Google Drive. Otherwise it would only attempt to restore from the drive which failed bacuse the backup never succeeded

If your backup was made when you had a different phone number than the one you currently have, you will not be able to restore it.
As found on https://faq.whatsapp.com/en/android/20887921/#restore

Restoring or transferring a backup
WhatsApp will ask you to restore your chats and media from a backup once you verify your number. Simply
tap RESTORE when prompted to. If WhatsApp doesn't detect a backup, it
could be because:

You aren't logged into the same Google account.
You aren't using the same phone number that was used to create the backup.
Your SD card or chat history is corrupted.
A backup file doesn't exist on the Google Drive account or locally on your phone.

Note: The easiest way to
transfer data to a new phone is by using Google Drive. If you want to
use a local backup, you'll need to transfer the files to the new phone
using a computer, file explorer or SD Card. If your data isn't stored
on the /sdcard/WhatsApp/ folder, you might see "internal storage" or
"main storage" folders.

Thanks. Trying to get OLD SIM working :( BUt I already changed my number in whatsapp, but, yeah, backup was made with previous sim.

I just want to be clear on the steps, please let me know if this is correct.

Made backup
Reset phone with new SIM
Installed WhatApp
Changed number connected to account in Whatsapp
Attempted Whatsapp restore

rob74's answer works.
With respect to this website, I will add icing above the cake for others with a similar problem
- referencing to the asker step one to five - the right sequence should be:

(2) I changed my Whatsapp Number (to another new SIM). Link: Change WhatsApp number
(1) I backed up my Whatsapp to local storage, inside the Databases Folder
(3) Format my HTC Phone (HTC One E9+ Dual SIM).
(4) Copy back all Whatsapp Folder back to the Internal Storage
Here, I use the solution number (2) from rob74

The option to restore from local data will pop up, just hit OK and done, continue like usual
For those with new phones:

In the new phone, I install WhatsApp just so I know where to paste the copied data
Uninstall WhatsApp. Even though it gave a warning that all data will be erased, it didn't erase my copied data.
Same with above

It does not work for me with the latest version of whatsapp...it does have the names of the groups but not the conversations....aany suggestions?

Update: (July 6th, 2023):
New, Easier, Better Way To Transfer Your WhatsApp to A New Phone.
For Android:
What you need:
1- Android OS Lollipop 5.1, SDK 23 or above, or Android 6 or above installed on both your old and new Android phones.
2- Use the same phone number as your old phone on your new phone.
3- Your new phone must not be registered on WhatsApp until you start the migration on your old phone.
4- Your phones must be close to each other.
5- Both of your phones should be connected to a power source.
6- Both of your phones need to have WiFi enabled. They don’t need to be connected to a network.
7- Certain device permissions are required to initiate the transfer. Precise location permissions are required by the device in Android 12 and below, but WhatsApp does not collect your precise location.
On Old Phone:
1- Open WhatsApp on your old phone.
2- Tap More Options > Settings > Chats > Transfer chats > Start.
3- Accept requested permissions
4- prepare to scan the QR code that will be shown on your new phone.
On New Phone:
1- Download and then open WhatsApp on your new phone.
2- Go through the setup.
3- Tap Accept terms and conditions.
4- Verify your phone number.
5- Tap Start on Transfer chat history from old phone.
6- Accept requested permissions and then you’ll see a QR code.
7- On your old phone scan the QR code shown on your new phone.
8- Accept the invitation.
Notes:
1- While your chat history is transferring, a percentage bar will track the progress.
2- Keep both phones unlocked and don’t leave WhatsApp.
3- Messaging is paused during the chat history transfer.
4- You can Cancel the process at any time.
5- Once the import is complete, tap Done.
For iPhone:
It is similar, and you can get detailed steps for both on the WhatsApp website if you cannot figure it out yourself.
Source: WhatsApp.com

OLD Stuff:
Disclaimer: This is based on my personal experience and it is NOT official. If you like to use it, do it at your own risk.
In addition to all the previous answers, and if WhatsApp ignored the local backup after canceling the google drive backup, one can try this:
When WhatsApp asks for google drive backup:
1- Close WhatsApp.
2- Put the phone on flight mode.
3- Run WhatsApp again.
4- When asks for google drive Skip.
5- Now Local backup should be recognized.
6- Reconnect to the Internet.
7- Go on and restore the local backup.
It is important that you use the same phone number to restore, so either:
1- Change the phone number on the old phone before the backup. or,
2- Use the old phone number to restore then change it on the new phone.

how did you work around the need to auth by phone number? that requires networking to request SMS token. You cannot do that in flight mode.

6- Reconnect to the Internet.


text:
Change default Chrome built-in dictionary
I have Samsung Galaxy S7 on Android 8.0 Oreo. I have recently noticed that once I select a word in Chrome, I get an option "Dictionary" that would take me to this app. This is the icon of the app:

I can't uninstall this app, thus this means that this is an app by default/built-in.
I want to change the dictionary. By this, I mean when you select one word in a webpage, there is this popup that comes up with the last option dictionary. The built-in dictionary is quite poor for certain languages, and I'm using dictionaries quite a lot.
Ideally, I'd like to use GoldenDict, but any other dictionary would be fine.
Is there any way of using another dictionary from the contextual menu of a web page in Chrome?

I don't have this Dictionary option in Chrome, and I checked a couple of other Android devices too, and none offer it, so most probably it's an option offered by your OS manufacturer. You should probably specify your phone model and Android version in the question.

This app can integrate into Chrome as well and offers reasonably adequate set of words.

I also do not like this built in dictionary. I don't think you can get rid of it, but you can add a better dictionary with pop up functionality, like OnTouch (cheap but good) or Oxford English Dictionary (more expensive)

Download this.. https://play.google.com/store/apps/details?id=livio.pack.lang.en_US&hl=en_IN
And in default apps section check if there's any option of default dictionary(there usually isn't)
In chrome check if there's another option of dictionary..
Comment if you're have any doubt


text:
samsung s9 Charging time
My new Galaxy s9 is taking around 1 hr 39 mins to completely charge the battery. I checked with Samsung customer care they said it should take normally 50 mins to 1 hr.
They did some test on mobile to see is there any other app is preventing to charge, but nothing helped to see the problem. So before I send the devices back to them, I just wanted to see did any of us is facing this kind of issue or is it normal to take this long?

Thanks for reading my post and your valuable questions. I tried the adapter and cable that came with the device only, and also I have tried with another Samsung provided adapter and cable as well. Then after I did a factory reset and tried. I have almost tried everything you said except the airplane mode. I take your words and the whatever is mentioned the in att website. Then my mobile seems to be working as normal.

I am not sure why Samsung support would tell you that a full charge cycle is less than an hour... All references I have found, like this one, indicate a normal charge time from 0-50% of around 36-40 minutes, and a full charge cycle from 0-100% would be in the range of 1hr 37min to 1hr 45min using the stock A/C wired charging adapter.
There are many possible things that could make this charge cycle time take longer, but not less time. I am not aware of anyway to get it in the time frame you were told.
I believe your device is functioning normally and your charge time of 1hr 39min falls well within the normal range.


text:
Use photo file instead front camera image
Instead of using the real camera, I would like to simulate the camera input as a static image file.
I need to use it in one program, where I can't use 3rd party "fake camera apps" because program asks me only "Do I permit this application to take photos and record videos" and after "Allow" my front camera turns on. I can't even choose the 3rd party fake camera app.
Any suggestions on how to deal with that?

Duplicate (but not yet answered): How to emulate camera input in Android?

As a developer, I don't think that's possible without changing the program you are trying to use.
If that specific program(I suppose it's actually an application) was built to use only the images taken by the integrated front camera, you have to first "teach" it who to use images from other sources. But that's the job of the program developers. You can probably contact them and request this new feature.


text:
WiFi Disconnect also disconnects Bluetooth
I have a new problem that has started in the last few weeks that's been getting more and more annoying. I have a Samsung Galaxy J7 with Android 7.0.
It seems now whenever there's some momentary interruption in my WiFi, the Bluetooth device disconnects. For some reason, when the Bluetooth disconnects like this, the sound continues to play on my phone while my headphones/speaker/truck is still on and working but not playing sound. Usually when the Bluetooth disconnects, whatever is playing will pause or stop.
This is especially annoying at work where it's quiet until my phone starts blasting music (or some hot sports take). This has only started a few weeks ago - I had NEVER noticed it before. I haven't made any changes to the phone recently or even installed any apps.
I have tested this by manually turning off WiFi - at which point my Bluetooth headphones stop playing and the music starts playing through the phone speaker.
How do I fix my Android or Galaxy so WiFi interuptions don't force Bluetooth to disconnect? And shouldn't it stop playing when the Bluetooth disconnects?


text:
Can I work around dead spots on my touchscreen with a custom keyboard layout?
I have dead spots on my touchscreen, right on the soft keyboard area. Is there a way I can use a custom keyboard layout or move my keyboard to work around the problem until I replace my phone?

Try swift keyboard - https://play.google.com/store/apps/details?id=com.touchtype.swiftkey
This allows full customization of your keyboard size.

Swiftkey only propose 5 different keyboard sizes. I want more customization (keys size, prediction bar...)


text:
Galaxy S6 (international ver) not auto-connecting to WiFi
I have a Galaxy S6 SM-G920F that will not auto-connect to WiFi starting several weeks ago.  This appears similar to what is mentioned in Galaxy S6 and S7 not auto-connecting to WiFi except I don't have an AT&T phone and that mentions uninstalling some AT&T apps.
It doesn't matter what WiFi hotspot it is, it won't (Edit: rarely does) auto reconnect.  If I click on the WiFi icon then click the hotspot name, it will connect.
Here are things I tried:

Forget a hotspot then re-login with password
Reboot the phone
Toggle the "Smart network switch" and "Hotspot 2.0" advanced options
Clear the system cache as described in https://thedroidguy.com/2018/10/fix-samsung-galaxy-s6-can-no-longer-connect-wi-fi-mobile-data-networks-troubleshooting-guide-1068247#Problem2

Edit: I noticed today that it auto-connected once.  Also a couple days ago, I saw that once when I tried manually connecting, the status went back to Connecting.. then when back out, then went to Connecting.. then said it was Connected with no internet, then a few moments later it resolved itself and became Connected.
What else can I try, besides a factory reset?  Has anyone else seen this issue on a SM-G920F model?


text:
Is there a way to restore a Titanium backup from PC to a crashed ROM?
If I have complete Titanium backup copied to my PC (where I imagine the ROM is copied too).
More than 200 files.
Now I have a crashed ROM (boot looping).
Is there a simple way to restore this backup to my phone via USB without installing a new ROM (nor TWRP)?

TB doesn't backup ROMs, it only backs up applications.

How to backup the entire device (ROM + everything) to a PC?

Use TWRP to create a Nandroid backup.

If you can't install TWRP, what about booting it for once?
Download a valid TWRP image and reboot your phone into bootloader, and run on computer:
fastboot boot twrp.img

Then you can use adb push to transfer the files.


text:
Open gapps crashing, no GSF id available on LineageOS 15.1
I just installed LineageOS 15.1 on my Galaxy Note 4 (SM910F) via TWRP, everything worked out nicely. Now I wanted to add the Gapps to the system in order to use the playstore. I downloaded the zip file from https://opengapps.org/ (ARM/Android 8.1/pico) and installed it with TWRP. After a reboot I keep getting messages that Google Play services repeatedly crashed, about every 10 seconds or so.
After some searching I found out that Google started blocking uncertified devices from using the service, but that there is a way to whitelist your "custom device" by submitting your Google Service Framework ID to Google. To get this GSF ID, I tried the commands given on the page (www.google.com/android/uncertified):
$ adb root
$ adb shell 'sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"'

But this did not work, no ID was found, neither via adb as above, nor in a local root shell directly on the phone. I then tried to read out the ID by using an app called "Device ID" (as described here), but this app also did not manage to get the GSF ID, the field was blank.
I already wiped the phone and retried the procedure with another gapps package (the "micro" variant), but I ran into the same problem.
Is there something I can do? I would love to use LineageOS, but unfortunately I still do need the Playstore and I really do not want to go back to the stock Android 6.

According to LineageOS Wiki, you have to flash gapps before rebooting into LOS for the first time. Have you done that?


text:
Will deleting all system apps from Android for debloating purpose prevent it from starting up?
The motivations of profit driven corporations like Google, Samsung, Microsoft alongside the motivations of the secret services like GCHQ and the NSA are at odds with my desire to use the expensive smartphone that I have paid for to run only the applications that I choose.
It's seemingly impossible to buy or build a phone with nothing but pure open source android installed. They all have shocking amounts of bloatware pre-installed.
So I have rooted my phone and I am using a the Debloat (terminal emulator) to remove system apps. I've removed nearly everything related to Google, Samsung, Microsoft etc.
My phone is now taking over an hour to restart and getting very hot.
My questions is, if I continue to remove all apps and system apps. Will the Android operating system continue to run in such a way that I will be able to install only the open source apps of my choice? Or are there some apps that are truly essential for the operating system to startup?

We don't know which Android model and Android version you are using And it would be hard to find out which apps are non-essential except Google apps without having the phone itself. The safest way is to use a custom recovery to make a backup of system partition (and then move it in PC) and then do all the experiments you want on system apps.

Well, as @Firelord stated that your question is device specific, I'll try to give you a general overview. First of all be clear that if you are too much concerned, removing only system apps may not be enough to completely "debloat" your phone. The reason is that Java apps come into play after the zygote virtual machine is loaded which handles Java bytecode. From bootloader to zygote in booting process, a huge chain of native code is executed. Many process/services/daemons are started by init process which are continuously running in background providing many necessary functionalities.

To name a few, there are rild, netd, mediaserver, surfaceflinger, servicemanager, logd etc. Most of this code is open source; Google developed AOSP and possibly kernel source too (some vendors don't release kernel source). SoC and hardware related code including bootloaders and drivers or HAL blobs are closed source but it's hardly possible that they contain some anti-privacy code. So the main culprits are Java apps, in most cases. Similar to the background daemons, some essentially required apps can be AOSP related and some are vendor or hardware related.

If no code is injected by vendor, most of these are AOSP provided open source apps. For example systemui app loads basic user interface including status bar, notifications and theme while settings app provides Settings. Launcher, keyboard and dialer apps are also essential but those can be replaced with custom ones. There are also three Qualcomm provided apps (from /system/vendor/app/) running persistently on my device: QtiTelephonyService, TimeService and QCRilMsgTunnel.

Other apps deeply integrated with Android APIs include Bluetooth, ContactsProvider, DocumentsUI, DownloadProvider, ExternalStorageProvider, Shell and the list goes on. However once again, it may vary for different vendors, different phone models and different Android versions. You need to be more cautious about closed source apps usually included by OEMs. They certainly contain some kind of bloatware stuff. An easy way to avoid this hassle is to use a vanilla Android custom ROM on a rooted device with open source kernel and unlocked bootloader.

1. All of the system apps cannot be deleted
System apps are not just apps to be used by end users, but many of them don't have any user interface and they provide some core functionality of Android OS. So you cannot remove them. E.g. SystemUI app loads basic user interface including status bar, notifications and theme, while Settings app does what the name suggests. Other examples of such apps deeply integrated with Android core framework include Bluetooth, ContactsProvider, DocumentsUI, DownloadProvider, ExternalStorageProvider, Shell etc.
Though mostly system apps are part of AOSP, some might be vendor or hardware related. E.g. on Qualcomm devices there are QtiTelephonyService, TimeService and QCRilMsgTunnel etc. in /vendor/app/. Vendors may also inject their own code to AOSP apps. SystemUI and Settings apps are almost always modified by device OEMs to provide custom user interface and settings. So are other essentially required apps like Launcher, Keyboard and Dialer, though you can replace them with your own apps.
So it's not always practically possible to remove bloatware apps completely, and the situation may vary for different vendors, different phone models and different Android versions. An easy way to avoid the hassle of failed debloating attempts is to use a vanilla Android custom ROM on a rooted device with open source kernel and unlocked bootloader.
2. Deleting apps may not debloat the device completely
If you are too much concerned about bloatware, removing apps (system and/or user) only may not be enough to completely debloat your phone. Though in most cases Java apps are the culprits and you need to be more cautious about closed source apps usually included by OEMs, it's not that the other software components on device may never contain some kind of bloatware stuff.
Android apps run in Java-like virtual machines, so they come into play only after the zygote is up. But from bootloader to zygote in booting process, a huge chain of native code is executed. Bootloader starts Linux/Android kernel which starts first userspace process: init. init in turn starts many native services and daemons in background which provide different functionalities. To name a few, there are rild, netd, mediaserver, surfaceflinger, servicemanager, logd etc. zygote is started in the last.
Most of this code is open source; Google develops AOSP and a common kernel source. Latter is further modified by device OEMs according to device hardware, but not all of them release kernel source. OEMs might also modify AOSP native stack, though it's not very likely that they contain some anti-privacy code. But SoC and hardware related code including bootloaders and binary blobs (HALs) in userspace are always closed source. And your device can be controlled remotely even if it's turned off or even if there is not operating system on it.
So it's hard to avoid falling prey to profit-driven corporations and secret services unless you stop using gadgets. To avoid human bodies being tracked or controlled remotely might be the next challenge.


text:
Streaming audio files from SMB (or AFP, or NFS) share to DLNA receiver without resampling
Is it possible to scan specific folders for music files and import them to some android media player app, which could then stream the music to a DLNA device?
Another challenge is that the music files are on a NAS device, so they would be accessed through an SMB share (or AFP, or NFS share, if that changes anything).
I found a way to mount it to android's filesystem (using command busybox mount iocharset=utf8 -t cifs -o username=guest,rw,noperm,iocharset=utf8 //192.168.0.106/xxx /data/media/0/xxx), so apps see it as a local folder (you must have root for that I think, also the kernel should support cifs filesystem, and apparently the android device should not be in battery saving state and iocharset=utf8 is important if you have file or folder names with special characters), but the problem is that many apps rely on android's media scanner service to find music, which probably has trouble scanning the whole mounted folder and the apps do not see all the music files.

Hi mnd, it seems like your question already contains a potential answer. It is generally not forbidden to create an answer for your own question, especially as nobody has provided one since you posted your question.

I can move the "update" section to an answer, if that's the way things should be. But as I stated, all of my mentioned solutions have their drawbacks. And I think mounting a network folder to internal memory folder structure messes with the way android system works (probably media scanner process doesn't comprehend the new big folder, or something related to free space calculation, or something that I have no idea about..). Anyway the mounting method still needs testing, so I can't recommend it for people who want to achieve something similar as me, accessing their media on a network.

Moving the update section to an answer is IMHO a good idea, even if it is not perfect.

If anyone else is seeking for a similar solution, I think doubleTwist player uses a combination of android's media scanner and it's own directory scanner to import music. So the method with mounting the SMB share kind of works here. But it doesn't import duplicate files (support told me they are thinking of doing something about that, also a workaround may be possible by editing any of the major metadata tags like Track Title, Artist, Album Artist, or Album Name - will have to try that, but that involves editing of the files which not everyone might like), so if you have same songs (maybe slightly different versions) on several folders, you can't import them all without altering the files, yet.
Another option is n7player with Toastercast plugin. It works kind of good, but it takes a long time to scan the music folders (about 4 hours for ~14000 songs). And I'm not sure yet if you have to rescan the whole library when you add new music, but I fear you do.. Also, for me this setup would stop playing after one song if the screen is off. I don't know if it's related to android's battery saving or the mounted folder.
And one more promising app would be Emby Server for Android, it can access the SMB share on its own, so I guess it would be a cleaner solution. It is still in beta stage, so for now it doesn't find my DLNA renderer, but I'm keeping my fingers crossed for that to be solved.
Update: I think, adding the .nomedia file to the mounted directory helps the android's media scanner not to cause random crashes. But this approach only works if you use a media app, that scans directories on its own, to add files to the library. And it would be a good idea to store the media files at least one folder level lower, than the .nomedia file, because android's media scanner will not scan the subdirectories of the folder which contains the .nomedia file, but other media apps may not scan this folder's contents, but might scan the subfolders.


text:
Cannot flash twrp-3.2.3-0-cedric.img (Motorola Moto G5) ("Image not signed or corrupt")
I have followed all the steps of this guy but flashing twrp-3.2.3-0-cedric.img failed.
When I open my Ubuntu console and type fastboot flash recovery /home/username/folder/twrp-3.2.3-0-cedric.img, it says:
(bootloader) slot-count: not found
(bootloader) slot-suffixes: not found
(bootloader) slot-suffixes: not found
(bootloader) has-slot:recovery: not found
target reported max download size of 536870912 bytes
sending 'recovery' (14572 KB)...
OKAY [  0.463s]
writing 'recovery'...
(bootloader) Image not signed or corrupt
OKAY [  0.502s]
finished. total time: 0.965s

What did I do wrong? Did I use the wrong version? Looking at this similar problem did not help me. sudo fastboot flash recovery /home/username/folder/twrp-3.2.3-0-cedric.img does not help either.

The locked bootloader doesn’t let unsigned images to be flashed. So, the Image not signed... error indicates that there is a possibility of the bootloader not being unlocked.

Make sure the bootloader is unlocked.
Make sure you are using right version of TWRP for your device.
Try fastboot boot /path/to/twrp.img instead of flashing. If it boots, flash the recovery image from within the recovery. Afterwards, any zip should be successfully flashed (custom ROM, GApps, mods etc.).

fastboot boot  /path/to/twrp.img    boot and path shoud have space in between


text:
Can't reinstall nothing to /system
I tried to update my Xiaomi Mi A2 to Android Pie since yesterday the Beta was Released. At first, I tried to install the official provided one, but after facing some errors, I installed the Treble version of the Android Pie Pixel Experience ROM.
It was working perfectly, but after installing Pixelify with Magisk, my WiFi stopped working, and I got the error MAC 02:00:00:00:00.
After trying some things with terminal apps and root, I opted for reinstalling the modem image, which I thought that could solve the problem, but instead, the phone didn't turn on, it kept on the Android One screen. So after waiting for some hours, I decided to format the phone and lose all of my data.
I formatted the system partition with fastboot erase system_a and fastboot erase system_b, but when trying to reinstall the PixelExperienceP ROM, I receive this error again and again:
fastboot flash system_a PixelExperienceP-arm64-ab.img
Sending sparse 'system_a' 1/5 (524284 KB)          FAILED (Error reading sparse file)
Finished. Total time: 24.591s

After that, I am not allowed to send any command to the phone until I restart de bootloader.
I have tried to install different ROMs, the stock one, other Android versions, but I get the same error on all of them.
Please, any ideas on how to solve my problem? I am really worried about having broken it. Thanks in advance.

I just solved it simply by trying and trying, changing cable, USB port, restarting computer...

Was facing the same problem with two devices (Google Pixel 4 and Samsung Galaxy S21 Ultra 5G (Exynos variant))
I've found that, in my case, for both the devices discussed, using the vendor provided flashing solutions (Odin 3.14.4 for Samsung and "flash-all.bat" script for Google) the procedure was stuck/hanging on some large transfer for both the devices (Odin was simply stuck at the "SYSTEM" phase (system.img) with the green progress bar halted/not moving while the Google script returned the infamous "FAILED (Error reading sparse file)" error message after "Sending sparse 'vendor_b 1/2 (524284 KB)").
I've tried leaving the devices connected for over 30 minutes, changing/swapping USB cables, upgrading/downgrading USB/Thunderbolt drivers, BIOS/UEFI to no avail..
I've retried the procedure many times with no different outcome..
I've then connected the devices to a USB 3.0 "A" port of my motherboard (Gigabyte Z170X-UD5 TH - fully updated Windows 10 1607 LTSB) instead of the USB/Thunderbolt enabled USB "C" port on the rear that I was previously using and to my surprise it worked flawlessy for both on the first try!
No idea if the Thunderbolt IC (or maybe its driver) was the culprit TBH but it seems so..
Just my experience

I was having FAILED (Error reading sparse file) issue when I was connecting the USB cable to the dock of my laptop.
Instead connecting the USB Type-A end directly to my laptop port helped me fix this problem. Be mindful of USB 3.0, USB Type C and USB 2.0 ports (try with all) and run your commands in command prompt in Administrator mode.


text:
Are non-Google emails stored only locally when using the Gmail app?
The Gmail app allows to add non-Google email provides (via POP and IMAP).
Is it mentioned somewhere that the emails pulled from these providers stay on the device and are not stored/shared with Google?
Note: I have marked my own question as duplicate (and not deleted it) because there is another one which is strikingly similar, but the answer is purely speculative.

If they are not stored on the server, how do you think things like drafts, important mails, old mails, search etc are done? To my mind, they have to be stored

Search especially is a good example. Long time back Gmail app would ask you how many days of mails to store. Note it doesn't now. But you can search your non Gmail mails. How is it possible if they are not stored unless I am missing something?

@beeshyams: the storing part can be done locally but, indeed, the search is more complicated (it could be local but that would require a brand new implementation "on premises" (of the phone). I do not use gmail for non-Google emails (yet) so I do not know how the search works (and whether it is similar / as-fast-as the gmail one)

I used it long back but don't recall details of how fast it was

I just tested searching a new email on my Yahoo! through Gmail for Android, and it found the email even before the account has been synced, and thus my only guess for now is that the app searches and syncs at the same time (still stored locally). On the other hand, there is Gmailify that links non-Google emails to Gmail, though I haven't tested the feature.


text:
Why different pictures are loading on boot, and images disappearing, then reappearing on its own?
I am using a non-rooted LG V20, Android Oreo I believe.
I am having a problem in which the phone randomly loads different "sets" of pictures - sometimes current photos disappear and older pictures reappear, etc. It's almost as if there are 2 root drives/internal storage that the phone randomly load.
If you see the attached screenshot below, there are 2 pictures folders of the same name under root/sdcard (Pictures and PICTURES -- I don't understand how there can be 2 folders with the same name so this is already strange).

When I open either of these folders, it leads to the exact same folder (see the screenshots below). Note the folder names are both "pictures" technically. I think this may somehow be related to the problem.

Some days when I boot, it will just load an "older" pictures folder w/ different picture count - pictures that I've stored in the past. When that happens, my current/recent pictures will all disappear and the older set is the only thing visible.
For example: right now it shows 14 files in Instagram, 3 files in Kakaotalk, 0 files in others as you can see in the screenshot.
When my older set loads, it will a whole different set of pictures, with no pictures overlapping from the above. (see below)

I can't seem to find the trigger that reliably reproduces loading of either set - although, once I remember the phone was suddenly not reading any pictures from the instagram's gallery function so I manually ran the media scanner, when the phone loaded the older set instead.
Anyone have any ideas?

I don't understand how there can be 2 folders with the same name

Android is based on Linux and Linux is a case sensitive OS (in fact the filesystem it uses) unlike Windows. So Pictures and PICTURES are different directories and they can coexist without any problem.
Some directories are created by Android itself on (first) boot and any app with permission android.permission.WRITE_EXTERNAL_STORAGE can create a folder in internal SD card.

When I open either of these folders, it leads to the exact same folder

One can be a symbolic link or bind mount to other. See here for details. However I can't be sure unless I investigate that particular case myself.

it will just load an "older" pictures folder w/ different picture count

Why their contents keep on changing, you have pointed out the root cause yourself:

so I manually ran the media scanner...

It seems to be a problem related to Media Storage database. Some file explorers and gallery apps depend on a files database (MediaStore) built by Media Storage app (/data/data/com.android.providers.media/databases/external.db) as the process android.process.media is invoked by some app. If this database isn't updated as the files change, file explorer will show outdated / incomplete contents.
In order to force its updation, delete this file and run some media scanner app from Play Store (restarting phone may not update whole database though MediaScannerReceiver broadcast receiver is launched on boot). Non-root users can delete this file by clearing data of Media Storage app. But be cautious. It'll also clear internal.db which will make ringtones etc. unavailable.
Please note that the internal SD card we see is emulated from /data/media/ using sdcardfs (or FUSE in older versions of Android). Actual contents of internal memory can be seen directly from /data/media/ (root required).

+1 for a detailed answer

awesome, thanks for the detailed information - really helped me to understand some of the concepts. I'll try that and see what happens!

I tried clearing data of the media storage app and running media scanner again. This brought back the old set but still with the new set gone. I think the problem may be that there's an app installed on my phone which is affecting the hiding and switching of the old set (or some sort of conflict). It'd be helpful to find which app is creating the shortcut folder to the original folder, but I don't know how. I think I may have to just factory reset at one point. Thanks for the help!

I can further help you but troubleshooting/debugging without root seems quite impossible. A starting point would be to execute "mount" command or "cat /proc/mounts".


text:
How to get back colored app headers in recent apps list on Samsung devices running on Android Oreo?
Before, in recent apps list of my phone (Samsung Galaxy Note8), headers of apps were colored.  Now, they are all white.
I am not sure whether it was caused by the transition from Nougat (7.1) to Oreo (8.0) or by a change in some Android settings. They are white for several months.
I would like to return to colored ones for faster navigation using app colors. Is it possible?

Related: Changing/reverting Samsung's “Recent tabs” color theme to Nougat (based on app's theme) on Oreo device (not yet answered)

It looks to me that this is not possible, because Oreo re-used the color coding for different purpose:

white header: standard app

and here, the original coloring concept is partially present in text color (instead of bg color)

light cyan header: app pair on split screen

I think that this new coloring purpose implies that the original coloring is gone.


text:
Lucky Patcher broke my Google Play services
I have a OnePlus 6 running Android 9.0.2 rooted with Magisk, but no recovery. (I tried to install recovery before rooting it every way I could imagine, with no success.)
I had Lucky Patcher installed with patches applied to Android and to the Play Store, and everything was working fine. I recently updated Android from 8.1 to 9.0.2 and the patches were removed.
When I tried to patch it again, the play store disappeared and all the Google apps say that my device doesn't support Google Play Services.
I tried reinstalling the Play Store both from Lucky Patcher (original and mod versions) and from APKMirror, but whenever I try to open the app, it just says "Google Play Store keeps stopping".
And when I tried installing the Play Store as a system app with Lucky Patcher, it just wouldn't install.
I tried installing Google Play services from APKMirror, but the app just wouldn't install.
I even tried installing it using ADB, and I get this error:
Failed to install Downloads/ps.apk:
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE:
Update to package com.google.android.gms doesn't support multi arch]

My question is, how can I get the Play Store and Google Play Services working again?

It might be worth looking into [tag:logcat] to find out what happens (including errors) when you try to install Play Store and Play Services.

I had similar issue, this was how I resolved mine:

Open Magisk Manager
Tap on Setting
Enable Magisk Core

Reboot the device. After rebooting:

Open Lucky Patcher
Go to Toolbox
Tap on Install modded Play Store
Install the most recent version  you see

NB:
If it fails,  enable Magisk core, after reboot, open Lucky Patcher > Rebuild and install > Lucky Patcher folder > Install app as system app.

The real issue here is that Lucky Patcher breaks some Google Play Services when you apply inApp or Remove Google Ads patch. The fix here is to Roll back those changes you made to whatever app or service you applied the patch to. Then clear cache and dalvik, done.

Flashing the system again seemed to do the trick.
I followed this guide on xda
https://forum.xda-developers.com/oneplus-6/how-to/rom-stock-fastboot-roms-oneplus-6-t3796665
I just didn't flash the boot partitions, so I was able to keep my systemless root.


text:
Why Gallery and Music app are unable to read SD card storage while a file explorer can?
I checked my phone after a while (after 3 hours), and I found that all of my photos and songs were not there anymore. I checked my ES file explorer, because by default, I have  Google files (which is not a good way to manage files). I saw everything was fine in ES explorer.
I rebooted the phone a couple of times and even pulled out and reinserted my SD card but it didn't work.
How can the problem be fixed?

Run some media scanner to update Media Storage database. Make sure no .nomedia file exits in any of your media directories or in their parent directories.

Since you can access your music and pictures just fine from your file explorer, that usually means that it is being ignored by a .nomedia file.
Try to delete the .nomedia files from /sdcard, /sdcard/Music, /sdcard/Pictures, and /sdcard/DCIM.
If you have access to a terminal app on your phone, try the following commands:
cd /sdcard/ #Or  cd /mnt/sdcard or  cd /storage/sdcard0 if that doesn't work
rm -r ".nomedia"

(Note  that the above commands will delete ALL .nomedia files from your phone, so other files (from app caches) will also appear.) Alternatively, you could put your SD card in your computer, use the file manager to search for .nomedia, and delete all the .nomedia files it finds.
After deleting the .nomedia files, your Gallery and Music apps should see your pictures and music.


text:
Possible to remap `Esc` key to `Caps Lock` on a bluetooth keyboard
Samsung Galaxy Note 9 with any old bluetooth keyboard. How do I remap the Esc key to Caps Lock? And remap the Caps Lock key to Esc. Swap them basically.
I need this to make it easier to use Vim on Android. I prefer not to root.

In Android 4.0 you could do this easy, you would need root permissions though. You most likely still can with root. Just checked can do easy with root. /System/usr/keylayout there are a couple files in there with keyboard layouts that you can edit with root permission. You can veiw but not edit in fx file manager, there are other files that control the same types of things in there.

Thanks for info. Prefer not to root though.

It's totally possible without rooting.
Check out ExKeyMo (I'm the developer). It has an example with Esc<->Caps mapping.
If you need more than one layout take a look at custom-keyboard-layout (I'm the developer).
UPDATE:
ExKeyMo web app is not available on Heroku anymore. You'll have to run it locally. See the project's page on GitHub.

I tried this scheme with ExKeyMo, and downloaded and installed the app, and enabled the custom layout, but it didn't do anything; what am I doing wrong? https://pastebin.com/pX01KMcX (I'm on Android 10.)

@Brōtsyorfuzthrāx Unfortunately Android doesn't notify about errors in KCM files. Could you try examples from ExKeyMo (Caps-Lock as Esc and other)? Do they work for you? If so, you could then start with your mappings (one-by-one) to find the issue.

@Brōtsyorfuzthrāx you can check your KCM file using validatekeymaps tool. There is web version.

It worked! Go to the docs to learn how to set it up: https://exkeymo.herokuapp.com/docs.html


text:
How do I find out what is causing the app "Google" to use so much background data
Even though I have background data turned off, it is using incredibly high amounts of data to the point of being ridiculous. This is starting to cost me money as data is not unlimited in Canada. It's gotten to the point where I can't use data because if I turn it on Google just gobbles it all up. At one point, it was just full tilt downloading/uploading something I have no idea what it would be.
What is causing this and/or how can I turn off background usage for Google for real (obviously the toggle is a placebo)
Screenshots of data usage.

Have you enabled Google Backup Cloud sync or do you sync the photos taken into the Google cloud? Have you enabled the Google assistant?

Interesting. I also  disabled background data on all  my apps.  It takes a bit as you have to do each one manually.  You can set data limits. Click the settings wheel in the top right corner in the first screenshot. Use that temporarily until you figure out what is causing data suck..

I have enabled google backup cloud sync, but I have had it enabled for years with no issues. Plus I have done nothing (that I can think of) to make it backup so many gigs - I haven't taken any pictures recently or received any files. Also, @fady, I already disabled background data. It is using background data even with the toggle to turn it off. It is ignoring the disable.

Are you using Google Launcher? I.e. left most swipe on the home screen brings you to the Google Assistant/Google Now interface with News cards. Check the main Settings (three dots in upper right of background) for the subsections on Discovery or Videos to see if anything looks amiss (Videos allowed on mobile networks perhaps?).

As an update to this: I never figured out the exact problem that caused this. Even after turning off features like google assistant it still continued to use an unusually high bandwidth. The eventual solution was rooting + custom kernel + custom ROMs. I don't have any issues now.


text:
How to delete SuperSu and changes it made
I inherited a Moto G3 which I unlocked and installed TWRP and a custom ROM. I foolishly attempted to install SuperSu. It supposedly changes some system files.  Now I want it off the phone. In any event, there is no obvious way for me to uninstall SuperSu and system files which were changed.
I did some Internet research. One site said I had to reinstall the stock recovery and ROM. That sounds like a lot of extra effort, and I don't think any changes got made to TWRP. As far as I can determine, any changes took place in the System partition.
My question is this:
Would it work for me to boot to recovery and use TWRP to do an advanced wipe of the Dalvik Cache, Data, Cache, and System partitions?
Yes, I know then I need to reinstall the ROM and GAPPS. That's OK, I did not make many changes I need to retain.
Thanks.

It depends. SuperSU installs itself "systemless-ly" on Android 6 or up.

If you installed "SuperSu.zip" using TWRP Flashing, then you can also uninstall it by flashing the uninstall.zip


text:
How to remove KDE Connect app icon from Notification bar?
I have the KDE Connect app in order to connect my Android phone (Moto Z2 Play) to my Ubuntu machine. With the upgrade to Android 8, this app has a new annoying behavior in that its icon is always in the Notification bar even when not connected. (If I pull down it says "Not connected to any device").
How can I get the icon to not appear in the Notification bar when the phone is not connected to anything?

It is not related to Android Oreo. It is a recent update to the app that introduced that persistent notification.

@Firelord: It is indirectly related to Oreo, per https://nicolasfella.wordpress.com/2018/11/04/kde-connect-new-stuff-0x3/ :-)

You can choose to disable that notification by long pressing it and following what shows up there.
If you have a rooted device with Xposed framework, you can setup GravityBox and use its Notification blocked under Miscellaneous.
I, however, use MacroDroid to clear that notification (works only on Android 8.0 and above).
Trigger: Device events → Notification received → Select Application (s) → KDE Connect: Text content: Matches; Text: Not connected to any device; uncheck both the  following options.
Actions: Notification →Clear Notifications → and then follow it as you did in Trigger.
Constraints: not required
Reboot the device, or restart the KDE Connect app, or simply run the macro by long-pressing it, followed by "Test actions".
That notification would no longer annoy you.

Excerpt taken from KDE Connect – New stuff 0x3:

Android Oreo introduced some restrictions in regard to apps running in the background. In the future in order to be able to run in the background KDE Connect needs to show a persistent notification.
To hide the notification you need to long-press it and switch it off. Other notifications from KDE Connect are unaffected by this.

Thanks for posting the official response, explaining why it behaves that way. +1

On Android 9 Pie:

long press the notification
tap the information icon (blue "i" in a circle)
choose "Notifications"
uncheck "Persistent indicator"


text:
Is it possible to have Google Assistant work with screen off?
When I'm out and about, I usually have wireless headphones (with mic) on, and my phone in my pocket, usually listening to a podcast.
Quite often I want to add something to my todo list- and I'd like to have Google Assistant do that for me.
But the problem is that it seems that Google Assistant requires screen on to work - is it possible to get around this?

So do you have a headset with Google Assistant support: https://support.google.com/headphones/answer/9027902?co=GENIE.Platform%3DAndroid&hl=en Also see: https://9to5google.com/2017/09/29/how-to-google-assistant-headphones-instruction-videos/

Also make sure your settings are correct per link below. Samsung phones seem to have an issue. [Edit] to add device. https://support.google.com/assistant/thread/387976?hl=en

@MorrisonChang Ok - cool, that looks like it answers the question. Feel free to post an answer saying that it needs to be a 'made for google' device, and a link to those instructions, and I'll accept it.

To use Google Assistant with features as shown in this article on Google Assistant headset instruction videos you'll need to be using Headphones optimized for the Google Assistant or Made for Google:
See: Official Google Assistant on Headphones Documentation


text:
Cant do anything on my Htc one m8
My htc one m8 was all good since yesterday. It's age is about one year. The problem is when i open any apps or do anything it's just restart automatically and vanish my previous activity. As a example I uninstall an app then it restart and after restarting the is still there. I also try to factory reset the phone but it's done nothing all my apps was there.Can anyone help.
Thanks in advance.

This problem also happens into safe mode. I've tried both from settings menu and also recovery menu to factory reset the phone.

Which brand is it? Is it rooted?

That's because your memory is read-only! You can't write data to it: the delete operation writes to memory - at least modifies it.
Not sure about what may be causing this, but probably from malwares or as I can think of now a defective eMMC chip like you know those SD Card that suddenly becomes "Write protection enabled" .
I have myself experienced this and never found a solution so far. This seems to happen with HTC, HUAWEI and I had a case involving a Motorola phone.

Thank you so much for reply. Which memory you are telling about? Imternal or external

I am not able to change anything to my htc one m8. Every time I try to change something it takes reboots and goes to the same place where the problem starts. I have found others having this issue in this https://androidforums.com/threads/internal-phone-storage-becomes-read-only.347685/. Help me pls. I don't understand the instruction there.

I mean the internal memory. You may try flashing the firmware to the phone and see if it gonna solve this.


text:
Can Android device be used as USB webcam for full-HD, 30fps video source for Skype calls via PC?
Have found some apps that allow an Android device s.a. a Smartphone with good camera to be used as a USB webcam, when used of ADB over USB. However they seem to limit the video source to be fairly low quality i.e. mostly little better than VGA or if higher-resolution then at low fps.
Is there anyway to tether an Android device to a PC, over USB while using the device camera as a USB webcam working at FullHD (1080p) at 25-30fps, that could be used for doing Skype (or Skype for Business) calls ? I would like to use this setup for a live-demo. I know that I could go out and buy a dedicated webcam, but trying to avoid it if possible. My PC has an inbuilt cam, but it is 720p (not very good) and for the demo I need to be able to tilt, swivel, pan the camera - not very convenient when using inbuilt PC webcam, but fairly easy for an Android phone, mounted on a tripod.

http://www.skipser.com/p/2/p/android-as-webcam.html

https://gadgets.ndtv.com/mobiles/features/how-to-use-your-phone-as-a-webcam-617643


text:
How setup WiFi proxy in Android 9?
I need to setup a WiFi proxy on Android 9  but it seems they removed the feature , all tutorials I found refers to old versions of Android.

The wifi proxy settings are still configured under the advanced options for your wifi network.
The reason you can't find them is just bad Android UX. They're in a scrollable area that doesn't look scrollable (it looks like it just says 'metered'). If you try scrolling down in the wifi settings window you'll see it immediately.

Wow thanks! I would never be able to find it without your help! Can't believe how bad the UX is!

Someone at Google needs to be kicked for this. Searching for something like this for an hour.

I found you can't edit proxy of an existing WiFi profile anymore, I dunno why they removed the feature.
But you can just remove your saved Wifi profile and add a new, then you will easily find proxy options under advanced drop down.

click on the pencil to edit network details. A popup appears to change your wifi password, and it doesn't look scrollable but if you scroll you'll see the advanced options and Proxy Settings. Horrible UI design


text:
Why WhatsApp is suddenly unable to open any APK shared by users?
As of 13-11-18, I was sharing APK files on WhatsApp, for testing apps within a circle of people, with no problem whatsoever. But as of today, if I try to open an apk, I get an error toast saying:

You may not have the proper app to view this content.

Did they change their policies and decided not to let people share APK files on their platform?
I don't use third party websites for sharing APKs, where mostly Chrome spooks most people saying that "This type of file may harm your device".

Open .apk file from file explorer (/sdcard/WhatsApp/Media/WhatsApp Documents/) instead of WhatsApp. Or zip your apk file before sending over WhatsApp.

my friends are not so big on going so deep in their devices... how did it stop working...did the latest update come with a bug?

I don't think so any changes have been made related to this. Usually there is problem handling the proper content according to file type. Are you sure file is being sent with .apk extension? What version of Android your friends are using?

I am getting the same error since I tried for the first time... Install the apk through the file manager.

@IrfanLatif lollipop and above.. well it was working properly till now

Well as per my understanding this is how files are opened from WhatsApp making use of file extensions:

File type is determined from extension (getMimeTypeFromExtension) and intent.action.VIEW is launched provided with file path dat= and file type typ=.
If the file extension is not known, file is treated as octet-stream mime type.
List of preferred apps (/data/system/users/0/package-restrictions.xml which is built from user selected defaults and files at /system/etc/preferred-apps/*.xml) is checked for activities that can handle this file type.
If there is only one app that can handle this mime type, that app (activity) is launched. You can see which app handles what mime type by:
dumpsys package preferred-xml

Use adb shell or one of permission.DUMP or root is required.
If there are multiple apps (more than one matching activity for the given intent) available and no preferred app is already set, ResolverActivity (from Android framework resources) is launched (not intent.action.CHOOSER) showing a dialog to select app (for Once or Always).
If the file type is apk (typ=application/vnd.android.package-archive) and PackageInstaller is set to handle this file, action.INSTALL_PACKAGE is invoked.
Now if Android version is Oreo or above and WhatsApp is updated, it would need permission.REQUEST_INSTALL_PACKAGES to install unknown package. Once granted, app will be installed.

You can use logcat to view how this whole process goes on. Use adb shell or one of permission.READ_LOGS or root is required. You can share results here to help me and others understand where the chain breaks.
Workaround:
Make sure that files are sent and received with correct extension i.e. .apk. If WhatsApp is unable to handle downloaded apk file for any reason, use a File Manager. Explore to /sdcard/WhatsApp/Media/WhatsApp Documents and install apk file.
RELATED: Alternative “File Open” (not stack “DocumentsUi”) for WhatsApp?

Hi, when I click the apk the error toast pops up with the following warning
I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://com.whatsapp.provider.media/item/50743 typ=application/vnd.android.package-archive flg=0x1} from uid 10072 on display 0

typ= application means whatapp can see the type of the file right?


text:
How to mount an SMB share as a removable media?
Is it possible to mount an SMB share to a folder that Android thinks is a removable media (external SD card or USB storage)?
Currently. I am using the following command to mount the share to Android's filesystem (I should mention that it doesn't work if the android device is in battery saving mode - took me a while to figure this out):
busybox mount iocharset=utf8 -t cifs -o username=guest,rw,noperm,iocharset=utf8 //192.168.0.11/xxx /data/media/0/xxx

But, I don't think it's the best way, because I had some media scanner crashes, random reboots and notifications about low internal memory, which I think are related to the mount I performed.

Hi, I think the crashes and reboots happened because of additional media scanner apps, that I have installed one after the other. Because restoring a backup and not using these apps helped (I hope). But I edited the question again to bring back the information :)

Thanks for adding it back. It helps us to know what you've tried, so that we can help you out with the same or find issues and provide an alternative, wherever needed. :-)


text:
Linux automount corrupts ext4 partitions of Android install?
I've been experimenting with dual-boot between Linux and Android on an x86 device which came with Android + Windows preinstalled (Chuwi Hi10 Pro).
I soon found out that simply booting Ubuntu (either from a live USB stick or from the on-device install) will kill the Android installation (hangs at boot), to the point that only a factory restore will help.
The reason seems to be that Ubuntu automounts every ext4 filesystem it can find, including the Android partitions (system/data/cache/config). I've fixed this by adding the following to /etc/fstab:
# do _not_ automount the Android partitions
UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b  /none ext4 ro,noauto 0 0
UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b1 /none ext4 ro,noauto 0 0
UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b2 /none ext4 ro,noauto 0 0
UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b3 /none ext4 ro,noauto 0 0

I'm now wondering about two things:

What is it that Ubuntu can possibly do to the ext4 partitions that will later cause Android to hang on boot?
Could this be related to the fact that apparently all Android partitions share the same UUID?

EDIT: as suggested by mook765, here's the output of lsblk -f:
NAME         FSTYPE LABEL     UUID                                 MOUNTPOINT
mmcblk0
├─mmcblk0p1  vfat   ANDROIDIA 1389-AFF9                            /boot/efi
├─mmcblk0p2
├─mmcblk0p3
├─mmcblk0p4
├─mmcblk0p5
├─mmcblk0p6
├─mmcblk0p7  ext4             57f8f4bc-abf4-655f-bf67-946fc0f9f25b
├─mmcblk0p8  ext4             57f8f4bc-abf4-655f-bf67-946fc0f9f25b
├─mmcblk0p9  ext4             57f8f4bc-abf4-655f-bf67-946fc0f9f25b
├─mmcblk0p10
├─mmcblk0p11 ext4             57f8f4bc-abf4-655f-bf67-946fc0f9f25b
├─mmcblk0p12 vfat             8A7A-6F97
└─mmcblk0p13 ext4             9dadc784-4ed1-4e54-adec-8227b73a0777 /
mmcblk0boot0
mmcblk0boot1

Note that this is an intentional duplicate from https://askubuntu.com/questions/1092142/ubuntu-automount-corrupts-ext4-partitions-of-android-install.


text:
Is there a way to give root privileges to an app through the ADB?
The Android Debug Bridge (ADB) itself has root access (after executing the adb root command). Can that be used to give the same privileges to apps on the device? Is there a file somewhere in the system that keeps track of which user (app) has root access and can it be modified? If it helps I've already put the app in the system folder so it's regarded as a system app now.

Nope. Though you could use e.g. pm grant and grant it SUPERUSER, but that would have no effect if the app hadn't declared that in its manifest. And if it had, it wouldn't be necessary to grant it manually.
An app must actively request superuser privileges in order to gain it – and even then it only works with a superuser app in place (acting as "gate keeper") that then pops up a message for the user to confirm.

Ah, I had hoped it could be done without a superuser app. Too bad but thanks for your time.

If it could be done without a superuser app, it would be too bad – for security :)

True but after the ADB is allowed you can already compromise security in many ways. I've tried making my app a system one on two different devices.  On one making the app a system one automatically gave it root privileges but in the seconds case it does not... Better security I guess.

Does that mean that granting SUPERUSER with pm grant effectively does nothing?

Granting anything an app has not in its manifest does nothing AFAIK, @RaimundKrämer.

Since you said that it is granted anyway if it is in the manifest, does that make the command obsolete?

In the old days of TowelRoot, an app could be granted root access without a superuser app acting as middleman, so that part isn't necessarily true.

If a user-app declared a permission reserved for system-apps (classic example: READ_LOGS), the command would have effect. And I doubt the part of Towelroot (though theoretical one could introduce a superuser app that simply grants everything without user interaction, I wouldn't want that on any of my devices for security reasons). But please, no more discussion here. Drop into our chat room instead :)


text:
How do AOT and JIT work together in Android Nougat and later?
The Android OS was using interp years ago, then they added Just-In-Time (JIT). However, since Android 5.0, they replaced JIT with Ahead-Of-Time (AOT) compilation which increased app installation time quite a bit, so I wasn't following its development. Then in Android 7.0, it seemed JIT had come back, but I cannot understand how JIT and AOT would be able to work together.
Does this mean they finally ditched AOT and switched back to JIT? (I have read some articles but since I have detached myself for a while from the follow ups to development, I am not sure if I still understand everything correctly.

See Android Open Source Project - ART and Dalvik and specifically the execution decision tree in Implementing ART Just-In-Time (JIT) Compiler Additionally the recent Google IO 2018 session on What's New in Android Runtime which provides some more historical info.

@MorrisonChang Hi my understanding is Android N runs compiled code if available (either JIT or AOT), otherwise falling back to JIT? But this means AOT is not really ahead-of-time but a process executed regularly and repeatedly?

You are correct in thinking that AOT isn't a one and done type of thing. As an app is executed profile information is collected and informs compilation to ARM code during device idle period. The speaker from this video from the 2018 Android Dev Summit Deep Dive into the ART Runtime goes through more detail on the changes to ART leading to the most recent version in Android Pie.


text:
How to view network traffic requested by a specific app?
There are lots of discussion on how to see which app is requesting network connection. I have tried the following apps:
tcapturepacket
wifi monitor
connection tracker

However, none of them was useful. For example, for a short period of time, I uploaded a 30KB pcap file which can be viewed here. Still I haven't find out which app is requesting connection and to where it is trying to connect.
I also tried to look at adb logcat, but didn't find useful information. Maybe something has been missed here. Any guess?

If you have rooted phone, go for nethogs (for live monitoring) or iptables (to get statistics) commandline tools. Using VPN or Android stats based apps is the only possible non-root solution. Or refer to this answer for a logcat/dumpsys based solution.

First of all, tracking a UID or PID of a network stream isn't straight forward because these aren't network related but OS related parameters. Proposals and abandoned projects do exist.
Android assigns a unique UID to every installed app just like every human user on Linux has a UID. So we can capture packets sent by a specific UID over the network interfaces to track the usage.
TCPDUMP:
Now how we can capture network traffic? Most of the network sniffers use libpcap family of system-independent libraries for this purpose. It supports BSD Packet Filter (BPF) for in-kernel packet filtering. Some popular utilities that use libpcap include tcpdump, nmap, tshark/wireshark, dumpcap, nethogs etc. Android app Network Utilities and others also make use of tcpdump.
However UID info is not propagated through the AF_PACKET/PF_PACKET channel that pcap uses at OSI Layer 2. So what we can do here is to make use of network sockets (combination of IP and port) being created and used by an app. netstat -tup or ss -tup will show all network sockets with active/established connections. Both tools are available on Android (or you can get a static binary), ss is the newer one. Socket vs. UID information can also be directly read from /proc/net/{tcp,udp}. Android app Netstat Plus works on same principle. This will provide Local Address (socket) being used by a process.
Once we know what sockets are being used by an app (UID), tcpdump -i wlan0 src <IP> and port <PORT> will dump the whole traffic originated from that process.
Similarly a remote socket (if not connected to by multiple apps) can also be used for filtering results.
LIMITATIONS:
However there are some issues with this approach:

Android apps usually launch more than one process at a time in parallel i.e. multiple PIDs working under same UID. So we have to capture traffic from all processes.
Apps keep on creating and deleting sockets. Keeping track of continuously changing sockets is almost impossible particularly when there are a large number of apps accessing network simultaneously.
There is - though rare - possibility that local sockets are being shared by multiple processes on UNIX-like OS's. Remote shared sockets such as UDP/53 which is used for DNS resolution cannot be tracked for a single process. This further weakens the approach.

NetHogs traverses procfs and copes with the above limitations (though not always very successful):

IPTABLES:
The above described shortcomings of a Layer 2 tool can be mitigated using iptables LOG or NFLOG. Layer 2 is just above the Physical Layer i.e. it's the last thing packets encounter before leaving the device. That's why, being at Data Link Layer and working at lower level of net stack, BPF is a kind of stateless packet filtering mechanism as compared to netfilter / iptables which works at OSI Layer 3 (nearer to userspace programs). So iptables can also get information from TCP/IP stack (Layer 4). It filters packets based on their creator UIDs using module owner that interacts with sockets to find packet ownership.
iptables writes to kernel log which can be read using dmesg or logcat. UID of an app can be obtained using some app or read from /data/system/packages.list or pm list packages -U.
# iptables -I OUTPUT -m owner --uid-owner <UID> -j LOG --log-level 7 --log-prefix 'SNIFFER: ' --log-uid
# dmesg -w | grep SNIFFER

Output can be saved to a file and formatted using tools like grep, awk, printf etc. Network Log - though very outdated - works in similar way. AFWall+ is a firewall based on iptables that can log / notify an app's network activity when the app is blocked.
The only downside with this approach is that it cannot be used to sniff traffic from one process when there are multiple processes running with same UID. iptables can't capture packets based on PIDs. They decided not to use iptables with processes because the process is started before it is blocked/sniffed, and program could easily spawn a child process with new PID which would not be blocked / sniffed. Also PIDs are created and destroyed as quick as sockets are. So there is always room for traffic being leaked.
QTAGUID:
owner module won't work for incoming or forwarded traffic because IP packets carry no ownership information. To measure per-app incoming / outgoing network usage, Android patched kernel to include qtaguid module. We can read statistics from /proc/net/xt_qtaguid/stats. With some shell scripting get live data usage since reboot:

However on Android 9+, qtaguid is being replaced with extended BPF (which is also planned to replace netfilter framework in Linux kernel). Related: Which process is responsible for capturing data usage?
IPTABLES + TCPDUMP:
An alternate is to put the outgoing traffic from an app in an NFLOG group and later tcpdump captures packets from that group:
# iptables -I OUTPUT -m owner --uid-owner 1000 -j NFLOG --nflog-group 30
# tcpdump -i nflog:30

This is to ensure that we get closer to physical layer when sniffing outgoing traffic. But it can still give false positives e.g. if packets are dropped / lost in routing tables. That's why sniffers work at OSI layer 2. Or even better is to watch from outside e.g. using a proxy / VPN server or on a tethered PC or at router. But this won't capture traffic on per UID/PID basis.
OTHER OPTIONS:

Use diagnostic tools like strace to track syscalls related to network activity of a process. force_bind and tracedump also work on same principle. Linux kernel's audit subsystem can be used for the same.
Use Network classifier cgroup with iptables NETFILTER_XT_MATCH_CGROUP to sniff traffic from certain process(es).
Use Network Namespaces to isolate processes and read data usage on per interface basis. nstrace works on same principle.
If the intention is entirely to block traffic originating from certain processes, SELinux and seccomp can be used to restrict the processes' ability to create sockets by defining restricted policies and suppressing syscalls respectively.

Most of these are not straightforwardly viable options for Android and require advanced configurations.

ANDROID'S APIs (NON-ROOT OPTIONS):
Some apps like NetGuard use VpnService API of Android to block traffic at Layer 3 (TUN interface). The app can "notify when an application accesses the internet". Per app capturing and tracking (1, 2) is possible using VPN API as Android makes use of UIDs and SOcket_MARKs (1, 2) to control traffic in network Routing Policy (RPDB), just before leaving the device.
Some apps like NetLive make use of NetworkStatsManager, but it lags the real-time usage and "does not update quickly enough", it's "meant to provide historical data".
NOTE: I've no affiliation with any app referenced.

RELATED:

Restricting an app to only send internet traffic but not receive that back?
Why network activity is detected from apps after firewall blocks them?
Capturing mobile phone traffic on Wireshark

With PCAPdroid you can see the individual connections made by the apps. It's an open source tool developed by me which works without root (root is optional). It has lots of interesting features for users security and privacy, check it out

This is exactly what I needed, and I got it to work in 5 minutes. Thank you.

If you only want to track which app performs connections to which server I recommend the app
Net Monitor to you. It acts as a local VPN and is therefore able to detect all network traffic. Furthermore it shows which app has performed the network request (including remote host, ports, and even if the connection is plain or SSL/TLS).
Therefore if you use this app in combination with the capture tools you already mentioned in your question you should able to trace back each and every network connection.