text:
Moving Apps From Internal Storage to SD Card
Is there a way to transfer apps like Facebook or WhatsApp that reside on phone memory to SD Card without rooting my phone?

I've just added the app2sd tag to your question. For a starter, you might wish to check its tag-wiki here – as well as its most frequented questions, e.g. Is moving apps to SD only available to rooted devices? / How to move Applications from phone to SD Card?

Not all applications can be moved to external SD card without rooting, but there is a way to make most of the apps install on the SD card. If I was to do this, I'd prefer having a faster SD card, of maybe class 6 or 10.
This command using Android Debug Bridge (ADB) can do the trick.
adb shell pm setInstallLocation 2
If you are new to ADB shell, you can refer this guide for the same: Click here. If you don't have ADB installed on your computer yet, take a look at Is there a minimal installation of ADB?
PS: This won't mean all apps will be installed on the SD card only, the application developers can overrule this setting you make if they want to. Plus apps using services or featuring widgets cannot be moved to SD card either.

Copying the .apk to your SD card means you've got to get hold of it in the first place – which is not always possible, as Playstore doesn't feature a "direct download" ;) BTW: I've added the remaining facts to your answer, hope that's OK with you. Full ack to the SD card class recommendation, of course – which is the same I usually give :)

It is cool. And you can get the apk from someone else's phone if the apk from Play Store won't vary with the phones' specifications. Though I remember using a site to get the apk, which was kinda dangerous if the site owner would decide to infect and send the file, but it was a spare phone and there was nothing to lose/keep secure.

Unknown sources are always dangerous if you don't know whether you can trust them. And not everybody has a second device available. But of course, if you have that option, that might work. One site with links to .apk files (hopefully trustworthy) is mine ;)

You should also have in mind that this command doesn't work for all phones. I'm using a Motorola DROID RAZR M running KitKat4.4 and tried this. I couldn't install any app anymore.

There is an app called Move app to SD card. Open the app then allow it to control the device then select the apps you want to move and it will move them.
Note: Works best with root privileges

You can move apps to your SD card by either;
1.
going into settings and go to application manager and click your desired app and click move to SD card.

This is what the app looks like or similar (click image for larger variant)
2.
going into the list of all applications on your phone and click on the my files one - it looks like a folder- and it depends on what phone you have got - as some phones don't have the files app built into the phone, Samsung does. Once in the app select phone/internal storage and find the app file and select it and move it to SD card/external storage.

The box in a darker shade of blue is the button to click (click image for larger variant)

That's for native App2SD. Starting with Android 4.0, many manufacturer dropped support for this from their devices – so it might be there, or not. If it's supported, that's of course the way to do it :)

Most Android phones come with only 16 or 32GB of internal memory, much of which is already taken up by the operating system and preloaded software. After you start adding your own apps, shooting photos, downloading movies and putting your music collection on the device, you risk running out space.
To move apps to the microSD card using Android’s application manager.
Android's app simply move ur app Internal Storage To SD Card like us Move app to SD card
Settings -> Apps -> list of app's Name -> Move to SD card ( Toggle to Internel storage )

You try using GL2SD in play store. That will help you to achieve your target. You can also try this guide here: Move apps to sd card using gl to sd.

Link only answers are discouraged as they can become outdated. I recommend that you elaborate your answer further.

I better suggest you rooting your phone and use folder mount which helps you not only in moving apk but also to move your data or obb files into the sd card.rooting your phone is not that hard . just download iroot into your pc
enable debugging mode in developer options then its all done

We're looking for detailed answers here. Please see how do I write a good answer? and [edit] your answer to incorporate the required steps.


text:
How To Remove "Insert Metropcs Sim Card. Emergency Calls Only" Msg On An Lg?
This is the message I am looking to get rid of:

I learned that you can get rid of this message on other Androids by going to the app that it generated from and clicking "disable notifications". However, I have no idea where to find the app that causes this message and I also can't long-press the message to see where it comes from. So any other answers to solve this problem? Or do any of you guys know what app cause these sorts of messages to pop up on your homescreen?

I think your phone is SIMLocked, meaning it works only with SIMCards from a certain service provider, MetroPCS in this specific case. Your phone doesn't detect any MetroPCS SIMCards inserted. Therefore, it limits your calls to emergency only. That notification doesn't originate from any app. It originates from the OS itself. Only way to make it go away is, assuming you wouldn't root your device, installing a proper SIMCard.

source: Stack Exchange

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

sort: votes


text:
Find the IMEI number of lost Android phone
It used to be possible to find the IMEI number of a device from Google Dashboard. However, I couldn't find it now. Majority of the answers I find on the internet refers me to this method but it doesn't work.
Is it possible to find the IMEI number of a lost Android phone using Google Dashboard? If yes, then how?

Probably the easiest way is to look at the box the phone came in, or the receipt, as it'll be printed on both. That relies on you having kept either, though.

