text:
Info on and removal of COVID contact tracing in Google Play Services
Has anybody had a closer look into this module what it really does?
I want to know if the functionality will work if bluetooth is turned off.
I guess a surefire method to test this would be to remove the SIM, disable all antennas and measure EM radiation (though I'm not sure if there's still cell tower communication with the SIM removed).
Even if the answer above is no: I don't want this software on my Phone.

Is it possible to modify Google Play Services (GPS), remove contact tracing, and
use GPS as usual after? This seems the best option but an update might then again overwrite it.
Root and remove GPS. I have a OnePlus 7. Will everything keep working well except the Google apps of course?
LineageOS maybe but I like OxygenOS a lot..
Other options?

Much would be cleared up if we can see the code. Is this possible?

For more information: Exposure Notifications: Using technology to help public health authorities fight COVID‑19 (comment edited to remove incorrect info about LineageOS with Google Play Service)

sorry but you are using a GOOGLE product and you have accepted policies if you are paranoid you should not use any smartphone at all. CCC has little information

@alecxs i did not accept contact tracing as far as I know.

you have accepted policies on initial setup. google can do everything. its like facebook own all rights on everything you sent with whatsapp. btw you know you can't use google maps without google play services? google was always tracing phones

Even with the latest GApps flashed the Covid-tracer section don't appear in the Google settings on my rooted device. Other stock devices have the Covid-section in Google settings. Therefore e.g. the Swiss Covid app that uses the new API does not work on my rooted device. May be the new tracking API is limited to stock devices (or those that pass the SafetyNet tests?).

@Robert i think SafetyNet because of low security of RKI app. however, my android 7.0 device is rooted with SuperSU but i got it anyway

watch with speed 1.5 x or you will fall into sleep ;) https://youtu.be/jRE0qb4bG1o

@alecxs The linked app has nothing to to with COVID tracking using the new Google/Apple COVID tracking API which is the topic here. That app allows RKI to access to the user's fitness data.

i did not link it, just my toughts RKI started puplic debate about privacy security of COVID apps in common

As @alecxs mentioned in his answer, contacts tracing through new Covid API is not the only thing you should be worried about. If you have been using a phone with GMS for a few months, Google definitely knows more about you than you do. The only working solution is to not use any of the Google products at all. But it's not only Google, do not use Facebook and many other apps which track your IDs and analyze your data for personal profiling and targeted advertisement etc. Selling your data to third parties is also not beyond question, and not even uncommon, I'd say.

The Covid contact tracing in Google Play Services is an API. And according to he documentation this API is working opt-in. By default your device will not track anything.
Also note that "contact" in this context means "a cryptographically random token generated by a different device that was within Bluetooth range at a certain time". No contact data like name is transmitted.
For "activating" this interface you need at least one of the Google certified Covid 19 tracing apps (there can be only one app per country and only public health agency is allowed to publish one).
And in such an app Google enforces that the user has a switch for enabling and disabling the tracking system.
However if you still not trust Play Services with integrated Covid tracking API you should switch to a Custom ROM + OpenGApps. Every device I have tested that uses this combination does not provide the COVID contact tracing API, even if the very latest version of Google Play Services is installed. Hence it seems like the tracing API is generally disabled for Custom ROMS using OpenGApps.
It is still unclear why on some devices with CustomROM and OpenGApps the COVID tracking API is available and on other devices this option does not show up even with latest OpenGApps installed.
You can verify on your own if your PlayService support Covid 19 tracking:
Open Settings -> Google If the first entry in the services list shows you something about "Notifications on encountered Covid 19 infections" than the API is ready to use. If not then every Covid tracking app that wants to use this API will not work (the app will just show the error code 39501).

Do you know if a useful test would be to install a COVID app and see if it reports errors?

An API doesn't tell us what it actually does. It only tells us which functionality is public. In other words, one could toggle off tracking and think: I'm all good now. But who's to say code is not running autonomically in the background, activating your bluetooth without showing it and report back home as soon as there's an internet connection, or even via a green card cell tower channel? I know this is out there. Then again, many things happening today are too.

I just checked my Galaxy S5 and my SM-T713 and both have LOS 16 dated 4/19 with OpenGApps and I have the "COVID-19 Exposure Notifications" listed at the top of Settings -> Google services.

@Paul Do you know if Google Play Services updated before you checked the settings?

These devices have been installed for at least 6 months. My observation is that Google Play Services usually just updates itself whenever it wants to (including over cell service).

@progonkpa Google would be really stupid to collect data even if the user has not activated the tracking: the GoogleServices code is more or less public and the BlueToth beacons can easily be recognized. Therefore earlier or later someone would notice this. And in Europe we have the GDPR - violation can be sued with up to 4% of the firm’s worldwide annual revenue from the preceding financial year. For Google/Alphabet this would be a few billion dollar. Nobody in a commercial company would be so dumb to risk this.

@Robert In normal circumstances I'd agree with you. Now, they'll get green light from governments because of 'the common good'. They attacked our Constitutional rights globally, tracking is the next lock step. Tracking is voluntary atm, though the installation was not. I deem it extremely likely that tracking won't be voluntary soon. That is if all people keep going along with this bs narrative.

@progonkpa Tracking is mandatory if your government has decided so (not if Google does). There are already countries that have it mandatory (some countries in near east) and they decided so before the API was available.

@Robert Yes. So this post boils down to not giving the government the option to track us, via Google, using our own devices.

@progonkpa Tracking on Android was always possible even without the new tracking API. You can simply use Bluetooth to send whatever you like. Hence technically it does not make much difference. France for example has released their apps that do not (and will never) use the Google API because they want a centralized system.

Google Play Services v20.15.15 seems to be the last version before covid tracing was added. Stock phone FW versions released before April 2020 should all have a lower version of Google Play Services - don't update past 20.15.15

Contact tracing is not the only way a user can be tracked and mass-scale user tracking has been in motion for a long time. Some examples:

On Replicant, it is argued that Samsung Galaxy devices running proprietary Android versions come with a back-door that provides remote access to the data stored on the device..
Keith Collins of Quartz says that Google collects Android users’ locations even when location services are disabled.
Lindsworth Horatio Deer on his blog posted that NSA can hack the Baseband Processor and control your smartphone even when the phone is switched off.

One mitigating measure against Google Play Services' tracking is to root your device and use app like cn.wq.disableservice. With this you can have control over GMS and block single actions, like prevent GMS from updating itself. It's painful to understand all the things but it should be technically possible to block data transfers.

This however would not be sufficient. You are already being profile/tracked when you are using:

proprietary software or services (such as Android OS as shipped by an OEM);
various services such as cloud syncing of personal/private data;
real-time text to speech translation -- your audio could be getting saved onto the cloud. You can see some of that data collected by Google here;
maps with real-time live traffic data.

Some services/software, such as Google Play Store, even force this tracking by requiring the user to sign in to use the product. Furthermore, a staggering number of Android apps use some sort of analytics such as Firebase.

credits: @IrfanLatif + Firelord

Apps can enable/disable their components at any time. Unfortunately disabling app components doesn't work with many of Google apps.

https://kojenov.com/2020-09-15-hisilicon-encoder-vulnerabilities

