text:
How can I fix this issue associated with the Facebook app's folder location and Google Photos backups?
I have an issue with a combination of the Facebook and Google Photos apps on my Pixel 4 XL.
The folder Facebook stores the images you save from it is in the DCIM folder. Photos you take with your phone camera are also in the DCIM folder, in a Camera subfolder. Google lops all content within the DCIM folder into a virtual folder called Camera, completely ignoring the subfolder structure within DCIM. So whenever you have to navigate folder structures to select an image, both the images saved on Facebook and the ones taken with the camera are shown in the same location of the virtual Camera folder - the actual subfolders are hidden by the virtual folder.
This is problematic because Google photos can't distinguish these subfolders either. The option to back up files with Google One can only be set on the virtual folder level. So, I can either back up my camera photos AND any Facebook images I've saved, or nothing. I save a lot of memes and they're cluttering up my Google photos. I want to stop backing up the Facebook images.
As far as I can see it, any of the following would solve my problem

Facebook saves to a different folder not within existing DCIM folder
Facebook allows you to select which folder to save files in
Android doesn't allow virtual folders to totally obscure physical folders, to where we could still specify not to back up the Facebook directory in Google Photos
Google Photos offers some ability to control when backups occur (eg only when charging so I could move the files before they're backed up)
Google Photos has the concept of a bidirectional sync to where local deletion/movement removes the backed up copies

None of these appear to be offered. The one path I did go down myself was installing the app FolderSync which is supposed to be able to instantly move files from one folder (DCIM/Facebook) to another (just Facebook, with Photos backup disabled on that folder). It seems to move the files right as they're saved, but it does not seem to preempt Google Photos from indexing and backing up the files first so this doesn't work. It also breaks the media index and I have to restart my phone or use an app that manually triggers a media rescan (or else all the original files in the DCIM subfolder appear as error thumbnails during media selection, and the destination ones don't appear).
There are a bunch of posts on reddit and Google support forums about this with no fix indicated. This has been bugging me for many reasons - wastes Google One storage, clutters it up so it's harder to find actual images I took (probably have 10x as many images saved from Facebook vs photos I took), didn't exist in earlier Android versions and would've been able to avoid it with control options that have since been removed, etc.

This is somewhat tedious but you can do this, provided your device is rooted: 1) setup island app (which uses work profile user) and install facebook app in it. Because work profile is a separate user, its dcim folder would also be different, and therefore, free from google one's reach (unless you setup a Google photos backup in work profile too). 2) another solution is to use storage Redirect app. It would provide a separate dcim folder for Facebook but it wouldn't be under Photos backup path. I don't know how well this would work with media indexing.

May I Offer some cheese in these trying times: using any decent file explorer, create a .nomedia file inside the Facebook folder. Google Photos will then be blind to that folder, maybe needing a restart first. The downside is that your standard ways of viewing thr folders contents won't work as well - you'll need the same file explorer to look at your downloaded Facebook images.

Use my beginner friendly Tasker project which I made based on this answer. I made some significant improvements that allow it to be used for many other scenarios beyond just moving Facebook's images, and included multiple examples within the project to learn from:

While the original version could detect if the file being moved already existed in the destination directory, it could only handle one iteration of the conflict. For example, if example.jpg were being moved, but it already existed, it would rename the file being moved to example(1).jpg. However, if example.jpg were being moved and both example.jpg and example(1).jpg already existed, it would simply overwrite example(1).jpg.

My version will run an iterative check on names which increments the suffix variable until a non-existing name is found. For example, if example.jpg is taken, it will check example(2).jpg. If that is taken, it will check example(3).jpg, and so on until an available name is found. It also correctly appends the first duplicate with (2) rather than (1).

The original version assumed the first "." in a file name was also the last "." before the extension. While this is fine for images from Facebook, it's not an ideal assumption, and breaks down when adopting the task for other uses, such as moving APKs. With the original, if com.example.app.apk already existed in the destination directory, trying to move a second copy of it would result in com(1).example.app.apk.

In addition to fixing the suffix and making it iterative, I've also changed the logic for its placement, such that it will always go before the last ".". In the above example, the apk would now be renamed to com.example.app(2).apk. This doesn't always work perfectly (consider .tar.gz and other similar cases for instance), but it does a good enough job without having to hard-code in every possible extension.

This appears to vary from device to device, but on my devices, the original version would leave behind broken references to images in gallery apps and other programs that utilize the media provider (most messaging apps that have an image selection UI) due to not correctly refreshing this data. This was not an issue for moving images out of a directory containing a .nomedia file, but caused issues if you wanted to use it in a directory where you didn't want or couldn't have a .nomedia file (such as automatically moving downloaded images out of /sdcard/Download/).

Tasker's Scan Media action seems to act in wildly different ways depending on not only the Android version, but also the vendor variant you're using. I've fixed the issue on my devices (and hopefully many of yours) by running a Scan Media action on not only the file in it's destination directory, but also on the original file path (referencing the file that's no longer there).

I also updated variable names for clarity, and rather than using events that trigger when entering or exiting apps, I've set it to run on a File Modified event monitoring the source folder, with the event set to Closed Write. This works for most purposes, but breaks in some cases. You can fix most issues by either using a different event parameter (such as Create, Modify, or Move To) or by using stricter regex in Action 3 of the task.

 I've heard that devices with slower storage (or slow external SD cards) can have issues with this if files take too long to write. In that case, you may have to experiment with adding delays or using different methods to trigger the task.

I'm attaching not just the task here, but the entire project I've created, containing multiple copies of the task for various use cases, and their respective profiles to trigger them, so that beginners who are new to Tasker can easily get started using this task and have some examples to reference when adopting the task to their own needs.
The examples included in this project are:

When Facebook downloads an image to /sdcard/DCIM/Facebook, move it to /sdcard/Pictures/Facebook.
When Samsung Notes saves an image to /sdcard/DCIM/Samsung Notes/, move it to /sdcard/Pictures/Samsung Notes/. (This works, but Samsung Notes will claim it failed to save the image, due to it checking for the image after it has already been moved by Tasker.)
When you create a GIF using Smart Select, move it from /sdcard/DCIM/GIF/ to /sdcard/Pictures/Smart Select GIFs/.
When you export an APK from ReVanced Manager to /sdcard/Download/APKs/Original/, move it to /sdcard/Download/APKs/Modded/.
When a new file is detected in /sdcard/Download/ . . .

if it's a download from Craiyon, move it to /sdcard/Pictures/Craiyon/
if it's an APK, APKM, APKS, or XAPK file, move it to /sdcard/Download/APKs/Original, unless it is base.apk (I leave that file in Download since I use it for other things.)

Remember to first create the source and destination directories before testing the examples. I also encourage you to check Action 3 in each example task (some of them use simple matching and others use regex) for a better understanding of how they work.
Now that that's out of the way, here's the project. You can import it directly to Tasker from there, or download it as an XML. If you choose to download it, save it in /sdcard/Tasker/projects/. You can then long press on the home icon on the bottom left corner of Tasker to import the project.
Unfortunately the entire XML is too long to post here directly, but for the sake of keeping this answer as complete as possible, I'm including the XML for just the Facebook task below. I strongly recommend that beginners import the entire project using the link above however, so you can get an idea of how to customize the task for your own needs.
The Facebook task:
<TaskerData sr="" dvi="1" tv="6.0.10">
    <Task sr="task3">
        <cdate>1489093858387</cdate>
        <edate>1677367714628</edate>
        <id>3</id>
        <nme>Move Facebook Images</nme>
        <pri>6</pri>
        <Kid sr="Kid">
            <launchID>3</launchID>
            <pkg>me.regalstreak.movefb</pkg>
            <vTarg>21</vTarg>
            <vnme>1.0</vnme>
        </Kid>
        <Action sr="act0" ve="7">
            547
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act1" ve="7">
            547
            <Str sr="arg0" ve="3">%destdir</Str>
            <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act10" ve="7">
            37
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%fileexists</lhs>
                    <op>12</op>
                    <rhs></rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act11" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act12" ve="7">
            888
            <Str sr="arg0" ve="3">%suffix</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act13" ve="7">
            590
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act14" ve="7">
            547
            <Str sr="arg0" ve="3">%namelen</Str>
            <Str sr="arg1" ve="3">%currentfilename(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act15" ve="7">
            890
            <Str sr="arg0" ve="3">%namelen</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act16" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename(%namelen)</Str>
            <Str sr="arg1" ve="3">%currentfilename(%namelen)%null()(%suffix)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act17" ve="7">
            592
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act18" ve="7">
            135
            <Int sr="arg0" val="0"/>
            <Int sr="arg1" val="10"/>
            <Str sr="arg2" ve="3"/>
        </Action>
        <Action sr="act19" ve="7">
            38
        </Action>
        <Action sr="act2" ve="7">
            412
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Str sr="arg5" ve="3">%filelist</Str>
            <Int sr="arg6" val="1"/>
        </Action>
        <Action sr="act20" ve="7">
            400
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
        </Action>
        <Action sr="act21" ve="7">
            459
            <Str sr="arg0" ve="3">%currentfilepath</Str>
        </Action>
        <Action sr="act22" ve="7">
            459
            <Str sr="arg0" ve="3">%destdir%currentfilename</Str>
        </Action>
        <Action sr="act23" ve="7">
            888
            <Str sr="arg0" ve="3">%counter</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act24" ve="7">
            40
        </Action>
        <Action sr="act25" ve="7">
            37
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>0</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act26" ve="7">
            548
            <Str sr="arg0" ve="3">No memes? Sad.</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act27" ve="7">
            43
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>1</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act28" ve="7">
            548
            <Str sr="arg0" ve="3">%counter meme moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act29" ve="7">
            43
        </Action>
        <Action sr="act3" ve="7">
            547
            <Str sr="arg0" ve="3">%suffix</Str>
            <Str sr="arg1" ve="3">1</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act30" ve="7">
            548
            <Str sr="arg0" ve="3">%counter memes moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act4" ve="7">
            547
            <Str sr="arg0" ve="3">%counter</Str>
            <Str sr="arg1" ve="3">0</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act5" ve="7">
            39
            <coll>false</coll>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%filelist()</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act6" ve="7">
            590
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act7" ve="7">
            547
            <Str sr="arg0" ve="3">%pathlen</Str>
            <Str sr="arg1" ve="3">%currentfilepath(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act8" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act9" ve="7">
            342
            <se>false</se>
            <Int sr="arg0" val="4"/>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Str sr="arg2" ve="3">%fileexists</Str>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="1"/>
        </Action>

            <cls>com.facebook.katana.LoginActivity</cls>
            <pkg>com.facebook.katana</pkg>

    </Task>
</TaskerData>


text:
Can I replace Huawei 40W supercharger with third party charger but still provide supercharging feature?
Can I replace the Huawei 40W supercharger with a third-party charger but still provide a supercharging feature? I don't know what's those fancy things, but electronic isn't rocket science, but I tried to connect a general 45W charger (non-Huawei), my mate 20 pro only show "quick charging", anyone has an idea why?

According to some specs I found the Huawei charger provides 40W at 10V: 10V/ 4A. I am not sure if this is provided via USB-PD or a proprietary implementation. What voltage levels + ampere does your 45watt charger provide? Also make sure you are using an active USB-C cable that supports that much ampere.

I am using this one: https://www.momax.net/product/one-plug-65w-3-port-gan-charger/

Assuming your Huawei phone only supports charging using voltages up to 10V this charger can only provide 9V at 3A = 27 Watt. The other voltage levels are higher than 10V. But as a first test I would use the USB-C cable from the Huawei charger and use it with that charger just to see if it makes a difference.

No
There are three parts to any charging system other than the old 5V,2A charging :

The charging algorithm, which dictates the power to be drawn at various stages of battery charging. It runs on the device incorporated in OS, including low level changes at kernel level. Note that these are proprietary and hence the sales pitch for different OEMs. (See the charging algorithm
(Source
) of an Anker power bank to get a sense of how complex it can be).

The charger which responds to the requests made by the device and varies voltage or current or both as desired by the algorithm.

USB cable that is capable of carrying the power across from charger to the device. This is the easiest to change, if you know the power requirements.

Unless these three are perfectly aligned, you can't get the desired charging performance. That's why OEMs always insist on using their chargers and cables. Without getting into the specifics of the third party charger you are using (non Huawei), it's obvious that it lacks the capability to meet the demands made by the algorithm. Being a 45 W charger, the device does recognize that it is providing high power and hence displays "quick charging" but cannot super charge.you will get the same results even if you try with any non Huawei charger rated say at 80 or 100W.
Related

Android phone "charging slowly": How to make it faster

Charging "hesitation" with Pixel

Nowadays all three parts are covered by the USB power delivery spec 3.0. But it seems like Huawei still uses a  proprietary charge system as the 10V indicate which is not included by the USB PD spec.

@Robert 1.it's the implementation of specs in hardware we are discussing 2. I am not updated with latest Huawei tech but in the past they always implemented their own standards 3. Even Pixel which uses USB specs has it's own share of problems in choosing third party chargers 4. USB PD certification costs money, one more reason for OEMs to ditch it. Even Apple which claims to stick to standards doesn't go in for certification

source: Stack Exchange

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

sort: votes


text:
Stop App from controlling the brightness of my screen
I was on a flight watching movies on the United App. Around 8pm my screen dimmed. It dimmed a lot, to the point of being unwatchable.
Pulling the notification pane (where the brightness slider is displayed) would not let me move the brightness slider. I thought that maybe the auto-brightness was screwing with me. I went to settings, shut off the auto-brightness, and manually turned up the brightness. As soon as I re-entered the United App the brightness fell to the same level.
If I had to guess, the App turned down the brightness to keep you from disturbing other people. The problem is that the levels were too low.
How do I override the App so that I can actually see the movie? Is there a permission that I can change or another App I can use to turn the brightness back up? (Modify system setting is set to "Not Allowed")

try this app and set it to 100%
https://play.google.com/store/apps/details?id=com.arogulin.brightness
I have a similar situation with my adaptive controler. i believe my proximity sensor is f....

Thanks, I'll give it a try.

It did not work. The brightness is still reduced when reentering the United app.

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


text:
My phone turned off while i was recording audio. How do I recover the file?
I recently was recording audio (an interview) by using the native Voice app on my Samsung Galaxy S6. I paused the recording without having the time to save it. My phone turned off automatically and then restarted (it happens sometimes).
When I tried to go back into the app, the file was missing. I searched in the audio files folder, to no avail. I'm under the impression that the file must be somewhere even though it was not saved, because I see that there is a difference between the remaining space on my hdd before and after the recording (which corresponds to approximately 150Mb).
I downloaded several recovery apps off of the Google Store, but I wasn't lucky.
Has anyone experienced something similar and if yes, did you find a solution?
Thanks!

Can you find a LOST.DIR folder in your internal storage? Corrupted or orphaned files are often stored in that folder..
There's a problem though..  they’re renamed with seemingly random strings of numbers and any file suffixes are stripped. Download a lost.dir file viewer or something and you're good to go..
HOPE IT HELPSSS...


text:
How do I manipulate the filesystem of my Android smartphone from PC without restrictions? Can I do it on an non-rooted phone?
I want to be able to copy/move/erase/modify files on my phone and transfer them back and forth on my Windows 10 PC. Without limitations hopefully.
My phone ( Meizu Note 8 ) is not rooted, and I'm not sure if I can root it. It doesn't seem to be very popular.
I got the vague impression that I need ADB drivers which I also couldn't get, and I don't know what software to use after. This is the best I found, but it's far from official and also doesn't work: no installer, and the .inf doesn't have the install option in the context menu, which usually means the driver is not compatible.

What "limitations" are you talking about? If you are curious about ADB driver security you can use the one Google includes in it's Android SDK. For Windows you just have to modify the INF file(s) and add the USB ID of your device to it.

What filesystem you are talking about? You can access external shared storage (/sdcard) and mostly OS files (in /system, /vendor) from ADB shell or MTP. Also there are multiple alternatives to both of these native methods e.g. FTP: https://android.stackexchange.com/questions/91900. But you cannot access /data which holds a large part of OS configurations and apps data: Why are superuser permissions needed to access /data partition?.

I wanted to save/manipulate app data. Seems rather inacessible.

To access app data you must be rooted.
When rooted you can access the /data folder with adb. You do adb shell.
Then su to access superuser rights and then you can access /data.


text:
Android 11 - Audio on Pixel 3a wired headphones very quiet
I've just updated my Pixel 3a to Android 11 beta

and listening audio from Youtube using the original device's headphones
I noticed that, even with media volume set to maximum,
the sound is much more quieter than before.
I tried to disable absolute volume, w/o any result.
Any workaround? (I'm not gonna root my phone)

I'm a bit late to the party but I have the same issue. I installed a volume booster and it seems to be doing the trick just fine. There are a number of them on google play, not sure what the best is.


text:
Retrieve data from not working BlueStacks
An old version of BlueStacks showing the following error and now I can't access my data:

BlueStacks App Player.
Error: CodeTitans.JSon.JSonReaderException: Invalid token found('<' at 1:2)

Can this error be fixed? Otherwise, can I recover the data?

The storage used by this virtual machine should be a vdi file.
You can start with BSTweaker and its file manager, if the engine starts enough to enable file browsing you should just be able to recover your files.
Also I'm not sure for old version of BStweaker, for new one the file manager is launched from the info tab.

If this isn't enough, you have to find a way to open it. this question may be of some use. But it is best if first option works.


text:
A cheap android phone killed my sd cards when I formatted them to internal, any way to get them back?
I bought an Ulefone Paris 2015 Chinese phone, a few years ago, it came with a bloated/malware OS, I put in a Lexar SD card, formatted as internal, something didn't work right (I don't remember), I tried again with another Lexar but same card, also the same, I stopped doing that.
Since then the cards have been read only and I have thrown everything I can at them to format, except Linux command line, because I'm on Windows and Mac, but always gives errors and that it's read only (it's not plugged on my mac from a SD adapter so there is no lock switch, it's coming from a USB adapter that came with the card).
I rooted the phone and put on a normal android 6.0 and it doesn't format the phone anymore either, they were brand-new cards, but something messed them up from that phone in its original state.
Is there anything I can try before I throw them out? They mount fine and show android files, which pop back up when I delete, because read only, but that original garbage android formatted them in a messed up way, so that's the key, something with Android.

As the cards were brand new it could be that they were simply forged (claimed to have more capacity than flash chips inside, such forged cards are very common). Therefore before using any bought sd-card you should always test them using a software like "h2testw" which writes the complete sd-card and then checks if the card is able to read everything correctly. Do the sd-cards show up e.g. in disc manager of Windows or MacOS? Also try different sd-card adapters.

I'm pretty sure they were legit lexar 128gb cards, came in proper package and with a little usb dongle you could put card into, a fake wouldn't put so much work into them, also, they show up, mounted, in mac and in disk manager, but if I try to format or verify in mac disk utility I get error code 8 (read only), I tried command line, I can't do anything with them except view the contents of the drive (what was on my phone at the time).

https://android.stackexchange.com/questions/221269/how-to-format-sd-card-that-has-been-formatted-as-internal-storage-for-android#comment286399_221269

it's a very common problem it seems, read only cards, many posts online, I tried many solutions and they didn't work, I will check out your relevant links alecxs, looks like I may have to set up a linux vm.


text:
Why are there 2 boot partition on mediatek devices, both of which contain the same preloader?
On Mediatek devices, the same preloader.bin is in mmcblk0boot0 and mmcblk0boot1, why does it need to be in both partitions?

This is not always the case: https://android.stackexchange.com/a/218346/218526. But if the second boot area partition had no use, OEM might have used it for bootloader backup. Did you hash both partitions and they are 100% identical?

On the link you mentioned, where does it explain by why the preloader needs to be in both partitions? Yes the preloader.bin found in both partitions are identical.

The link explains that both partitions are not identical. Search the role of idme print command on MTK devices.

Btw bootloader partitions have a backup copy usually e.g. aboot and sbl on Qualcomm devices. This is to make sure if updating bootloader fails for some reason (or the partition geta corrupted for some other reason, though not very likely), device shouldn't be bricked. So a duplicate bootloader partition isn't strange, and nothing to worry about.

Both the preloader BIN files in the mmcblk0boot0 and mmcblk0boot1 partitions are identical. The reason for this is in case the mmcblk0boot0 becomes corrupt, the device is still able to boot up.

You missed my statement: "OEM might have used it for bootloader backup". So I already agreed with what you are saying. But I'm dead sure that not all MTK devices have preloader (or bootloader) on both boot area partitions. I have physically analyzed more than one devices where raw mmcblk0boot1 partition contained device specific information like MAC address, serial number etc. idme print dumps that information to human readable form.

When you were analyzing the mmcblk0boot1 partition , did you use sp flash tool to make a dump of that partition?

Why would one need a special tool just to create partition dump? Why not simply dd? // Btw I checked hash of both partitions, ran strings on both, watched strace idme print running which paths it read, studied somewhat how /proc/idme/ works. So I have no doubt at all in what I'm saying.

Very unlikely (0.000001% chance) the preloader files between mmcblk0boot0 and mmcblk0boot1  are not identical. Which mediatek device did you test on?

May I ask why 0.000001%? Is this a standard? // The one I tested when writing the answer linked in first comment was Amazon KFFOWI (Ford) tablet.


text:
Custom font in AnkiDroid in Android 9? (Kanji Stroke Order)
Short version
How to use custom font, namely Kanji Stroke Order, in cards in AnkiDroid which is running on Android 9?
Full version
I'm learning Kanji characters. It's important to learn also how to draw them - the order of strokes. This is shown in Anki cards by using a special font - Kanji Stroke Orders - and simply printing the character in card with this font. However, I'm unable to make AnkiDroid to use the font, but it was working on my previous device (Android 5.1).
The deck describes that the font file should be copied to fonts sub-directory of AnkiDroid directory. And that it might be needed to remove version part of file name. So I copied the fonts to following paths:

/storage/emulated/0/AnkiDroid/fonts/KanjiStrokeOrders_v4.002.ttf
/storage/emulated/0/AnkiDroid/fonts/KanjiStrokeOrders.ttf

Doesn't work (the character is drawn simply with Arial or something like that).
I found another way - Installing Fonts in Anki documentation. This guide describes following approach:

Add underscore to the font file name.
Copy it to "collection.media" sub-directory of "User 1" sub-directory of AnkiDroid directory. I couldn't find the "User 1", but there was "collection.media" in AnkiDroid directory, so I used that.
Add @font-face { font-family: myfont; src: url("_arial.ttf"); } to style section of a card and use font-family: myfont in style of the kanji text block.

So what I added to the style section is:
@font-face
{
  font-family: KanjiStrokeOrders;
  src: url("_KanjiStrokeOrders.ttf");
}

Then I added to card text:
<span style="font-family:KanjiStrokeOrders;">{{Expression}}</style>

And copied the font files to:

/storage/emulated/0/AnkiDroid/collection.media/_KanjiStrokeOrders_v4.002.ttf
/storage/emulated/0/AnkiDroid/collection.media/_KanjiStrokeOrders.ttf

And just in case, I also created files:

/storage/emulated/0/AnkiDroid/fonts/_KanjiStrokeOrders_v4.002.ttf
/storage/emulated/0/AnkiDroid/fonts/_KanjiStrokeOrders.ttf
/storage/emulated/0/AnkiDroid/collection.media/KanjiStrokeOrders_v4.002.ttf
/storage/emulated/0/AnkiDroid/collection.media/KanjiStrokeOrders.ttf

Still doesn't work, the text replacing {{Expression}} placeholder is still rendered in Arial (or similar).
Other notes

The /storage/emulated/0/AnkiDroid directory was already created and contains Anki data, similar to what is in ~/Anki/User 1 on my PC (Linux, Ubuntu).
I'm sure the cards/notes are correct (correct format, content, etc.), because it works on PC and worked on my older Android 5.1 phone (I used export/import to migrate and for backups). (I don't rember where I put the font file in my previous phone; the device screen died and so I cannot check now.)
It seems that the AnkiDroid actually see the font; in settings / Appearance / Default font, there actually is option to select Kanji Stroke Orders (all four versions - with/without underscore and with/without version suffix). When I choose it (and set Default font applicability to Always), nothing change. But the font is also available under Browser and editor font - when I set this one to Kanji Stroke Orders, it will change questions and answers in Card browser and field values in note editor. So the font seems to be recognized by AnkiDroid and working.

Have you tried all of these debugging steps? https://github.com/ankidroid/Anki-Android/wiki/FAQ#i-followed-the-instructions-in-the-manual-but-i-still-cant-get-my-custom-font-to-work

@NicolasRaoul Thanks for pointing that, I totally missed the page! So I started thoroughly checking one point after another. At point 5 - I already tried the PC version, but when I tried AnkiWeb now, it wasn't working. So I opened developer console in Firefox - and it contains errors like "glyf: Bad glyph flag (111), bit 6 must be set to zero for flag 529" for the font - it seems there's some problem with it. So I searched for another version (4.004 at https://www.nihilist.org.uk/ ) - and it's working (looking bit weird, but usable). So thanks a lot for pointing the way!

@NicolasRaoul But I'm not sure how to handle this question now. Should I delete it? Or create an answer that the problem is with the font and Android 9 is unable to open it unlike 5? Or should you create answer from your comment?

Just post your own answer, and accept it. It might be useful to others :-)

Short answer
The problem was in the font file. In case of Kanji Stroke Order, I used version 4.002 while newer version (4.004 when writing this answer), which can be downloaded at www.nihilist.org.uk, is working.
Long answer
I somehow missed faq when custom font is not working on AnkiDroid - it's good idea to check all of them.
My problem would be caught at point #9 (try different font) or #10 (if #9 is working, it means my font is not supported), although I found it already during test #5 - test on both Anki Desktop and Anki Web. As stated in question, I already tried the desktop, but until now I didn't try the web version. Turns out that web version wasn't working, but I could open developer console where I found out that the font file is referenced correctly, but browser has an issue with it.
Moral of the story:

AnkiDroid is using web browser functionality to display cards. Whether something on card (e.g. a font) works depends on the device.
When trying troubleshooting steps, do them all and as exactly as possible. I was really tempted to skip Anki Web (I already proved that my cards and font are working in desktop version) which actually pointed me in the right direction (you can open developer tools in desktop web browser while there is no such thing in AnkiDroid itself).


text:
Stuck in system boot loop after TWRP installation
I have a Samsung Galaxy S7 and tried installing the custom ROM LineageOS because what could go wrong?
Anyways I followed this guide which makes you install TWRP 3.4.0-0 under the Installing a custom recovery using heimdall section.
I did that and I can (successfully?) boot into TWRP. However when tapping Reboot -> System or trying to boot into my standard android system I am stuck in a boot loop where The Samsung logo reappears every 5 seconds or so.
Here is what I've tried:

The command  dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/fota from here
The command dd if=/dev/zero of=/dev/block/bootdevice/by-name/misc bs=256 count=1 conv=notrunc from here
Wiping my entire phone from TWRP

None of those things made any difference.
I really just hope that I didn't brick my phone.

https://android.stackexchange.com/q/214902
https://android.stackexchange.com/q/225021 if i understand your question you didn't install lineageos but want to boot stock ROM? that will fail for various reasons. continue installing lineageos and format userdata partition


text:
Which files do I need to flash with fastboot to get a stock device state?
I have downloaded the stock ROM for my Mediatek (MT6580) device. Extracting the files leads me to a couple of *.img files and SP Flash Tool. I am currently on a Linux distro and have adb and fastboot packages installed, and am not able to use the SP Flash Tool. I was wondering which files do I need to flash to get a factory version of the phone.
fastboot getvar all shows these outputs
(bootloader)    max-download-size: 0x8000000
(bootloader)    partition-size:userdata: 32000000
(bootloader)    partition-type:userdata: ext4
(bootloader)    partition-size:cache: 10000000
(bootloader)    partition-type:cache: ext4
(bootloader)    partition-size:system: 5d000000
(bootloader)    partition-type:system: ext4
(bootloader)    partition-size:metadata: 2560000
(bootloader)    partition-type:metadata: raw data
(bootloader)    partition-size:nvdata: 2000000
(bootloader)    partition-type:nvdata: ext4
(bootloader)    partition-size:tee2: 500000
(bootloader)    partition-type:tee2: raw data
(bootloader)    partition-size:tee1: 500000
(bootloader)    partition-type:tee1: raw data
(bootloader)    partition-size:frp: 100000
(bootloader)    partition-type:frp: raw data
(bootloader)    partition-size:expdb: a00000
(bootloader)    partition-type:expdb: raw data
(bootloader)    partition-size:logo: 800000
(bootloader)    partition-type:logo: raw data
(bootloader)    partition-size:para: 80000
(bootloader)    partition-type:para: raw data
(bootloader)    partition-size:keystore: 800000
(bootloader)    partition-type:keystore: raw data
(bootloader)    partition-size:secro: 600000
(bootloader)    partition-type:secro: raw data
(bootloader)    partition-size:oemkeystore: 200000
(bootloader)    partition-type:oemkeystore: raw data
(bootloader)    partition-size:recovery: 1000000
(bootloader)    partition-type:recovery: raw data
(bootloader)    partition-size:boot: 1000000
(bootloader)    partition-type:boot: raw data
(bootloader)    partition-size:lk: 60000
(bootloader)    partition-type:lk: raw data
(bootloader)    partition-size:seccfg: 40000
(bootloader)    partition-type:seccfg: raw data
(bootloader)    partition-size:protect2: a00000
(bootloader)    partition-type:protect2: ext4
(bootloader)    partition-size:protect1: a00000
(bootloader)    partition-type:protect1: ext4
(bootloader)    partition-size:nvram: 500000
(bootloader)    partition-type:nvram: raw data
(bootloader)    partition-size:proinfo: 300000
(bootloader)    partition-type:proinfo: raw data
(bootloader)    partition-size:preloader: 40000
(bootloader)    partition-type:preloader: raw data
(bootloader)    off-mode-charge: 1
(bootloader)    warranty: no
(bootloader)    unlocked: yes
(bootloader)    secure: no
(bootloader)    kernel: lk
(bootloader)    product: RS615
(bootloader)    version: 0.5
all: Done!!
finished. total time: 0.012s

What makes it impossible for you to use the SP Flashtool? I remember it works fine on Linux (if you have the linux variant of it), having used it with a MTK device several years ago. AFAIR I've followed this guide back then.

Running this distro using a live usb thumb drive. My hard disk drive is busted unfortunately. I have downloaded all the adb and fastboot packages properly on this distro, and seems to be working fine. Are there ways to do it without the flash tools?

Im running the distro on my RAM and running from a live USB drive, since hdd is busted. I was able to flash boot.img and recovery.img earlier.

okay I also found this https://android.stackexchange.com/questions/125599/flash-stock-rom-mediatek-over-fastboot answer here. Dont know how to apprehend it properly. Perhaps a better guide would be appreciated. Athough my question and the other one mentioned here are of the same type but without an acceptable answer.

some partitions are important and must not erased like preloader secro seccfg nvdata nvram lk logo and some of them are device specific therefore not included in downloaded stock ROM https://blog.csdn.net/zhangbijun1230/article/details/81092381

Thanks. A couple hours back I tried doing fastboot flash userdata userdata.img and it said that filesystem limit reached or something like that or filesystem limit exceeded. The userdata file was ~ 28 mb. Wish there was a way to get around that. If userdata can't be flashed, means system can't be flashed as well. I swear I have the worst luck of all. Checkmate on all sides. Dang it.

have you tried flashing system? flashing userdata is not important (it's wiped anyway on factory reset) you can just fastboot format:ext4 userdata


text:
Samsung Galaxy A11. Turn on 64 bit node?
I wanted to purchase a 64-bit android smartphone. I looked at the processor used on the Galaxy A11. It is a 64-bit ARM Cortex-A53. And I bought this phone.
Looks like I made a mistake. Android on the Galaxy A11 runs in 32-bit mode.
Is it possible to switch the phone to 64-bit mode?

Why do you think that your phone is running a 32bit OS?

@Robert. Thanks for your interest.
1. It says so here: pulse2.com/samsung-galaxy-a11-pros-and-cons "The Galaxy A11 runs in 32-bit mode in order to keep the memory usage low."
2. This https://play.google.com/store/apps/details?id=com.evo.inware program detects "armeabi-v7a", "armeabi". And no arm64-v8a.
3. Programmatically, in Android studio "Build.SUPPORTED_ABIS;" contains {"armeabi-v7a", "armeabi"}. And "Build.SUPPORTED_64_BIT_ABIS" is empty.

Well then your phone really has only 32 bit support. The main problem is that you can't switch the phone to 64bit Mode because every executable file of your installed OS is 32bit. Changing would require installing a complete new OS which means you need to unlock/root the device and fine a custom ROM that is built to support 64bit.


text:
Install TWRP in Essential Phone(PH-1): No such partition
I have unlocked bootloader, and in bootloader, I follow the instructions on TWRP site:

But I failed with No such partition.
Here is my log:
➜  platform-tools ./adb shell getprop ro.boot.slot_suffix
_b
➜  platform-tools ./fastboot flash boot ~/Downloads/twrp-3.2.3-0-mata.img
Sending 'boot__b' (48712 KB)                       OKAY [  2.086s]
Writing 'boot__b'                                  FAILED (remote: 'No such partition.')
fastboot: error: Command failed
➜  platform-tools ./fastboot --set-active=_a
Slot _a does not exist. supported slots are:
a
b
➜  platform-tools ./fastboot --set-active=a
Setting current slot to 'a'                        OKAY [  0.162s]
Finished. Total time: 0.162s
➜  platform-tools ./fastboot flash boot ~/Downloads/twrp-3.2.3-0-mata.img
Sending 'boot__a' (48712 KB)                       OKAY [  1.145s]
Writing 'boot__a'                                  FAILED (remote: 'No such partition.')
fastboot: error: Command failed

Could anyone please give me some hints about that problem?

fastboot flash boot_a ~/Downloads/twrp-3.2.3-0-mata.img

If you're flashing to partition a, use boot_a. This worked for me on my Essential PH-1.
fastboot flash:raw boot_a


text:
My sd card is not connecting to my Android phone
My brother purchased a new sd card for my Android phone (it's an alcatel onetouch yh I know it's old) to increase memory. Its a 8 gb card, but my phone still says low on space when I try to download any apps.There was no notification telling me that an sd caed was inserted either. I tried selecting sd card and it shows 8 gb available but I still can't download apps. Then I switched to internal memory just to see if that would help but nothing happened. Plz someone help!

The information provided is less.. so I'm assuming that the sd card is detected and is working and.. you're trying to download apps from google play store..
Lemme explain... The apps downloaded are automatically stored in your internal storage so even if you sd card has space available it won't be used.
What you can do for this..
try to delete useless stuffs and free up space from your internal storage (I'd recommend you to download Files by Google for this)
and copy all the videos from your internal storage to the sd card..
HOPE IT HELPS.. (^_^)

Thank you but I tried that a million times and it wasn't working I got a little frustrated and factory reset my phone and now it works wonderfully but again thank you for taking the time out of your day to try and help me


text:
WhatsApp groups on new phone
I upgraded to a new Android phone and plan to use WhatsApp on this phone with my old number. For the purposes of this question, I do not have my old phone with me, and do not have a chat backup (actually, my backup got corrupted somehow, long story, but let's assume I don't have access to any backup/history).
Now, this whatsapp account was part of several groups.

Is there any way I can send a message to those groups? Since my number didn't change, I should be still part of the groups but I don't see any.
If someone sends a message on that group, will I receive it on my new phone? (The same way I'd receive a DM from a single person who still has my old number)
Some of these groups required admin permission to send messages, which I previously had. Would I need to ask for that permission again?

backup got corrupted somehow dont worry
you just have to install whatsapp in your new phone and login with that old number you will get your old groups as it is dont worry just install whatsapp (its happen with me many times :)

Yes, but I'm not seeing groups in my chat section; and the messages others are sending on the group are also not being received by my new phone.


text:
How to save an HTML page from a web site using Chrome
I have a web site that has some simple HTML pages with no images, no external CSS or JavaScript references. So the whole HTML page is a single self-containing file that has HTML code, together with inline CSS and JavaScript code. In other words, once I copy the HTML file into my Downloads folder on my mobile device, I can use it (while being offline) by loading the following into the Chrome browser:
file:///storage/emulated/0/Download/my_page.html
The problem is that I cannot download the web page from my web site into the Downloads folder using Chrome on my mobile device: When I go to:
https://my-site.tld/xxx/my_page.html
and display the page in the mobile browser, I can use the download (⭳) button on Chrome browser's tab; however it creates an .mthml file instead, with a name like this:
Title of My Page.mhtml
When I try to open this file while my mobile device is offline, none of the interactive content on the page (e.g., buttons, input boxes, etc.) is enabled. Note that my page contains interactive content that is processed locally by JavaScript contained in the page.
Currently, the only solution is to connect my mobile device to my PC (using USB for example) and copy the .html file from my PC to the mobile's Downloads file. Once I copy the .html file and open it on my mobile device using the file:///... URL as given above, the page's JavaScript works as expected (contrary to the .mhtml version).
Assuming that the .html page on my-site is updated frequently, it is tedious to download it to PC and copy over my mobile phone when I need an update. There must be a more direct way.

The simplest thing I can think of is to open the file you want to save as source code, which you can do from Chrome Android by prepending view-source to the URL, like so.
view-source:https://my-site.tld/xxx/my_page.html

You can then either copy and paste this code into a local file, or use the share button to open it with a compatible app of your choosing.
If this seems like too much of a pain, you might consider doing something like using PHP to determine whether the file should be viewed or downloaded. For example if the IP address of the request matches your phone, download instead of displaying the file.
<?php
/**
 * File url: https://my-site.tld/xxx/my_page.php
 *
 */

$remote_address = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_SANITIZE_STRING);

if ($remote_address === '56.57.58.59') {
    header("Content-Disposition: attachment; filename=\"filename.html\"\n");
    header("Content-Type: text/html\n");
}

?>
<!-- Begin actual page content -->
<!DOCTYPE html>
<html lang="en-US">
    <meta charset="UTF-8">
    ....

Conversely, you could also simply create a separate page to allow a download regardless of the requesting IP address.
<?php
/**
 * File url: https://my-site.tld/xxx/my_page-download.php
 *
 */

header("Content-Disposition: attachment; filename=\"filename.html\"\n");
header("Content-Type: text/html\n");
readfile('path/to/file');

Additional information about the Content-Disposition header may be found in the Mozilla Developer Docs. It's not the only resource, of course, it's just my personal favorite.

Thanks Jose. The view-source, select all, copy and paste (into Total Commander's editor) method is an improvement for me...

My pleasure, glad to hear I could be of some help

Please note: I upvoted this answer. But, it is not an accepted answer for me, because I am seeking for an answer on how to save an HTML file onto the file system by using  only Chrome and not any other additional tool.

It won't work if the page is a few hundred lines.

View source shows the raw HTML that's coming from the server and not the interpreted rendered version of the page. If the page is heavy on js then the difference can be significant.

Good to know but as others have noticed, copying only works on small sources. And "You can then [...] use the share button to open it with a compatible app": the share button simply forwards the URL with the view-source: prefix, so there was no point opening it in Chrome - this alternative basically says don't use Chrome but some other program.


text:
Android 10 Desktop mode on Linux laptop
Recently I received the update to Android 10 for my LG G8s ThinQ and one of the things that I was waiting to test was the desktop mode. The desktop mode is working fine when I am connecting my phone to an external screen but when I want to use my Linux (Ubuntu 18.04) laptop as the external screen the phone doesn't recognize it and just shows the normal file transfer.
How I can use my linux laptop as the external screen and keyboard and mouse?

Notebooks usually don't have ports (HDMI, display-port) for display-input, only display-output for connecting an external monitor/TV.
If you want to remote-control your phone from your Linux laptop I recommend the software scrcpy to you. It let you use mouse and keyboard from a PC and see the display of the smartphone on your monitor/laptop display. The connection uses the USB cable, you only need to activate Android Developer Options and the Android Debug Bridge (adb).

Is this it? https://www.xda-developers.com/scrcpy-control-android-on-pc/ and this is the github for it https://github.com/Genymobile/scrcpy

@RichardChambers Yes that is the software I had in mind.


text:
Can WhatsApp be used without granting contacts permission?
I'm trying to install WhatsApp, but I'm obviously uncomfortable about serving up my entire address book for Facebook to trawl through.
I've found plenty of posts from a few years back saying it is possible, but I'm wondering if something has changed.
On opening the app and going to the 'chats' screen, I'm greeted with a screen saying "To help you message friends and family on WhatsApp, allow WhatsApp access to your contacts" along with a link to open my settings.
If I push the green 'chat' button in the bottom right, I get a popup with the same message. If I hit the 'not now' option, it closes the popup and puts me back on the original screen.
There doesn't seem to be a way forward here. Does this app just strong-arm you into uploading your contacts list in order to use it? Or is it potentially a more phone-specific issue?

As far as I know yes, but then you can't send messages on your own, only reply to existing messages.

The technical answer is no, there is no way to send a message to a new person without giving the app access to your contacts.  You can, in certain cases, receive messages, but only if someone else who has allowed WhatsApp full contact access has first added you as a contact on their device.
There are two workarounds:

The obvious, though least helpful, solution is to simply use another device and have that device be your WhatsApp device.  You give WhatsApp full access to that device's contacts, but have no contacts in it for WhatsApp to siphon clean.
Recent versions of Android allow multiple users and allow easy switching between them.  Each user is essentially its own self-contained ecosystem with access to its own set of apps, accounts, and permissions.  You can have a second user on your phone that has no contacts, so giving Whatsapp on that account access to the contacts is no problem.  This is the solution I use.

While it doesn't solve the problem of software vendors using bad faith methods to get inflated permissions, it does limit it.  And if enough people take advantage of Android users to contain WhatsApp, then we may see change there.

Try installing Shizuku and App-Ops from Play Store.
And activate Shizuku using PC or root and activate App-Ops via Shizuku.
Then in App-Ops, navigate to WhatsApp, and after pressing it, go to contacts permission and choose to ignore it.
This will trick WhatsApp where you have given it contacts permission but with null data.
OR
You can just do it via ADB or a rooted terminal in your phone using adb shell to access your phone interactive shell and seeing the $ sign.
Then write this code
appops set com.whatsapp CONTACTS ignore

to ignore contacts permission in WhatsApp where com.whatsapp is the WhatsApp package name.
And if you want to chat with someone who is not in your chats, just type the chat link in notes or browser, then open it via WhatsApp.
It's something like https://wa.me/+15555550155
where +1 is the contact country code (BECAUSE YOU MUST TYPE THE COUNTRY CODE BEFORE THE NUMBER).
You can also type the country code without the + sign as this:
https://wa.me/15555550155

I can confirm that this works with an Android 13 / Samsung One UI device. Great!


text:
Sleeping Cat, Mint Room, and Giraffe. Anyone know what these files are?
In trying to make room in storage on my LG phone, I ran across 3 "apps" or files that I have never downloaded nor heard of and I have no idea how to find out what they are. Sleeping Cat, Mint Room, and Giraffe are their names, my question is if anyone knows what they could be and if I can delete them safely.

Please check their package name by following this question

I don't know the location of this files and also the filetype, but you can try to rename the files and reboot and see what happend, if you face any problems by using an app you can rename it to the original filename.


text:
Will changing app shapes be affected by themes?
I have just desovered 'developer mode' and there is an option to change the app shape. But I have a theme installed on my phone and I don't know if me having a theme will not let the shape change or will make my theme disable so the app shape can change? Basically can I have a theme enabled and still change my app shape?

Icon Shapes
Home screen icon shape changing is the feature by android. It was first introduced in Android 8.0 Oreo. Later, in Android 9.0 Pie and Android 10 Q, more shapes are added. Shapes include Square, circle(default),squircle,teardrop etc.
Themes
Theme is a feature provided by some manufacturers(Samsung, Xiaomi, Oneplus, Realme etc). Theme changes complete look and feel of devices by its color,icon styles, positioning etc.
Note: I am using stock android, I don't know whether manufacturers provide icon shape changing on their theme app.

(Sorry for the off) Welcome in the 2k club! Please review more - I think the site strongly needs more VLQ + suggested edit reviewers.


text:
Is there a way to receive security updates after vendor stops them, without compromising SafetyNet attestation?
Imagine the following situation:

The vendor of my phone has stopped providing security patches for the stock OS.
The HW is perfectly fine and powerful enough for years to come, so I'm definitely not willing to replace it just to get access to security patches.
Running a phone OS with unfixed security vulnerabilities makes me uneasy. (It feels insane enough to run a computer at home with an OS that's a year behind on security patches. It's twice as insane to do the same with a device that I routinely take to all kinds of hostile environments and untrusted networks.)
Authors of all kinds of random apps have grown a habit of requiring SafetyNet attestation.
I don't need root access to my phone, and I can live with losing some of the proprietary vendor-provided features. I also don't care too much about running the latest Android version, as long as it's receiving security fixes and is compatible with most apps.

I know I have the following two options:

Stick to the stock vendor OS, which is gradually going to become full of security holes. However, SafetyNet passes and I can run all kinds of apps because they feel safe on my device.
Install a custom OS. This will fail SafetyNet, unless I use a tool to hack around it and try to pretend the phone is not rooted. This approach is likely to stop working at some point, leaving me with a device that fails SafetyNet. Thus although my device may have up-to-date security patches, apps will refuse to run because they deem the device insecure.

Is there a third way, which would let me stay up-to-date on security patches while not breaking SafetyNet? I can imagine something like a pure AOSP system, perhaps built and signed by Google or another vendor, that I could run unrooted and unmodified (relying on vendor drivers through the Treble thing).

Is it important to you what Android version the device will run – or could you e.g. live with the device staying on Oreo (Android 8) provided it still gets the security fixes? I'm not certain how long this holds true, but AFAIK eg LineageOS with Magisk can still pass SafetyNet up to a point. I'm not sure about what that point was, as I never cared about "fake safety" (SafetyNet saying "all safe" even if your last security patch arrived 3 years ago). Might be worth investigating that path.

@Izzy I don't care too much, within reasonable bounds. I just need it to be compatible with most apps in the store (thus Oreo is likely fine, Jellybean isn't).

Sure, that's what I meant (and btw I doubt Magisk would be available for JB ;) As I wrote, I've not followed up things. I just remember having seen Magisk passing SafetyNet in the past – and you need an unlocked bootloader to get Magisk running, so counting 1+1 made me leaving that comment…

A passed SafetyNet attestation does not say anything if your device is secure or safe. It just checks if it is in the original state. At the moment it is really a shame that Android device only get update for a few months, especially comparing it to iOS :(

@Robert Yes, I also fail to see why app authors insist on SafetyNet given that there are much worse vulnerabilities not accounted for by SafetyNet validation, but that's still what they do, so my question is how best to live with it.

As Izzy wrote you can try Magisk and MagiskHide but that can break SafetyNet at any time. Google already tried a SafetyNet version that can no longer be bypassed using Magisk. At the moment it in unclear why Google now again uses the old test that can be bypassed.

Give a try to custom ROMs with Magisk. SafetyNet is still passing by magisk. If hardware backed attestation is enforced for your device, switch to stock ROM again.


text:
Kinzie - Modify custom rom to enable VOLTE support
I'm a newbie to Android and Custom ROM in general. I was able to flash a workable custom rom (Android 7.0) on my Moto X Force by following steps from xda-developer.
So basically the device Moto X Force (release under the codename Kinzie, XT1580) in India does not support VOLTE. The same phone released in US (droid turbo 2, XT1585) supports VOLTE in contract with Verizon. I performed lot of search on google if there is a custom ROM which can enable the VOLTE support on this phone but couldn't find any.
What I have tried so far:

I managed to install various custom and stock ROMs on my phone.
Flashed Verizon stock ROM on my device but it did not detect the SIM card at all. I tried updating the radio from other custom ROMs but no luck.

Can someone please confirm if enablement of VOLTE is possible by software ? Looks like the phone has the required hardware to support VOLTE. If yes, then please point me in the right direction of achieving it.


text:
Change device model on Android 10
I have Realme X2 (RMX1992) phone with Lineage OS 17.1 with root. I want to change my device model to Realme X2 Pro (RMX1931).
I have edited build.prop files in /system and /vendor folders with ro.product.model=RMX1931 and also set the global device name as below:
adb shell settings put global device_name RMX1931

But still, my device is still recognized as RMX1992.
How to change the device model?

This might be because LineageOS have a init binary to read model from the bootloader, and you can't actually modify that easily.

Below is the method worked for me to change my phone model to Samsung Galaxy S10+

You need to have Magisk for root access
Install BusyBox and "MagiskHide Props Config" Magisk module and reboot the phone
Install the below terminal or any of your choice
https://play.google.com/store/apps/details?id=jackpal.androidterm
Open the terminal and type props to open MagiskHide Props Config and select option 5 to add/edit custom props values
ro.product.model and ro.product.brand values need to be changed to the desired phone model
Go back to the main menu and select option 3 to enable Device simulation for the values added in step 5 and then reboot the phone

After reboot, the phone model will change to the values added. You might also need to check build.prop file if any additional values to be added in the Props.
Note: Take a full backup of your phone before performing these steps in case of any issue occurs.


text:
Generate whatsapp stickers from PC without any app
I am newbie when it comes to whatsapp stickers, and I don't know about how stickers work.
But I am using a linux desktop where I have written a basic ruby script that could convert svg to webp, multithreaded. In a loop, it reads certain folders with svgs.
I have have 30 svgs in 4 folders, total 120 stickers. I want myself and people to add possibly a thousand more over time.
Currently I am used to copy the directory containing webp files to my android phone, use sticker.ly to manually select and generate stickers. That's too much work.
I want my script to have the sticker generator code in the loop, where it will generate stickers from svgs, I can take the packs to my phone and add them to whatsapp. That way I will be saving a lot of time.
Is it possible?


text:
How do I block "you missed a call from..." messages for blocked spam calls?
Android does a great job of blocking spam callers. However, my phone provider sends me messages when I miss calls, so while I don't receive the spam calls themselves I always receive these follow-up sms in my inbox;

Note that while this SMS is sent by my phone provider (Telstra) the number appears as the number of the caller (in this case 02 9133 5694), not the number of my phone provider.
I don't want to disable these SMS as they're genuinely useful to receive when I miss calls from people I actually know. Also, clearly Android knows that this message is related to a spam caller, since it has flagged the message, so how can I get Android to just block these messages?

"clearly Android knows that this message is related to a spam caller, since it has flagged the message" actually, it's flagged because other users flagged SMS from this number (Telstra) as spam, not because it's related to a spam caller :/

@AndrewT. I think you misunderstand how this works. The number that you're seeing is the number of the spam caller, not Telstra. When I get a missed call from a friend, the SMS shows up as coming from the friend, even though it was sent by Telstra, and it is not marked as spam.

Ah, I see, consider [edit]ing to clarify it since once I faced that some official marketing SMS from my call provider even got marked as spam.

@AndrewT. I've added a sentence to clarify this.


text:
Searching Call Logs in Android 10 Dialer app
Had a query-
I've been trying to find out how to search for numbers in the Dialer app (Android 10/Nokia 6.1). It searches only contacts & places.
Eg- Let's say I received a call today from a number say 535-555-5555.
Since the number isn't saved as a contact, if I try to dial the number, the number does not show up at all (barring similar numbers from my contacts).
As you start entering the digits, it would narrow down the choices and show you the correct number, when you dialed it (or received a call from). In my previous phone (Vivo /Funtouch OS), this was a very well organized function.
I've tried a few dialer apps but all look only through contacts.
Is there a setting in the native Android 10 dialer app that I can change to allow it to search through call logs? OR Is there a Dialer app in the Play store that can do this?
Sharing links of those who have had similar issues.
https://support.google.com/pixelphone/thread/7169712?hl=en
https://stackoverflow.com/questions/53268297/android-how-to-search-through-call-logs-for-a-specific-number
https://forums.androidcentral.com/samsung-galaxy-s7-edge/698950-how-can-i-search-my-calls-log.html
https://stackoverflow.com/questions/53268297/android-how-to-search-through-call-logs-for-a-specific-number

Hello. It is good that you were finally able to find a solution on your own. That said, because we are a Q&A site and not a forum the correct and the only way to answer here is post your solution as an answer post below. That way, question remains a question and an answer remains an answer, and the format is preserved. :)

@Firelord, got it.
Found an app (https://play.google.com/store/apps/details?id=com.qohlo.ca) that does what I was looking for. However, it feels so strange that one can't search through the Recents in Android 10 native dialer. Shame.


text:
GT-P5100 boot loop - nothing helps
OK. I have tried nearly everything recommended on this site and on xda-developers to fix this boot loop issue, and nothing works.
This is a standard unlocked GT-P5100 running 4.0.3. It was running fine and then one day it started to boot loop. It was never used much, and it basically spasmed sometime around a year ago.
I have tried:
Deleting cache and factory reset from various mechanisms. They generally say that they work, but don't actually delete anything.
Using ODIN to install TWRP said it had succeeded, but nothing actually changed.
Using ODIN to install CWM said it had succeeded, but nothing actually changed.
I tried various rooters, Kingoroot being the last. It said it had worked, but I see no evidence of that
.
I successfully (apparently) rooted it via ODIN, but again, there's no evidence of that.
Flashing a new version with ODIN gives me the message:  "Complete(Write) operation failed.
 All threads completed. (succeed 0 / failed 1)"
I tried to re-flash the same version but nothing changed.
I managed to get an actual upgrade to a later version of Android flashed once, according to ODIN, but when  I checked I was still on 4.0.3.
Some issues that make it more difficult:
The re-boot cycle can be as short as 10 seconds, so I often have no time to do much. In upload mode it seems to last for as like as I like.
Changes I make don't stick. I can set the USB debugging switch on, but after the next re-boot it's gone. I have tried deleting apps, e.g. Chrome, to free up space, I shouldn't need to, of course, as I have about 8Gb free. I never succeed in deleting anything, although I get an Application Deleted message, and then an immediate re-boot.
So it looks to me as though something is smelly in my RAM.
There is nothing I need to keep, my wife just uses the toy to google the news while we are travelling, so if there's anything radidal I can do, by, for example running something brutal from the SD card, I would be happy to do it.
So. Any ideas, please?

You seem to have tried everything using various flashing methods, so possibly your problem lies elsewhere (hardware).
If your problem is rebooting loop, then it has to do with your power button being messed up...
Try taking the phone apart carefully (if you know how)
Then hold the power panel down for some seconds (like 15-20seconds). Note: Do this when the phone switch off before it restart.
But if your problem is the phone being stuck on boot loop, then flash using sp flash tool with your phone firmware.
Hope it helps

Hi Benuloh. Tried that. It's still looping. The SP Flash Tool only seems to be for a limited number of devices.I cannot make it work with the GT-P5100.

I also tried the risky process of ticking the re-partition option in ODIN while trying to re-flash. That did nothing.

Elsewhere someone recommended to wipe it all and use Kies to restore it to stock. I don't know how to do this, but I will google it and if it works say so here.

News. Eventually, after all of the various tricks, I transplanted a new Mobo in, and it works, thus demonstrating that the RAM was forked.


text:
How to reduce screen saturation on android 6 without root?
I have a galaxy j7.
Have any way to reduce screen saturation of this phone?
I saw in google some clues about a Screen Adjuster... but i didnt found it in Google Play.
So i tried a bunch of apps, but none of these have the option to reduce satiration. Only increase of brightness and color.
I have found the monocromacy mode. But i would like a little of saturation, not much, but a little.


text:
RQT_CLOSE when flashing TWRP into Samsung Galaxy A8 (2018) with Odin
I am trying to flash TWRP into my Samsung Galaxy A8 (2018) based on official instructions from:
https://forum.xda-developers.com/galaxy-a8-2018/samsung-galaxy-a8-2018-roms-kernels-recoveries--other-development/recovery-twrp-3-2-2-0-galaxy-a8-2018-t3818201
I have followed the instructions carefully and repeated several times. I initially tried things on linux with adb and heimdall, however heimdall was failing to flash, so I returned back to the exact Windows instructions using Odin3 v3.13.1. When I try to flash twrp-3.4.0-0-jackpotlte.img.tar into my Samsung Galaxy A8 (2018) aka SM-A530F, Odin fails consistently with this log:
<ID:0/006> Added!!
<ID:0/006> Odin engine v(ID:3.1301)..
<ID:0/006> File analysis..
<ID:0/006> Total Binary size: 35 M
<ID:0/006> SetupConnection..
<ID:0/006> Initialzation..
<ID:0/006> Get PIT for mapping..
<ID:0/006> Firmware update start..
<ID:0/006> NAND Write Start!!
<ID:0/006> SingleDownload.
<ID:0/006> recovery.img
<ID:0/006> RQT_CLOSE !!
<ID:0/006>
<ID:0/006> Complete(Write) operation failed.
<OSM> All threads completed. (succeed 0 / failed 1)
<ID:0/006> Removed!!

I believe my phone is not RMM locked because I see Developer Options in my settings. I tried the process with OEM unlocking enabled and disabled in my phone Dev Options. No success yet.
I googled the issue for a few hours, however people mostly report seeing RQT_CLOSE when phone is RMM locked, which I believe is not my case. Maybe this is related to the recent Android update I installed yesterday.
Phone software:
Android 9
Baseband version: A530FXXUECTH1
Kernel version:
 - 4.4.111-19323942
 - #1 Mon Aug 3 15:36:52 KST 2020
Build number: PPR1.180610.011.A530FXXUECTH2
Security patch level: August 1,2020
Security software verion:
 - ASKS v3.1.1 Rlease 20200120
 - ADP v3.0 Releasae 20191001
 - SMR Aug-2020 Release 1

What does RQT_CLOSE actually mean? Could you please help investigate?


text:
Prevent the uninstallation of Chrome's extensions on Kiwi Browser
So I am on Kiwi Browser which allows me to use Chrome's extensions on Android. This is great and all, but I want to prevent the extension from being installed. I am doing this because of self-control and not to waste my time on different websites.
Is it possible I can make the extension uninstallable?


text:
Galaxy Tab 3 10.1 GT-P5210 won't turn on after trying to hard reset
I have Galaxy Tab 3 10.1 GT-P5210. I forgot the lock screen password, so I tried to hard reset the device using the recovery menu. (Power button + Volume up).
When I tried to hard reset, I got a lot of errors. I don't remember all of them, but I know that one of them was E:format_volume: make_extf4fs failed on /dev/block/mmcblk0p9, and other error was E: failed to mount /cache (Invalid argument).
The other errors were similar.
I tried again, and the same result.
I tried the option of 'wipe cache partition', and I got similar errors. (Or the same.. I'm not sure)
After that, I decided to try to get into the recovery menu again. So I pressed the reboot option, and I was pressing the volume up with the power button while it was rebooting.
And then, nothing happened. The device didn't power on again. I tried to charge it, with no success. I also tried to do a soft reset (Power + Volume down), and nothing happened.
There is something to do?
Thank's!


text:
Navigation bar no longer hides in some games since Android 11
Since updating to Android 11, I've noticed some games I used to play no longer hide the navigation bar as expected.  Some apps, however, work as expected.
One game in question I have is Carmageddon, with the navigation bar visible on the right.
I have tried:

Checking for updates (no update since 2017)
Swiping from top, left, right, bottom
Restarting phone

Is there a way to restore the original behavior where this game would be able to hide the navigation bar?


text:
Can I implement firewall-like internet blocking from ADB on a per app basis on stock Android?
Instead of using 3rd party app freezers, I've been using "pm disable-user" / "pm uninstall" for years to disable/uninstall bloatware. However, some apps, if uninstalled (or even disabled sometimes), bootloop the device or just break basic functionality.
So, I wish to block internet access to that bloatware which indirectly prevents me from removing it.
Is there an adb command to implement internet blocking on a per app basis, like "pm uninstall" is for uninstalling?
(Yes, there are plenty firewall apps, but why rely on a 3rd-party app for something you can do yourself?)

If you have root, a hardened iptables solution could be viable. For blocking per app net access, the uid of the apps are needed. App like Afwall+ could handle the job pretty good. It's open source and you cloud asses the codes on Github any time

honeymoly is correct. Per app blocking works only on UID basis. With root you can use iptables manually from commandline. Without root you need to use VPN, which requires an app. But even with root, keeping in view the complexity of firewall rules and the changes that occur on network events, it's not feasible to use iptables manually without using a third party app like AFWall+. Also blocking apps isn't always fruitful. Apps might be using shared UID. Or they may use other apps' APIs (e.g. of Play Services) to get/send data from/to internet.

I'm using unrooted stock Samsung S9, so pretty much... nah... right?

I've found something, which seems to work for Chrome web-browser, and requires a rooted device.
Sadly it seems to work on old Android version (tested on Android 9), but for some reason doesn't work properly on Android 13.
@echo off
set package_name="com.android.chrome"

c:
cd\
cd C:\Users\User\AppData\Local\Android\Sdk\platform-tools

for /f "delims=" %%A in ('adb shell dumpsys package %package_name% ^| findstr "userId="') do (
  for /f "tokens=2 delims== " %%B in ("%%A") do (
    echo Extracted UID: %%B
    adb shell "su -c 'iptables -A OUTPUT -m owner --uid-owner %%B -j DROP'"
  )
)

And to allow connection again:
@echo off
set package_name="com.android.chrome"

c:
cd\
cd C:\Users\User\AppData\Local\Android\Sdk\platform-tools

for /f "delims=" %%A in ('adb shell dumpsys package %package_name% ^| findstr "userId="') do (
  for /f "tokens=2 delims== " %%B in ("%%A") do (
    echo Extracted UID: %%B
    adb shell "su -c 'iptables -D OUTPUT -m owner --uid-owner %%B -j DROP'"
  )
)

If anyone can improve it and tell me how to fix it, please let me know


text:
Google Speech recognition doesn't consistently enter the speech into app text field
I cannot figure out the whole pattern but much of the time these days if I use Google Speech to recognise some text to put into a text field eg Facebook's or Messenger's, it successfully recognises the text (it shows me) but then when the popup displaying the text goes away, it leaves the text field unchanged, instead of entering the recognised text. It seems to happen mostly if I do some speech recognition, then edit or move the cursor, then some more speech recognition.
Is there any way to force the recognised text into that field or get it into "paste" so I can paste it in?
(Using a Huawei P20 Pro running Android 10 and Microsoft Swiftkey to "activate" Google Speech).


text:
Is it possible to run jar files in an android application?
I am a begginer in android and I want to develop an application which show a list of jar files to user and user can choose one of them and run it. Is it possible to run a jar file in an android application? (not as a library)
if yes, how does it run? I mean, a jar file needs to run in JVM but an apk file runs in ART.

Basic Java programs are possible, but all GUI elements used in JVM are not available on Android. Please note that app-development question are off-topic here and should be posted on stackoverflow.com instead.


text:
Would a higher than recommend spec SD card work just as efficiently?
My phone manufacturer recommends a class 10 sd card. At the time my phone came out, UHS Speed Class: U1 and Video Speed Class: V10 was the latest class 10 sd card.
However now there's V90. But since V90 is still classified as class 10 (as far as I know), would it be compatible with my phone? Would it work just as efficiently as the class 10 version that was available at the time my phone came out? Would the higher write/read capacity of the newer SD technology cause any hiccups? Or is it going to be
where it would only be a case of it not being used to it's full potential?
Phone: Motorola C Plus.

Micro SD cards are totally backwards compatible regarding their speed classes. Note if you want to use it as adoptable storage you should better search for the A1 standard and make sure to only buy a genuine card from a big known manufacturer. Cheap Chinese cards from unknown vendors often don't last very long in this scenario. And the most important: Before ever using a new micro-sd card in an Android device test it to really has the capacity it claims to have. This can be done using tools like H2testw, FakeFlashTest or  Flash Drive/Card Tester.


text:
Scale entire display down a couple pixels due to replacement screen?
I'm not familiar with Android Stack Exchange so apologies in advance if I am asking this in the wrong place or word something wrong.
Recently I replaced a damaged screen with a new one on my Samsung A8 2018. I noticed pretty quickly that the screen digitizer seems to go over the display itself by a couple pixels on both the top and the bottom. This is pretty annoying as it cuts off some of the information I need to read that is located there (such as notification bar).
I think that the solution to this would be to scale the screen down vertically just by a couple pixels on either end but do not know how to do this. I have tried this , but the scaling starts underneath the notification bar which does not help me. The phone is not rooted (but I do plan to root it in the near future so any solutions that involve rooting are still helpful) and I do use adb for super basic things once in a while.
Does anyone know of any apps or of an adb command that could scale down the entire length of the display and leaving the empty areas of the screen black?

There's a command called wm window manager, which can basically set the screen density, size and overlay. Now, to make sure if you have wm binary on your device, try opening a shell(android terminal or an adb shell) and then try typing wm. If it shows a bunch of helpful stuffs, then good news, you have that and probably can use it. Now, in your case, since things go out of screen limits, it's probably the screen size that needs to be customized here. Now before jumping into the main command, try seeing the screen ratio of your device first. Type wm size and it'll show your screen resolution. Now, for eg, if it says 800x480. You need to shrink the size a bit and adjust until you find the correct ratio, for eg to decrease, type in wm size 790x450, to resize the window resolution.
Now, just before applying all of these, if you're planning to do this from your Android terminal, you'll need root privillege, since for the moment you have no root privillege, adb shell could most definitely work. Hopefully this helps (: If you don't happen to have wm binary by any chance, maybe installing busybox would be a better idea.
This post might be helpful as well
https://stackoverflow.com/questions/18500611/android-how-to-use-adb-shell-wm-to-simulate-other-devices


text:
TWRP showing error 7 even when the rom is correct
Hey I was trying to flash resurrection remix 8.6.0 on my Redmi 5A(riva) but twrp showed error 7.
Then I tried flashing Pixel Experience but still error 7 i tried reflasing the recovery also tried orange fox but still nothing is working. I was able to flash rr 7.0.2. So can someone help me update it to 8.6.0.
Now whenever I boot into recovery /data is not mounting
Thanks in advance

I also had this issue but I installed Android Revolution HD and it worked! It booted and said that the /data is corrupted and it required a factory reset. I gave the only option Reset and it booted back to twrp(i was using it) and there it automatically formatted /data!
Hope it helps you.


text:
How to turn on tap visual feedback from the command line
There is an option in debug mode that shows/hides tap visual feedback:

This is what happens when you turn that option on.
I like to quickly record videos from the command line and I like to toggle this option from the command line as well. How can I do that?

Is this helpful https://stackoverflow.com/questions/49056918/how-to-enable-show-touches-developer-option-from-adb-shell

yes it's perfect!

You're welcome (:


text:
Can't use mobile data on non-default sim, even if inactive when the second sim is open call
I'm using OnePlus 7T with dual sim.
Sim #1 is my default sim, and Sim #2 is a data sim which I'm using only for mobile data.
Obviously, I've defined Sim #1 to be the default sim for calls and sms, and Sim #2 to be the default sim for data.
When I'm in an active call on Sim #1, Sim #2 is automatically blocked.
However, instead of using Sim #1 for data, the phone is simply not getting any mobile data at all.
Any ideas on tackling this problem? Thanks.

If you can specify the connection type for SIM #1 try to set it so that LTE is disabled for SIM#1. LTE has no voice part. If a call comes in the device can make use VoLTE (which requires a data connection on SIM#1) or drop SIM#1 connection to 2G/3G. Based on your description I would assume it uses VoLTE which then collides with data from SIM#2. an the VoLTE connection only can only be used for voice data, hence no Internet connection.

Sim #1 uses 2G\3G on calls (no VoLTE).
I think the phone can't use data from Sim #2 since OnePlue 7T is DSDS (dual sim dual standby), meaning it can't actively use Sim #2 when Sim #1 is in call.
I just don't understand whey it doesn't just tries to use Sim #1 for data. (which do happen when I choose Sim #1 as my default data sim as well)

It all depend on your network strength and ability to handle voice + data.
Like 4G VoLTE has no issue about this. It can handle voice and mobile data simultaneously.
If you have other network, then make sure in your area network strength is high and your sim provider can handle both voice and data simultaneously.
Also mobile hardware and android os has features to handle voice + data.

So in your opinion this is totally independent of the fact that the phone is a dual-sim card phone (because you mentioned anything about that fact in your answer)?

But when my default data sim is the same sim I use for calls, I am able to use the internet even when I'm in active call (and not only on VoLTE)


text:
Why can't I use light theme on non-oled screens when battery saver is on?
This is what I see in display settings when battery saver is on

How does this matter on non-oled screens? I'm using a nokia device

What device and Android version do you use?

It seems there's a jump in reasoning between "forced dark theme on Battery Saver" with "cannot use light theme on non-OLED screen". It could be that this enforcement is not global but added by the device manufacturer for other reason, which is why mentioning the device model might be helpful... unless counterproved by providing any existing references to this issue.


text:
Termux messed up C++ pointer with clang compiler
Here is a simple C++ code named test.cpp to detect whether a pointer is null.
#include"iostream"
using namespace std;
int main()
{
    int *a;
    if(a!=NULL)
        cout<<"a points at something."<<endl;
    else
        cout<<"a is a null pointer."<<endl;
    return 0;
}

I compiled it in two devices:

Termux in Redmi-K20-Pro Android phone (unrooted) with clang: clang++ test.cpp -o op
gnome-terminal in Raspberry-Pi-4B with gcc: g++ test.cpp -o op

Then I ran the program with ./op but the results were different:

Termux printed a points at something
gnome-terminal printed a is a null pointer.

Obviously the second result is right.
Because both devices are based on ARMv8 architecture, so no hardware problem exists. There must be some problems with Termux, the compiler, the Android system root, or something else.
Is there any solution to fix this immediately?

Even if you use the Android app termux your problem is a C++ programming question which is totally unrelated to Android, and hence off-topic here. Most likely it is caused by different C++ compilers.

Assuming we're blind about the code since this site focuses on Android end-users who are not necessarily developers ([so] is for programming issue), how about compiling with GCC in Termux?


text:
Stop ActivityManager killing background Termux processes
I've been trying to run a ssh and a http server on my non-rooted Android phone using Termux.
I've installed Termux:Boot and termux-services to run them.
The server processes run for a while after I release the wakelock but are then killed by the system:
09-23 13:25:21.592  4450  5008 I ActivityManager: KPU : put [com.termux] : 15433 K
09-23 13:25:21.592  4450  5008 I ActivityManager: Killing 25360:com.termux/u0a171 (adj 904): DHA:empty #17

I tried disabling the app power monitor (Setting -> Device maintenance -> Battery) but it doesn't seem to make any difference.
Save rooting the phone, or keeping a wakelock in place, is there any way I can stop the ActivityManager killing my processes?
Setup: Samsung Galaxy A5 with stock-rom
(Android 8 / Samsung Experience 9)

I don't have Galaxy A5, but I have Galaxy A10s and this helped me:

Go to Settings -> Apps -> Termux.
Tap Battery.
Enable Allow background activity.
Open Termux.
In Termux notification, click Acquire wakelock.
Tap Allow.


text:
TWRP mount storage
I am using Lenovo A6000,I am unable to mount storage, system etc. in twrp , i have no os installed only twrp. I checked some posts here about formatting and then wiping and changing parition type...but none ssems to work . how can I mount to internal storage so I can flash custom os... I have checked backup in twrp it shows some folder like boot, system image etc data is present upto 2gb but nothing in /system folder. please HELP

Sure looks like your internal eMMC storage chip (internal storage) is corrupt or defective... Especially since ALL partitions are showing the same result. If you have the correct TWRP and current version and it is doing this, your device is likely bricked and not repairable with normal software means and would need jtag programming with an official image to recover it, assuming the eMMC chip itself is not defective (which is quite likely actually).

@acejavelin I think it's way out of my league to do that...so may be I will leave Thank you for reply I would do it was a simple and not much hard...tell me if  it is doable that I can do according to  given instructions..that's what only I am good given my knowledge about this.

Jtag programming requires special hardware and physical access to the chip... Typically you would send it off to a service to do it. You can purchase the hardware yourself for $150-$400, from vendors like cellcorner.com (as an example). You would likely need a universal one as I don't see a Lenovo specific unit, so you're pushing the upper limits of the price range. Then you would get into the situation of having to find a flashable image, which Lenovo does not offer to the general public. At that point, it is probably better just to replace the device imho.

actually I was messed installing custom os since then i am getiing this. sure it is hardware? can it be solved anyway...I tried using fastboot recovery.img but the same unable to mount arguments showup in oem android recovery also...I am asking becos its my fav and first one hope it can be mounted by some formatting or adb method

I can't be positive, but it looks like the partition table is borked (yes, technical term) and unless you can get an official way of restoring the device to stock, the chances it will be recoverable are slim. Is there an XDA forum for this device? If so, I would ask there as this would be a very device specific answer and not really an Android thing.

Yeah Lenovo A6000 forum is there...https://forum.xda-developers.com/lenovo-a6000


text:
How to disable sending data in EMUI 10.1 (Android 10) to Huawei servers?
I have tablet (Huawei MediaPad M6) with EMUI 10.1 (based on Android 10).
My tablet regularly requests to the following domains:
pushtrs9.push.hicloud.com
grs.dbankcloud.com
grs.dbankcloud.cn
grs.dbankcloud.eu
grs.dbankcloud.asia

Also sometimes makes requests to the following domains:
query.hicloud.com
configserver.platform.hicloud.com

I blocked all these requests with Blokada app. Also I uninstalled about 60% of all system apps via adb. This helped to get rid of some of the requests. But the above requests are still ongoing.
How to terminate all these requests? Everywhere in the license I refused to collect data and statistics. Should I uninstall more any system apps? Or disable something in the settings?


text:
Does LTE Band 20 (800) really matter?
I'm looking to import Redmi K30 Ultra, and since it is not available globally (only Chinese ROM), in the specs it is stated it does not support LTE B20(800). My operator provides following coverage:
4G -> B3(1800) and B20(800)
3G -> B1(2100) and B8(900)
2G -> B3(1800) and B8(900)
All other bands are supported by the mentioned device.
Now, I have some basic understanding about the topic, such as, lower frequencies means broader coverage but lower speeds and vice versa.
But I am wondering if someone could tell me will I really notice the lack of B20 (e.g. will device be prone to losing 4G connection and going to 3G often). Are there any experiences regarding this problem (not necessarily with this phone). Thanks!

You're not really giving us much to go one... Does your phone need to cover every single band your carrier has? Maybe, this depends where you live and who your carrier is. For example, in the US AT&T has LTE on bands 2, 4, 5, 12, 14, 17, 29, 30, and 66, but half of those are only in very limited areas of high congestion, and if you phone supports 2, 4, 5, 12, and 17 there probably isn't anywhere in the country you wouldn't have service that bands 14, 29, 30, or 66 would have coverage. Does your carrier use B3 as their primary and B20 as their backup, or is it distributed? Need more info...

B20 at 800MHz is usually used outside of cities were the mobile cells cover a larger area (because 800MHz is good for "long-ranged" connections). Therefore I would expect that inside cities you won't face any problem but in rural area you will most likely get no LTE connection. If 3G is still active in that area your phone will drop to 3G but note that in a lot of countries mobile network operators start to disable 3G networks or at least decreasing the number of cell phone towers that use 3G.

Thank you for your answers. I will contact my carrier and now I know which question I need to ask. I live in the city, but I don't want to lose connection when I travel somewhere, especially if they are removing 3G towers. Thanks again, information you provided is very useful to me.