I have not kept that. :(  Previously I was able to track using google dashboard. Not able this time.

Where did you buy the phone from? You can contact them. IMEI numbers are usually written on the receipts and the seller is supposed to keep a copy or digital records of the receipt.

@SarpSTA bought it on foreign country. so could not do what you have mentioned.

If you cannot get it from your carrier, and you don't have the box or receipt with the IMEI number on it, you are basically out of luck. A few years ago Google made some changes and you cannot see the IMEI of the device connected to your account, unless you purchased it through the Play Store. I would make this an answer but I cannot find the reference link.

Did you contact your carrier and see if they have it?

You might also be able to contact Google support and ask for the IMEI number.

Yes, as of July 2019, you can still get your IMEI number from the dashboard. Just go to the "Find your  device" page and select your device. Then in the upper left corner, the name of your device will appear with an (i) icon next to it. Click on that and it tells you IMEI number.

Still works as of 8/29/2018.

This gave me a diff imei number compared to one on the phone box

Not a way to find it , but to document that it's not possible from Google Dashboard anymore

Is it possible to find the IMEI number of a lost Android phone using Google Dashboard?

Unfortunately NO
Google removed this feature for reasons best known to them. From Google Support, see what
NoGoodDeed says

As catzrule states, Google has was removed IMEI information from the new dashboard view.
Google is considering where and if it might be appropriate to re-surface that info.
  You can leave  Feedback
  about this with Gmail.

This is the latest official source (October last year) I could find, so there is no way out unless you have the box or bill mentioning IMEI.
Other possibilities

If you synced to itunes as claimed here ( I can't confirm)
Another very long shot is if you had installed a paid app that is single device use and is linked to your IMEI number (I have a call recorder app that does this and everytime I change my device , need to mail them with new IMEI number, so end up having a record)
As Bochur mentioned in comments (thanks), asking Telco is another possibility

I wish Google would reintroduce this
Edit Things that didn't help

Chatting with Google help from Play Store options - they were totally clueless and couldn't direct me to somebody who can help
Downloading data from Google Dashboard. Combed but to no avail. Only interesting thing is that you can see your Google ID here

This is just not true. See the other answers.

I have good news, I was able to find my Andriod Device using Google Dashboard by going to the Find My Device page once I logged in.
Just press the i by the name of your device.
Here is a print screen in case I am not clear.
Hope it helps.

Direct link: https://www.google.com/android/find

Yes goto find my phone click on the lost device and click on locate then on the screen of the locate device click on the (!) It will tell you the imei #

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

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


text:
Phone soft reboots when making or receiving a call [Nexus 6][CM13]
I've got a pretty severe bug that results in my phone soft rebooting every time I try to make a phone call or a phone call would be coming in on the main number.
What I did to try to fix (no luck):

Downloaded latest snapshot: https://download.cyanogenmod.org/get/jenkins/158646/cm-13.0-20160418-SNAPSHOT-ZNH0EAO2NL-shamu.zip
Downloaded latest gapps for 6.0: http://opengapps.org/ (ARM 6.0 Stock package)
Wiped /system, /data, dalvik cache & /cache
Installed #1 and #2
Wiped /internal storage
Updating radio/bootloader to latest available

What's going on? This just started manifesting after I did a cm13Nighty (4-11-2016) > cm13Snapshot (4-18-2016) upgrade. I would've thought the reset would fix it at least?

Other things I've tried with no luck:

Disabling/enabling WiFi Calling
Booting into Safe Mode
Deleting com.android.providers.x folders in /data/data & wiped Dalvik/cache again (This fixed WiFi calling consequently - dysfunctional again after soft-crash - interesting...)

The issue is the current build of gapps - quick workaround is to manually set the Phone/Dialer app as the default Phone App in Settings -> Apps ->  -> Default Apps -> Phone App.
Source: https://forum.cyanogenmod.org/topic/124381-dialer-crashes/?do=findComment&comment=590388


text:
How to "completely" delete Xposed Framework and modules?
I did two things to install Xposed. Firstly, I flashed xposed-v75-sdk21-x86.zip and then installed the .apk file. I can now uninstall the app itself but how can I erase the flashed file of the .zip?
Also, where are the modules stored? How to delete the modules completely?
Device is LG G3 D855. Running on Cloudy G3 ROM.

Can you please specify which device and OS you're using? I ask because I'm using Xposed on my Galaxy S3 and everything, including modules, installed and uninstalled as third-party apps using the native app installer. So I'm not understanding the difference in how your Xposed is set up. Thanks!

Shouldn't a .zip file be flashed first? I just followed the instructions.

Which instructions? I used information from the Xposed Installer site which has an apk to download and install. I didn't flash anything to get mine to work. Again, might be different on your device.

Here. It is the framework itself I assume and the app is just the manager.

Okay, although I don't think I'm the one to help with this, we're getting somewhere. You should edit the tags in your question to include your OS since this apparently makes a difference with how Xposed is installed. KitKat=apk install, Lolipop and Marshmallow=zip to flash.

I actually figured it out I think. I figured where to find the installed stuff. Where are the modules are downloaded at though?

First, I've never "flashed" anything to install the framework – the installer takes care for that. Second, the modules are just like normal apps – so you'll most likely find them in /data/app. Cannot tell for 100% that covers all, but those I know do.

@Izzy Can you read the xda thread I mentioned on my comment? It tells to flash. Why so?

Uh… Maybe it's different for Lollipop and Marshmallow. I'm still running it on Kitkat. If Rovo wrote flash, then flash it is. Sorry, I totally forgot about the differences introduced by Lollipop.

Note: provided that you end up at this post in search of solving the bootloop issue caused by an Xposed module, my answer here would better help you .

For any Android Lollipop

I can now uninstall the app itself but how can I erase the flashed file of the .zip?

See the attached files in the first post of this thread. In relevance to your device's CPU architecture, download the uninstaller archive and flash it from the custom recovery. It would undo the  changes the installer archive made.
In essence, the installer archive keeps the original system files but appends in their name .orig  or convert them into archives (unofficial installers do). It then places its modified files at their location. All uninstaller does is remove the modified and extra files and change the backed up files back to their original self.
Relevant section from the uninstaller script

echo "- Restoring/removing files"
rm -f /system/xposed.prop
rm -f /system/framework/XposedBridge.jar

restore_link   /system/bin/app_process32               0 2000 0755 u:object_r:zygote_exec:s0
restore_backup /system/bin/dex2oat                     0 2000 0755 u:object_r:dex2oat_exec:s0
restore_backup /system/bin/oatdump                     0 2000 0755
restore_backup /system/bin/patchoat                    0 2000 0755 u:object_r:dex2oat_exec:s0
restore_backup /system/lib/libart.so                   0    0 0644
restore_backup /system/lib/libart-compiler.so          0    0 0644
restore_backup /system/lib/libart-disassembler.so      0    0 0644
restore_backup /system/lib/libsigchain.so              0    0 0644
restore_backup /system/lib/libxposed_art.so            0    0 0644
if [ $IS64BIT ]; then
  restore_link   /system/bin/app_process64             0 2000 0755 u:object_r:zygote_exec:s0
  restore_backup /system/lib64/libart.so               0    0 0644
  restore_backup /system/lib64/libart-compiler.so      0    0 0644
  restore_backup /system/lib64/libart-disassembler.so  0    0 0644
  restore_backup /system/lib64/libsigchain.so          0    0 0644
  restore_backup /system/lib64/libxposed_art.so        0    0 0644
fi

If you've the knowledge of setting the appropriate SELinux context for a file in Android from recovery mode, you can simply map the files the installer would've changed, revert the changes using command-line and set the correct context. No uninstaller would be required.
Note: If you're not using the official Xposed Framework then the uninstaller may not work for you. It may even cause unforeseen issues. Best is to search the web for the uninstaller.

Also, where are the modules stored?

Xposed Installer app downloads the modules under /sdcard/Download.
They may be called modules but they simply are apps to Android, hence the APK would be found under /data/app or the locations covered here by Izzy. Alike every app, there data directory would be found under /data/data.

How to delete the modules completely?

Deleting an Xposed  module is no different than removing any user installed app from Android. So, you can use any technique that you would use to remove an ordinary app.
Note that the file XposedBridge.jar under /system/framework/ is what provides modules the necessary APIs to interact with the modified framework.

For Android 4.2.x - 4.4.x
Use the file Xposed-Disabler-Recovery.zip located at /sdcard/Android/data/de.robv.android.xposed.installer/files. Flash that file from recovery mode (requires a custom recovery) to disable Xposed Framework. If you don't have such file, download it from the first post of the official thread.
That archive, in essence, changes /system/bin/app_process.orig to /system/bin/app_process i.e. it removes the modified app_process and brings the original file back to its glory. It doesn't delete the Installer app. You can make those changes on your own too using adb in recovery mode.
The concept of modules here is no different from what is covered in the above section.

Until KitKat, to disable the framework you need to flash this zip (stored on your /sd at installation Xposed-Disabler-Recovery.zip .
As far as uninstalling the modules goes, selecting Modules, (from installer), long pressing the module(s) to be removed does it in KitKat. Of course, changes take place after reboot, and I am assuming the same holds for higher versions of Android. Modules reside as per Izzy's comment for KitKat.
Quoting extracts from How to Uninstall Xposed Framework on Android Lollipop Guides Aug 21, 2015:

Xposed Framework on Lollipop needs to be installed manually through a Custom Recovery unlike in Jelly Bean and Kitkat where the Xposed installer apk file would install the framework on your system automatically. So uninstalling Xposed Framework on Lollipop would require you to flash an Xposed Uninstaller Script using a Custom Recovery like TWRP or CWM.... Take note that Xposed Uninstaller are different for different devices like arm, arm64, x86. Find the Uninstaller Script for your device in the Downloads section. Also, Uninstaller Scripts are different for Android versions 5.0 (SDK 21) and 5.1 (SDK 22).

It further provides uninstall instructions and scripts.
I am on KitKat and have no way of testing this. It was a coincidence reading this and later seeing your question.

authors: Факер ФАКЕРОВИЧ


text:
Can I login to Whatsapp Web without scanning the QR code?
My camera doesn't work. I already tried downloading different camera applications but none of them worked. Problem is physical not software-related. How can I login to Whatsapp Web without scanning the QR code?

You can't, you need to scann with Whatsapp, if you scann the QR code with a normal reader, how a website or similar, you only get a plain text.
Whatsapp send that text to your own server to enable you a session in your browser.

Are you sure of the last part?

Yes, they need to process to enable you the session, that plain text don't have any data what you can read or usage how a link or anything else.

It is not that I already know how the mechanism behind it works but since it is not the webpage itself that is connecting to the servers, I don't think it is necessary to send the code to the server.

Yeah the webpage connect to the servers, but they need to know "Who" they are able to connect and enable, They need to know which User o what phone number is connecting to use the service.

Are you sure? I am pretty sure webpage doesn't connect to the server.

Yes Im sure, the first time you process the QR code, they send/recive your request from whatsapp and they tell to the webpage then you can use the service to chat with your contacts.
This system login is called, SQRL and you can see more here
[link]https://www.grc.com/sqrl/sqrl.htm

It probably is like this: Your phone takes QR code. Turns it into plaintext. Send it to servers. Gets an auth code in return. Send this code to webpage and a connection between your webpage and phone establishes. Webpage is just a remote control not a client.

Exactly, that is how works, or how should be.
The webpage passes to be a client after you get the auth code.

No. Webpage never acts as client. Just a remote control.

maybe if you grab a data packet and reproduce it with data changed with a current QR code, you could contact the servers instead of the app doing it. It would be interesting to test that out, but if the packet is encrypted by the app (almost sure it is) before it leaves to the server that would be difficult.


text:
How to update Android on Samsung Tab 8.9 - GT-P7300
I have a tablet Samsung Tab 8.9
Model number: GT-P7300
It has Android 3.2 and it should be upgradable to Android 4.0.4
I downloaded a big zip file named "XSG-P7300JPLP7-20121217--www.SamSony.net--.zip" - 419 MB
It contains various .md5 files and a file named
"P7300JPLP7_P7300OJPLP4_P7300XXLQ6_HOME.tar"
I also downloaded latest Odin - v3.14
But I have no idea how to tell Odin to make use of those files.

Does this answer your question? What do the terms "BL", "AP", "CP", and "CSC" mean in Odin?

Does this answer your question? Where are the download images for Android?

https://www.xda-developers.com/update-firmware-any-samsung-phone

https://android.stackexchange.com/a/141474/131553

Thanks, so I should use AP. What version of Odin though? I posted the question on XDA forum too - https://forum.xda-developers.com/t/what-version-of-odin-i-need-for-samsung-tab-8-9-gt-p7300.4205497/

I was reading somewhere that the Odin version should correspond to the year in which the update you plan to flash is released// No idea how to go about finding that

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


text:
How do I know if my device's GPU (or graphics driver) is of subpar quality?
The other day I got a new tablet.  It's an Insignia Flex 10.1, a bargain Best Buy brand.  A tablet's a tablet, though.
Then I noticed, across several apps, this weird texture bleeding:
(Click image to enlarge for better resolution)

Notice the text. This didn't happen when playing this game on a different device.
(Click image to enlarge for better resolution)

Notice the dots.
Is this indicative of a cheap, crappy GPU or bad OpenGL drivers?  Or is it a coincidence and that the developers for these two apps use the same bad OpenGL techniques?  And by cheap and crappy I mean bad, not just mediocre or underpowered.

You could try some benchmarking app for comparing your GPU standards. Antutu has a good app for that. Try that and test your device's GPU and 3D performance rating.

I did, actually.  Yes, my GPU is subpar, but on further consideration that's not really what I'm asking about.  Let me revise the title.


text:
Google drive only backup new photos
How can I only backup photo's I make after I turned on automatic backup?

Move all your existing photos into a different directory anywhere else. Then just be sure to not allow Google Photos to backup folders. It will by default grab just the DCIM/Camera folder.
Gallery/other file managers will still have full accessibility.

You can do this:
Press the menu button
Settings>Automatic Backups
Backup all photos now

This is going to back up everything which the OP does not want.


text:
How can I hide the on-screen buttons but keep the status bar
I have a Galaxy Nexus (rooted, if that helps) and I want to disable the on-screen buttons (back, home, apps), also called the Navigation Bar. Now there are plenty of apps (e.g. Hide Bottom Bar) that remove the buttons, but since they are based on killing some Android process (I believe), they also remove the Status Bar (on top of the screen).
Now I would like to keep the status bar, but only remove the on-screen buttons (because I would like to use gestures instead). Any way to achieve this?

I found the answer here - it's a matter of adding
qemu.hw.mainkeys=1

to /system/build.prop (root required).

Android 4.4 KitKat has introduced Immersive Full Screen Mode. There's an app in the Play Store exploiting this feature: Immersive Full-screen Mode. It doesn't even need Root access.

There are several roms with this feature baked into them CM10.1 being one of them
But if you like the rom you currently have then I'd go with Stefan's answer


text:
ADB driver MK808 installed but ADB is not working
I wish to setup ADB for MK808
I used Moborobo and it installed ADB driver.
When I connect MK808 I see "ADB Interface - ADB Device" in Device Manager
(instead of unknown device MK808B)
I added 0x2207 to adb_usb.ini in \Users\user.android
It is mine device ID and it was one of common IDs in Moborobo .android folder.
If I connect MK808 I see that device in Device Manager if I disconnect it disappear.
I works only when I able USB - Connect to PC and USB Debugging. So they are checked as well as  allow unknown sources.
But adb is not working and do not see it.
I use Windows 7 64 bit.

PS MK808 shows Bugs debugging icon when connect.

PS on Windows XP I did a trick by taking Google USB driver. I added 2207/0006 device ID and installed it. I also got same buggy icon on device when connected.
and new device in ADB device in Device Manager. But adb is not seeing it.
I added adb_usb.ini to .android folder in my users folder.

I rebooted device many times as well.

I can connect my phone and adb works fine.
When I say adb is not working it means adb devices return 0 list and logcat is waiting for device

just use google usb driver in sdk/extra/google/usb_driver/android_winusb.inf
you must add three lines in the file
;MK808B
%SingleAdbInterface%        = USB_INSTALL, USB\VID_2207&PID_0006&MI_01
%CompositeAdbInterface%     = USB_INSTALL, USB\VID_2207&PID_0006&REV_0222&MI_01
Then update the MK808B driver select from disk, use this file sdk/extra/google/usb_driver/android_winusb.inf then select first option is work fine for me.

In Ubuntu I was able to connect MK808B !!! by adding udev rule like offered here and adding device ID to adb_usb.ini
If there would be no Windows 7 solutions then I will mark my answer as responded


text:
Widgets are not updating post-boot on CyanogenMod nightlies
I am using the Moto G 4G (Peregrine, XT1039). Cyanogenmod 12.1 latest nightly. I update once a week. Widgets are not updating post-boot on CyanogenMod nightlies. Do you know why?
I have not deactivated background data and no battery saving plan is running. I can receive WhatsApp messages and emails but my homescreen widgets stay the way they were when I started the phone. So today it is still Thursday on my calendar widget.

You mean they are not retrieving data?  Does other background data work?  What device and OS version are you running?

Nightly builds are always considered unstable, there's a possibility that something is broken. Usually the best & easiest approach is to contact the developer, perhaps through their forum... though it's also ok to ask here. (but it will take more time since nobody is CM dev). Anyway, have you tried resetting the widget by removing and readding them?

The problem was solved by installing TK-Gapps micro on top of the pico that were installed.
A day later it stopped working again. If I use the google now launcher instead of trebuchet it does work.


text:
Google account and installed apps disappeared after an unexpected restart
I have a Note 3 N9005, Lollipop installed on it. My phone just restarted in my pocket, by my clothes "pressing" power and home button (why does that restarts the phone?).
After it restarted various apps started crashing (contacts storage, settings, internet, android.process.media, Gallery, Key chain) and my installed apps disappeared, so when i want to start them it says app is not installed.
Tried starting Play Store but it insta-closes and does nothing. Neither my other google apps (calendar, keep). So I tried to logout from my Google account, but I can't find it on my list. Account list is empty, and when I tap add account can't find Google.
Here is what I tried:

soft restart
battery remove
clearing Google Play cache
removing Google Play updates
clearing every Google app's cache

What's happening to the phone? I don't want a factory reset, but it seems there's no other way.
(Click image to enlarge)

Update:
two new unsucessful tries:

I rooted the device to try and delete accounts.xml and accounts.db, both came out as a dead end
Wiped cache partition in recovery

Also I tried to factory reset from the Settings menu and I couldn't... safe to say this is hopeless, last try of mine will be factory reset from the recovery menu.

if you did a factory reset and cleaned cache and dalvik cache, one time init setup should initialize at start and allow you to setup a google account.

As your phone is rooted now, backup your apps and data using Titanium Backup Tools and factory reset the phone..

It takes some time for the updates of google play services and other apps to complete. During this update, you receive(even for google play store) the app is not installed. You should be connected to WiFi, not a mobile network.


text:
Why is the "Google Service Framework" APK not available on APKMirror and others?
I am looking for the packages I need to get the Google Play Store running on a device (Android 4.4.4), and while I could find the Google Play Store and Google Play services, I cannot find the Google Service Framework, except on "unreliable" sites that I don't trust. However, this package is required for running Google Play Store, as I was told.
Was the Google Services Framework superseded, or canceled? Does it even exist at all? Is there a different reason?

Any reason not to flash  GApps?

@Firelord it's not for me, but a friend. He doesn't know how to flash etc and he's not particularly well versed with these things to learn it (I assume you mean something using ADB?) :) Best would be simply if I could collect the APKs he needs and he could install them one after another. It's a Xiaomi Mi4

@Firelord does the services framework come with some GApps packages then?

Yes. The most important part of a GApps package if the Google Services Framework.

It is a system-level software which can only be distributed with an OEM license, hence you can't get it's apk except on untrusted sites.

@TamoghnaChowdhury ah that makes sense, thanks. I am not yet that familiar with android. But I suspect, if it is a system-level software, its APK cannot be installed without root-access on the phone?

For one, yes, it's installation requires root. It needs to be installed to /system/app, a read only directory on unrooted devices. I suspect it won't work if installed as a normal app, since it itself needs system-level privileges.

@TamoghnaChowdhury hm, that's bad. I don't want him to hack his phone

What you could try: Use ES File Explorer to pull the Google services framework apk from a device which has it, root your friend's device, copy it to aforementioned directory, and reboot. You might need to install a custom recovery and wipe Dalvik cache also, which makes it just easier to root, flash recovery and GApps package.

Get him the Amazon appstore. I don't see another way out of it. But international versions of Xiaomi devices do have the play store working, or allow you to download the required apps from the Mi Store. Is that not true in your case?

@TamoghnaChowdhury it's a chinese version

Sorry, I can't help you there. I only have experience with international versions.

@TamoghnaChowdhury I read in one forum that there's an app called "Google Installer" in the Mi store which could do this. I wonder whether that app is considered clean? Perhaps he can try that, using european VPN so he can access google. (I think this is legal? If not, I will stop talking about it here :p)

Well, since Xiaomi allows you to do it, it probably is legal. It probably won't hurt to try, but have a backup just in case. Also, I hope your friend understands English, because that's what Google terms to use mostly

Johannes, there are open-source alternatives to Google Services (see e.g. my article on Android without Google: microG). But while no root is required for those, as soon as it comes to playstore access, there doesn't seem to be a way around: as it was mentioned before, those must be installed on the system partition, which is not possible without root access.

Glad to help! I'm using microG on one device already, and probably will migrate to it with others soon. As alternatives to Playstore, there's F-Droid (everything open source, but not so many apps), and Aptoide. As there's always caution to be taken with "unknown sources", one more recommended reading on that would include Android Markets: How safe are alternative sources? resp. How safe is it to use Aptoide? (the latter here on our site).

@Izzy ah, thanks, I had no idea. If I understand correctly, microG is an alternative implementation of some of the google services, so that apps that use them continue to work (like, apps that want to query whether certain other apps are installed...). While aptoide is independent of that and provide an alternative to play store.

That's correct: microG is an open-source, alternative, light-weight implementation of Google Services – while Aptoide and F-Droid are alternative market places for Android apps. The latter two are also covered with my app lists :)


text:
Note 5 freezes and restarts
First of all, no root since I didn't want to mess with knox bricking my phone. The problem started tonight when I wanted to buy PlayStation Plus from the PlayStation App. For some reason, the app hung my entire phone so I had to do a soft reset. After that, it would boot up, but before everything would load up, it would freeze and then restart again. I tried to figure out what process was doing this by going into the running applications, but I could only get there sometimes before it froze, and the times I did get there I couldn't get any worthwhile information.
Next thing I tried was a factory reset by holding the power and volume down button during boot and it sat there for about an hour stuck at installing system update. The animated Android had stopped moving and the phone was basically melting the table it was on, so I soft reset it again.
After that I booted into the Android system recovery to try a factory reset from there so I wiped the cache partition and went to "wipe data/factory reset" the readout looks like this.
#MANUAL MODE#
-- Appling Multi-CSC...
Applied the CSC-code : VZW
Successfully applied multi-CSC

--Wiping data...

Formatting /data...

Formatting /cache...

-- Set Factory Reset done...

-- Copying media files...

-- preload checkin...

E:failed to mount /preload (No such file or directory)
Data wipe complete.

Also the recovery freezes up after a while as well...
I tried just a normal boot again and it seems like the phone has been reset to factory but the phone freezes during the setup and then resets. I am at a loss of what to do next I can't really be without a phone for a long period of time as I need it for my job. Any help would be very much appreciated.

Consider downloading the factory image and flash manually by connecting through a PC.

Will flashing the factory image manually flag the knox counter?

Flashing an "official ROM" shouldn't trigger Knox AFAIK (as that's intended to show inofficial tampering). But I'm not a Samsung user, so you might wish to wait for a "higher authority" on this.

I just got done talking with VZW support and they are just going to send me a new one... I don't want to mess with it to much and accidentally flag Knox and screw with the manufacturer warranty. If this were a nexus I would have just flashed it and got all my stuff back with Titanium backup


text:
Where does Google Now get its weather data?
What source/data provider does Google use for its weather data for Google Now (and other services)?
I've checked its forecasts against weather.gov, weather.com, accuweather.com, wunderground.com, and weatherstreet.com and can't find one that matches for the same location. The reason I ask is because there have been multiple times that it's forecast is horribly wrong. Case in point: currently its forecast is 13 degrees F lower than the closest one of the others above.

Google displays Weather conditions using Weather Underground as per Google Web Search Features page.

All weather conditions and forecasts are provided by Weather Underground, Inc.

So, Google Now also might be picking from the same source.

Thanks a lot for finding the official answer, and yes, I've seen the Google Now forecasts match the ones on google.com, so it's the same source. That said, I've still had multiple time where I've checked those forecasts against wunderground.com for the exact same location and found wildly different forecasts, so I'm not sure what that issue stems from.

I would think that Google caches the results, so it may be off by a bit as WU may update sooner.  Also, WU may update its own site faster than it updates its API.

As pointed out on another answer this one is obsolete.

Though this question is almost 5 years old but I think an updated answer can help users looking for updated info. Nowadays Google gets its weather data from weather.com as mentioned in bottom left corner of Google weather search results when you look for temperature of any location (highlighted in red rectangle).
But as the OP says a lot of times Google's weather data is way off the actual current weather. For example as of this writing it shows current temperature in Shimla, India to be -4 C at 9 pm,  but according to official website of Indian weather department or IMD even whole day's minimum temperature was 1.4 C for 6 Jan 2018 and minimum temperature of whole day usually happens in early morning hours.  Similarly I have matched data for other cities and locations in India and current weather is not what actual current weather is. I think from wherever Google takes its weather data they just provide an average of previous years and not the actual current temperature. And various weather websites showing wildly different current temperatures for same location.

weather.com does not seem to have any way of getting hourly weather for the next 10 days. Is there an API that gets more weather forecast details than visible on the website?

The Google search engine gets its weather from a combination of 'The Weather Channel', 'Weather Underground' and 'AccuWeather'.
The data on Google Now appears to be the same data...


text:
Command or script to read a binary file and skip some bytes every X bytes
I am trying to find an Android shell command that is able to read a file but that has the power to skip, for example 512 bytes every 1024 bytes.
Does such a command exist and is available for Android devices?
I have looked at dd documentation but couldn't figure out if it is possible to use dd for that purpose.
You can make dd skip bytes at the beginning of the file, you can make it read X bytes from a file, but I do not see how to get the feature that I described.
EDIT:
For my purpose the command/script should output to stdout, and the processing will read the output like a stream, so it will not be something like "cat a file, do processing, cat a file". It is like "while true; do cat a file; done | processing".
The list of available commands is here: http://www.busybox.net/downloads/BusyBox.html

You should try to use this bash script I wrote for you (require busybox on your Android):
put the script in a file called script.bash (change  with your own path) :
#!/system/xbin/bash
# sputnick 20120928 http://android.stackexchange.com/posts/30069

binfile=<THE PATH OF YOUR BIN FILE>
bytes=$(wc -c < $binfile)
c=0 count=0

while ((count < bytes - (1024+512) )); do
    dd 2>/dev/null if=$binfile bs=512 count=2 skip=$c
    printf '\n\n'
    ((count += 1024+512 ))
    ((c+=3))
done

Now, in a terminal on your computer (this is for linux, adapt it if you use Windows)
adb push script.bash /mnt/sdcard/script.bash
adb shell
bash
chmod +x /mnt/sdcard/script.bash
/mnt/sdcard/script.bash

edit
This is what the script does in-fine :
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=0
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=3
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=6
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=9
(...)

That certainly should work but I see two details that could be improved for my purpose. First I want it to output to stdout and not to several files. I think you can fix that just by removing the of option. The other thing is, I do not know if calling dd several times brings an overhead of opening/closing the file several times making the process less efficient than it should be.

The script was edited to fit your needs. If you know a better way than calling dd several times, tell me how ;)


text:
Any way to hard reset a HDC A9100?
I need to hard reset my HDC  A9100 any way I can. Please, does anyone know how?
To clarify:
I need to overcome a forgotten screen lock, and the documentation provides no helpful information (it's here: http://www.swedishphones.com/uploads/7/4/6/3/7463877/hdc_a9100__manual.pdf)
A few attempts at the 'hold the volume buttons' etc while it powers on have been unsuccessful.
I do know the right username/pass combination for the "forgotten your..." screen, but it doesn't appear to work.
Does anyone have any recommendations?

Why do you need to hard reset? Surely your HDC A9100 has some booklet or documentation on this? If not, please clarify what Android version you're running. It could be a factory reset that is needed?

edited to include more info.

Still looks like you rather mean a factory-reset. Please hold your mouse-pointer over the tag to see what hard-reset stands for: nothing but a "forced reboot", which is unlikely to solve your issue. I'd rather re-phrase your question, as it is what we call a XY-problem: You probably don't want to know how to do a hard-reset, but how to overcome your screen-lock problem, correct?

See also: Q: Cannot unlock tablet as have no internet connection?, which has a lot of solutions to get around the issue.

Have you tried the standard Android hard reset? I heard this works for all Android phones.

turn it off (if you cannot shoot it down, remove the battery).
hold both volume-buttons and the home-button and then hold the  power button. about 5 seconds

use this at your own risk! You will lose all your installed data and get a clear reset to shipping settings, if it works.
there are some videos about it on youtube.

Is this standard across the board? Clearly the OP has not provided enough clues.

I added some more info, but I've tried this and it didn't seem to work...


text:
Import multiple vCard files to Galaxy S3 contacts
How can I import contacts from hundreds of vCard files to my Galaxy S3 which is shipped with Ice Cream Sandwich ? I don't want to import it one by one.
I am using Windows 7 Ultimate.

You need to combine all you vcard files into one. Exact process depends on operating system of your computer.
You can find some examples in http://productforums.google.com/forum/#!topic/gmail/y2670pyopew


text:
Background usage even if the app put to sleep
I have put the WhatsApp to sleep (App Usage --> Put app to sleep ( ON ) ) but when I checked on the battery usage, it shows 1 h 6 min.
I'm using Android Pie on Samsung Galaxy Note 8.
How I can ensure that the app will not use battery in background. I guess one way to use the 'Force stop' in app manager.

How did you put to "sleep"?

@IrfanLatif App Usage --> Put app to sleep ( ON )

It seems to be a Samsung specific feature, not of AOSP. So I'm not sure what it actually does to the app, but for sure it must not be completely killing the app. Stock Android uses different phenomenon to put restrictions on apps' background activities e.g. doze and app standby. Battery saver mode aggressively forces apps to standby as well as blocks network activities.

But the best background limitations are applied with appops RIN_IN_BACKGROUND denied, in which restricted apps cannot run jobs, trigger alarms, or use the network, except when the app is in the foreground. However none of them kills the app. So you may see somewhat resources used by app.


text:
Auto wallpaper changer
I need to auto download wallpaper from internet and set based on a frequency ( daily or hourly ) ?
I'm using Samsung Galaxy Note 8 on Android Pie. Is this functionality available in android?

You can try Casualis:Auto wallpaper change. It can:

lets you have an always new wallpaper without lifting a finger: you just have to decide when you want Casualis to activate and you're done!
Features:

Set a random wallpaper every 1/3/6/12 hours or every 1/3/7 days, at the time you prefer;
Choose a wallpaper manually among over 3000 high-resolution images or use your own images;

In the settings, you can select the wallpapers from. Disadvantage: It shows ads.
Or you can try Wallpapers.

Enjoy a collection that keeps on growing. Access images from Google Earth, Google+, and other partners.
Double your fun. Show the world one wallpaper on your lock screen, and keep one for yourself on your home screen. (Requires Android™ 7.0, Nougat, and above.)
Start each day fresh. Pick your favorite category and you’ll get a new wallpaper image each day.

Disadvantage: Made by Google and not updated since 2018.


text:
HTC One S vibration keeps getting turned on for normal profile
I have a HTC One S with stock ROM (latest update) and stock launcher, no root or anything. Android is 4.0.4 ICS. HTC Sense 4.1. In sound settings, for the normal sound profile, I turn vibration for calls/messages/notifications off, but after some time it mysteriously comes back.
I don't know what triggers it. It happens after switching profiles a couple of times, like switching to vibrate profile and later switching back to normal. I have a suspicion that it might be related to using the physical volume up/down button to switch the profile. I usually use the stock 1x1 HTC widget to switch between profiles. It kind of annoys me and I consider it a bug. Does enyone experience the same? How can I prevent it?
Update: it just happened again after a system crash. I'm getting these more frequently lately, and after every crash the vibration is back. I can now list this as a confirmed trigger, but I'm not sure if it's the only one.

I'm not familiar with how HTC Sense deals with vibration settings, but this does sound like a bug.
As a possible work around - you could install Tasker and set a profile for every time you turn the screen on to set vibration off.  This is a nasty hack, but would stop the vibration function on your phone from coming on all the time.

Thank you for your response. I might use that as a last resort. I'm getting more frequent system crashes and after every system crash, vibration is back. I think I'll reset my phone.

It may be worth resetting and if that doesn't work, perhaps root and stick a Cyanogenmod based ROM on there - way more stable than HTC Sense! Source: I've worked with a lot of HTC source code - it isn't pretty, even their own engineers warned me away from Sense.

I didn't know that, but I had a suspicion. I've read somewhere that it's normal for HTC devices to reset every couple of days. But the thing is, I like sense... And since my phone is only 2 months old, I don't want to wreck the warranty yet.

In my ICS (on LG Swift hardware) the switch to "ring" profile occured on every answered call during daytime. Somebody else at Polish LG forum complained about switching to "quiet" at night.
SOLVED: After some reading and a simple experiment I found that it is the system app to switch profiles for the nighttime (settings->sounds->"silence time" in my LG). This is a buggy app: after any event requiring sound on - like answered call or so -- it switches to the scheduled profile, even if it was overriden manually.
To make clear: I have "nighttime" quiet setting, so after manual switch to "loud", upon first call it automatically returns to "quiet". In the daytime, when quietened manually, after a first call it returns to "loud".
Switching this option off helps.
P.S. I have read about problems with tasker after upgrade - maybe it is some more general bug (or feature making some apps incompatible)


text:
How to install GSI on Samsung Galaxy Tab Active3
I am trying to flash an Android 12 GSI onto my Samsung Galaxy Tab Active3. Goal is to install the GSI without root / voiding the warranty. My company produces an app which is primarily used on Android on Galaxy Tab Active devices. It's expected Galaxy Tab Active3 will get Android 12 update in the next few months and we wanted to do some regression testing in advance of that. Hence the need to get Android 12 GSI onto the Tab Active3.
Device is an arm64 so I downloaded the arm64+gms version of Android 12 GSI (from Google's website). I have successfully unlocked the bootloader, and enabled DSU support. The device supports Project Treble and the VNDK isolated namespace, so in theory should support GSIs.
Everything I tried so far has failed. Any ideas to get it working?
Manual DSU
I have tried to install the GSI by manually starting the DSU via activity manager. Every time it just says "Installation failed" after reaching about 50% progress. I have tried setting different sizes for the USERDATA: 8GB (Google's recommended size), 2GB and 1GB. I get the same error every time. The device has around 40GB free space and the GSI image size is around 2GB, so it shouldn't be anything to do with the space requirements.
Logcat reports an error:
11-11 13:10:09.620  1103  3695 I DynamicSystemService: Failed to install system
11-11 13:10:09.621 16445 23403 E InstallationAsyncTask: java.io.IOException: Failed to start installation with requested size: 1257738436

This doesn't help unfortunately; it is thrown from the following file and this is just thrown if there is any error in the underlying dynamic installation:
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
PS: Unfortunately the device does not support DSU Loader even though it's running Android 11 (searching for "dsu" in the settings returns no relevant results). Apparently none of the Samsung devices are supporting DSU Loader.
Fastboot and FastbootD
The device can be rebooted into fastboot mode (adb reboot bootloader) but every command just hangs forever (except for fastboot devices, which does detect the device). I tried fastboot reboot fastboot, but it just reboots into the standard mode of the device and does not enter a fastboot userspace mode (fastbootd mode) as some have suggested it should.
Heimdall
At least one person has said they can patch GSIs using Heimdall: https://forum.xda-developers.com/t/can-i-flash-gsi-roms-with-odin.4029921/
That person was able to flash their GSI to the SYSTEM partition, but my device doesn't have a SYSTEM partition. The partitions are like SUPER, PRISM, etc.
I'm not able to get Heimdall working properly on Windows 10. I have tried with WinUSB, libusb0 and libusbK, but the same is true for all of them. After rebooting the device into ODIN mode, the device can be detected with heimdall detect, but I can't do anything more including heimdall print-pit, as I get a "Failed to access device. libusb error: -12" error.
I managed to set up Heimdall on an Ubuntu instance of WSL and map the USB using USBIPD. Inside WSL, heimdall print-pit does work but I can't get further to flashing anything (I tried to flash the GSI to SUPER, not sure if this was a good idea but anyway it failed) as I get a "Protocol initialisation failed!" error.
Odin
I am not sure if Odin even supports GSIs and I can't find anyone saying it supports them. I have tried flashing the GSI as an AP in Odin 3.12, 3.13, 3.14 and the patched 3.14 which removes signature checks. But every time it just fails.
Custom recovery
Just to also note, it seems none of the custom recoveries (TWRP, SHRP, Orangefox etc) support the Tab Active3, or I could have tried to flash those using Heimdall/Odin and then use them to flash the GSI. But I feel it's likely I would have had the same issues, at least with Heimdall.
EDIT: Heimdall on native Linux
@Robert in the comments below suggested I run Heimdall on native Linux rather than on WSL or the Windows version. This worked better and fixed the issues I was having before with Heimdall.
I then tried to flash VBMETA (the one which is bundled with the GSI) using Heimdall which worked, however my device is now soft-bricked, can only boot into Download Mode, and gives the following error:
ODIN MODE (AVB fail)
vbmeta: Public key used to sign data rejected. (5)
vbmeta: VERIFICATION_DISABLED bit is set.
CUSTOM VBMETA
VBMETA : No sign info
VBMETA ,

@alecxs in the comments had suggested flashing a VBMETA generated from avbtool instead; I tried this also, but got almost the same situation and a very slightly different error output:
ODIN MODE (AVB fail)
vbmeta: Error verifying vbmeta image: OK_NOT_SIGNED (3)
vbmeta: VERIFICATION_DISABLED bit is set.
CUSTOM VBMETA
VBMETA : No sign info
VBMETA ,

EDIT 2: Heimdall on WSL again, VBMETA findings, and how I got DSU working
I found that both Heimdall on native Linux and Heimdall on WSL actually suffer from the same problem. You can only post one command to the device, then subsequent commands fail with "protocol initialisation failed". On WSL I was doing things like heimdall print-pit --no-reboot and that's why I was facing issues when flashing. Basically, if you get protocol initialisation failed, just reboot the device and it should work.
Samsung devices seem to do a signature check on VBMETA and only accept official Samsung-signed ones. I found two different VBMETA images in my stock ROM - vbmeta.img and vbmeta_samsung.img. I happened to notice that vbmeta_samsung.img has the same file size as the vbmeta disable images. By the time I'd got this fixed I'd flashed vbmeta_samsung.img and then done a factory reset. I'm not sure if this was strictly necessary though, as after flashing vbmeta.img it still worked. Not sure if re-flashing original stock vbmeta.img will have re-enabled AVB though. Although I'd say it's unlikely, as even Google themselves say you need to disable AVB in order to use DSU.
How I got DSU fixed eventually (aside from the above) - I had made a really stupid error when running the DSU command. For KEY_SYSTEM_SIZE I was passing the gzipped system size, not original system image size. This is why the installation always failed after 50%, because it was only installing 50% of the system image. Also another really important thing to note is that after running DSU, you have to restart the system from the DSU notification and not from the normal power menu of the device.

Comments are not for extended discussion; this conversation has been moved to chat.

Just posting this for future reference - I did manage to install Android 12 GSI on the Samsung Galaxy Tab Active3 using DSU (not DSU Loader) eventually, and the problem turned out to be something really stupid. When supplying the value for KEY_SYSTEM_SIZE in the DSU install command, I had supplied the gzipped size rather than original image size. This is why the installation failed after 50% because it was only processing 50% of the uncompressed image (compression ratio was approximately 50%).
There was lots of discussion in the question comments about disabling AVB - I want to note that you do not have to disable AVB in order to follow these instructions. I verified this with a colleague who had a brand new device and we were able to install the GSI with DSU without disabling AVB.
There is little point in me posting detailed steps because they're essentially just the vanilla steps from Google to installing any GSI through DSU. At a high level:

Enable OEM unlock in your developer options (if you can't see it and your device is fairly new, there are a number of guides online you can follow around setting your device clock manually to "trick" the device into thinking it's not such a new device)
Unlock the bootloader (power off device, hold down vol up+down, plug in power cable (connected to a computer USB not to a regular power socket), long press vol up, press vol up again to confirm)
The device will automatically factory reset - go through setup again and make sure you enable WiFi
Enable the DSU feature flag: adb shell setprop persist.sys.fflag.override.settings_dynamic_system true
Launch DSU: see https://developer.android.com/topic/dsu#launch (make sure when you supply the KEY_SYSTEM_SIZE this is the original image size not gzipped image size which is where I went wrong)
Make sure you reboot your device from the DSU notification (you have to expand it to see the restart option) and not from the normal power menu


text:
How do I keep speech-to-text active in Gboard even during silences?
I often use Gboard's speech-to-text to do voice typing. However, every time I pause speaking for a few seconds, I have to reactivate this feature by clicking the microphone on the keyboard.
How do I keep it active for longer?

With Android 12 with a Google Pixel 6, one has to double tap on the microphone button:

I've been pressing and holding the voice button on gboard and letting go when I'm done speaking. It works flawlessly for me this way. Pixel 7.
I think it even goes into offline mode when you do this, so no lag.


text:
How does Samsung's Voice Recorder's Speech-to-text function store the text and sync it with the audio?
I am using Samsung Galaxy S7 and recently, I used the speech-to-text feature in the default Voice Recorder application. When I play one of the audio files that was recorded with that feature, the application is able to show the text in sync with the audio. I saw that there was the text stored in another text file together with the audio file, but it was just the raw text. I'm trying to figure out how this works.
Is this information for syncing the text and audio stored in the audio file? In this case, all the recordings are only in M4A files. Hence, I tried searching what M4A files can store, like if they can store subtitles because it would seem that it could be subtitles that enable this syncing. However, I can't seem to find any information on this. Or it could also be that the application just has this information stored in some sort of storage or cache, which would mean that if I moved the files over to my computer, there would not be any text synced with the audio.

I guess I have found the answer after looking within the M4A files themselves. The text and the timestamps, if I am correct, are stored in the M4A files.
I looked through the binary data of the file using a hex editor and just the normal Notepad application in Windows and I found all the text within a location and it looks like Java was used. I am guessing this is only a feature designed particularly for the Samsung Voice Recorder application.
A sample is shown here (with some parts and most of the weird characters removed):
;com.sec.android.app.voicenote.common.util.VoiceRecorderData
mCategoryNamet Ljava/lang/String;L mEffectNameq ~  java.util.ArrayListx sizexp 2com.sec.android.app.voicenote.common.util.TextData ConfidenceScoreI dataTypeJ durationJ elapsedTimeJ   timeStamp[ mTextt [Ljava/lang/String; [Ljava.lang.String;{
t The pppppppppsq ~
t
recording pppppppppsq ~
t to pppppppppsq ~

Here's a Python function that extracts the text of a given .m4a file path:
from codecs import decode

def extract_text_from_audio_data(audio_path):
    with open(audio_path, 'rb') as f:
        binary_data = f.read()
        utf8_data = decode(binary_data, 'utf-8', errors='ignore')
    index_start = utf8_data.index('Ljava.lang.String')
    index_end = utf8_data.index('com.android.version')
    substring = utf8_data[index_start:index_end]
    lines = substring.split('q\x00~')
    pattern_end = ' pppppp'
    pttrn_start = '\n'
    tokens = [l[:(l.index(pattern_end))] for l in lines if pattern_end in l]
    words = [t[t.index(pttrn_start)+4:] for t in tokens]
    phrase = ' '.join(words) + '.'
    return phrase


text:
What is causing my audio playback to slow down?
I frequently play long playlists on my Nexus 9 tablet, while it sits unused in any other way. Since updating to Marshmallow, the audio suddenly slows down to (at a guess) 50% normal speed after 90 to 120 minutes of playback. The audio file needs to be stopped and restarted to restore normal speed.
What I tried:

My first thought was that Marshmallow's new energy conservation system, Doze, was likely to blame. Disabling it for the media player* made no difference, nor did
playing files stored locally or on the LAN or
using a wide variety of other media players.

As this behaviour only started after updating from Lollipop to Marshmallow, I still suspect Doze is somewhere at the root of this. That said, Google produced no obvious mention of anyone else running into this issue and it seems unlikely no one else would have bumped into this.
The tablet is not rooted and both the original Lollipop and the current Marshmallow were auto-updated from Google.
*(Options\Battery\...\Battery optimisation\All apps)


text:
Find out when the app was created
Is it possible to find out when the first version of an app was issued?
Google Play only shows the date of the latest update in ADDITIONAL INFORMATION field (see picture).

Ideally, I'd like to see when all the updates were issued. Probably, that's too much.

http://android.stackexchange.com/questions/63904/android-app-initial-release-date

@eldarerathis Thanks a lot! I tried several search combinations but didn't reach this page. Should I delete my question now?

If the other question does appear to answer yours, then we can mark this one as a "duplicate", which should help to increase the overall search visibility of the answers (since people may land on this one then be linked to the other).

@eldarerathis Yes, I believe, it should be marked as duplicate. The other one provides a good variety of answers.

You can try to Google "[name of app] version history" and it'll find you a lot of .apk websites where you can find and download older versions of apps with the release dates and update logs. However, since what you ask is not an officially supported feature, you won't have the info you want with all apps (especially if they are old)


text:
S6 EDGE Android USB drivers
I'm trying for two days to find a solution for this problem. None of my researches have been successful. I tried Intel Android drivers, uninstalled from SDK Manager and re-installed Google USB drivers, changed MTP to media option, used stay awake screen option, and tried to manually install drivers. The OEM drivers that the Google page links to for Lenovo are broken. It's also in Chinese. Even when using Translate, there is no download. I changed the fast charge cable with a standard one and the connect/disconnect cycle stopped suddenly. But Android Studio still doesn't recognize my phone.
It's unexplainable for me that how there is no fix for this issue. Since there are millions of apps on the Play Store. Google needs to fix a lot. Most information even on their pages are outdated and have spelling errors. I'm sick and tired. İ own a Lenovo G50-70 with windows 10 x64.
It shows two entries: One MTP S6 Edge and one Android unrecognized device

Capitalize your text please. It's hard to read.

You mention Lenovo drivers, why? Did you try Samsung's drivers?

Couldn't find any driver. Oh and i should mention that i have a Lenovo with W10 64 bit.


text:
Trying to factory reset galaxy, wierd thing happens
I got a used T-Mobile Galaxy S Blaze(SGH-T769) from Goodwill. Since it still has information on it, I am attempting to factory reset it. However, whenever I try to boot it into recovery mode, it boots into a strange screen where random bars of color show up. When I boot normally, everything works fine but it has a lockscreen so I can't do anything normally. Besides that, its rather difficult to do anything since the phone is missing its power button.
What could be the reasons for the strange behavior in recovery mode?
Are there any ways to factory reset it besides that?
Should I just give up on the phone?
UPDATE:
I bricked it... Phone won't turn on at all after following guide at https://forum.xda-developers.com/showthread.php?t=1591598, I forgot to uncheck re-partition... even more hopeless?

What button combination are u using and there should be a factory reset in the setting
Go to settings
Scroll to backup and restore click it
 scroll down and there should be a factory reset button
I'll probably have to have 30% or more battery  to do so
I have not had that model of phone but I've had a few Samsung's if  above is not possible u can use Odin mode  and flash new firmware to the device it's very easy to do if u have a PC to do it with
Look for ur model phone and Odin guide
Here is one I looked up for u
Delete the space before and after the word firmware
http:// firmwarefile .com/samsung-sgh-t959

Also make sure that the firmware is that right one for ur phone and ur service provider or u can brick your phone and it has  to be the current firmware or newer because the bootloader won't let u if it's older at least I read that any way I've never tried to downgrade firmware

Seems that something wasn't right,  bricked the phone. Any advice on what I can do?

Can u get to Odin mode

Nope, cannot even turn on, does not show charging animation either..


text:
Nexus 5 weird charging behaviour
I've had my Nexus 5 for about a year and a half now, but lately it's showing weird charging behaviour (check battery history graph):

I leave it charging every night and it's supposed to reach 100%, now it doesn't even go beyond 48%. What's going on and how can I fix it?

Sorry, could you explain what do you mean by "weird charging behaviour"? All I see is, when charging, the mobile network signal and WiFi were turned off. Did you mean the charging power seems to be weaker?

@AndrewT. Sorry, edited question to make it more clear.

Based on your chart, the phone takes around 2h to reach 48% from what looks like 15%. This is considered rather slow generally. Are you using the official Nexus 5 charger?

@Huey yes I'm using the cable and charger that came with the phone, plugged into a wall socket.

Examine the connection. It's possible the connection isn't as secure as it used to be and the phone occasionally becomes disconnected. Also, try borrowing a charger (the socket as well as the cable) from someone that's rated 2A and see if that changes things.

There are 3 (or more) possible causes: the voltage source, the USB power adapter, or the USB cable itself. It happened to me when using multi-plug extension with USB input, turned out it "stopped" charging after a while (icon shows charging, but battery wasn't charged). OTOH, using the same cable plugged to a laptop on the same power source, I got it charged to 100%. I haven't concluded if the multi-plug is problematic, but anyway I solved my issue. So try different combination to pinpoint the cause.

In the end I just decided to let the battery drop down to about 3%, restart the phone and then charge. Now it's fine again!


text:
How to root Huawei Y210?
It runs Android 2.3.6 and has the 2.3.38.6-perf kernel version. I've already tried using SuperOneClick but it doesn't work. :(
I'm rather contented with it ( oh wait, it has this puny internal storage, 120+ mb, but I can live with that ) and I'd rather just leave it alone except for the fact that Huawei saw it fit not to add proxy support. My university network uses proxies so the smartphone is rather useless at school. I tried proxy apps but they all require the phone to be rooted. I hope somebody here can guide me in rooting this phone. Thank you for your time :)

UPDATE:
I tried SRSRoot as @Izzy suggested, unfortunately, it doesn't work either :(
    ---= SRS One-Click-Root v4.3 =---

11:29:51 PM - Starting ADB Server..
11:29:57 PM - Manufacturer: HUAWEI
11:29:58 PM - Model: HUAWEI Y210-0100
11:29:58 PM - Android Version: 2.3.6
11:29:58 PM - Build ID: Y210-0100V100R001C294B837
11:29:58 PM - Board ID: Y210-0100
11:29:58 PM - Chipset Platform: msm7k
11:29:58 PM - Getting OffSets.. : 0x8003 0x8005 (False)
11:30:00 PM - Query Server for Best Method.. Found Rootkit: 2

    ----= Start Rooting Process.. Please Wait =----

11:30:00 PM [+] Testing exploit: root2a (Please wait it can take some minutes)....
11:30:21 PM [+] Executing root2a exploit Failed, Proceed next...
11:30:21 PM [+] Testing exploit: root4 (please wait..)
11:30:24 PM [+] Device Reboot #1 (Wait till it's started)
11:33:23 PM [+] Executing root4 exploit Failed.  (Root Error: 0)
11:33:23 PM [+] Testing exploit: root4b (please wait..)
11:33:27 PM [+] Device Reboot #1 (Wait till it's started)
11:36:45 PM [+] Device Reboot #2 (Wait till it's started)

11:39:57 PM Auto Root Failed on this device. :(

11:39:57 PM Rebooting Device and try again...

If it's just for web traffic, you might also want to take a look at SandroProxy, which claims to not require root. But as from the description, it's browser only. There's also Proxymator which doesn't mention root.

@Izzy Tried them both. Unfortunately, both don't work for me :(

OK, so back to the root(s): you might want to try SRSRoot, which explicitly mentions to support your device. Let us know if it worked -- best would be to answer your own questions then and describe how you succeeded :)

@Izzy Woot! Many thanks :D Downloading now... :) I wonder why it never turned up on my searches. Will post the results later :)

Good luck! Let me know if it worked, so I may convert/sum up the coments to compile an answer from them for the benefit of future "searchers" :) Of course, if you can give a short "How-to" of how you succeeded, feel free to answer your question yourself!

Tested it already, doesn't work either :( Posted the logs. If we ever figure out how to root this unit though, I think you deserve the rep so I'll leave the answering to you :) Thanks a lot for all the help so far!

Sorry, I'm out of ideas then. Maybe your BuildID is different from the ones listed as "tested"? :(

Just checked, same BuildID as the one listed on their page. The site does say that their success rate is only 55%. Wish they'd explain what that means though.

You may ask them -- I cannot tell :) Two other places I found and you might to check: A request on rootpros.com (though no bids yet, but you may watch it), and a strange file on adbrootkit.com (no idea whether that is safe, though)...

@Frank Thanks! Will test it ASAP. Is this for the Y210-0100 model?

@Frank Tried it. Now my WiFi won't turn on :(

What ROM are you using btw?
@Izzy I think I didn't do the rooting procedure properly. That's why it didn't work. Will try it again.

That was for y210D. You need to flash it stock again and root it with a y210 insecure boot image. You can get the stock ROM here.

Thanks! This one worked. Would you know where I can get the insecure boot image?

Hi @frank, could you provide a step by step guide? That way people can follow this without leaving the site.

you may try this at your own risk. Please do a nand back-up first.

What is the linky containing? Elaborate more please.

I know it's been years but I think people might be interested to know how to root this. I tried again last month using Framaroot. You just download the latest version, install the app and run it. Most painless root I've had so far.


text:
Show Settings->Apps on desktop as a distinct icon?
Sometimes I want to kill a buggy application (ANR) I've deployed to my LG G3. This seems to be done on Lollipop via Settings->General->Apps. I find it quite tedious to get there, every time I have to kill something that isn't responding. Sadly, the Settings app resets the tabs each time, so once I enter Settings, I must change tab to General, scroll down, hit Apps, scroll down to find the app, enter its screen, and then finally kill it - tedious if you value a fast workflow.
On my old Samsung Galaxy S (Gingerbread), I could get to "Apps" much more easily.
What I'd really like is to have a desktop icon that takes me straight to the "Apps" part of Settings.
Is that even possible? Better yet, are there any nice shortcuts for killing the focused application?

Try QuickShortcutMaker. Go through the Activities tab to find Settings app, and scroll until you see an entry related to Apps.

Simple enough without installing apps. Lollipop (at least my G3's build) lets you to go the activities carousel by pressing Square. In that view, you can close any app down using the X in the top right.


text:
Enable 4x MSAA using shell/ADB
I have various Android devices, rooted, with version ranging from Android 4.1 to Android 6.0. I want to enable 4x MSAA using shell/ADB.
The code below is used to enable Hardware Overlay through a shell script
service call SurfaceFlinger 1008 i32 1

But is there a way to enable 4x MSAA?

Run this command:
adb shell setprop debug.egl.force_msaa true

To disable, replace true with false.
Tested on OnePlus 6 running Android 10.

You are awesome!!! It works in all versions of android. At least from 4.1.2 to 10


text:
Why I get permission denied on ADB on Android phone?
I'm trying to cast my Android device to a PC with adbcontrol (tutorial here). The phone has a broken (black) screen and when I input the command java -jar adbcontrol.jar I get this error:
java.io.IOException:Cannot run program..error=13, Permission denied.

I have Java version: OpenJDK version "11.0.9.1" 2020-11-04
I tried getting permissions with chmod +rwx of the folder where adbcontrol.jar is located but the error persists.
Any ideas?

Is the phone rooted?

I'm on LInux Mint.I have two android phones,the one with broken screen has USB Debugging disabled,and on the other phone is enabled but the error is the same.

I do have adb from Android SDK

You should state what Android version your devices are using. If the Android devices are 5.0+ then I would recommend scrcpy

Yes,one of them is lollipop 5.1(Samsung Galaxy j3 2016) but has USB debugging disabled so scrcpy will not work,while the other one is an Xiaomi Redmi 9a and i managed to cast it with scrcpy

you can try to root or flash something with heimdall https://android.stackexchange.com/q/228280
https://android.stackexchange.com/q/230999

get some combination firmware according to your phone model that will help you to get adb enabled. don't use odin. don't flash pit file or param. make sure to only flash system kernel recovery via heimdall (otherwise your userdata get erased) https://gsmfirms.com/product/samsung-j320fn-combination-file-2

before actually running adbcontrol you must specify paths in config file
check adb connection is working fine (previously authorized) and find a writeable location on device, for example
/sdcard
/storage/emulated/0
/data/local/tmp

depending on encryption and lock screen the location might not be available in this boot state, so better double check adb push is working
adb push ~/file.txt /sdcard

now open the config.properties file and define paths
adbCommand = adb
screenshotDelay = 100
localImageFilePath = adbcontrol_screenshot.png
phoneImageFilePath = /sdcard/adbcontrol_screenshot.png

if your adb binary is not in env you must specify path in first line. for windows paths backslash should escaped like
adbCommand = C:\\Android\\platform_tools\\adb.exe

when configured you can finally run adbcontrol from command line. the terminal will floated by debugging log (you can minimize). another window will open showing your phone screen. your keyboard and mouse input is recognized in android now
java -jar adbcontrol.jar

while running this on SGJ3 2016 i get: 'adb push ~/file.txt /sdcard' i get this:adb: error: failed to get feature set: no devices/emulators found.This is how my config look like:'adbCommand = /media/enq/5F53DF292609C82D/Kit/LinuxStuff/adbcontrol/adbcontrol.jar
screenshotDelay = 100
localImageFilePath = /home/enq/adbcontrol_screenshot.png
phoneImageFilePath = /mnt/sdcard/adbcontrol_screenshot.png'

I've managed to cast Xiaomi with adbcontrol(after folowing your instructions and typing "which adb"(it was in usr/bin/adb),but how to control the phone from pc?

Ok,thank you so much

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


text:
Why is the FrameBuffer missing on some Android devices?
I'm curious about the display device on Android. I know that on Linux, device devices are represented as /dev/fbX, which "fb" stands for FrameBuffer. I also heard that Android uses FrameBuffer as well

in Android it’s /dev/graphics/fbX, usually /dev/graphics/fb0
Kaustav - Introduction to the Android framebuffer

and

Android relies on the standard frame buffer device (/dev/fb0 or /dev/graphics/fb0) and driver as described in the linux/fb.h kernel header file.
Display Drivers | Android Open Source

However, on my device, which is OnePlus 7 Pro running Lineage OS, I could not find anything related to that. I even cannot find any device nodes called *fb* under /dev. However, I heard that someone has some devices with fb, and their other devices don't.
I'm just curious, why? Where is the display device on Android?

Android's hardware implementation is totally vendor specific. There's no standardization. Many OEMs don't expose standard Linux interfaces in /dev, /sys, /proc, /config etc. Many syscalls don't work either. Instead OEM's closed-source HALs interact with hardware through different IPC's particularly Binders.

@IrfanLatif Thanks! This helped a lot.

I had a lot of similar questions until I asked them here. The essence of the infos you get over this post is these:

No android app handles directly /dev/fb0, does it exist or not. Instead, they are communicating with the system process named "Surface Flinger", which is the analogy of the X server on the Linuxes.
This communication happens with Binder, which is an android-specific localhost-only RPC protocol similar to the unix pipes.
Not even the Surface Flinger can see the /dev/fb0 directly. Instead, it talks to the HAL (hardware abstraction layer). Until Android 8, the HAL was a set of shared libraries in /lib/hw. Since Android8, also the HAL is a set of system services talking over binder with the Surface Flinger (although legacy shared lib HALs are still possible).
Direct display access happens in the HAL library (service) responsible for that.

HAL libs (services) are developed by the phone vendor. Ha can develop a /dev/fb0 driver and use a hal capable to handle it, but he can also develop any custom method. In the second case, you won't have a /dev/fb0 in the kernel.

Furthermore, and it is already a linux-specific thing: /dev does not need to have all the device files existing on your system. Commonly it is so, but it is not a requirement. (On most Linux distros, the software named udev automatizes this task, but Android does not use it.) /dev has device files, on a Linux you can see that they start by a c (character device file) or b (block device file) in the ls -l output, and also on Android:
crw-rw---- 1 root video 29, 0   Dec 10 09:08 /dev/fb0
brw-rw---- 1 root disk   8, 0   Dec 11 07:21 /dev/sda
-rwxr-xr-x 1 root root  1302248 Apr 18  2019 /bin/bash

/dev/fb0 is a character device file, /dev/sda is a block device file, while /bin/bash is an ordinary file and not a device.
You can create device files with the mknod tool, but note: it requires root.
It is quite possible that /dev/fb0 is created elsewhere on your system, maybe on a location which is hidden behind same userspace-only mounts or so. It is also possible that fb0 is not created at all, despite that its driver is compiled into the kernel.
We can check, which device files are compiled into the kernel, in the procfs file /proc/devices. It should contain the line
Character devices:
...
29 fb
...

This procfs file is practically always readable also as a user. If it does not exist, then your HAL responsible for the display communicates over some other way with the kernel.
If it exists, then you can create the framebuffer device by a command
mknod /dev/fb0 c 29 0

as root. (Actually you can always create it as root, but if the line above does not exist in /proc/devices, then it won't be usable.)
P.s. in LineageOS, my experiences are far the best by compiling an userdebug image. It did not slow my system at all, but all the rooting, adb things worked in it very correctly.

Hmm, I tried to mknod and it successfully created the device node, but when I tried to access it using cat or whatever tools, it shows like No such device.

Is the char dev 29 in /proc/devices?

Yes. cat /proc/devices | grep fb outputs 29 fb

Then the device exists, so the open/read/write/close calls are handled by the driver. This driver returns -ENODEV, this can have many reasons and I think none of them is fair. You should get somewhere the kernel configuration of the vendor and check, which driver is it.

Some options: 1. the driver supports only mmap() but no read()/write() 2. there is no fb0, but fb1, fb2, or fb163 3. the driver gives intentionally misleading error, and only the relevant HAL knows, how to handle it correctly. 4. while there is an fb driver compiled into the kernel, it is actually an unused remnant, and the real display handling happens on other ways.

@YuutaW Find somehow the HAL and debug it. It will be probably hard. | Btw, afaik X11 on Linux does not use fb0 generally, it uses only the KMS (kernel mode setting) API.

Yes. It uses the KMS API. Anyways, thanks for helping.


text:
How to unlock my device after locking with Google's “Find My Device”?
I now have my phone (Xiaomi Redmi 4), but it's locked from Google's "Find My Device". Everyone keeps talking about a password option in Find My Device, but nothing like that exists! How do I unlock my phone without erasing the data? Here's all I see on Google's Find My Device:

I managed to solve this, so for future readers:

I went to emergency and pressed back(this brought up the phone lock screen with the pattern option). Rebooting seems to also bring up the lock screen temporarily.
I managed to enter the lock-screen pattern correctly from muscle memory(even though it didn't seem to work all the times I had tried before). I believe if you enter it incorrectly enough times, it'll let you enter your google account info to reset the password, but I never got to that point.
After the phone unlocked I changed my default password and all seems good now.

I'm still not sure why google wouldn't let me set a temporary password. God help anyone that doesn't remember their original one.


text:
Toggle on/off a virtual keyboard to persist and stay active onscreen (and not disappear offscreen)
Is there a way to toggle on/off a virtual keyboard to stay onscreen and not disappear offscreen when the cursor is not in an active editable text field?
I'm using a Samsung device if it's relevant.


text:
Does one grey tick in WhatsApp group chats mean that I am blocked?
I'm still trying to figure out WhatsApp. I want to know if I am blocked. So I am in a group with 50 people (nearly all people are not in my saved contacts, only 2 are). I sent a message, and after more than 12 hours, my message is still shown with one grey tick.
The profile picture of my friends that are saved on my mobile is still showing.
Am I blocked?

One grey tick in WhatsApp group chats means that someone has not received the messages (e.g. no internet, the device is powered off, etc.)
Users can check the real status by long-tapping their own messages and selecting "Info" (tap the "3-vertical dot" overflow menu if it's not shown). It will show:

Participants who have read the messages
Participants who have received the messages, and
A count of participants who have not received the messages as "x remaining"

On the other hand, blocking participants in WhatsApp group chats does not affect anything.
I just tested this with a group consisting of my 2 WhatsApp accounts, with the recipient blocking the sender:

When sending private messages

Sender: one grey tick (undelivered)
Recipient: not receiving the messages

When sending group chat messages

Sender: double grey (delivered) / blue (read) ticks
Recipient: still receiving the messages and sending read receipts


text:
Why does my phone use Google Public DNS?
I was just curious to know what DNS server my phone used. So I launched a terminal emulator and I entered:
$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

As you can see, my phone uses 8.8.8.8 and 8.8.4.4 as DNS servers (Google Public DNS servers).
At home (Wifi), my router is configured to give OpenDNS' servers through DHCP. But, on my phone, cat /etc/resolv.conf returns the same output. Same thing with 3G. And, even if I disable both Wifi and 3G, and then reboot the phone, it still uses Google's Public DNS servers.
I don't remember having changed resolv.conf or installed any application to change it.
My phone is an HTC Desire with CyanogenMod 7.2.0.1 (Android 2.3.7).
Can someone explain me why my phone uses Google Public DNS? Is it a common configuration for any Android devices, or CyanogenMod ROM?

According to Steve Kondik, this is essentially old code that is leftover from older versions of CyanogenMod:

This was only here for apps that were statically linked against uclibc in old CM versions. It can likely just be removed.

However, he also goes on to note:

Also, this file is NOT written when connecting to a network as /system is readonly. The actual DNS servers are read from system properties.
I also just verified that the DHCP supplied servers are actually being used, so this issue is invalid unless someone proves otherwise.

So the values in /etc/resolv.conf actually don't reflect your DNS settings. What you can do instead is use getprop to find your DNS values. You can pare it down rather nicely if you grep the output like so:
getprop | grep dns

Also worth noting: the /etc/resolv.conf file appears to have been removed completely in later versions of CyanogenMod. I don't have one on CM10 at all, but getprop does correctly show my DNS settings.

Great answser, thanks. However, getprop | grep dns doesn't return anything. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}' (looking for IPv4 address) doesn't return relevant result. Returned properties are ro.baseband, ro.build.description, ro.modversion and gsm.version.baseband. Any idea?

@Morgan: I suppose it might be some kind of difference between CM7 (you're running) and CM10 (what I tested on). What happens if you don't grep the output at all? Do you see anything relevant? (might want to pipe it into more or similar since it could be lengthy)

Now, I have relevant results: [dhcp.eth0.dns1]: [], [dhcp.eth0.dns2]: [], [dhcp.eth0.dns3]: [], [dhcp.eth0.dns4]: [], [net.dns1]: [192.168.10.110], [net.dns2]: [], [net.rmnet0.dns1]: [192.168.10.110], [net.rmnet0.dns2]: [0.0.0.0] , [net.dns1.3837]: []. Maybe my Internet connection was still disabled when I ran the command. Do you know which one is used? Do you recommend an application or a method to change it?

@Morgan: I don't have a Gingerbread device onhand to test, but there should be a way to do it in the standard wireless settings if you configure a static IP (I don't think you can do it this way if you use DHCP, unfortunately). On JB I long-press the network I'm connected to and select "Modify" to get to it. It may be under the "Advanced setttings" though (menu button when on the list of wifi networks). You can also use setprop but it won't persist across reboots/disconnects. For example. setprop net.rmnet0.dns1 <your DNS IP> should change the value of the net.rmnet0.dns1 property.

And I think the more specific one would be used by the adapter (net.rmnet0.dns1 in your case), though it may be inheriting that value from the more generic net.dns1 property.

How can I make it so I dont have to specify a DNS in the static IP settings? Google forces me to use theirs but I need to use none.

@Rhyuk: I don't know. setprop might be a temporary solution if you gave it blank values, but you'd have to run it on every boot (and I'm not sure if that would actually work).

I tried that but setprop requires a value, blank wont work :(


text:
Pop ups in Chrome trying to have me install an application, how to find the root cause?
Recently I have seen a lot of these:
This is not the typical "fake pop up" trying to have you tap on it and redirect you to the Play Store. This pop up actually replaces the tab I'm browsing, and is trying to have me go to the play Store to install one specific app.
Everything in this phone comes from the official Play Store, and the phone is not rooted.
For SEO sake, here are the domains used in this scam:
eu.sustainable-49.xyz
samsung.giveaway-deal-com.xyz
us.east-85.xyz
Here are a few screenshots:
The text basically says that my phone is infected and I NEED to install those applications, or that I have won something and I need to something (I didn't follow in that case..)

In one case, this leads to this application, which contains this comment (from yesterday):

Hi, thanks for your feedback. We’ve found that some ads/redirected pages may be malicious promotion from unknown channels, slandering us on purpose. Would you please be so kind that next time you come across the pop-up ads, please send us the link/spam/redirect pages or a screenshots to our Email: cleaner@duapps.com. Thanks a million.
I'm not sure whether this is a local attack on my smartphone, ie an app which would somehow mess with Chrome, inject some code in the pages, or an attack on those websites, or a compromised ad network. It's a bit hard to tell exactly when this is happening.
Could you suggest a method to capture this behavior next time it happens so that I can understand why this is happening ?
Here is one example:
1/ click on Google search result
2/ now I am on some domain on forum-actif.net
3/ redirect to android.earix.com
4/ some data containing this url: go.onclasrv.com/afu.php?...
5/ redirect to onclickads.net
6/ us.east-85.xyz -> virus notifications leading to some Play Store App

Another example
1/ m.wikipedia.org
2/ orange.com-getprize.net

1/ bfmtv.com (French news TV website)
2/ redirect to eu.sustainable-49.xyz/fr002rd/redirect.html?model=Nexus%205&brand=Google&browser=Chrome

This leads me to think that the attack could be from a malicious app on my smartphone, because there is no way this is happening because of a compromised ad network on wikipedia.org.

Seeing them all originating from .xyz domains I'd say you visit too many spammy sites (no offense meant). Administrating a mail server for multiple domains, I've noted a lot of spam for/from those domains, too. Those popups are most likely Javascript from the sites you visit. So to get rid of them, don't go to those sites – or disable Javascript for them, or use an Ad Blocker (or a browser that has such integrated).

@Izzy Unfortunately, this weird behavior occurs on my smartphone on news.google.com and some other reputable news sites.. I just don't know how to really understand what's going on. See my edit.

That makes one of the cases listed in the answer of pzmarzly a likely cause then.

If there is something malicious between your device and the site you are trying to reach, try surfing by 3/4G vs Wifi. If it doesn't appear in the former but only in the latter and only on your home network - you have problem at home.

You can also share your network from the device and have a computer connect. There you can surf to the same site with some dev tools on and look for anomalies.

Cause of your problem is probably:

DNS injection in your network (check other devices, try setting DNS to 8.8.8.8 / 8.8.4.4)
Man in the middle attack in your network (check other devices, try enabling Data saving in Chrome settings)
weird unknown Chrome data corruption - try going to Settings->Applications->Chrome->Clear data & Clear cache
Google Ads script injection - try disabling ad personalization as described in provided link
virus - use Malwarebytes Antimalware for Android

You can try:

using other browser
entering sites with HTTPS - try for example typing https://new.google.com/

EDIT: How to capture redirections using Chrome Developer Tools?

download Google USB Drivers & ADB on your PC
plug your phone in
run adb devices, it should say your device is unauthorized
on your phone, you will get a window, select "Always trust this computer" and Yes
open Chrome on both your PC and phone
on PC, open Developer Tools on any page (f.e. about:blank)
select (hamburger)->More tools->Inspect devices...
make sure USB is checked
your device should appear on the left
run https://www.google.com on your phone (or any other working site)
on PC click on your device and select Inspect on your working tab
go to Network tab and select Preserve log checkbox
select Doc tab
navigate on your phone and see every HTML document your browser loads (it sometimes may go to Other tab)

Good listing! Add one item: manipulation of the data flow by the network operator. Some of those have been known to inject ad urls in the past, see e.g. Website-Targeted False Content Injection by Network Operators (find more).

Could you suggest a way to find why the URL of the current tab is suddenly changing without my intervention ? I can find the new location in the history, but I don't know how to debug that on in Android Chrome.

@alecail I've added it in my answer


text:
Why is the Google Play Store showing wrong app sizes?
Since recently, the Google Play Store is showing different app sizes when downloading updates. The displayed size of the update is X but the downloading size (of the se update) is slightly greater than X.
For example (see attached screenshots):

Messenger (FB): 44 MB -- 25% of 46 MB
Microsoft Teams: 37 MB -- 29% of 39.01 MB
Spotify: 34 MB -- 32% of 36.10 MB
Uber: 49 MB -- 22% of 51.00 MB
etc., etc., for every other update

Is this a recent bug in the Google Play updater?
Or might it be an indication that I have a virus or spyware installed on my phone?

..

Some more examples, comparing the size in MiB to the size in MB, as @Robert suggested in his answer:

My main question is: Does anyone else has this issue on their Android phone?

The Play Store seems to use MiB (1KiB = 1024 bytes) but displays like Windows "MB" as unit. The download size seems to be measured in MB (1KB = 1000 bytes).
44 MiB = 45,056 KiB = 46,137,344 bytes = 46,137 KB = 46 MB

Thanks, Robert! It would be comforting if that was the cause. But for some reason the numbers do not match. For some apps it's bigger, for other apps it's smaller. I've added a new table in the question.

@SorinPostelnicu If you add the assumption that the number in the first column is not exact but rounded then it would match. So don't start with the first column, use the last column instead and multiply it's value by 1,000,000 and then divide it by 1,048,576 and you should get the value of the left column before it had been rounded.

Thanks, @Robert ! Indeed, that matches perfectly!


text:
What specifically does the Android bug report have?
I want to know what specifically does the bug report contain, because I have accidentally submitted a bug report to another app other than Gmail or Drive and I am afraid that my private data will be exposed such as my location data, SMS, call log, banking, etc.
What specifically does the Android bug report have?

First of all the bug report can only contain data from app that have crashed. Which app was it that crashed and thus caused the bug report to be generated?

According to Capture and read bug reports, the bug report conatins:

device logs, stack traces, and other diagnostic information to help you find and fix bugs in your app.

The bug report consists of multiple files that are compressed into a zip file and sent to the app developer(s). From the same above source:

By default the ZIP file is called bugreport-BUILD_ID-DATE.zip and it may contain multiple files, but the most important file is bugreport-BUILD_ID-DATE.txt. This is the bug report and it contains diagnostic output for system services (dumpsys), error logs (dumpstate), and system message logs (logcat). The system messages include stack traces when the device throws an error, and messages written from all apps with the Log class.
The ZIP file contains a version.txt metadata file that contains the Android release letter, and when systrace is enabled, the ZIP file also contains a systrace.txt file. The Systrace tool helps analyze the performance of your application by capturing and displaying execution times of your application processes and other Android system processes.
The dumpstate tool copies files from the device’s filesystem into the ZIP file under the FS folder so you can reference them. For example, a /dirA/dirB/fileC file in the device would generate an FS/dirA/dirB/fileC entry in the ZIP file.

It does contains message logs and other diagnostic outputs. It does not contain your messages (SMS, WhatsApp messages, etc), nor your call logs.
Also read Reading Bug Reports.

So it also doesn't contain my location data right?


text:
How to Force Dark Mode if "Force Dark Mode" from developer options doesn't work?
Even after activating the dark mode option from developer options in the setting,

some apps still have a white screen.

Although few apps have been successfully forced in the dark mode.

Is there a way to force the app to have black background somehow?

Note that aside from @MorrisonChang 's answer, you can still give these a try:

Many devices have a native accessibility setting called "high contrast" mode; this will usually achieve a similar effect to Dark Mode.  Note that there is generally a similar feature called "invert colors" which, while not as aesthetically pleasing, can at the very least help with the glare when you have an app that doesn't work with Dark Mode.
Note that Chrome itself (or potentially your native browser, YMMV based on make and model) has at least two flags that can be toggled for Dark Mode (actually, these may also vary based on device and architecture), they might help with apps that call the webview class through intent:
chrome://flags#enable-force-dark
chrome://flags#inherit-native-theme-from-parent-widget

The High contrast does work! Thank you so much!

TLDR: Ask the developer of the app to support Dark Mode.
Android 10 added support for Dark Mode/Dark Theme in apps. Prior to Android 10, light/dark mode was supported via theme/style library. As you've discovered there is a 'Force Dark Mode' setting in Developer Options. From the documentation:

Force Dark analyzes each view of your light-themed app, and applies a dark theme automatically before it is drawn to the screen. Some developers use a mix of Force Dark and native implementation to cut down on the amount of time needed to implement Dark theme.
Apps must opt-in to Force Dark by setting android:forceDarkAllowed="true" in the activity's theme.

So it is on the developer of an app to support Dark Mode.
Also realize that the developer may be using a third-party framework similar to a game engine which doesn't check any theme state.

Another option is to try the DarQ application for Android 10 and higher.

DarQ provides a per-app selectable force dark option for Android 10
and above.
It uses a root or Shizuku (ADB) service to apply the theme
seamlessly and quickly, without needing an accessibility service. DarQ
also provides an option to apply the system dark theme (as well as
selectable force dark).

Refer to detailed instructions for setting up shizuku
This works perfectly for apps that have an option to force dark mode see sample screenshots below:

Credits: Quinny899 XDA images