Google Play Services introduced user-tracking capabilities in my Android device without my knowledge or consent. I consider this software a user-tracking software (read Google's Software is Malware from Free Software Foundation) which also offers services to third-party app developers to spy on their users. This sordid state of affairs led me to the following solution which disables Google Play Services software, other preinstalled softwares from Google, and their user-spying capabilities.
Instructions in brief that you need to execute:

Transfer all your phones contacts into the phone's SIM card.
Download the APK for alternative browser to Chrome to external sdcard.
Move all the files you want to keep from phone's internal card to the external card.
Factory reset your phone.
Wait for Factory reset.
Skip past Google credentials prompt.
Switch off app permissions.
Delete Google apps like YouTube and Chrome.
Disable and close Google Play Services, and mute error messages about its absence.
Install browser APK from sdcard.
Browse to an independent app store and download replacement apps.

Details

Transfer all your phone's contacts into the phone's SIM card. Your phone is about to be wiped and your connection with Google is about to terminate. (There are working alternatives to everything Google offers, so you'll hardly notice it gone once you've did all this.)

Go to the website of Mozilla or Opera or whatever browser you like. Download the APK of the latest browser from their website. You're not going to install this APK yet. You are going to save this to your SDCARD and install it later. You will need this file and it's the only file you will need.
If you are unable to find the APK on the website you can consider a third-party app store such as APKPURE which is like Google Play Store, except that it's not from Google. See if you can find a decent browser APK as an alternative to Chrome (in my opinion, Google Chrome also tracks your location and reports your movements and contacts to unknown parties).

Go through your whole phone and copy across any files on the phone's internal card to the external sdcard. This can be a time consuming process depending upon how much data is stored in your phone. All the data from the phone's internal memory is about to be wiped in later instructions, so make sure you copy everything important beforehand.

Reset your phone. (Reset only the Internal memory if an option is available to you.) To do this you can go to Settings → System → Reset options, or you can just switch off the phone and switch it back on again whilst holding the Volume Up button.

Wait for Factory reset to complete and for your phone to boot to the device/phone setup screen.

Now that you've reached the First screen, please type in your Google credentials.

Swipe down from the Status bar and click the cog icon to open Settings. Go to Apps and Notifcations, then from there App permissions. Go through all of them and switch all of them to off state right away.

Go back to Apps and Notifications setting. If you see any app from Google just disable it, then force stop the app which is already running in the back ground. Get rid of everything preinstalled by Google before you even start using your new fresh phone, especially the Google Play Services which is essential for disabling removing COVID-19 notification API.
Do note that disabling Google Play Services (upon which insanely high number of third-party apps in Play Store depend upon) means you are going to get some error messages from third-party apps to show up. You can mute such messages because even though they mention that they need Google Play Services to function they actually don't in reality. The benefit to the user is that user-tracking services offered by Google Play Services to third-party apps installed in your phone would no longer be available to such installed apps anymore.
Speaking redundantly here, there would a few error messages that will appear immediately and may pop up occasionally over the course of the month until you have used all the apps you usually do in the course of a month, and until you have caught and dealt with all the error messages as they come up. This will include your phone's dialer app, text messages app, camera app, and basic functional apps. They will all work without Google Play Services

With caveat mentioned in step 8. in mind, go on, disable Google Play Services and force stop it, just like you did that with Chrome, YouTube, Photos, Drive, Gmail, etc. (You will still be able to access Drive and Gmail via your non-Chrome browser whose APK you downloaded earlier.)
Now deal with the error messages. If you click on the error message itself, it raises up the Google Play Services app, expecting you to click Enable. That's not what you want to do. Each error message starts off with the name of the app that generated the error message. Go to Settings → Apps*not. → the actual app that generated the error messages, then click on Notifications. In there find a setting mentioning "Google Play Services notifications" or something to that effect. Switch off these notifications. If this notification toggle isn't there then there's the option of switching off the apps notifications generally.
There will be three or four of these errors to work through right off the bat. Other error messages might pop up later in the day as you use an app for the first time on your freshly factory reset device. Just disable the notification on the app itself. It's unlikely you'll see any error messages after the first hour. Maybe in the first 24 hours you'll have dealt with all of them. Maybe one will pop up in a week, maybe a week. You will find your phone and its apps (non Google) still functions perfectly without Google Play Services, and that the error messages are more like a mutable warning rather than some fatal crash.

Go to Files. Go to your external sdcard and find the APK file you downloaded earlier. Click on it and you'll be asked about installing from other sources. Files is not Google Play Store so, yes, you want to install from other sources - your sdcard will be the primary means of installing software. Click through everything that needs to be clicked to get the browser installed. Now that that's done, you cant start looking for an alternative to Google Play Store.

I use APKPure app store myself but there are a variety of websites which cater toward getting the APK of an app rather than installing from the fancy mechanisms as offered by the likes of Samsung or a Huawei app store. I think some of these stores-by-manufacturer might provide you with an APK store independent of the fact you don't have one of their phones. If you can download the APK from it, then it will work in Android. The one thing you need to suss out is whether your phone is 32 or 64 bit and whether is ARM or x86. If it's x86, sod this whole post and just install a touch screen version of Linux. It's easy and your options are as open as a desktop PC. With ARM there are a few versions of Linux you can install but it's beyond the scope of this text to install it. Have a search for "UserLAnd" (sic) if you want a better version of Linux on your phone than Android but it can get quite technical at the moment.
Most phones are ARM32, but try downloading APKX files. If they work on your phone, then that means you have an ARM64 chip in your phone.
You probably want APKs to use email. Search email apps in your choice of app store. In the app, you can fill out your Gmail address on the create account screen and most email clients will fill out the server details automatically. There's a Google help page about setting up your email client manually with correct SMTP, POP3, IMAP, etc., kind of stuff if the email app you chose doesn't do it for you. I used AqualMail which doesn't rely on Google Play to function. As an alternative to an app, you can use Gmail, Hotmail, Outlook, Yahoo, etc., directly through your browser.

That's the end of the tutorial.

Hello Stephen. I took the liberty to edit your answer to remove those parts of the text which didn't address the question but went into the territory of opinions and legality of acts of corporations. We are a Q&A platform focused on technical subject matters. Opinions and legal issues are outside the scope of our website (see [help/on-topic]). I encourage you to use our dedicated communities [law.se] and [opensource.se] if you have questions around legality of acts of corporations or suspect violation of GNU GPL 2.0...continued...

...You can also try open-ended discussion platforms such as Reddit and XDA Forums, or our [chat] to express yourself better if opinions are in need to be given expression to. You can link to such discussion in this post of yours so that interested readers can read or participate in such discussion. This keeps our site stayed on-course but also allows our community members the liberty to express themselves and read opinions of others.

Would you remove your edit please. Your opinion that I should provide no opinion is frankly insulting. Before "we" are anything, "we" are all contributors but your standing on my toes pal. I dont take the huge amount of effort you've went to in altering my words too kindly, especially with all thats happenned in terms of internet freedoms that this topic is central to. That our views on why we would remove the malware is essential for others being fed google garbage to understand as part of the process of restoring online privacy in spite of google. Uninterested in your opinion deleting mine.

@StephenDuffy Stack Exchange is an objective/factual Q&A site. We discourage personal opinions as much as we can. You may hate Google and Apple as much as you can, that is your rights, but this site is not the place to express anyone's opinion. The original wording was all over the place that some were not suitable for SE and even insulting to some people, and that may breach the Code of Conducts which your answer might get flagged as rude and deleted completely instead. Frankly, the edit saved your answer, or we had to remove it otherwise.


text:
How to block websites from chrome using Google family link or similar
While using Google family link I am unable to block some websites. Maybe it's a bug, but for some reason for website like Instagram is blocked from being accessed but reddit is not. Does anyone have any idea why that might be

may be you should consider using firefox and get extensions to block specific sites.

I had the same problem with android. Clearing app cache and app data didn't seem to help. It started working after I went to Settings -> Accounts -> click on the account. Untick Sync Chrome. Go to chrome have a look in the settings to see if anything has changed. Go back to the account and retick Sync Chrome,  I also have an option in the menu for Sync Now which I did.
Not sure which action solved this problem, but the chrome browser is now blocking and asking for permissions as expected.
As an alternative to family link maybe you could use some monitoring software or parental control? Usually, those tools can block certain websites and apps.

source: Stack Exchange

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

sort: votes


text:
Automatic downloads
I've noticed in several occasions that on mobile browsers (I suppose it happens also on desktop ones) downloads can be forced without user consent. I've studied the matter and I've learnt that this is made possible by using server-side languages as, for example, php. The downloaded files, in these cases were malware.
I wonder if it is possible to bypass this unwanted behaviour of mobile browsers, in particular of Chrome, for which I have found the downloads are named as hidden and incomplete files, '.com.chrome.google.xyz'.
Moreover, do these standard names used by Chrome make the malware ineffective and not activable nor executable?
EDIT
@Robert, I don't understand why the question was closed as OT; it seems instead very connected to Android: all I've mentioned happens on Android 7, and I think it is a very problematic and interesting matter.
I have AVs that warn me of threats all the times, and every file is trashed soon after the warning. What you've said seems imply that AVs are completely useless, because the file is processed and executed by exploiting vulnerabilities in the mentioned Android component. I knew that it was problematic on previous Android versions due to a bug of intense battery discharge caused by scanning of corrupted media files that made it go into an infinite loop. However, that component isn't listed among system apps on my device.
I've checked the offending link; I've seen only a bit of html code lines indicating 308 Permanent redirect; no resources as JS, CSS and so on. Why? Moreover the preview was completely different from the original malicious page of autodownload.
It seems as Chrome for Android acts as a trojan downloader, and what's worse, Android automatically executes the code independently of user interaction with the file (though I don't think it happened on my device)

You are wrong. That your browser can download a file automatically has absolutely nothing to do with the language used on server side. The more important part is the JavaScript code on client side. In any way you can't execute anything from the standard downloads folder. You may trigger an installation if the webbrowser app is authorized to do so but still the user has to agree to the installation.

I think sharing us your findings with details would be much better. Give us links to the sites where you browsed and it automatically triggered a download.

@Robert some time ago I asked about this in a very specialized forum in my country, and a skilled guy warned me that just touching/selecting the suspect file in Android /Download folder might execute the dangerous code (cause I had sent it to VirusTotal for checking). Effectively this seems very strange. Was that expert a bit feverish? that is, can you assure me the absolute impossibility of such an operation? However, also the fact that they aren't required languages as PHP or ASP for forcing downloads sounds enough strange; I remember

JavaScript is very limited on writing permissions, just useful for some trivial redirect

@Firelord not much sure I can post dangerous links, but here is one of them opportunely inactivated <<ht tp://freewwifisearchonilnei.site/datpromo/offer6988.php>> The result was a trojan without my knowledge (as you see, it's a php page)

@Bento Your information is a little bit outdated. JavaScript was a language for some "trivial redirects" in the 1990s. Since then it has evolved and now you can build whole applications in JavaScript that even work offline.

@Robert I know this, indeed I made a relatively complex add-on for Firefox some years ago. However I remember that a pure JavaScript is very restrictive in terms of writing possibilities. With "simple redirects" I meant to highlight this aspect of low capacity of doing as it likes on the user's browser. You didn't respond me about my doubts on malware execution via manual selection of the file; did you see the above malicious php link?

@Bento The php file does nothing but redirecting to the malicious server. The real attack is as far as I can see performed by a 50k JavaScript fie which tests the browser it is executed in. If by opening this URL you can really trigger an automatic download to your Android phone then this might be enough to infect it because all vulnerabilities in the Android Media Server can be triggered (and depending on Android versions there are a lot vulnerabilities in this component) as downloaded files are AFAIK automatically processed by media server.

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


text:
How to access BlueStacks' localhost from Windows?
After some research I managed to access Windows' localhost from Bluestacks. If I open Google Chrome in BlueStacks and type 10.0.2.2:/... I can access Windows' localhost.
How do I do this the other way around? Is there a way to connect to Bluestacks' localhost from Windows?

Usually an emulator acts like a separate PC, hence it's localhost interface is not available outside of the system itself. That you can access the host's localhost from within BlueStacks is because the emulator has created a virtual IP address within the emulated system.


text:
Voice typing new line
I have a Samsung S9 running Android version 10 (q).
I frequently use the Google speech to text facility on the keyboard. I can make it do punctuation like commas and periods however I cannot make it do a new line or carriage return.
There seems to be posts about very old Android versions showing that this may have been possible. is this still possible please?

Ok. Have you tried those old posts you encountered? Old does not mean obsolete. :-)

Ah good point. Yes I have tried them and it doesn't seem to work as it once did. Seems such an obvious functionality to have. I can't understand why it doesn't work now.

On Android 12 with a Google Pixel 6 and Gboard voice typing, the voice command is "New line".

I have the same phone, Samsung Galaxy S9, with Android 10, with the same problem. When I said, "new line" or "new paragraph," these phrases are not typed. If I say them after a period, a space is generated. If I say "period new paragraph," just the period is generated. Changing the language settings to single language or disabling, "Block Offensive Words" does not affect it.
In Google Play Store, I updated "Speech Services by Google" and rebooted.  After that I got, "new paragraph" to work.   I'm not sure if I didn't just get the pause to be an appropriate length. It works even without a comma or period.  It seems that it needs to be said as if it were written in italics.It doesn't always work.


text:
Moving App to SD Card in Android 10 (LineageOS 17.1)
My phone (a Samsung A3 2016) used to allow me to move some apps to the SD card under its stock ROM (Android 7).
Last year I updated to Android 9 using LineageOS 16.0 and more recently to Android 10 with LineageOS 17.1.
However, ever since I made the switch I've lost the ability to move apps to the SD card. I go into Settings>Apps and notifications>App Info, choose an app that I know can be transferred, and the option is no longer there. I was hoping that the upgrade to Android 10 would fix this but it hasn't.
Does Android 10 no longer support this feature? Is it just the custom ROM I've used? Or is there a way to re-enable this feature. I would really like to get it working again as my phone only has 16GB of internal storage.

you mean adoptable-storage is not working?

@alecxs no, that option is there for me. Under Android 7 I could use the SD card as portable storage whilst also being able to move some apps over to there. Is that just no longer a thing?

i have android 7 tell me name of example app to move i will test

@alecxs I remember Instagram and VLC being capable of doing it. Maybe it was just a Samsung ROM only thing.

not working on android 7. maybe you mean android 5 (old Samsung devices)

@alecxs It was definitely running Android 7.

As it turns out; reformatting the SD card as internal storage activates this feature.
I can now move some apps to the SD card rather than the phone's internal storage.


text:
Does Android save videos from Instagram live in the cache?
I hosted an instagram live interview yesterday and when it came to saving it to post to IGTV there was an error. I believe it was either due to a network error or that there may not have been enough space on my phone to save or process the video (I have 3.1 GB available, it was a 57 min live video.)

Eventually after editing the title and text multiple times thinking it was a character limit or doesn't like punctuation etc, as well as switching off flight mode and switching on data in case it was the network, I had to abandon the video. It is not saved in my stories or my archive on Instagram or anywhere on IGTV.
I've looked in the Android files on my Samsung S8 under com.instagram, cache and videos, and in movies and downloads, but cannot find it. Would it be saved somewhere on my phone?
Would the reason for the error be insufficient storage space or more likely network error?

You're only able to save a live video right after you've ended it. Only you will see the option to save your live video. So, I doubt it's cached somewhere...


text:
How to collect the data from another app before it goes to the UI?
I'm using an android app, it receives backend updates and displays on the UI.
How could an automation app, a script, or any solution read the updates received and to make some decisions/start other services before it is sent to UI?
Android at wi-fi with the weather forecast app.
App or service collecting the data stream in the backend.
Uses the data collected in the backend to automate decisions.
thanks.

Which Android app are you using for receiving weather forecast? It is likely the app is receiving forecast from a third-party server. Apps such as Tasker can manipulate or act on such data if link to third-party is known. You can try Tasker subreddit for your issue if you don't  get your issue solved here.

It looks like a native Android app, using one API.
The data are displayed into small cards with four pieces of information.
City name on the top (Los Angeles);
Weather forecast (Sun Mon-Fri);
Temperature (XXF);
Conditions (Sun/wind/shower)
How could I access this information through the backend (com.provider.app), activity and automate other services in the real world?

Still, it is best if you could just link the app here. Anyhow, if I were in this situation I would try to single out the domains/URLs the app is trying to connect to. I would first block all apps (including system apps) from accessing internet but allow this app to access it by using a firewall app, then I'd use a network sniffer to capture the packets sent/received by this app. // There might be simpler ways to achieve all of this.

Thanks for replying @Firelord.
Unfortunately, I cannot list the app for licensing reasons. It's a paid service.
I tried the Wireshark to capture packages from the mobile, unsuccessful.

Sorry. Don't know what else to do right now.

Thanks @Firelord

The data once received by an app is protected by the Android sandboxing system that restricts/protects each app. Hence unless your device is rooted the received data (and the app does not provide a public interface to access the data) is inaccessible to any other app (hence also to any automation app).
The only chance to get some data would be on the transmission level by intercepting the connection between app and server. However nowadays this connections usually is a HTTPS connection which means that the app would no accept the presented server certificate of the man-in-the-middle proxy as apps only allow the default system certificates as root certificates. Here again rooting would be the only option to add a custom certificate to your device to make the weather app accept the custom server certificate.


text:
Specific MP3 plays over headphones only
I am out of ideas. The following MP3 does not play correctly on many Android-devices:
https://www.heimatmuseum-zinnowitz.de/app/download/12553824899/Kino%20Audiodatei%20Deutsch.mp3?t=1590484494
It contains a German female voice. But on several devices, it does only play over the headphones. If I use the normal speaker, I do only get some noise.
I tried many different things:

Used different devices (works fine on a Samsung-tablet (Android 8.1), but does only work over headphones on my Huawei P20 Pro (Android 9) and another older phone (Android 7)).
On Windows, it works just fine.
I converted the file a different format (OGG and WAV)
I changed the sampling-rate from 48.0 kHz to 44.1 kHz
I switched between constant and variable bitrate
I tried the default-player and a different app (MusicFolderPlayer)
I used different converters (Audacity and several online-converters)

The problem is always the same: I hear everything using headphones, I do only get noise with the speaker.
How can I get this to work?
Needless to say that all devices used for testing are working fine with other files.

This is due to the audio having stereo (left and right) channels being out-of-phase.
To put it very simply, when the audio waveform on the left channel is out-of-phase with the right channel, the resulting mono mix (basically (left+right)/2) may reduce the volume or even mute it (further reading: destructive interference & dead spot).
When playing with headphones or stereo speakers, there should be no issue hearing the audio because each channel is played through each speaker respectively. However, on some Android devices (e.g. Nexus 5) that only supports mono playback, the issue appears due to the previously mentioned phenomenon.
Depending on the model, there might be a true stereo (left-right channel separation) mod that can be applied/flashed. E.g. a detailed post by user "chdloc" on XDA Forum to apply true stereo on Nexus 5.
The alternative workaround is to fix the audio source by inverting the waveform on one of the channels. Example using Audacity (reference: https://forum.audacityteam.org/viewtopic.php?t=71779):

Open the audio file
(Optional) Select the track, then open the menu bar: Tracks - Mix - Mix Stereo Down to Mono to see the effect of destructive interference, then undo the operation to continue to the next step
Select the track
Open menu (press Shift + M, or click the dropdown menu above the "Mute" and "Solo" button)
Select "Split Stereo Track"
Select one of the channels (either left or right)
Select all region of the track (double-clicking the waveform, or from the menu bar: Select - Region - Track Start to End)
On the menu bar, select Effect - Invert
Open menu on the first track (follow step 4)
Select "Make Stereo Track"
(Optional) Select the track again, then open the menu bar: Tracks - Mix - Mix Stereo Down to Mono to see if it is still affected by the destructive interference, then undo the operation to continue to the next step
Export the resulting audio from File - Export - ...

Related on Super User: How do I check if a WAV file is “really” in stereo or not?


text:
Unlocking Samsung S10 to first page of home screen
I am using a Samsung Galaxy S10. I am trying to find a way to go to my default home screen (the first page of home screens) every time I unlock my phone. I tried MacroDroid and AutomateIt.

Tell us what you tried with MacroDroid and AutomateIt.

MacroDroid seems to be working fine with Nova Launcher. I set it to go to home screen when device unlocks and it does that fine. Which launcher are you using and are you certain that screen you are targeting is indeed the Home screen?

it throws me to the last used "main / home screens" but not the first(marked as default" one   i told it to when phone unlocks to go to home screen


text:
How to make an android app access browse external SD card?
The apk im trying to get to work is exagear 3.0.1. It is the one with which you can get some things running on windows, including what i want to run but things I want to run are too big filesize to stay on my internal memory. Exagear is Wine based but dead project, whoever worked on it left it. Few tried to modify it by adding with extra MS frameworks but not proper access to all your folders.
Exagear browses only your internal memory's Download folder, you cant even see dcim, pictures, etc all these common folders. Now I saw on a youtube video in spanish someone made some exe shortcut that works for older version but the Exagear version 2.9 crashes when start and obviously isnt a working version. I use an English version and 3.0.1.
An unpacking the apk shows the Mainfest has the  WRITE_EXTERNAL_STORAGE which helps, nothing, nor if I added READ_EXTERNAL..
I have Magic Dosbox which asks you to grant access to folders, and when you do it from the program, it is added as Special apps access (using Android 9 Pie btw). I thought I needed to do same w Exagear.
I pulled data/system/urigrants.xml and added the line
<uri-grant sourceUserId="0" targetUserId="0" sourcePkg="com.android.externalstorage" targetPkg="com.eltechs.ed" uri="content://com.android.externalstorage.documents/tree/9C64-18E6%3A" prefix="true" modeFlags="3" createdTime="20482846090" />
</uri-grants>

great, that adds it to the list of Directory access (under Special apps access) just like Magic Dosbox. Alas, still see only root folder with mnt, storage, and in storage/emulated/0/Download
External SD card is usually storage/30D0-DS35  can be like that, instead of name that says 'external sd'
ADB shows me as I can access this folder just fine but Exagear refuses to show any other folder. Losing patience with this, any1 knows whats needed?

uri-grant is the permission granted to an app built with Storage Access Framework. Such apps explore the directory tree through Android APIs, not at filesystem level. If your app isn't built with SAF, what you are trying to do won't work. Even at filesystem level apps cannot write directly to whole external SD card under normal circumstances: https://android.stackexchange.com/a/218338/218526

No problem me looking at the wrong way. Im looking for any way to make it work.So I have to look at option 2 from that link with Binding? I have to bind e.g. the external sd folder to storage/emulated/0Download/? how would this look and do I need any special way to make it permanent for this app? im new to this  so im not sure

Yes with root access you can bind mount a directory from external SD card to some directory in /sdcard. Bind-mounted directory will be accessible to all apps with Storage permission. See How to bind mount a folder inside /sdcard with correct permissions?. Another hack is to map WRITE_EXTERNAL_SRORAGE permission to GID media_rw (1023) so that all apps can write to external SD card. But if your app itself doesn't write to external SD card, the second hack will be of no use.

I opened the Manifest.xml of the apk it has the WRITE_EXTERNAL_STORAGE permission. In ADB shell im doing like su -mm -c 'mount -o bind "storage/30D0-DS35" "storage/emulated/0/download"'  and it is mounted in ADB if I list download folder it is the External SD, but the Wine explorer in ExaGear still shows original Download folder. The original Wine apk itself can browse all folders and the external card without any special setup, yet exagear is stuck on this Download folder.
winecfg is a file that allows setting up drive letters but no point setting one if it doesnt see the sd card folder

All issues you are facing are addressed in the linked question. Please go through the answer once or twice patiently. It won't be possible for me to explain everything again in comments. If you face some different situation, I'm here to help.

I went to your threads, the one bindfs_static_aarch64_v1.14 linked there not for my phone but I found some bindfs to use. Ok I ran adb shell data/local/tmp/bindfs -o nosuid,nodev,noexec,noatime -u 0 -g 9997 -p a-rwx,ug+rw,ugo+X --create-with-perms=a-rwx,ug+rw,ugo+X --xattr-none --chown-ignore --chgrp-ignore --chmod-ignore /mnt/media_rw/7D23-20H3 /mnt/runtime/write/emulated/0/download OMITTEDu:object_r:sdcardfs:s0as it was telling me fuse: unknown option context=u:object_r:sdcardfs:s0'now I see in ADB the Download folder as my External SD but in Exagear - Download is real folder not mount

For first problem use u:object_r:fuse:s0. For second you need to be in root mount namespace before executing command. Both points are explained in the answer.

Ok thanks, I did it without u:object_r:fuse:s0 too but I can consider it. adb shell data/local/tmp/bindfs -o nosuid,nodev,noexec,noatime -u 0 -g 9997 -p a-rwx,ug+rw,ugo+X --create-with-perms=a-rwx,ug+rw,ugo+X --xattr-none --chown-ignore --chgrp-ignore --chmod-ignore /mnt/media_rw/7D23-20H3/Legacy\ Games /mnt/runtime/write/emulated/0/download
So, it's great it works but DOWNSIDEs are: requires root and bind, rebooting the phone or no debugging will clear the bind and root. In case they make a more elegant in-app solution. Still great I can do it when I want to use it for more space

You can run that as an init service so that all is setup on boot. No manual interaction needed.

Hmmm... I may want to use Download folder the usual way, so I may not want to set it on Init yet to bind it all the time. But if Init is the only way to do it WITHOUT ADB... Ok it doesnt work with u:object_r:fuse:s0 but I remove context to make it work with ADB. Now, since my phone can reboot, I may close debugging or the Download folder will disappear, I want to set it without ADB and using a PC.I got Terminal Emulator + Magisk to use as SU, Why when I use same command w bindfs it binds the folders when I list in terminal but Exagear wont see it?While when I ADB this command, Exagear sees?

Solution was in Magisk Settings in Mount Namespace Mode to set it to Global then in :(unreachable)# user, execute bindfs without context u:object_r:fuse:s0, then it should be mounted as Download and seen in Exagear

You don't need to set global namespace for all apps. It may give the apps with root privileges unnecessary access to filesystems (though apps having root can switch namespaces freely). You just need to be in global/root mount namespace while executing mount command. That's possible with su -M or using nsenter as suggested in my linked answer.


text:
Sending email from an alias using Gmail app
I use G-Suite for business. I have the main domain (Let's call it example.com) and a number of secondary domains (we'll use example.co.uk for this). I have set up aliases so that I can receive email sent to joe.user@example.com and also joe.user@example.co.uk.
Using GMail on the web I can select a default email address for outgoing email. So, although my primary address is joe.user@example.com my outgoing email appears to come from joe.user@example.co.uk
So far, so good.
Now I want to do the same thing on my Android phone and tablet.
How can I set up Gmail for Android to use my alias joe.user@example.co.uk instead of my primary address joe.user@example.com?
Note that I don't want to reset the phone and sign in with a different address. I just want to change the GMail alias.
One answer to this question suggests it's not possible, but that was five years ago. Has anything changed?

It's still not possible if you use Gmail app.
Alternatively, you can use FairEmail ( link to the community ads promotion), which let's you do this and has many more features available.
I use  Gmail aliases with this app (not affiliated to it) . You can refer to the extensive app FAQ
in case of issues or join the active app forum on XDA

I suspected as much. I was just hoping that I might have missed something in a settings menu somewhere. I'll post something to the black hole that is Google's Help & Feedback system and see what happens. Thanks for your input!

Thanks. May as well leave a link here for the feature request (or edit into answer), so that others can "star" it


text:
Android Apps can't access my SD Card storage BUT file managers can
Apps like Youtube, NetFlix, prime video do not have a "Store to SD Card" option. I have tried 3 different sd cards with my phone, formatted them but still, apps are unable to detect the sd card and do not have an option to download to external storage.
However, file managers and apps like vlc, album, and basically any media app can access and browse files stored in the sd card. How do I fix this?
I want youtube to store downloaded videos to sd card
same for NetFlix and prime video.
I also tried uninstalling the apps and reinstalling them on my phone. I haven't found a fix yet.
My phone is running Android 8

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

Doing a Factory Data Reset on my phone fixed the issue. Apps are able to write to SD Card. I would like to thank @IrfanLatif for helping me identify why this was happening. Ultimately i decided to factory reset my phone and it did fix the problem.


text:
How can I invert the colors for only a given application on Android? (and not for all applications)
How can I invert the colors for only a given application on Android? (and not for all applications)
Turning on the "color inversion" option in the settings invert the colors for all applications.

If the app does not use "secure screens" (secure screens e.g. are empty on a screenshot) it should be possible to use an app that creates a permanent overlay such as NightShift but instead of just making the display red it could invert the colors. I have read that some night shift apps already include an invert mode, but I don't know which one allows to configure it in a way so that only some apps are affected.

Not possible on stock Android. Google help clearly says :

Color inversion applies to everything on your device, including media.

If you are on Android 10 using Dark theme and Color inversion together as explained (see link) may be an option in some cases.
If you root your phone and install custom ROM that supports per app color inversion, you are lucky. AFAIK, there isn't an app or Xposed module available for this purpose

Additionally in Developer Options there is a "Force Dark Mode" or "Override force-dark" which will make all apps render in dark mode, regardless if the app is correctly configured (YMMV).


text:
Counting the number of mobile phones in communication range with an Android phone
It is clearly possible to count how many WiFi devices are in the communication range using a computer with a wireless card. The idea apparently is to sniff WiFi probe requests coming from the WiFi devices, including smartphones with WiFi enabled.
Here comes my question - is it possible to do the same using an Android smartphone instead of a PC? That is to say, can a phone WiFi be put in such a mode that it is able to count not only the access points in the range, but other devices as well?

Access to Wifi is more difficult the higher the Android version gets. And sniffing probe requests AFAIK requires raw access - which mean you need a rooted device. Additionally the used Wifi adapter has to support “Monitor mode” aka “Promiscuous mode”. A raw traffic capture app is e.g. this one: https://play.google.com/store/apps/details?id=net.kismetwireless.android.pcapcapture Afterwards you would have to build a tool that processes the captured files and count what ever you need (e.g. MAC addresses).

@Robert thanks. why not add this an answer?

there was a sniffing app known as "Reaver for Android" but you need broadcom chipset and ancient android version. search for bcmon supported devices list


text:
How do I prevent GPS location being enabled automatically on Android 8.0.0
The GPS is sporadically enabled on my phone without my consent or even a notification. I have to keep an eye on it and turn it off when I notice it's on. Is there a "global" setting I can use to prevent this or at least ensure I get a notification when it's about to be enabled?

Depending on your Android version and device you can usually check the last apps that have accessed your location in Settings -> Security -> Location

There seems to be a great variation across Android/device versions. I found a switch under Settings->Connections->Location which is currently turned off. I'll take a look at this next time GPS comes on-I haven't explicitly enabled this myself.

Just to make sure, are you sure this is specifically a GPS lock request, not just any location service request (e.g. WiFi, Bluetooth, cellular network)? Also, mentioning the device model might help.

@Andrew T. The GPS symbol is highlighted when this occurs and I have to explicitly disable it in settings. Device model is Samsung Note 8.

automation as suggested in comment  seems to come close to what OP wants.
Many automation apps are available. I prefer using MacroDroid , since it is free (upto 5 macros) and easy to learn. To understand how MacroDroid works and required settings,  my answer here

Your macro would look like this

Macro : GPS on Alert (name of macro )

Trigger: GPS enabled/disabled →*GPS enabled *
Actions:

Display Notification → Enter the desired text. I suggest you choose hour, minute and second to pinpoint the exact time
Speak text - enter the desired text

Constraints: None ( Macro runs always )
This will not tell you when it is about to be enabled but tells you after it is enabled.
Once you have the time stamp, use an app or other methods suggested in logging & logcat to try and pinpoint the app causing it (read their tag wiki's by clicking on learn more). Disable or uninstall such app(s)


text:
How to mount rclone on Android?
I had rclone mount my Google Drive on my Android 7 box with the Magisk module and Termux. But it has stopped working and now there's only an empty folder. This is the rclone log:
2020/06/03 07:33:54 mount helper error: CANNOT LINK EXECUTABLE "fusermount": library "libandroid-support.so" not found
2020/06/03 07:33:54 Fatal error: failed to mount FUSE fs: fusermount: signal: aborted.

I just want to mount rclone on my rooted HiMedia Q10 Pro Android TV box so that I can view my GDrive as a permanent folder on my file system.

The Magisk module you linked is using fusermount binary from this thread which is built for Termux environment. But LD_LIBRARY_PATH environment variable is not being set properly in the module, so the error occurs. A simple approach is to use static fusermount binary, I already posted in the same thread.
rclone uses FUSE which you can mount manually from CLI without relying on Magisk module. I have explained in detail How to bind mount a folder inside /sdcard with correct permissions?. Some issues related to using FUSE on Android are explained in this post. Here I'm describing steps briefly related to rclone only. I'm using Termux for explanation. You can use some other terminal emulator app or adb shell with differences in paths.
Instructions below require that you have a rooted device.

Install rclone binary available in Termux repos (by running pkg install rclone) or download from official website official website. Download static fusermount binary from here (available for both aarch64 and armeabi-v7a). Extract the downloaded archive files. I assume that downloaded files are placed in /sdcard/Download/.

For ease of repeated use create a shell script /sdcard/Download/rclone_mount.sh using any text editor. Copy/paste the following lines:
#!/data/data/com.termux/files/usr/bin/bash -e

# must be run with root privileges
[ $(id -u) -eq 0 ] || exec su --mount-master -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH HOME=$HOME PATH=$PATH:$HOME/bin $0"

# make sure to be in root mount namespace
[ $(readlink /proc/1/ns/mnt) = $(readlink /proc/self/ns/mnt) ] || nsenter -t 1 -m -- "$0"

Unmount() {
    fusermount -u /mnt/runtime/write/emulated/0/GDrive 2>/dev/null || :
}

# make sure it's not already mounted
Unmount

# make sure it's unmounted after rclone is killed
trap 'sleep 1; Unmount' EXIT

# mount remote in /sdcard/
rclone -v mount GDrive: /mnt/runtime/write/emulated/0/GDrive --gid 9997 --dir-perms 0771 --file-perms 0660 --umask=0 --allow-other

See rclone mount manual for explanation on commandline options. Some options may impact the performance.

Make sure Termux is granted Storage permission and execute following commands:
~$ cd
~$ pkg install -y util-linux
~$ mkdir -p bin /sdcard/GDrive
~$ cp /sdcard/Download/{fusermount,rclone,rclone_mount.sh} bin/
~$ chmod -R 0755 bin
~$ dos2unix bin/rclone_mount.sh
~$ bin/rclone config

Follow the instruction on screen (see rclone config manual for details) to create configuration file (~/.config/rclone/rclone.conf) for Google Drive (or whatever remote service you want to use). I assume you chose the remote name GDrive (as used in above script).

Whenever you need to mount rclone, open Termux and run bin/rclone_mount.sh (or create Termux Widget to run the script from home screen conveniently).

All apps with Storage permissions should be able to explore GDrive folder (bind mounting to read and default views isn't necessarily required). But some apps may crash due to slow network activity, others may require more caching (see options) etc.
Trigger a Media Scan if e.g. pictures on remote don't appear in gallery app.
When done press Ctrl ^C to stop rclone process and mount.

Thanks for your detailed answer. You answered about 16 months ago. Is it still the case that the fusermount binary needs to be changed? I'm using rclone-mount 1.16 Magisk module which comes from https://github.com/Magisk-Modules-Repo/com.piyushgarg.rclone. I'm not using Termux and I would prefer a fully automatic full-time mount (which I assume the Magisk module provides). My question is, after 16 months, do you still recommend the Termux approach as described in your answer instead of Magisk module?

@MountainX I don't use Magisk module, so can't say how well it works. But the manual method I explained should always work. This is how it'll work on any UNIX-like operating system including Android.

So... I have the Magisk module installed. I did a good bit of troubleshooting & it still is not working. Now I tried running your mount command rclone -v mount MYMOUNT: /mnt/runtime/write/emulated/0/MYMOUNT --gid 9997 --dir-perms 0771 --file-perms 0660 --umask=0 --allow-other and it works as expected. I did not change my binaries or use Termux or run your script. I just ran the mount cmd as root. Curious why the the Magisk module mounts are failing when clearly my config and my binaries are capable of working. But I do plan to use your approach. I like that it is clear. Thanks!

I posted a related question here: scripts - How to use rclone-mount with Termux:Boot? - Android Enthusiasts Stack Exchange. I'm not having success with Termux:Boot yet.

I posted two more related questions:
Termux: bad interpreter: Permission denied
and
permission denied only AFTER becoming root in Termux

Maybe you could take a look at this: How to automate rclone-mount without Termux or Magisk? - Android Enthusiasts Stack Exchange

@IrfanLatif I believe this approach is no longer need in Android 12. I have managed to mount rclone with a simple command but the problem is that there is no write access, only read and the /mnt/runtime directory seems always empty on Android 12? Or am I missing something?

The directory tree seems to end here: /mnt/runtime/write/emulated

I used this method for years to mount pCloud on my phone. But recently I moved to a new model. I tried to setup the mount in the same way, but I got the following error when calling to rclone_mount.sh: 2024/02/16 09:35:38 ERROR : /: Dir.Stat error: couldn't list files: Get "https://eapi.pcloud.com/listfolder?folderid=0": dial tcp: lookup eapi.pcloud.com on [::1]:53: read udp [::1]:41532->[::1]:53: read: connection refused
The directory to which the cloud storage should be mounted was empty.

If anyone interested, here is how I solved it. First, I updated rclone binary to a newer version. Most likely pCloud's API has changed and the old binary didn't handle it properly. Second, I replaced this nsenter -t 1 -m -- "$0" with nsenter -t 1 -m -- "$HOME/bin/rclone_mount.sh. Lastly, I created a link to fusermount, so it would also be recognized as fusermount3: ln -s $HOME/bin/fusermount $HOME/bin/fusermount3. Now everything works properly.


text:
What can WhatsApp access on my phone?

The app WhatsApp would like to have permission to access my device's
photos, media and files.

If I grant permission, exactly what can (could) the application access?
Can it access all of the photos on my phone?  Or just the photos I have shared or downloaded with the app?
Can it access all of the phone's media?
Can it access all of the files on the phone?
Or does Android restrict what it can access?  If so, what does it restrict it to and how?
I'm not interested in what WhatsApp says it will or won't access, or even what it has promised in its EULA.  I'm more interested in what it could access, if it wanted to when granted the access.

Does this answer your question? Help understanding Whatsapp's permissions

Up to Android 9, any app (not specifically WhatsApp) with Storage permission granted can read anything on your external shared storage (/sdcard and physically external SD card). However writing to physically external SD card is limited. Since Android 10 Scoped Storage (SAF) has changed the whole scenario as Robert mentioned. // App's private directories are never accessible to other apps irrespective of what permission granted. Related questions: https://android.stackexchange.com/a/218469/218526, https://android.stackexchange.com/a/218338/218526

You can take the description "device's photos, media and files" for sure. If you grant this permission to Whatsapp everything that is located in your "internal storage" (sometimes called sdcard section).
This includes:

Photos (usually stored in the DCIM folder)
Videos
Downloads
Music
Ringtones
...

Only on phones running Android 10 or higher because of the new "scoped storage" feature the access is a little bit limited. And starting with Android 11 it seems like Google will narrow down the permission you grant on the common files again.


text:
Xiaomi M8SE Fastboot loop when trying to install TWRP
When trying to install TWRP (latest version for Xiaomi Mi 8SE) I manage to install the newest TWRP using adb (fastboot flash recovery "C:\Program Files (x86)\Minimal ADB and Fastboot\twrp.img).
However, once I boot into TWRP, it does not set it as a default loader.
After wiping the data, and trying to reboot in recovery like here: https://youtu.be/FEN7Ujb4vdo?t=390 it simply reboots into fastboot and from there, I cannot do anything anymore.
I then have to install a Chinese developer version using MiFlash.
Can someone help me with this issue? I am trying to install a xiaomi.eu MIUI 11 version for my better half - she is tired of the Chinese ROM and half of the OS is in Chinese...

you don't need TWRP for MIUI global, please be more specific

I thought that the only way to flash it is by using TWRP. But now I managed to install TWRP (see my anser). Thanks for the reply

The solution to get out of the fastboot loop was to fresh install the developer MIUI with the MI Flash tool and then sign into the MI Account when setting up the phone. This is essential and the only way to install TWRP. I am guessing it has to verify that the bootloader is unlocked with the Mi account first.


text:
Enable USB-Debugging and delete display pattern on OnePlus One Android 6
I tried to get some data from my OPO that i screen crashed 3 years ago. I'm not able to unlock it, because i forgot the display pattern.
So the plan was to enable usb-debugging via adb in recovery and then to remove the pattern via adb command, but i guess it doesn't work with CM 13 Recovery.
I put my new SIM into the OPO to get internet connection so that it can sign in into my google account automatically but it didn't, even though it was linked to this account when i used this phone.
Is there any possibility to unlock it? Or maybe to connect it as media device to my computer to get the data?
Back in the days i used to have TWRP Custom Recovery, it was pretty easy to connect with a computer and use the phone as a usb device while in recovery mode.

Is the bootloader unlocked? Also, not sure they work but years ago I did come across some links/software which claimed to  unlock OPO's bootloader without wiping data, so you may search and try them if all else fails.

to be honest, i'm not sure. i havent used it since 2017. when i reboot to bootloader a cm icon shows up and says "fast boot mode". I'm sorry for my bad knowledge, i really was good at this stuff years ago, but it's been 6 years or so since a flashed my last custom rom on my droid razr. so i'm really not into this stuff anymore :/

Setup [tag:fastboot] in your PC, reboot the device into fastboot mode and issue this command: fastboot getvar all. Among other things it should show you (bootloader) unlocked:yes or no. If yes, you can  flash or boot into TWRP easily.

thanks!!! I'll try when i come home. after i flashed twrp i can mount the opo as usb device in recovery, right?
is it also possible to activate usb debuggin in twrp? if not, its fine, but if yes it would be great.

USB Debugging and root access is enabled in twrp. You can alse enable MTP from there. Get whatever data you need from there.


text:
Is it possible to decrypt an encrypted SD card without rooting the Android phone? (How to get the .key file of /data/misc/vold?)
I'd like to encrypt my SD card for Android conveniently, safely and in a cross-platform way so that it can also be used on other devices. I asked about that here.
As of right now there doesn't seem to be a way to do that (an app on FDroid or Playstore which doesn't put data at risk and is secure and very convenient/easy/fast to use).
This is why I decided to keep using the Android's default way of encrypting the SD card. However, this way it's not possible to access the data from other devices. Here it has been described how data of the SD card can be decrypted from other devices but that way requires rooting the Android phone. Is it possible to do this without rooting the phone? In specific how could one get the .key file in /data/misc/vold?

As far as I know the linked page for decrypting the SD-card is outdated because it is only for devices that don't use hardware encryption, which now (nearly?) all devices do. Additionally since Android 9 the adoptable storage can make use of File Based Encrytion (FBE) which cant be decrypted with the presented commands.

As of right now there doesn't seem to be a way to do that Most probably it won't be possible  in future either. Because Android apps are not designed to interact directly with kernel level APIs and access low level resources. Is it possible to do this without rooting the phone? No. In specific how could one get the .key file in /data/misc/vold? Not possible without root. And also that won't work for FBE as Robert said.

@Robert I'm not sure but I think decrypting Adoptable SD card using dmsetup should work even for devices with hardware-backed encryption. It's because in case of Adoptable Storage there are no user credentials, RSA key or middle key involved in encryption. Instead the master key in plain text is saved to /data/misc/vold. Adoptable Storage relies on the hardware-backed secure encryption of internal storage (/data).

Nearly duplicate questions/answers: https://android.stackexchange.com/q/206206/218526, https://android.stackexchange.com/q/217175/218526, https://android.stackexchange.com/q/181476/218526

So it seems like the answer is "No, it's impossible". Maybe I should edit to ask why that is or make a new question for that. I thought there has to be a way, maybe a bit complicated, to extract this key from the data on the phone.

@mYnDstrEAm it's already answered here: Why are superuser permissions needed to acess /data partition?

depending on chipset and android version there may exist rooting exploit (mediatek) or low level access (qualcomm) to make backup. some stock recovery have backup option. after rooting (or from TWRP), backup can restored and decrypted, then vold keys can be extracted. should even work for FBE


text:
Add multiple identical homescreen widgets on Realme devices
On my old phone (Android 8), I used home screen widgets to take notes on the screen, it’s very convenient.

But on my new phone (Android 10, Realme 6 pro), I get the error message “widget added”. It happens with any type of widget.

How can I fix this?
P.S. I'm a Python developer, but I used ADB before for fun.

Is the used note-app the same on both devices? The note icons look very different, hence it may be a limitation of the now used note app.

I use the same app and am able to add multiple notes widgets as in your left screen shot. Android 10,OnePlus 6

In Realme UI. you can only add one widget at a time. The user can't add same widgets multiple widgets.  However there is trick, use Launchers like nova etc. Where you can add multiple widgets.
:)


text:
are android 10 adb commands gimp'd?
adb shell settings put secure sysui_nav_bar "\"key(82:file:///storage/emulated/0/zzz/menu.png),key(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_ime;key(120:file:///storage/emulated/0/zzz/screenshot.png)\""
what the heck is wrong with this adb command!?
i get tons of errors! on my Mac Mini Server 2012 via Bootcamp via Windows 10 Pro
for a moto g stylus 2043-4! May 12th 2020. Android Debug Bridge
30.0.1 installed via powershell via chocolatey.org
82:file:///storage/emulated/0/zzz/menu.png : The term '82:file:///storage/emulated/0/zzz/menu.png' is not recognized
as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:52
+ ... sui_nav_bar "\"key(82:file:///storage/emulated/0/zzz/menu.png),key(84 ...
+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (82:file:///stor.../0/zzz/menu.png:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

home : The term 'home' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:147
+ ... .png),key(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent; ...
+                                                              ~~~~
    + CategoryInfo          : ObjectNotFound: (home:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

recent : The term 'recent' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:152
+ ... ey(84:file:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_im ...
+                                                            ~~~~~~
    + CategoryInfo          : ObjectNotFound: (recent:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

menu_ime : The term 'menu_ime' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:159
+ ... e:///storage/emulated/0/zzz/kb.png),back;home;recent;menu_ime;key(120 ...
+                                                          ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (menu_ime:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

120:file:///storage/emulated/0/zzz/screenshot.png : The term '120:file:///storage/emulated/0/zzz/screenshot.png' is
not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:172
+ ... nt;menu_ime;key(120:file:///storage/emulated/0/zzz/screenshot.png)\""
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (120:file:///sto.../screenshot.png:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException```

Where did you get the command from? Shells differ often a bit, especially when it comes to escaping and quoting. I don't think may people already use Powershell. The common shell on Windows is cmd.exe.

i found bits of it online and built this command myself... clever noob i am huh? i used powershell only to install adb into my system. i dunno if cmd.exe is any better. but i used both to test my little command... no dice!

Please mention the source link for this command. It might not even work on an unrooted device or this specific model.

hmm... there is no one link. this custom command was built by piecing together tuts from various websites including here... it would be too tedious to re-find all of them!

it also worked flawlessly on a unrooted Moto G5 Plus XT1687

Probably related: https://www.xda-developers.com/how-to-change-your-nav-bar-icons-or-re-arrange-the-buttons-without-root/

you call a device and android version depending framework settings.jar which is not even available on all devices (samsung) just because it worked on Moto G5 this doesn't mean it's working. why don't you read the error messages? it says clearly the term 82:file, 120:file is not recognized... and so on

Why to to use the most complicated way and try t execute an shell command through adb from Windows? Just execute adb shell first and then on the adb shell settings put secure ... this way should cause much less trouble regarding the quotes.

Hmm... adb shell by itself? first? i never saw this before.

hmm... it seems to take with no errors, but i believe i need root via the su command first...

To answer the headline question, no, Android 10 does not have "gimped" ADB commands, assuming you mean "restricted" or "crippled".
If you wrote this script, you're in the best position to debug it. If you put it together from several sources, some of which may have been for Windows and some for UNIX, you may well have the use and escaping of quote characters mixed up. Windows-style and UNIX-style command lines have different handling of quotes.
The best advice is normal for debugging: cut down the problem as much as possible and find ways to do its component parts before you try to put the whole thing together. Writing a complicated command may be good for your ego, but that does not impress computers at all.


text:
How can I bypass android 9 VPN with iptables?
I'm targeting specific app with UID rule -m owner --uid-owner 1337 and I want this app always bypass VPN and use direct Wi-fi/Mobile Data connection. Ideally, I also want it to be universal, if possible, because I might switch the VPN app I use (currently have two) and I dont want to rewrite the rule and re-target new interface for it.
What are my options? I can provide output of ifconfig, whatever, but it kinda defeats aforementioned point 2).
P.S. I know that majority of VPN apps have exclusion list but because I already use AFWall+ I dont want to use that list and mess with iptables even more, polluting it with weird routes combnations.


text:
Get new random MAC for same SSID without factory reset on Android 10+
Here is the MAC Randomization described and stated:

Note: Randomized MAC addresses are generated per SSID and are persistent.

I can confirm after deleting the SSID, rebooting, and connecting again, the same random MAC is used as before. However, if you reset the device to factory defaults and connect to the same SSID, the device connects with another random MAC address.
So how can you trigger this behavior without doing a factory reset?

On Android 11, there is a new option "Wi-Fi-enhanced MAC randomization" in the developer options.
When you enable it, delete/forget the network, and then reconnect, you get a new MAC address every time. Also, you get a new MAC address for this WiFi/SSID when you reboot your device. Disabling and enabling WiFi is not enough to get a new MAC. With this enabled, the device also generates a new random MAC address every few days.
When you disable this option, you get back your previously used random MAC.
Please also read liangpig1's answer, which is very informative.
Even with a new random MAC, some WiFi hotspots recognize you and still show your free hotspot time is over. This seems to be because of cookies with the Android browser. To mitigate this: connect, dismiss the notification that you have to log in, and in your browser in a new private window, open any non-HTTPS website. Then you'll be redirected to the login page, can log in, and enjoy free WiFi again.

Upvoting from airport WiFi ;)

The key related to MAC randomization is only generated for the first time.
And the MAC address is calculated by calling hmac_sha256 over the SSID with the generated key.
This key is stored in the /data/... on the device, and as far as I know, Android does not provide any API to remove it.
But when you perform a factory reset, all the data located under /data/... is wiped out, that's why the MAC address changes after that.
Therefore, if you can manage to remove the key, you can trigger this behavior, which is not easy, in my opinion.

Here is a list of events that will change your random MAC:

The network name changes
The operating system is upgraded and the device connects to the network for the first time after the upgrade
The network name is "forgotten" in the phone settings and then reconnected to

Source: https://wifi-helpcenter.nokia.com/hc/en-us/articles/360056890733-Issues-with-random-MAC-addresses-Android-10-iOS-14-

The quoted Nokia article is incorrect in its statement that you get a new random MAC if reconnecting to a "forgotten" network. Verified on Nokia G300 running as per Nokia's tradition fairly stock Android 11, and a Samsung Note 9 running Android 10. (The article aays it covers Android 10 & iOS 14 or later; maybe it refers to iOS on this point?)


text:
I want to customise my phone to forward SMS messages automatically
My goal is that I want to customise my own Android phone to automatically forward text messages from user defined phone numbers onto other user defined phone numbers. I tried updating a very simple app to do this:
https://github.com/EnixCoda/SMS-Forward
However I found that once I had updated to newer Android versions, the app started up and allowed me to set a forwarding number, but did not actually forward the SMS (I used my phone in USB debugger mode). The SMSReceiver class did not get the message that an SMS had arrived I found when I debugged it. I read more, and it seems that only the default SMS app is allowed to have anything to do with text messages. So now, I want to start from the source code of the stock/default SMS app that comes with Android so that I can add the features I am interested in to it.
I'm open to different approaches, but I don't want to download a crapware app with ads or pay nagging.
Doing a little more research, I found that Signal can handle SMS messages, but it seems like quite a big and complicated app.
Any advice appreciated!

google has changed rules back 2 years or so, don't use app from playstore because these all have removed this functionality. for example MacroDroid last working version is 3.30

You can try to create the following flow with Automate and test if it accomplishes it.

Create a new flow by pressing on the + button
Press again on the + button, search for SMS. Select "SMS received" block
Press the "SMS received" block. Enter the phone number of the sender. Click on "Subscription ID" and select your SIM card (Network provider). On the Message box, enter the name of a variable, for example msg. Click on Save.
Press the + button. Select the "SMS send" block. Press it. Enter the phone of the contact you want the SMS to. Set the Sim card (network provider) under "Subscription Id". on the Message box, press on fx to enable it, then enter the variable create during step 3. In this case, enter msg. Click on Save
Link the blocks as seen on the first image below, then press back.
Give the flow a name and enable "send and view messages". Give the requested permission, then press Start.

When an SMS is received from the sender whose number you entered on step 3, it will be immediately sent to the contact number entered in step 4. The log on the second image shows that an SMS was received then sent (forwarded).
Note: You should be able to add more number during step 3 and 4 by enabling fx. But I have not tested it. Or, you can add more SMS received and SMS send blocks in parallel for each number.
Disclaimer: I am just a user of the app.

This works for my use case thanks! to forward from multiple numbers in the one workflow you can click fx like you mentioned and join quoted strings with the word or like: "123455" or "1234556".

The Receive SMS widget needs the "make and manage phone calls" privilege so it could be that that was what was the problem when using an app


text:
Samsung Galaxy S8 Active Location Services Glitch
I know this is a well known issue, but why it only affects the Samsung Galaxy S8 Active devices specifically is still a mystery. I figured I would see if anyone by chance has found a way to prevent what is a repeatedly frustrating failure of the devices basic functions, and for no apparent reason.
Here's how it generally works for me. I will use Google Maps, or Waze, or any mapping app to mandate to a place. Once I arrive, I tell the app of choice to stop navigating and go to sleep. I allow very few apps to operate in the background, and none of those navigation and are included.
After doing whatever, and taking any random amount of time (Shop at groceries, Home Depot, get gas, etc.), I relaunch the navigation app (which doesn't matter), it shows me in my last position, I enter in my next destination, and execute. Call me obnoxiously optimistic, but I always seem to forget this is going to happen at the worst times. For instance, when I actually need the dang directions. So what happens?
I will invariably look at the device and notice my position not moving. The phone's location functionality is frozen at the last point I last deactivated the navigation app. Nothing I can do short of a full controlled reset or shut down and toggle back on will help, except for the following sequence of inputs, which usually take place whilst driving in an area I'm unfamiliar with, not knowing where I'm going, to varying degrees of success. Sometimes the episode will end in a intense flash of rage (I have red hair, sooo), and all I can say is that better phones have been screen smashed for far less. However, when I'm able to hold it together, 70% of the time it works in a single execution of the following sequence. The other 30% is complete in 2 full executions of the sequence. While there are rare instances when the first and second sequence execution both fail. It's not clear whether a third attempt would be successful in these cases, as I've made the decision that in sick instances, the phone gets removed forcefully from it's normal vent-supported magnetic mount and thrown forcefully into the driver's side footwell. Now then, the location services debugging sequence execution is as follows:

While keeping the selected navigation app open, running, and active, even in the minimized state, slide down the top interface drawer. (That's what I call the menus accessed by placing your finger at the top-most center of the phone's screen, and draw a line downward.)

With the Android Interface Drawer opened (as defined by me), select the Android system settings gear in the upper most top right portion of the screen. (Just below the battery percentage indicator)

Once the Android Settings Home Page had loaded, select the magnifying glass icon located above the top most settings catagory selection, which in my case is always "Connection Settings" which is offset to the right.

The next window to load is the Android Settings Search page, which offers a Search field and should automatically load your default keyboard and be ready for you to populate this field.

The first time you do this, you'll need to manually type the terms out. Inside the Search Text Field, enter the following terms in the indicated order and format, as provided:

Improve accuracy
*Note 1: All subsequent executions of the sequence will offer a list of the three most recent search terms. Unless you utilize the Android Settings Search as a commonly leveraged tool, the appropriate terms need not be entered, instead require a simple selection tap.
Note 2: You may know a quicker set of commands to arrive at the following Android Settings Page. I have no reason to believe that the skipping of this search process would result in a failed sequence*

This step might not occur instantly, I've found that patience is a virtue as the Android Settings work to load the appropriate page. This page will be called the "Improved Accuracy" page, the term accuracy referring to the Android Location Services accuracy. Tap select this only selection available.

Wait for the device's Improve Accuracy page of the Android Settings to load but don't select anything until the following step. When finished loading, you'll see a number of selections available, however you are only concerned with the top two section categories listed.

The first option, the selection found at the top, is a simple ON/OFF slider switch. This switch enables users to control whether or not the device's Location Services are activated and available for use by the device and authorized apps. When it first loads, this switch should be set and indicate "ON".
The second option below the switch is a yet another another available selection catagory called, once again, "Improved Accuracy".
Below these two options is some information regarding the various apps which have been detected utilizing the devices Location Services.

At this point, if you followed the earlier guidance of minimizing the navigation app of use, this minimized app should appear as a small floating window somewhere on the device screen, most likely in the lower section of the screen. At this point, close the minimized navigation app by select tapping the closing 'X' in the upper right corner of the minimized app display. The navigation app should be deactivated at this point. If there are any doubts that it had been deactivated, make all attempts to do so.

Tap select the Second option down from the top, the selection catagory labeled "Improved Accuracy". Once pressed, another page with two simple sliding selections will load, the top will read "Wi-Fi scanning", the bottom will read "Bluetooth scanning". You may find these two sliders set in a number of seemingly random combinations when the page first loads. Regardless of what you find, ensure both slider selectors are established in the "OFF" position. Once verified, back out of that page to the previous page.

Back at the previous page, you will once again be given the top option in the form of a slider selection switch which controls the activation of the device's Location Settings, and the "Improved Accuracy" catagory labels which you have just back out from. At this point slide the "Location Settings" simple slider ON/OFF switch to "ON".

At this point, either because out of the Android Settings Pages completely, or simply exit the last page you were on. Now, ensure that your navigation app of choice is in fact no longer running. If you find it is, you can attempt closing and relaunching it, however I've had limited success when this occurred.

If you confirm the navigation app of choice was fully closed, find the app's launch icon  and tap launch as normal. 70% of my attempts at this point succeed, and the navigation app indicates an accurate location and reflect the movement which is occuring at the time. Your sequence is finished, but just for this time. You will likely need to execute the sequence of and when you decide to navigate to another location and attempt to program the destination into the navigation app.

You'll recognize that they sequence failed when you realize that you're relative movement fails to be reflected in the moving map display of the navigation app of choice. If you recognize that this is the case, simply begin at the beginning of this numbered sequence, which I've found will succeed more often than it fails when afternoon a second time.

I'd love for someone to tell me why this foolishness happens. But even more, I'd REALLY love for someone to tell me how to make the madness stop.
So that's my official question, as follows:
How do I fix the Samsung Galaxy S8 Active Location Services glitch, as outlined above, and prevent the device from repeatedly making the same functions error, all without the need to execute the aforementioned 11 to 12 step sequence?
Thanks!!


text:
How do I create a working filter to block sites, etc with NoRoot Firewall?
NRF seems fine for blocking applications' use of data, but not blocking sites or other communication with them on a case-by-case basis; it's an all-or-nothing proposition.
I've followed guides on how to do it, entered pre-filters and in-app filters, but in setting Firefox to use them, I get status bar notifications that Firefox wants to access the internet and an unending stream of Pending Access-es -- for sites that don't have filters set for them -- that are impossible to keep up with. It won't do so at all before timing out, unless I globally Allow or Deny.
I read on Lifehacker that NRF has issues on 4G, which my phone is, but I'm strictly on wi-fi, so should be a moot issue, yeah?
I've looked at the builder's site, norootfirewall.weebly.com, but it has no additional info or contact, and Firefox doesn't seem to have a filter add-on that actually works on mobile (I use BlockSite on desktop), so here I am. Help!?


text:
Fastboot recovery flash FAILED (Status read failed (Too many open files in system))
I'm trying to flash a magisk-patched boot image onto a device with an unlocked bootloader (but without a custom recovery).
I've patched the boot image without issue, but when I go to flash, this happens:
fastboot flash boot magisk_patched.img
Sending 'boot' (19648 KB)                          OKAY [  0.560s]
Writing 'boot'                                     FAILED (Status read failed (Too many open files in system))
fastboot: error: Command failed

Anyone have an idea what might be wrong?

try from windows 7 with latest platform-tools


text:
Give use to Android phone with broken screen
I have an BLÜ Pure XR with a broken screen (completely black) which I'm trying to put to some use (security camera perhaps), however, since I can't access the phone at all, I'm not able to turn on USB Debugging, and all strategies I've found online (including putting the phone in ClockWork mode, which I seem to have done successfully) using ADB yield "Permission denied" errors in one form or another (mount: Permission denied, adbd cannot run as root in production builds, ...java.lang.NullPointerException: Attempt to invoke interface method 'android.os.IBinder android.os.IServiceManager.getService(java.lang.String)' on a null object reference..., etc).
I say I've successfully put the phone in ClockWork mode because if I connect it to my PC via USB and I run adb devices shows me a device in the list, and some of the errors I get include "BLÜ Pure XR" in their contents so it seems to be somewhat successfully connected.
Am I attempting to do something impossible?

This will work only if the touch still works

Plug your phone to your pc
Unlock your phone
Perform the key combination which takes a screenshot
Explore the files of your phone where your screenshots are located
See where you are at
Tap on the screen blindli trying to click on the icon you want to click
Rinse and repeat from step 3

I can't do this, the screen is completely out, entirely black and doesn't recognize input.

In case even your touch does not work, I believe the only way to do so is an iterative process using UI Automator viewer and writing an UI Android test that navigates throughout the settings, enabling usb debugging as final goal.
UI Automator will be useful to collect the resource ids (menu items ids, textviews ids, dialog buttons ids, ui widgets ids etc) the instrumented test should click.
Hope this helps.

I will try this on the weekend and get back to you, thanks!


text:
WhatsApp video URL?
Is there a specific server address from which WhatsApp serves the video (and image) files that users share?
I want to allow the use of WhatsApp and the exchange of text messages and video calls but block video files by blocking the file hosting server.
In other words:
When a user sends a video or image to another user, where are the videos hosted before the receiving user downloads them to their device?

There is long list of domains and IP addresses which may keep on changing. Instead consider blocking ports used for VoIP calling.

@IrfanLatif I don't mean video calls, but video files sent from one user to another.

Sorry I got it wrong. Here's a list you can try: https://pastebin.com/dd7RMcZr. A more easy approach would be to capture DNS traffic when downloading/opening videos in WhatsApp app.

Thank you, @IrfanLatif. This brief article may give the answer: https://knowledge.broadcom.com/external/article/169299/block-photovideo-files-upload-transfer.html It does refer to some of the URLs you have listed.

More explanation: http://www.rtcbits.com/2018/05/how-are-imagesvideos-sent-in-whatsapp.html and https://www.forbes.com/sites/thomasbrewster/2017/07/21/china-can-censor-whatsapp-really-easily/#1f22e91f57e9


text:
mobile radio tower is off
typing *#*#4636#*#* on my mi max3 xiaomi will take me to my phone setting and I after turning mobile radio tower ON it urns back to OFF again after a few moments.
I am not able to place any calls as it tells me AIRPLANE MODE is on and it is not ON. I have factory reset the phone already and have the latest MIUI 11.0.2 installed. Things are the same even when I flash the Chinese ROM or other custom ROMS.
any tips how to remedy this ?


text:
Android : Can't access developer option after enable the developer mode
I tried to open developer option but when i tap the menu it said Turn on developer options first so i try to enable developer mode again by taping build number but is reply No need, developer mode has already been enable
I tried to access it by searching option in setting but when i tap any setting it would tell me to enable developer option first.

My device is Galaxy A7 (2017)
Model number SM-A720F/DS
Android 8.0.0

Does this answer your question? Samsung S7 - Developer options not showing after build number pressed 7 times

whats the purpose of the screenshot when you have censored all device info?

Reddy comment works. I go to setting app then press clear data and then redo everything then im able to access developer option now


text:
Can I install Android using Android studio on any supporting devices?
I have a Samsung phone. I don't know anything about installing Android and about Android Studio.
Can I install Android on it using Android Studio?

Android Studio is purely for developing Android apps. hence you can only build Android apps, install them on a device or emulator and you can run/debug it.
Android Studio has no functionality for flashing Android system images or "installing Android" on a device.

There is no general Android and no general way to install a new system image onto a device. Nearly every device/chip manufacturer has it's own way to do so. hence without exactly saying what phone model and manufacturer you use nobody can help you. The best way is to visit the device specific forum at https://forum.xda-developers.com/ and read there about the specific way to root your device and install custom ROMs.


text:
Ussd change to call
For some reason my phone can't dial any ussd code more than 5 digits. For example: I could dial *888# but can not dial *5050#. When I dial ussd code more than 5 digits and press the call button it will calling to that ussd code. I do some research but I don't find any questions like mine, but sth like make a call but changing to ussd running, opposite of my problem. My phone is LG X4+ ( yes not a popular phone at all ) i hope someone could help me

Can you try with any 3rd-party Phone apps (e.g. Google Phone?

Google phone not supported. I try other dialer on the play store but it seem that when making a call it is still using the same system app


text:
Pull Text Messages from a phone with broken screen
I need the text messages from the stock texting app on my broken Galaxy Note8. The screen is damaged in a way where installing any app to transfer the data from the phone is impossible. I'm hoping the texts are stored somewhere I can access from my computer via USB.
I don't know where to look or if I need some specific program on my computer to reach the location they are stored in. Any help is appreciated.

Have you enabled Android Developer menu and adb on the device when the screen was working? If yes you could not connect your phone to your computer, see the screen and use your mouse to navigate via scrcpy.

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

Have you seen our broken-screen tag wiki yet? And its data recovery section? And… How do I backup data (SMS/contacts) from a device with a broken screen?


text:
Need help unbricking my Google Pixel (sailfish)
I was trying to downgrade my phone from android 10 to android 7.1 (stock firmware). I have done this before and it always worked, except this time the flash-all.bat tool stopped while extracting the system image. I tried switching USB ports, running the commands myself and this is when it stopped working: I flashed the bootloader, restarted it into the bootloader but it tried booting to system and failed. Now it's hard bricked. I did not lock the bootloader.
After I did some digging I found out I can use an EDL cable to force it into QEDL mode. However, i have never done this before and saw in YouTube videos that you need a processor specific .mbn file. I cannot find them anywhere so far (there was an arabic website with no download link to their unbricking tool).
TL;DR -
My phone hard bricked with the bootloader unlocked and I need help on flashing Qualcomm MSM8996 Pro SoC firmware. My PC still detects it as Qualcomm HS-USB QDloader 9008.

So the device is not entering bootloader mode if you reboot and hold power + vol down?

look in this chat. user @najam shared some collections for firehose programmers (afaik google never leaked some, but worth a try) https://android.stackexchange.com/q/225752

I tried multiple button combinations, none worked. If it helps, bootloader and radio are from version nde63h, while the rest is qp1a.191005.007.a3. Thanks for the link, I will try to keep you all updated.

I found this tutorial, but it needs the firehose programmer file, which I can't find anywhere, not for sailfish (https://www.leakite.com/collection-qualcomm-emmc-programmer-files/) Here's the link, in case anyone needs it: https://www.youtube.com/watch?v=z90cQ1whiSE . If you find it, please reply to this and I'll add it. Good luck!
Part 2:
So I finally found out about "Driver Binaries", files Google provides on their site, although no instructions are provided. I downloaded both of the files for 7.1.0 nde and ran the .sh file. Read the agreement and typed "I AGREE", after which the shell created a folder called vendor. Inside are BoardConfigPartial.mk, device-partial.mk and "proprietary" folder.
From what I searched, these are Makefile extensions to build the actual firmware, and all source code is stored in the proprietary folder found earlier. There seems to be a rampatch .img and a dedicated msm8996_camera.xml, and even more interestingly, another folder called lib64 which contains gps.default.so, libwifi-hal-qcom.so. Lots of files inside but I'm not going to go into details. The purpose of this comment is to let anyone more experienced with compiling and building software from raw code hopefully compile all of this into a single flashable .mbn.


text:
What factors could cause a massive spike / drop in bitrate?
I'm seeing a graph of one of my Android application's bitrates during a video stream, and I'm not sure what to make of it:

Relevant Info:

This is a single application's bitrate over the duration of a video call
The video call starts off perfectly fine, but suddenly degrades.
This graph repeatedly shows up for different users, different devices, different locations, different networks, etc.
In this specific case, packet loss is minimal, latency is also minimal, access point strength is 5ghz.
The duration of this graph is 30 minutes, start to finish, but the drop occurs at 4-7 mins, every time.
The device supports WiFi 802.11 a/b/g/n/ac – 2.4GHz and 5GHz
Line of sight to the WiFi router does not appear to be an issue.

What types of things affect bitrate? What other information can I gather to help understand this? Does Android potentially throttle things like WiFi connectivity due to resource constraints, overheating, etc?
I have to assume it's something that my software is doing, but there's nothing obvious that I can see...
Thank you.

Dropped frames mean that your connection to the server isn't stable, or you can't keep up with your set bitrate. Because of this, the program was forced to drop some of the video frames. If you drop too many frames, you may be disconnected from the streaming server.

Bitrate is an average. As with any average, it is greatly affected by the size of the window it is averaged over. On average the temperature where I live is around 70 degrees F. But some days it’s 30 and some days it’s 120. But the average is 70. If you do daily readings you will see spikes. If you do monthly reading, you will see a sin wave, if you do yearly readings, the line will be pretty flat (not factoring in climate change).
Individual frame sizes vary massively depending on information density, motion, scene detection, and minimum key frame intervals. It’s a function of how video compression works and completely normal.
Research how video compression works. Specificity I/P/B frames and it will make sense.
Also note that available bandwidth changes very rapidly. Especially on wireless networks. And many video conferencing software will adapt to keep the call working.