# Question
Title: Apk file not installing in android says "You may not have proper app for viewing this content"
I'm trying to install apk file in Samsung but it says "You may not have proper app for viewing this content". I've checked "allow installation from unknown source" option in security, but no luck. Please help me to sort this out.

# Answer
> 10 votes
Such Issues generally occur when you try to open the file from within an Application (Messenger, Whatsapp etc.) other than File Manager (any such application with similar privileges) or Play Store.

So, please make sure you are accessing it from File Manager.

> If you are not aware of the source of the APK and if it's not from a trusted source please don't install it directly.

# Answer
> 3 votes
This is not a problem only in Samsung, but in all mobiles including latest Xiomi not supporting installation from messangers like WhatsApp.

If you want to install apps you can open your file explorer and go to WhatsApp folder -\> media folder and then WhatsApp documents. There you can find the apk file or you can search your apk file name or just search .apk and you can find the apk file.

For Xiaomi uses : Open file manager, you can find the latest files in the first page, or in the second page you can find an option 'apks'. In that you can find your apk file from WhatsApp.

# Answer
> 0 votes
Go to any file managing app , search your .apk file and install from there. I had got the same error when I tried to open the .apk I sent via whatsapp in whatsapp.

# Answer
> 0 votes
I think it is not caused by whether apk installer is present or not in your system. As far as I know, WhatsApp (or Android) still doesn't support installing app from inside app other than file manager. The only way is installing it from a file manager app.

# Answer
> 0 votes
I got same error because I was trying to install it from whatsApp and also I forgot to uninstall previous version of same .apk file from Mobile.First check if you have any previous version of apk. If you have it then uninstall it.Then go to File Manager-\>Internal Storage-\>WhatsApp-\>Media-\>WhatsAppDoc. Here you will find your apk file.Install it from there.Also turn on the option Allow installation from unknown sources from Setting-\>Security.

# Answer
> 0 votes
I found an easy way to install app showing error.. "unable to read properties for this app"

It is bcoz phone internal installer is unable to read said app properties

Simple install file manager from playstore like astro file manager or ez file manager

I installed astro file manager and find the app you downloaded then hit the app apk file and here its prompt to install.. Thank you.

# Answer
> -3 votes
I think that might be because you don't have a .apk installer app on your device.

If you do have one then try opening that and installing the app from there. If it does not works that means that the APP is broken, requires a newer version of Android than the one you have on your device or it was designed to be used on a different type of device than what you have.

If you don't have an APK installer you will need to install one from the Google Play Store. Alternatively you can also use adb (Android Debug Bridge) to install apps, but that requires a computer.

---
Tags: samsung, apk
---


title: Bluestacks using about 30GB

text:
# Question
Title: Bluestacks using about 30GB
I have installed Bluestacks 4 android emulator on my 64bit Windows PC. I have not installed many apps but in the data folder it is using about 29GB of data. In the folder Program Data/Bluestacks/Engine/Android, I can see Data.vdi and Data\_0.vdi, The second one is 27.4GB and fomer is few 100 MBs. My question is what could be the reason for such large file size? Is there a way to clear unnecessary data from bluestacks?

# Answer
> 2 votes
BlueStacks is a virtual machine using image files that contain the whole "persistent memory" that is available to the virtual Android device.

Such virtual image files can be created in two ways:

1. When creating the virtual machine you can decide of much memory (persistent not RAM) you assign to that virtual machine. And to make this space available an image file is created of the chosen size. The file internally is then formatted as needed by the virtual machine and contains a lot of free space, but this free space is only visible inside the virtual machine. From the outside from the beginning on the full virtual disk size is allocated in form of a file
2. To avoid allocating a full virtual disk size some virtual machines allow to allocate space on demand. This means that if the virtual machine writes data to a sector of it's virtual disk the will be appended to the virtual disk image the first time it is written to. The main problem is that the BlueStacks is not aware which sector has been written before or not, hence if you write and delete files inside BlueStacks other sectors may be written and so the image file is growing larger the more often you use BlueStacks.

VirtualBox contains command-line tools that allows to compress images that have grown too large but don't contain much data. But that is no longer an Android topic. Search Superuser.com for how to trim/compress VirtualBox images.

---
Tags: bluestacks
---


title: Unable to install a modified apk file

text:
# Question
Title: Unable to install a modified apk file
I want to monitor the https traffic of an Android app downloaded from google play.

This app can only be run at Android N and above.

So I use Charles proxy and follow this document to modify the apk file.

Here's what I have done:

1. Download the app from google play.
2. Use apk extractor to get the apk file of the app.
3. Run `apktool d the_app.apk` to extract the apk file.
4. Modify `res/xml/network_security_config.xml` and `AndroidManifest.xml` based on the description of Charles Proxy document.
5. Run `apktool b the_app` to package the files back to an apk file.
6. Install the apk on my Android phone, whose version is 8.
7. My phone says "App not installed".

Why can't I install the modified apk on my phone?

I've disabled Google Play Protect on my phone.

The `apktool` is installed by following the description here.

Is there anything I missed?

# Answer
The generated APK file by apktool needs to be signed before you can install it on a Android phone or emulator:

First you have to create a key-pair for signing stored in a keystore (only required once):

```
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

```

Note this command uses keytool for JDK. source

Then you have to sign the app using `apksigner` which is part of the Android SDK:

```
java -jar build-tools\29.0.3\lib\apksigner.jar sign -ks my-release-key.keystore <apkfile>

```

Now you can install it on the device:

```
adb install <apkfile>

```

If you have the original apk file installed on device you have to uninstall it. because of the changed signature you can install your modified apk file over the already installed original file.
> 2 votes

---
Tags: apk, https
---


# Question
Title: Android 4.0 – any browser able to set UserAgent?
**Is there any browser (or its add-on) running on Android 4.0 where I can tweak UserAgent string?**

I would like to use older Android device to view Microsoft To-Do list in a browser. But they obviously have Android version check, because they display only old OWA (Outlook Web Access) interface.

Apps already tested:

* Samsung Internet - seeing the old Outlook UI (also in desktop mode)
* UC Browser - this app is unable to start
* Opera Mini - seeing the old Outlook UI

# Answer
> 0 votes
After further research I found that Dolphin Browser has **User agent** setting built-in directly in its **Settings** screen, on tab **Advanced**.

In my specific case, switching the above setting to `Desktop` made the **Microsoft To-Do** web UI accessible as expected.

---
Tags: 4.0-ice-cream-sandwich, browser, user-agent-string
---


title: Where to find IndexedDB in Android

text:
# Question
Title: Where to find IndexedDB in Android
I have this problem that I cannot open the page anymore since I already reach the max limit capacity of my indexeddb but I wanted to copy it so that I can migrate it to another device.

My question is where can I locate the path of the IndexedDB Folder in Android? I know in Windows it would be easy to find `%appdata%/local/Google/Chrome/User Data/Default/IndexedDb`. However in android no idea where to find it.

Hopefully someone can answer my question, and hopefully no need of 'ROOT'

Thanks.

# Answer
The path you have included in your post is for Windows not Android.

# General approach how to access app data without root

If there is an IndexedDb on Android it will be located on most devices somewhere below `/data/data/com.android.chrome/` which is only accessible with root permissions.

However the Chrome app allows backup via adb, therefore you should be able to make an backup of the chrome app data and extract the file then from the backup. For doing so you need a device with activated developer options and enabled Android Debug Bridge (adb).

Backup Chrome data to the file `backup.ab`

```
adb backup com.android.chrome

```

Then you need to convert the backup using Android backup Extractor (abe):

```
java -jar abe-all.jar unpack backup.ab backup.tar

```

Now you can open the created `backup.tar` file using an archive tool like 7zip an extract everything or just search for the file `IndexedDb` file.

If you have found the file and you want to modify it the whole process works in the opposite direction, using "abe pack mode" and "adb resore".

# Chrome and IndexedDB

Looking at the data structures created by the latest Chrome app on a rooted DB there is no `IndexedDB` file created by Chrome on Android.

Instead `IndexedDB` is a directory containing multiple database - one for every web site. Each database consists of multiple files. Therefore if you expect that a certain site has created a very large IndexedDB storage it should be possible to reclaim that storage by deleting the IndexedDB storage of that site.

You can display details on the IndexedDB by opening the url `chrome://indexeddb-internals/` in Chrome.
> 1 votes

---
Tags: chrome-for-android
---


title: Resistor like symbol android

text:
# Question
Title: Resistor like symbol android
For a couple of days, this weird symbol that looks like a variable resistor has been showing on my android one (Moto one power) device. What is that supposed to be? How do I get rid of it

I've played around with the volume/vibrate, every developer options, along with disabling the developer options altogether.

Thanks

# Answer
I found out what the issue was. Leaving it out here if someone else encounters this as well. This icon essentially means 'Sensors off'. The symbol was the reason my camera was not working as well. Inside the developer options, under quick developer tiles, there is a 'Sensors off' option.

Not sure why disabling the developer options did not revert back the change though.
> 1 votes

---
Tags: android-10, android-one
---


# Question
Title: How can I add a visual effect on where I click on the screen on Android?
How can I add a visual effect on where one clicks on the screen on Android?

Similarly to what can be done in Windows:

I don't see any `Show Touches` in `Developer Options`:

# Answer
First, enable Developer Options by going to Settings -\> System -\> About Phone -\> Software Version and tapping "Build Number" until it says you're a developer.

Then, go to Settings -\> Developer Options and enable "Show Touches".

This shows the small pointer/dot when you press on the screen, as is often seen in emulators.

There's some possibly-dangerous options here, so please make sure you understand what they do before trying them! :)
> 1 votes

---
Tags: screen, android-10
---


# Question
Title: Is it possible to completely disable phone calling on Android?
I've disable the built-in phone app but an a voice over IP app took its responsibilities, I killed that too, disabled notification and tweak everything I could find except for turning off the ringtone in the settings and the phone will still ring, except I can't answer because there's no app for phone calls!

When I receive a phone calls there's a lingering notif as usual I always delete it along with the millions other notifs Android gets nonstop--it's really annoying, I never tapped on it because it does nothing, I remembered however that this version of Android brings more stuff at the first tap. I spent the last two hours trying to remember my own phone number to call myself and bring up the notification, upon tapping it it let me to the system app Phone Call Management which is not blockable. I want to reinstall my VoIP app, it requires to have a ringtone so it can ring too; is there another way around this?

BTW, I also installed phone call blockers, but don't really help in here.

Thanks!

# Answer
Try MTK Engineering kit. You can disable calls from that by turning radio off. Alternatively, use in dial pad `*#*#4636#*#*` and a window pops up. Now select phone information and scroll down to find the radio option. Now turn off the radio. Then you will not receive any calls. Otherwise you can use airplane mode as well.
> 0 votes

# Answer
I also have another method first open phone app also known as dialer now find settings from right up corner open the settings, now select call settings\>call baring\>all incoming calls now just disable them no call will come now but you can use your mobile data you also need barring password of your sim operator but in some cases it was 1234 or 0000 may you find this is in different way because difference of android but good luck.
> 0 votes

# Answer
I just had this problem, no sound, but ringtones did work. I installed hangup call and a headphone switch to speaker... that did not work but it did tell me what the issue really was and it was this: the phone thought it was in call EVEN AFTER RESET AND FACTORY RESET...

The simple answer was put it into airplane mode. My phone was not on network so `#*#*` didnt work (code in other's post above). Gladly this was a half hour of this...

Side note: the battery was super draining so I kinda was suspicious of a radio like bluetooth or something being on but not notifying.
> 0 votes

---
Tags: calls
---


title: Where does Swiftkey store its data?

text:
# Question
Title: Where does Swiftkey store its data?
Does anyone know where Swiftkey stores its data for:

1.) the heatmap 2.) user custom word dictionary

Or even better, how would one go about finding this out (on a non-rooted device)?

# Answer
> 1 votes
As Swiftkey is a keyboard application and therefore comes in contact with very sensitive user data (credentials, everything you type).

Therefore if you could access such data like heatmap or user custom word dictionary for a different app this would be a vulnerability of Swiftkey. Hence you should not be able to access any data of Swiftkey on a non-rooted device.

Also backup is disallowed for Swiftkey, hence you can't use `adb backup` to export the app data.

Therefore accessing such data is only possible from within the Swiftkey app itself. For example the Heatmap can be viewed and saved within Swiftkey (Keyboard -\> three dots -\> Settings -\> Input -\> Input Statistics -\> Input heatmap).

---
Tags: applications, settings, internal-storage, keyboard, swiftkey
---


# Question
Title: Max USB Webcam Resolution and Frame rate
What are the maximum resolutions and frame rates for USB camera that a Android device supports. I read that the standard is called as UVC (Universal Video Class).

Is this support dependant on the Android version? Would the type of connector make a difference USB-C vs micro USB?

The best resource I found was External USB Cameras

On that page its mentioned,

> With support for webcams, devices can be used in lightweight use cases such as video chatting and photo kiosks. This feature doesn't replace typical internal camera HALs on Android phones and isn't designed to support performance-intensive, complex tasks involving high-resolution and high-speed streaming, AR, and manual ISP/sensor/lens control.

Also a list is given at the end of the articles regarding frame rates and resolutions as if they were extracted from some code so I'm not sure what they are and whether to consider them as definitive.

```
<!-- List of maximum fps for various output sizes -->
<!-- Any image size smaller than the size listed in Limit row will report
    fps (as minimum frame duration) up to the fpsBound value. -->
<FpsList>
    <!-- width/height must be increasing, fpsBound must be decreasing-->
    <Limit width="640" height="480" fpsBound="30.0"/>
    <Limit width="1280" height="720" fpsBound="15.0"/>
    <Limit width="1920" height="1080" fpsBound="10.0"/>
    <!-- image size larger than the last entry will not be supported-->
</FpsList>

```

# Answer
It depends on the external camera provider specs.

> The USB camera HAL process is part of the external camera provider that listens to USB device availability and enumerates external camera devices accordingly.

*

> Webcams generally support USB video class (UVC) drivers and on Linux, the standard Video4Linux (V4L) driver is used to control UVC cameras.

Probably, what's quoted is typical or frequently found values but if you want specific information you would need to dig into the code of the device + camera provider.

As asked in the comments *maximum limits* can be gleaned from

* the camera specs and codes
* format used (for example UVC format itself has multiple variations - see linked wiki above)

but whether the device uses full capability or not is the important point.

You would find tons of rooted means and Magisk modules that *improve* the camera performance with the same device and camera - it's only possible because ROM didn't build in those features.
> 1 votes

---
Tags: usb, camera
---


# Question
Title: Keep getting strange words in Google Keyboard's dictionary
I keep getting strange words getting predicted by Google Keyboard's dictionary. I know I've never used them and doubt they would've come with the keyboard. One example is "Lync". I think some are names like "Bahar". Also slang words that I don't use like "kiddo" and abbreviations like "MSI and "SV". Also just the prediction seems strange, like I tried typing "something" and it came up with "softcover", which is a word I rarely use. How do I make it stick to more common words? I've tried resetting the custom dictionary but it didn't help.

# Answer
The Mysterious Japanese Dictionary

I can only think of one thing right off the top of my head. Gboard is reading and automatically importing a ASCII text encoded zip file from somewhere. Most likely in the emulated/0/ path and everything within aka all recursive subdirectories and all content of said subdirectories. It could be an app that is using a zip file to run its code somehow or storing don't sort of data in a zip format that the app utilizes. It could be a bad extension somewhere, For example a folder or a file that contains ASCII text somewhere within and the extension of that folder\file somehow got changed into .zip...The possibilities are quite numerous now that I really think about it. The one concern I have about all this is the frequency and verbosity(intensity) that Google spies on everybody content... Personal or otherwise.

The reason I am interested in this topic(and I realize that this "answer" does not solve the issue at hand) is because this has and still is happening to my Gboard dictionary, Though I don't get random words that make no sense or don't go with what I am typing. So I tend to ignore the glitch/bug. In fact Gboard somehow (without my knowledge/permission) located a .zip file, said hey this looks like a Japanese dictionary, processed to import the file, create an actual Japanese dictionary, and finally somehow created all new shortcuts for every single word. I've literally just sat here and scrolled down this mysteriously looking Japanese dictionary and still did not get to the bottom. There are thousands and thousands of "words" in the Japanese dictionary. So yeah, I think I will give it another go and try to track down the source of this mysterious Japanese dictionary that Gboard wants me to have so badly. (I tried to uninstall the app and reinstall it and it still searched through ALL folders and files to once again locate and import the Japanese dictionary that is completely unreadable, only to confirm my suspiciousness and make me free like I was not going crazy for a second.
> 0 votes

---
Tags: gboard, dictionary
---


# Question
Title: Android Version differs from expected API level
I have found a pretty old device Huawei Ascend Y210. This mobile officially has Android 2.3.3 (API level 10). I found an online custom lollipop ROM for the specific mobile. The device has CWM as custom recovery. The zip file (the rom file) was installed successfully. The environment feels like android Lollipop should look like. Going to the mobile's settings \> About phone \> Android version, the version is 5.0.1 as expected. Using the command `adb shell getprop ro.build.version.release` the result is 5.0.1 indeed. However, I tried running `adb shell getprop ro.build.version.sdk` the result is 10 which is the API level of the stock android of the phone (Android 2.3.3). Apps made from API level 23 will fail to install as the API level is getting recognized as 10. Changing the apps' Minimum API level to 10 using APK Editor Studio, allows the app to get installed but it crashes once I try to open it.

Is that a bug? I mean can I somewhere change the API level of the device? Or is the ROM a scam and the android is never really getting updated to 5.0.1 and the ROM just changes the graphic interface? How is it even possible to trick the adb that the android version is 5.0.1 but keep the API level to 10?

P.S.: If someone has any ROM for Huawei Ascend Y210 with android 5.0.1 or higher handy, I would appreciate a download link.

Thanks in advance!

# Answer
> 1 votes
As Izzy mentioned the issue here was that the owner of the ROM had modified the `ro.build.version.sdk` in the `build.prop` without actually provide any feature of the API level 23. I am not sure if Fidz's answer is correct since I could not find any resource online that claims the same thing (correct me if I am wrong), Google's official site claims nothing about the API level, it just mentions some thing about the Android Compatibility regardless of the API level and the hardware. I could not find any ROM for the device since it's pretty old and almost every support for the Huawei and Honor phones on custom ROMs and rooting is dead after Huawei disabling the ability to unlock the bootloader.

# Answer
> 0 votes
Every Android device has its own API level.

it is not a bug, while you use a feature/app that requires higher API level but the device API level is lower than the requirement, the app will surely crash

API level is based on the Android version of the device, but then it also uses the hardware resource, so even if it's upgraded to a newer version of Android, it can't advance the API level higher than the hardware resource available.

---
Tags: adb, 5.0-lollipop, 2.3-gingerbread, huawei
---


# Question
Title: how to fix extreme slowness of android 8.1.0 on "twist mini s431" hardware?
I have a twist mini s431 (512MB RAM, MediaTek MT6580 1.3GHz Quadcore) running Android 8.1. It seems this model is only sold on Brazil.

I was extremely unsatisfied because of it's slowness.

I read a lot of complaints about it but no solution.

I found a generic way that I will answer here.

Pt-br Keywords to help ppl here find this post: lento, trava, demora muito (other suggestions?)

# Answer
(I must say that this below is not a perfect solution yet, as one or more of the disabled apps below made "goggle play store" stop working but I still have no idea which ones, therefore I ended unable to update apps... and had to reset them all... I will re-do disable slower to know what needs to remain enabled)

The answer is: you have to disable as many bundled applications as possible, including system applications.

This can be done by any user but WITH CAUTION!

As I understand it, you cant disable system applications related to the hardware like managing the sdcard, or related to the carrier, or things like bluetooth or wifi etc. I don't know tho if there are other special system applications that should be kept enabled (even if it is allowed to disable them). If you can give some more advisement about this, I appreciate it.

If anyone is interested on what I disabled, I will try to connect on it with adb shell to list all disabled applications, or at least specify what you shall never disable.

So my "twist mini s431" is not fast, but is finally usable now!

PS.: I would like to write all this also in portuguese and paste here as alternative reading, but I think it is not allowed, so use google translator if needed!

---

The list of packages I disabled (adb shell command), but I haven't booted it yet (I can't boot it w/o being sure it won't fail), so I am not sure this list is boot safe:

```
$ pm list packages -d
package:com.android.providers.calendar
package:com.google.android.onetimeinitializer
package:com.google.android.apps.mapslite
package:com.android.protips
package:com.android.htmlviewer
package:br.com.positivo.appstore
package:com.netflix.partner.activation
package:com.mediatek.omacp
package:com.android.vending
package:com.google.android.marvin.talkback
package:com.android.statementservice
package:com.vantera.cbwidget
package:com.google.android.apps.tachyon
package:com.google.android.apps.searchlite
package:com.google.android.apps.nbu.files
package:com.android.musicfx
package:com.android.chrome
package:com.google.android.gsf
package:com.google.android.ims
package:com.google.android.tts
package:com.android.calllogbackup
package:com.google.android.partnersetup
package:com.netflix.mediaclient
package:com.google.android.feedback
package:com.google.android.printservice.recommendation
package:com.google.android.apps.photos
package:com.google.android.calendar
package:com.mediatek.calendarimporter
package:com.mediatek.webview
package:com.google.android.apps.speechservices
package:com.google.android.apps.photosgo
package:com.google.android.apps.assistant
package:com.android.providers.userdictionary
package:com.google.android.apps.youtube.mango
package:com.google.android.inputmethod.latin

```

to see memory usage: `adb shell dumpsys meminfo`
> 0 votes

---
Tags: lagging
---


# Question
Title: Is it possible to get LineageOS working on Samsung Galaxy S6 T-Mobile USA (zerofltetmo, SM-G920)?
LineageOS offers an official International Samsung Galaxy S6 build, which does NOT install on the T-Mobile USA S6, but there's an unofficial T-Mobile USA build that does, but after installing it just hangs on boot. (To install I used TWRP and adb sideloaded LineageOS, Stock Open gapps, SuperSU in that order) Has anyone had success running LineageOS on the T-Mobile version of the S6?

# Answer
> 1 votes
I was able to install this cryptic NexusOS version of LineageOS by Team Nexus.

I have no idea if it's safe, or a good ROM, The github is here but it's lacking information, an issues page, or a website on it, and it only seems to be referenced in broken english blogs, and scam searches appear when searching `nexus-roms.eu` on duckduckgo, and their site is down. So I would not recommend it. It does seem to install & boot on the T-Mobile USA Samsung Galaxy S6

# Answer
> 1 votes
I just installed LineageOS on my SM-G920T using this build from XDA: https://forum.xda-developers.com/galaxy-s6/samsung-galaxy-s-6--s-6-edge-unified-development/rom-unofficial-lineageos-17-1-t4053959

I used the following resources:

In the end, the process was:

1. Install TWRP (https://twrp.me/):

2. Restart the phone in recovery mode (Vol Up + Home + Power)
3. Move the 2 or 3 zip files (LineageOS, Magisk, and GoogleApps) to your phone's internal memory or a mounted SD card
4. Wipe the Dalvik cache, system, data and cache partitions (do not wipe the internal storage or USB)
5. Install Lineage OS, Google Apps, and Magisk
6. Wipe the Dalvik cache again and reboot

The instructions from the XDA build do not mention installing Magisk but If I didn't install it both the 9.0 and 10.0 based builds failed to boot, I didn't install SuperSU but you shouldn't have trouble adding the zip to the install queue.

---
Tags: lineageos, samsung-galaxy-s-6
---


# Question
Title: How can I receive 2 video streams from 2 Android phones over USB tethering using IP Webcam?
For a Live DJ streaming setup (on a budget), I would like to be able to receive two or more video streams from two or more Android phones via USB tethering using the IP Webcam android application. It works with one phone, but when I try to add a second phone, I can't connect to it.

Both phones start a server on the same IP at port 8080. I can't change the IP address directly in the app, but I can change the port. I tried changing the port on one of the phones, but the connection is still not possible.

I can't seem to find if receiving data from 2 USB tethering sources, at the same time, is possible or not. So my first question would be the following: is it possible? And if yes, how could I start to solve this problem?

Thank you.

# Answer
USB tethering is not necessary, just use `adb` port forwarding. It allows you to connect to multiple devices via USB. On the PC you need Android Debug Bridge from Android SDK installed. On OSX the simplest way should be using `brew` and install `android-platform-tools`.

And on all Android device the development menu has to be enabled and the Debug Bridge mode has to be activated.

First get a list of connected devices via to get the device ID of each device.

```
adb devices

```

Example output with the two devices `HABY39RL` and `DARY42EE`:

```
List of devices attached
HABY39RL        device
DARY42EE        device

```

Next establish a port forwarding for each device:

```
adb -s <device ID 1> forward tcp:8080 tcp:8080
adb -s <device ID 2> forward tcp:8081 tcp:8080

```

Afterwards you can connect to the web cam app on the first device on the PC using the address `localhost:8080` and on the second device using `localhost:8081`.
> 1 votes

---
Tags: linux, windows, macos, usb-tethering, video-streaming
---


# Question
Title: ADB: Phone is not recognised but Ubuntu 18.04 recognises it
My LG G3 phone (phone is rooted; OS is Android Fulmics) is recognised by my laptop when I plug it in. The laptop is running Ubuntu 18.04 and I can easily copy data from and to my phone.

I have recently installed the Android Debug Bridge (ADB) (`sudo apt-get install android-tools-adb`). Then, I wanted to reach my device and typed `adb devices`.

When functioning properly, it **should** return something like this:

```
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
5200d6fd904b2200    device

```

But when I tried it, it returned this:

```
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

```

So, `List of devices attached` appeared **first** and no device was listed.

When I type `adb devices` again, I get this:

```
List of devices attached

```

I have also tried to use `sudo adb devices` instead of `adb devices` but the results were the same.

When the ADB would work, I would try to use it for data recovery purposes as described here. Maybe the `pull` command can do what I want.

# Answer
This has solved my problem. I could not turn on USB debugging because the phone was connected to my computer. You have to unplug the phone first, start the USB debugging and plug it back in. Then, `adb devices` worked.
> 1 votes

# Answer
For one plus 6 I had to switch off developer mode

-\> connect USB to phone

-\> switch on developer mode

-\> switch on debugging mode

-\> a prompt appears to allow pc to connect

-\> select yes
> 0 votes

---
Tags: adb, data-recovery, linux, data-transfer, lg-g3
---


# Question
Title: Samsung Galaxy S10+ Will not boot into Recovery mode from Download Mode
for the first time ever i'v tried to root my samsung device

I am running a Samsung Galaxy S10+ SM-G975F

I started by making sure OEM was unlocked + USB debugging put the phone into bootloader mode and unlocked it, then i proceeded to copy the AP firmware file across from my PC to the phone, Then used The Magisk Manager app to create the patched file, Copied this back over to my PC and flashed with ODIN v3.13

After the flash was complete for the root, the video i was watching mentioned you have to boot into recovery mode from download mode,

via

Hold Volume Down + Power button until the device restarts

Quickly Hold Volume Up + Bixby Button + Powerbutton, Until you see the bootloader warning flash then release all buttons except the Volume Up, until you boot into recovery mode.

Now I'v tried absolutely everything possible combination wise

Does anyone here have any solutions that may be of assistance as to me doing something incorrect?

the video i followed was this one. https://www.youtube.com/watch?v=o3a8YnWT3yk

I can enter Download mode still with the Key Combinations, just i'm unable to reach Recovery mode with the combinations that are explained to use

Thank you.

# Answer
The problem with the S10 is that you cannot shut it down from "out of the Android OS". Then you can only boot into the recovery with the (hard-ass) key combination when your phone is **completely shut down**. So if you miss the tricky key combination one time after shutdown or odin-flash you're stuck in some kind of boot loop between the "bootloader" and the "security warning". The only solution seems to be to let the battery drain so the phone is completely off and then use of one of the following methods:

> **Booting Into Different Modes**
>
> Even though you have rooted your Samsung Galaxy S10, you still have to keep in mind that both the recovery and the Magisk will be in the same partition. Which means that you will have to use a different method to root into the rooted system.
>
> Note: The following steps are to be followed **when your phone is completely powered off**.
>
> **Unrooted System**: Simply hold the power button as you would normally and your phone will boot into an unrooted system.
>
> **Rooted System**: Hold the Power, Bixby, and Volume Up buttons together, and release them once the Bootloader Warning screen appears and that will boot your phone into the rooted system.
>
> **Stock Recovery**: In order to do that, you will have to hold the Power, Bixby, and Volume Up buttons together, and release the Power and Bixby buttons when the Bootloader Warning screen appears and keep holding the Volume Up button to boot your device into the stock recovery.

In your case it will be the last option which is the most tricky key combination ever. I also failed it several times, it needs practice! (I suppose Samsung did this on purpose).

Check this guide, it's the best I found out there: Root Samsung S10 Guide
> 0 votes

---
Tags: rooting, recovery-mode, boot-loop, odin, magisk
---


title: Auto-switching Audio Widget?

text:
# Question
Title: Auto-switching Audio Widget?
I use a lot of audio apps on my HTC One, like Doggcatcher, Google Music, Tunein Radio, Pandora, NPR, etc. Most, if not all, of these apps have a 4x1 widget which controls playback. These are very helpful, but I have to devote 1-2 homescreen pages to these widgets, even though only one of them is relevant to me at a time.

**Is there a way to reserver a 4x1 block of space on the homescreen, and have that space filled with the 4x1 widget of whatever app is currently outputting audio to the system?**

This is kind of similar to the HTC One Sense's lockscreen implementation, where it has a generic widget that shows play, previous, and next buttons that control whatever app is currently playing audio, and shows the title of the currently playing track.

I think this would be a good idea, and would be very useful to me. Is there anything out there that can support this functionality?

An alternate solution might be a generic audio widget that just shows the title track, with play, previous, and next controls, just like the HTC One lockscreen widget above. It's not ideal, as I like the app-specific functions (thumbs-up, etc.), but it would scratch the itch.

# Answer
> 1 votes
And a third variant is a kind of "1x1 multi-widget", capable of holding other widgets, and expanding to their size when opened. There are several of those "widget folders" available, see e.g. Widget Folder or Widget Container (there might be more of them, but those are the two I was able to find short-term). Then each of your widgets consumes just 1x1 when not used, and the one you use opens on top of them.

To make it more plastic and better understandable:

Widget Container: All closed, weather opened (click images to enlarge)

The first screenshot shows 4 closed "widget containers" (the green ones). In the second screenshot, the "Weather Container" was opened, and here covers 4x4, i.e. the entire screen.

Admitted, not the most beautiful, but a practical solution to your problem ;)

# Answer
> 0 votes
You can use Power Toggles, place the 1x1 widget, and when you click on the 1x1 Power Toggle widget it will open and you can select the pause/play button,among many others.

---
Tags: audio, music, app-widgets, htc-one
---


title: Lower ROM minimum brightness

text:
# Question
Title: Lower ROM minimum brightness
On my rooted stock ROM LG G2 D802 KK 4.4.2 minimum brightness is actually 50 (not 0) on a scale from 0 to 255.

Here is my `dumpsys power`

```
POWER MANAGER (dumpsys power)

Settings and Configuration:
...
  mScreenBrightnessSettingMinimum=50
  mScreenBrightnessSettingMaximum=255
  mScreenBrightnessSettingDefault=102
...

Display Controller Configuration:
  mScreenBrightnessDimConfig=50
  mScreenBrightnessRangeMinimum=50
  mScreenBrightnessRangeMaximum=255

```

I tried editing `build.prop`, adding `ro.lcd_min_brightness=20` but no luck, if I edit `/sys/class/backlight/brightness` to a value lower than 50 brightness stays at default minimum even if brightness slider is over minimum.

Where should I look for this hardcoded 50 minimum value? Framework.apk, kernel, SystemUI.apk...?

# Answer
> 0 votes
If I edit my brightness value manually, it won't go below the minimum, and I have never figured out why. If I use the app brightness tweak however, I can lower it all the way to one. You can find the app on xda labs, I hope it's compatable with jellybean. I also hope this helps you.

---
Tags: root-access, screen-brightness
---


# Question
Title: Disable permanently or uninstall the exchange services
I'm fighting with the exchange services on my Samsung Galaxy S4. They can render the phone unusable, draining even 40-50% of battery during the day. I've deactivated the Exchange account mail synchronization, and I'm constatly killing the app when I notice it's running, but it keeps respawning which is extremally annoying. And if I don't notice, I can find myself out outside without battery power to do other things I need.

Is there a way to permanently disable the exchange services, or even completely remove it from the device?

# Answer
> 2 votes
First try clearing the app data of the stock email app in settings-\>apps, if that doesn't work:
If you go to settings-\>apps again and click on the stock email app (not gmail) then click disable, that should do the trick.
However:
If you still have a non-gmail email you could try lowering the sync frequency from push to every 30 mins.

# Answer
> 1 votes
You need to root your phone to permanently uninstall it.

After you have rooted your device, you can use a application "Titanium Backup" to uninstall those useless application that come along with the phone.

Advice: make a copy of backup first. In case you find that you need the application after you uninstall it.

Click image for larger version

# Answer
> 0 votes
you might try clearing the caches from recovery. that seems to help slow down for me.

1. power down the device
2. press and hold vol up + home + power until you enter recovery mode.
3. press vol down until "wipe cache partition" is highlighted, then press power to select.
4. let recovery wipe and format the cache partition.
5. then select "reboot system now" to boot back into android.

hopefully that helps. exchange services handles account data for google, facebook, etc. removing or disabling it can cause system instability.

# Answer
> 0 votes
I'm not sure how much Samsung has diverged from stock Android, but on my Android 5.1 device, I can disable Exchange Services by going to Settings → Apps → All tab → Exchange Services → Disable.

# Answer
> 0 votes
I discovered this thread just today and want to say that:

Whenever Exchange or EAS/Activesync causes the battery drain, it seems to be the notes and tasks that are causing the problem. It happened with stock exchange app when Tasks was synced, and also happened with "Nine - Exchange for Android" when Notes was synced.

Also, Google version of exchange email, downloadable from APK downloading websites, does the same with Tasks synced.

None of the apps had battery issue when only Email, Calendar, and Contacts were synced.

# Answer
> 0 votes
Go to the "Application manager", Select the "Change system settings"(three spots at the right top corner) in there, Select "Show System Apps"(three spots at the right top corner) in there, Find the "Exchange services" on the lists and set the mode to OFF

# Answer
> -1 votes
Sure. It's super easy and worth freezing that app. Open App Info and tap on "Disable".

# Answer
> -1 votes
Go to settings, apps, open exchange services, uninstall

---
Tags: samsung-galaxy-s-4, exchange, services
---


# Question
Title: Android lock screen bug after system files deleted
I accidentally deleted some system files ( I was on `adb` connection) .

And lock screen stopped working right after.

The issue is that, I have a lock pin/pattern/password, but system says, it's not correct password. I changed my password with removing password files from system, and set a new password. But the error was same, `incorrect password`. I tried to flash ROM, but it didn't help.After flashing ROM , abd and TWRP broke too, because of the password issue. Also I can't add custom ssl certificates, because the password problem .

Samsung Galaxy s7, Android 9 with Hyper ROM (Galaxy Note port).

What should I do to repair my system files?

# Answer
If you have access to the /data/system folder you should delete

```
password.key
pattern.key
locksettings.db
locksettings.db-shm
locksettings.db-wal

```

all of them who existing.
> 0 votes

---
Tags: lock-screens, file-system, password, pattern-lock
---


# Question
Title: How to redirect local hotspot traffic to webserver
I want to redirect all incoming traffic in my android shared hotspot to my local webserver (192.168.43.1:8080), so if anybody connected to me put any url like "www.google.com" will automatically be redirect to "192.168.43.1:8080", **I do have root access**, what should I do to accomplish this?

# Answer
What you are talking about is called session hijacking.

There is a penetration testing suite called D-sploit that can do the feature you are requesting about. You can search dsploit apk files on the internet as they are no longer updated.

Recently, **Dsploit** has merged with **Zanti**, you can try any of these.

* Keep in mind that these are just for analysing security issues of your network, but involving in a fraudulent activity with other users will make you liable for your actions, so use wisely.
> 0 votes

# Answer
What you are talking about is called captive portal. On android this can be done by loading our own configuration file for dnsmasq. I made an a minimal UI app for this purpose. You can find it on XDA : https://forum.xda-developers.com/android/general/guide-setup-fake-captive-portal-android-t4011689 If you are android developer, please help us to improve the app.

And also this app requires root permission.
> 1 votes

---
Tags: 5.1-lollipop, wifi-hotspot, web-server
---


# Question
Title: SafetyNet vs MagiskHide: what's the status now in mid 2020?
As widely reported on different sites, and also discussed on this site (here and here), earlier this year, Google made changes to SafetyNet so that it could detect bootloader/verified boot status even with MagiskHide enabled. The developer of Magisk, John Wu, at that time tweeted that because Google was using the Trusted Execution Environment (TEE), its check on bootloader status could not be defeated. For example, he wrote:

> this new update utilizes hardware-based key attestation. It will send an unmodified keystore certificate to SafetyNet servers, verify its legitimacy, and check certificate extension data to know whether your device have verified boot enabled (bootloader status)
>
> Unless there is serious implementation bugs in your ARM TrustZone (or security co-processor like Google's Titan M), you cannot break the cryptography.

He basically concluded:

> Let's face it. Fun is over guys.

Yet, on March 14, John Wu tweeted:

> So apparently CTS is just passing again out of nowhere? Maybe Google is still testing things out?
>
> I'm over it anyways. Google is apparently willing to use key attestation for detection. Since MagiskHide is still there, people can still always use it as usual.

And another tweet from him on April 3 that I didn't quite understand:

> THE BIG GOOGLE HAMMER IS BACK! Say bye bye to SafetyNet, we'll (not) miss you...

Did that mean Google would somehow be removing SafetyNet, or at least not utilizing its capabilities to detect bootloader status?

So there was some doubt beginning to surface in mid March. In my own test in late May 2020, with MagiskHide not enabled, SafetyNet failed, but with MagiskHide enabled and targetting my test app, SafetyNet passed, meaning that MagishHide could still defeat SafetyNet. The test was run on a Pixel 3 with android 10.

So, Google may have the capability to detect MagiskHide, and it was working out in the field with real devices, but they have somehow stopped doing that? Does anyone know what is going on with SafetyNet? Was the feature temporarily reverted? Will it be coming back to SafetyNet, and if so, when?

# Answer
> 3 votes
(29 June 2020) It looks like Google is just being cautious, and preparing a new field in the SafetyNet response.

According to the SafetyNet API Clients Team

> We have started rolling out a new feature that will provide developers with insight into the types of signals/measurements that have contributed to each individual SafetyNet Attestation API response.
>
> Our JWS responses now have a new optional field named evaluationType. The value of this field will be a list of comma-separated string tokens, where each token represents an enum-like value.
>
> Currently, the following string tokens may be indicated::
>
> * BASIC - When we use typical signals and measurements along with reference data during our evaluation.
> * HARDWARE\_BACKED - When we use the available hardware-backed security features of the remote device (e.g. hardware-backed key attestation) to influence our evaluation.
>
> Examples of field values that you may expect:
>
> * {“evaluationType”: “BASIC”}
> * {“evaluationType”: “BASIC,HARDWARE\_BACKED”}
>
> We’re currently evaluating and adjusting the eligibility criteria for devices where we will rely on hardware-backed security features. So please do not use the presence or value of this field as a signal by itself (for now).
>
> Note that this feature has not been officially documented yet. Presently, we’re only communicating it to this announcement-list to collect feedback.
>
> We encourage you to use our feedback form based on your experience with this new feature as well as the overall service.
>
> Thanks & Regards, SafetyNet API Clients team

So once testing for this new feature is completed, it looks like hardware-backed key attestation will be put in place. Which means, from then on, SafetyNet would be able to detect bootloader/verified boot status even with MagiskHide enabled.

## John Wu is still fighting back

(updated on 29 June 2020)

John Wu is trying to persuade Google to not blindly apply SafetyNet hardware-backed attestation across the board. He tweeted:

> I advocate @AndroidDev to restrict hardware-backed SafetyNet evaluation to "real" security sensitive apps. Developers should go through an application process to qualify this level of API access. It is ridiculous for McDonalds to refuse to run on a bootloader unlocked device.

Meanwhile, it appears that the SafetyNet checks will still fail even if the bootloader is re-locked, as we see here, tweeted 3 July 2020

> Bad news: it is confirmed that for those who wants to re-lock their bootloader with self signed images (possible on Pixel devices), SafetyNet with HARDWARE-BACKED evaluation will still *NOT* pass CTS check.

**(Updated on 13 Dec 2020)** John Wu now tweets

> Let me get this out of the way: since I have a full time job now, I don't have much time for Magisk; I need prioritization. HW based evaluation is impractical to "hack" (except tricks to make it fallback to basic), and I lost all interest in improving the current way of hiding.

---
Tags: rooting, bootloader, google-play-services, magisk, safety-net
---


# Question
Title: Magisk will fail Safety-Net hereafter. Why?
Recently, Google made security changes which make sure fails check when Magisk is installed.

This was Tweeted by John Wu (Magisk developer) , here and here. Some excerpts:

> So here we go, after years of fun messing around using Magisk, it seems that Google FINALLY decided to "fix" SafetyNet to something useful, and that is to use key attestation to verify device status (after 3 years since introduced to Android's platform!)
>
> **Let's face it. Fun is over guys.**

(Emphasis added)

**Edit:** From Github

> **Disable MagiskHide by default**
>
> Since SafetyNet CTS is impossible to achieve, leaving MagiskHide on by default no longer serves a purpose.
>
> For more details regarding the latest SafetyNet changes, please check: https://twitter.com/topjohnwu/status/1237656703929180160 https://twitter.com/topjohnwu/status/1237830555523149824
>
> MagiskHide's functionality will continue to exist within the Magisk project as it is still extremely effective to hide modifications in userspace (including SafetyNet's basicIntegrity check).
>
> Future MagiskHide improvements *may* come, but since the holy grail has been taken, any form of improvement is now a very low priority

It looks to me that Google could/should have implemented this earlier but didn't and the CTS check being done from within Magisk wasn't comprehensive.

Please demystify this in simple terms (to the extent possible) for folks who don't understand the innards of Android (like me).

# Answer
> 6 votes
This is the latest (as on 30 August 21) on safety net. What are the changes in Magisk?

---

John Wu (Magisk Developer) posted updates today, which clarifies the reasons.

Earlier, SafetyNet API wasn't fully / correctly implemented, the way it was meant to be :

> From what we've seen so far, key attestation **doesn't seem to be fully enforced** yet, as devices with incompatible, potentially buggy(?) keymaster implementations (e.g. some OnePlus devices) that result in attest key cmd failures still pass SafetyNet regardless.

> bootloader reports the device status via kernel cmdlines, and init will reflect them in properties, and apparently SafetyNet was using those values. All those stuff is in userspace, so **Magisk can simply manipulate it**

Now, with the Feature Preview: SafetyNet Attestation API evaluationType, there will be two types of evaluation, `BASIC` and `HARDWARE_BACKED` for a complete evaluation with remote validation (as against local) :

> HARDWARE\_BACKED - When we use the available hardware-backed security features of the **remote device** (e.g. hardware-backed key attestation) to influence our evaluation.

> We’re currently evaluating and adjusting the eligibility criteria for devices where **we will rely on hardware-backed security features.**

# Can this new system be hacked?

**Looks very unlikely**

> IMO it is theoretically possible to alter control flow in SafetyNet's code to force it to always use BASIC evaluation by using some hooking framework like Xposed, however these kind of code injection is **basically impossible to hide** (memory space analysis).

> To hack this thing, you have to either find a **vulnerability in TEE firmware** (which will be patched ASAP once found) **or hardware** (less likely to happen) to break the cryptography.

> Breaking TEE won't be easy, which is why many security researchers are actively working on it.

(Emphasis added in all quotes)

# How to check if Google has implemented hardware Attestation for my device?

**Edit** Magisk canary has been updated to show evaluation status and once the API is implemented, you will see more details (failing SafetyNet). Or, follow instructions on this XDA post to check attestation method using logcat

For more information see SafetyNet's hardware attestation will make hiding root in Magisk really hard

---

Edited on 16 December 20

# And the final nail in the coffin for fooling safety net detection

Johnwu in

> HW based evaluation is impractical to "hack" (except tricks to make it fallback to basic), and I lost all interest in improving the current way of hiding.

* Another tweet of 13 Dec 2020

> If passing SafetyNet is the only use of Magisk for you, then yeah, bye Face with rolling eyes ( in response to *So... magisk is completely useless right now?...*)

# Answer
> 2 votes
It appears that Google may have chosen not to enforce this checking, even though it was implemented for a short while (a few days?). At first, the Magisk developer, John Wu, sounded quite pessimistic about it, going even so far as to say that the fun was over.

A few days after the tweets from John Wu that were referenced in the question, however, on March 14, John Wu tweeted again, and this time he said

> So apparently CTS is just passing again out of nowhere? Maybe Google is still testing things out?
>
> I'm over it anyways. Google is apparently willing to use key attestation for detection. Since MagiskHide is still there, people can still always use it as usual.

In my own test in late May 2020, with MagiskHide not enabled, SafetyNet failed, but with MagiskHide enabled and targetting my test app, SafetyNet passed, meaning that MagishHide could still defeat SafetyNet. The test was run on a Pixel 3 with android 10.

So, Google may have the capability to detect Magisk, since the boot loader check had been moved into the TEE, but they have somehow stopped doing that, for reasons known only to Google.

---
Tags: rooting, magisk, safety-net
---


# Question
Title: Is it possible to use Recent Apps to close all open apps less the one I want to stay open?
I have a scenario, or many, where I end up opening a ton of apps, and later on want to close them all at once, but keep 1 or 2 open. As an example, I use WhatsApp at home, and as we all know you cannot use the web portal without the app on your phone being on. So ideally I would have wanted to be able to use the Recent Apps feature of Android to close all apps, less say those selected as 'keep on.' And then if I really wanted to close them, I could then go into Recent Apps and manually close them.

Is there perhaps an app would allow me to script such a task, or any other solution?

I'm running Android 10 on a Galaxy A71 5G

Thanks in advance.

# Answer
> 1 votes
From the recent apps panel, select the app you want to lock, for example Chrome.

Press the 3 dots menu (above the Chrome panel) to show the *lock* option. Lock it.

and the small lock symbol shows up.

Now the app is locked and cannot be swiped away to dismiss the app. To unlock follow similar steps. You can clear unwanted apps by manually swiping away.

Alternatively, you can use apps such as Kill Apps, which allow you to customize the list of apps to be killed. Such apps are *not usually recommended* as Android manages memory space efficiently and such task killers can cause more harm by abruptly killing running apps.

See Recents Screen-Android Developers for more information.

---
Tags: recents-screen
---


# Question
Title: How to create filesystem in TWRP? Getting error: "Unable to format to remove encryption"
The screen appears after booting into TWRP and trying to format memory:

I was trying to flash a custom ROM using TWRP recovery but it's showing **Unable to mount storage** & **Failed to mount '/data' (Invalid argument).**

I tried several methods like formatting memory but it's also not happening. It's showing **Unable to format to remove encryption.** Also tried to change the file format but nothing helped me. Now whenever I switch my phone on it automatically boot up into TWRP recovery mode. I tried this method and almost every method possible but nothing helped.

I'm using **Moto E4 Plus** (*nicklaus*).

# Answer
I had the same problem, and what worked for me, I formatted it from command line, so while in fastboot mode I typed:

```
fastboot format userdata

```

Then I flashed TWRP and rebooted into it and the files in the storage were all showing, all was working.
> 4 votes

# Answer
You can always format from command-line to be sure where the problem is (if any). **This will erase your whole `/data` partition** which contains personal data, apps etc.

* Boot to TWRP recovery.
* Find block device for `userdata` partition. Usually it's symlinked at `/dev/block/by-name/userdata` or `/dev/block/bootdevice/by-name/userdata`. See **FINDING BLOCK DEVICE** section in this answer.
* Make sure `userdata` partition is not mounted (which already seems the case here). Execute `mount` to see all mounted filesystems. To un-mount open terminal or `adb shell` and execute:
```
~# umount /data
~# umount /sdcard

```
* Find partition size:
```
~# SIZE=$(blockdev --getsz /dev/block/by-name/userdata)

```
You get size in 512-byte sectors.
* Leave (at least) 16 KB (32 sectors) at partition end for crypto footer - it's required on devices using Full Disk Encryption (FDE):
```
~# SIZE=$((SIZE - 32))

```
* Create filesystem on the rest of space. To create `f2fs` filesystem:
```
~# mkfs.f2fs -l data /dev/block/by-name/userdata $SIZE

```
To create `ext4` filesystem, size is to be provided in block count. If using 4KB block size:
```
~# mkfs.ext4 -L data -b 4096 /dev/block/by-name/userdata $((SIZE * 512 / 4096))

```
Or if older Android-specific `make_ext4fs` is available:
```
~# make_ext4fs -L data -l $((SIZE * 512)) /dev/block/by-name/userdata

```
`data` is filesystem/volume label.

---

**NOTES:**

* `blockdev` and `mkfs.*`/`make_ext4fs` are usually bundled with TWRP or you need to get static binaries.
* Why we need to leave space for crypto-footer? See quote from Partition map:
> Starting in Android 3.0, the `recovery.fstab` file gains an additional optional field, *options*. Currently the only defined option is *length* , which lets you explicitly specify the length of the partition. This length is used when reformatting the partition (e.g., for the `userdata` partition during a data wipe/factory reset operation, or for the `system` partition during installation of a full OTA package). If the `length` value is negative, then the size to format is taken by adding the length value to the true partition size. For instance, setting `"length=-16384"` means the last 16k of that partition will not be overwritten when that partition is reformatted. This supports features such as encryption of the `userdata` partition (where encryption metadata is stored at the end of the partition that should not be overwritten).
* You don't need to provide filesystem size if you don't intend to encrypt your device or if device uses File Based Encryption (FBE). To create filesystem on whole partition:
```
~# mkfs.f2fs -l data /dev/block/by-name/userdata

```
> 3 votes

---
Tags: rom-flashing, twrp, file-system, encryption, mount
---


title: Problem with intents :MacroDroid

text:
# Question
Title: Problem with intents :MacroDroid
I am not able to get the intent running for this out loud app. App description says

> * Launch these *activities* to change the on/off state of Out Loud: `com.hillman.out_loud.activity.OnActivity`

> * To change the on/off state through a *broadcast* intent, send a broadcast with these details:

> `Action: com.hillman.out_loud.ON_OFF` `Data: out_loud://on_off?state=[state]`

whether I use activity or broadcast.

**What am I doing wrong?**

# Answer
If you want to *turn on* the Out Loud using automation app, do this:

* Target: Activity
* Package: `com.hillman.out_loud`
* Class: `com.hillman.out_loud.activity.OnActivity`

Leave the rest entries untouched.

If you want to *turn off* the Out Loud, do this:

* Target: Activity
* Package: `com.hillman.out_loud`
* Class: `com.hillman.out_loud.activity.OffActivity`

If you want to toggle the state, do this:

* Target: Activity
* Package: `com.hillman.out_loud`
* Class: `com.hillman.out_loud.activity.ToggleOnOffActivity`

Check your notification panel/bar to see the changes. If toggled to On state, Loud Out would create a notification (low priority), else the notification would be missing.
> 1 votes

---
Tags: automation, intents, macrodroid
---


# Question
Title: Gmail contacts not syncing - How to get them to sync?
I have a new Samsung S8+ and Gmail seems not to find any contacts when I try to compose an email. I have downloaded google contacts and all contacts appear on my phone. Is there a setting I've missed?

# Answer
Yes, the permission for Gmail to view contacts is most probably off. Go into settings\>manage applications\>Gmail\>permissions\>contacts on

(Worked for me)
> 0 votes

# Answer
Please turn on "automatically sync data" on your device
> 0 votes

# Answer
You can go through Settings \> Accounts \> Google \> Gmail and turning on the sync button.
> -1 votes

---
Tags: gmail
---


# Question
Title: How to get my Note 9 to read aloud incoming email ONLY from one specific Gmail account?
Any way to do this? Tried various apps but they read out all email accounts. Want to setup my phone to read incoming emails out loud from one specific user too if possible.

# Answer
FairEmail since version 1.1254 released on 17 Jul 20, allows you to read out aloud mails from selected sender(s).

A big shout out to Marcel, the developer who accepted this feature request and implemented it. I have tested it thoroughly over the last few days (I had a test version much prior to the formal release) and it works faultlessly for me.

Here is how you do that :

Create a rule:

Go to the **inbox** of your primary account, long press → Edit rules and tap on the **+** icon to create a new rule.

* Set *order* to 1 (lower the order, higher the processing priority). Make sure the rule is enabled.
* In the *Sender Contains* enter email address of the sender.
* In the *Recipient Contains* enter email address of the recipient.
* Type and *not* copy-paste email addresses (at times copy-paste has invisible blanks which can break the expected behavior)
* Leave *Subject Contains* blank.
* Select *Action* as *Text to Speech*
* Press Check setup. If it says OK, you are set up, else *install voice data*(TTS engine).

approach had mixed results. You can read about them in previous version of the answer

**Notes**

* You need the paid version of FairEmail.
* The rule should be created in inbox folder of the **recipient** account.
* At the cost of repetition, leave the subject on the rule blank
* This is for one sender. If you want this action for more senders, you need to create more rules as explained. You need to create one rule per sender (tip: you can long press a rule to copy and edit, instead of starting all over again) .
* The mail text that is read out is limited to the text that is contained in the notification text, that is 500 characters (Android limitation of notification text size). IMO, this is more than enough to get the message in full most of the times (unless it's a very long mail).
> 4 votes

---
Tags: gmail
---


# Question
Title: How can I see which applications is reading the clipboard?
Upon reading TikTok says it will stop accessing clipboard content on iOS devices, I wonder: How can I see which applications is reading the clipboard?

# Answer
We can do some scripting with AppOps.

Create `/sdcard/clipboard_history.sh`:

```
for pkg in $( pm list packages | sed 's/package://' )
do
    ( appops get $pkg READ_CLIPBOARD; appops get $pkg WRITE_CLIPBOARD ) |
    grep -i time= |
    while read -r line
    do
        echo $line | grep ' allow; ' | sed 's/time=+//'
        echo $line | grep -v ' allow; ' | sed 's/time=+[^ ]*//; s/rejectTime=+//'
    done |
    sed 's/[0-9]*ms//; s/[:;]//g; s/_CLIPBOARD//; s/ago//g; s/$/& '"$pkg"'/'
done |
awk '{printf "%-10s%-14s%-20s%s\n",$1,$2,$3,$4}'

```

Run:

```
~$ adb shell sh /sdcard/clipboard_history.sh
WRITE     allow         19h48m7s            org.shadowice.flocke.andotp
READ      allow         2d1h46m12s          dev.ukanth.ufirewall
READ      ignore        26m16s              com.dv.adm.old
READ      deny          7h39m16s            com.google.android.gms
READ      foreground-R  1d2h43m6s           org.blackmart.market
WRITE     allow         6m48s               com.termux
READ      foreground    16s                 com.google.android.inputmethod.latin
READ      allow         1m17s               com.stackexchange.marvin
WRITE     allow         1m14s               com.stackexchange.marvin

```

Similar answer here: Is there a way to log calls to device vibrator?
> 2 votes

# Answer
* Prior to Android 10, **all apps** could access clipboard by default without even asking for permission. Apps actually need a permission (that is automatically granted) to read the clipboard: `READ_CLIPBOARD` (from XDA Developers) - thanks to Andrew in comment
* In Android 10, See Privacy changes in Android 10, access to clipboard is limited to OEM apps only that have `READ_CLIPBOARD_IN_BACKGROUND` permission, which are keyboards and "apps in focus" (not sure what latter means)

> Unless your app is the default input method editor (IME) or is the app that currently has focus, your app cannot access clipboard data on Android 10 or higher

* TikTok would need to ask and be granted the same signature as OS since this permission is Signature permission

> The system grants these app permissions at install time, but only when the app that attempts to use a permission is signed by the same certificate as the app that defines the permission.
> 1 votes

---
Tags: privacy, copy-paste
---


# Question
Title: Samsung Photosphere orientations.txt data
Samsung (and perhaps other vendors) photosphere source files include the photographs and 2 text data files.

*sessions.meta* \- contents are self explanatory, labelled metadata info about the sphere.

*orientations.txt* \- unlabelled columns.

Below are sample contents of *orientations.txt*:

```
-0.28355762 0.95895493 7.3134253E-4 -0.19058217 -0.057101488 0.9800091 0.9398263 0.2777497 0.19895127 2.8249815
-0.18003005 0.96288395 0.20110609 -0.044745624 -0.21225126 0.97619015 0.9826429 0.16674495 0.081296444 2.9338377
-0.27238333 0.95405024 0.12488161 0.17231762 -0.07932246 0.98184246 0.946633 0.28895682 -0.14279357 2.9741824
-0.43306527 0.8942725 -0.112832405 0.09304 0.16886118 0.9812387 0.89654785 0.41444248 -0.15633103 2.746174
-0.44042435 0.87723744 -0.19099967 -0.14356112 0.14119293 0.97951764 0.8862373 0.45882356 0.06375239 2.631776

```

**My question is, does anyone know what these columns in orientations.txt represent?**

* 1 row per image
* 10 columns of floats
* no field names
* I assume it may have to do with roll, pitch and yaw, but I'm not certain.
* Perhaps accelerometry output?

Thank you very much in advance.

This is broadly related to these two other questions, but they don't really address my question.

Get the original photos after using PhotoSphere?

Is there any way to re-render a photosphere?

# Answer
> 1 votes
I've noticed that most elements are less than 1. Moreover the first 9 elements seem to be always less than 1. It looked like elements of a rotation matrix. So I grouped these elements into 3x3 matrix and it happened to be orthogonal, and it is in fact rotation matrix.

```
-0.28355762  0.95895493  7.3134253E-4
-0.19058217 -0.057101488 0.9800091
 0.9398263   0.2777497   0.19895127

```

If the phone is in landscape orientation and points to the North than the matrix is identity matrix:

```
 0.9999746    0.0067272037 0.0023434649
-0.0067065083 0.9999394   -0.008729676
-0.0024020493 0.008713738  0.9999592

```

The last element in the row is the sum of all elements of the matrix. I don't know why it is added, because it doesn't seem to have any physical meaning, but I guess that it is some form of a checksum.

---
Tags: photos, samsung-galaxy-s-5
---


# Question
Title: Drive sends an almost-daily "1 file is now available offline" notification
On my second device (Nexus 5), I keep getting the same notification from Drive almost every morning. When I click on it, the app opens its main screen without marking the file that I was notified about. Funny thing is, I haven't received such notifications on my main device (Pixel 3).

What is this notification about? Can the notification be triggered from the update of a some backup file?

# Answer
Apparently, the files that I've uploaded recently are being flagged as "Available offline", which downloads them to the device and the app shows this notification when a download is completed. I suppose that's an intended behavior, even though I've never flagged any of my files as "Available offline" ¯\\\_(ツ)\_/¯
> 1 votes

# Answer
I had the same problem and I think unchecking the "make recent files available offline" setting in the Google Drive app did the trick.

I'm using Google Drive v2.20.261.01.40 on a Google Pixel 3a with Android 10 (build QQ3A.200605.002).
> 2 votes

---
Tags: nexus-5, google-drive, push-notifications
---


# Question
Title: Whatsapp backup and restore not working (Tested both local and google drive) - Bluestacks
How to do a whatsapp local backup and how to restore whatsapp using local backup.

I followed the steps mentioned in https://www.business-standard.com/article/technology/how-to-back-up-restore-whatsapp-chat-history-using-google-drive-storage-119072500591\_1.html#:~:text=To%20find%20the%20local%20backup,folder%20inside%20the%20WhatsApp%20folder.

```
How to restore WhatsApp backup using microSD card

If you remove WhatsApp for any reason and install it again on the same device, the instant messenger notifies about the existing local backup and takes your permission to restore messages from it. Follow the steps below in case you switch to a new device and seek to restore WhatsApp chat history from local backup:

Step 1: Insert a microSD card in your old phone, if it has a slot

Step 2: Go to the phone’s file manager

Step 3: In the file manager, locate WhatsApp folder in root

Step 4: Copy the WhatsApp folder and transfer it to the microSD card

Step 5: Eject the microSD card safely and insert it in your new phone, if there is a slot

Step 6: Download and install WhatsApp on a new phone. Set it up and then uninstall it

Step 7: Replace the WhatsApp folder in your phone’s internal storage with the one saved in the microSD card

Step 8: In the file manager, navigate to sdcard/WhatsApp/Databases

Step 9: Rename the backup file you want to restore from msgstore-YYYY-MM-DD.1.db.crypt12 to msgstore.db.crypt12. It is possible that an earlier backup may be on an earlier protocol, such as crypt9 or crypt10. Don't change the number of the crypt extension

Step 10: Download and install WhatsApp again and select the option to restore the whatsapp data from "Google drive". But this time it will identify your local backup and notify if you would like to restore from it instead of visiting Google drive.

In case the old phone or the new phone does not have a microSD card slot, copy the WhatsApp folder from your phone’s internal storage on a desktop. Perform the step 6 mentioned above before transferring the folder in the new phone’s internal storage. Once you transfer the folder, perform Step 8 and onwards.

```

I have an Android device (actually I am using Bluestacks Android emulator but I expect the process to be the same). I have setup WhatsApp on this device. Now I want to move to another device. So I did a whatsapp local backup using `WhatsApp -> settings -> Chat backup -> Backup`

Now I manually copied the WhatsApp folder in the Andoid file system which has the folders Backups, Databases, Media

Now I manually transferred these folders and then installed Whatsapp on new Android device using the same phone number. But when I open Whatsapp in this new device, then I only see the option to restore from Google drive backup but not from local backup. So I clicked Skip but then I dont see my chats

What is the process to successfully backup and restore whatsapp data locally using Android emulator?

Edit: I think there is an issue with the Whatsapp backup I am using. For example, the Whatsapp folder that was restored from Google drive is detected properly by whatsapp when I copied it to local storage. But the Whatsapp backup that I copied from Bluestacks is not detected I dont know why

Edit2: I have opened whatsapp from my old Bluestacks device and backed up all whatsapp data to Google drive. Now in the new Bluestacks device I selected the Google drive account to restore the backup. But whatsapp is still not able to restore my chats etc. So this is probably a Bluestacks issue where I am not able to move the whatsapp backup from one device to another if I am using whatsapp on Bluestacks

So it looks like the whatsapp backup taken from an Android phone can be imported into Bluestacks. But the whatsapp backup taken from Bluestacks is not detected anywhere so I will loose the chat history, but atleast media is available in the whatsapp folders which I copied from my old Bluestacks device's Android file explorer.

# Answer
Yes, I tested both local manual transfer and Google drive and found that the whatsapp data backedup from `Bluestacks` is not working for restore

But atleast I found that `nox`(used the version 3.0.3.0) app player Android emulator works fine. I tested the whatsapp backup and restore using Google drive and local manual transfer and both work fine

Additionally if one wants to know how to Transfer files from nox Android emulator to MAC and vice versa,

```
Enable Root access in nox app player by selecting settings icon at top right corner of the nox app -> Switch ON the root. Then there is a common share folder which is accessible from both MAC and also nox Android emulator,

In nox the common share folder is at:- Open the Amaze File Manager (Tools folder on nox app player Android emulator home screen -> Amaze) and go to /root/mnt/shared

In MAC the common share folder is at:- Go to /Users/Username/Library/Application Support/NoxAppPlayer/Nox_share

Now to transfer files from nox to MAC:-
From Phone(/Storage or /emulated/storage/0) folder if we want to copy something to /root folder(Accessible to both Phone and MAC) then we can only copy files (or zip files as well) and not folders so zip the whatsapp folder (using AstroFileExplorer+Winzip software because somehow winzip is not detected in Amaze File Manager) and copy the zip file from /Storage to /root/mnt/shared using Amaze File Manager

Then in MAC we will have the files already at the common share folder location

```

P.S: The issue I have with nox Android emulator is that it does not detect the MAC touchpad scrolling. I need to click on screen using mouse cursor and then scroll the screen like a touch screen. https://www.reddit.com/r/noxappplayer/comments/g1qp7b/touchpad\_on\_macbook\_pro\_with\_nox/

Also nox app player is not able to access the camera. So I cannot open web whatsapp for example because I need to scan a photo of the barcode using whatsapp app with a camera https://www.reddit.com/r/noxappplayer/comments/bmv8pl/problem\_cant\_connect\_to\_camera/
> 0 votes

---
Tags: whatsapp-messenger, bluestacks
---


# Question
Title: How to modify /system/priv-app in Android 10?
I use ES File Explorer to modify `/system/priv-app` in the past with root permission given via magisk.

After upgrading to Android 10, ES File Explorer can no longer modify the `/system/priv-app` giving me an error message saying "operation failed."

What alternatives do I have if I like to modify `/system/priv-app`?

The output of running `set -x; exec >>/sdcard/mount.log 2>&1; id; mount -o rw,remount /system; mount | grep 'on /system '; touch /system/test_file; cat /sys/block/dm-*/dm/name`:

```
uid=0(root) gid=0(root) groups=0(root) context=u:r:magisk:s0
mount: '/system' not in /proc/mounts
touch: '/system/test_file': Read-only file system
vendor-verity

```

It turns out:

> On some system-as-root (SAR) devices you can no longer mount the system partition as read-write and doing systemless modifications through Magisk is the only way. If you do want to do actual edits of the system, and if it is even possible (from Android 10 it's actually impossible on some devices), you need to mount the root directory, /, as rw and not /system. You can also try editing the partition mirrors that Magisk keeps in /sbin/.magisk/mirror.

So all I needed to do is to:

```
mount -o rw,remount /

```

# Answer
> 0 votes
You need to remount the partition as read-write. `mount -wo remount /` (change `/` to `/system` if you don't have system root enabled in my app). It should work then, though if not you probably have a read only filesystem like EROFS

# Answer
> 0 votes
```
> adb root

> adb shell avbctl disable-verification

Successfully disabled verification. Reboot the device for changes to take effect.

> adb disable-verity

using overlayfs
Successfully disabled verity
Now reboot your device for settings to take effect

> adb reboot

> adb root && adb remount
remount succeeded

> adb push ScreenCap.apk /system/app/
ScreenCap.apk: 1 file pushed. 33.1 MB/s (1640812 bytes in 0.047s)

> adb reboot

```

---
Tags: system, system-apps, android-10
---


# Question
Title: Can't see Android Emulator when apparently it already is running
I am trying to start learning how to develop Android apps, and I tried to make a new project and navigate through Android Studio. I tried using the Emulator by creating a new virtual device and running my new test project with it, but no matter what i seem to do it never actually does anything once I click the "Run" button on both the AVD Manager and the main one you see on the top right area of Android Studio.

I keep seeing this after i try to click the Run button again after not seeing anything happen. and i can't seem to delete any of the files this is pointing to since Windows keeps complaining its being used by another application even after I close Android Studio and terminate adb.exe

I've been looking around for an answer and i've found things like "Uncheck Enable ADB Integration", or "Changing the Emulated Performance Graphics to Hardware/Software", but a lot of these answers are from threads that are 3+ years old so I don't think these are applicable anymore. can someone provide some insight to how to get this working? I am using Android Studio 3.6.3

PS: I want to make it clear that even after i restart my pc and delete these so called "\*.lock" files, this changes **absolutely nothing**

EDIT: As requested here are some screenshots that hopefully answers some questions I was being asked.

My PC specs:

Android Virtual devices i have set up so far:

my installed SDK Tools:

As for the BIOS Virtualization question, if "Intel Virtualization Technology" is the same thing then yes it seems to be enabled for me

# Answer
> 0 votes
following Robert's advice I opted to install a copy of Genymotion Personal Edition and linked it to Android Studio via the Genymotion Plugin that was available to install.

see here for installing: https://www.techbeamers.com/genymotion-emulator/

If you do not see an additional icon pop up like described in the page then you will want to (in the case of versions around 3.6.3) enable the Toolbar via View\>Appearance\>Toolbar

This seems to at least link up fine for me with Android Studio, but overall does not really answer the question as to why the emulator via AVD does not function.

If no one seems to be able to share that knowledge, then I suppose will pick this one as the best answer.

Thanks to Robert again for mentioning Genymotion.

---
Tags: android-studio
---


title: Help with intents: MacroDroid

text:
# Question
Title: Help with intents: MacroDroid
Further to this Problem with intents :MacroDroid, the solution in the accepted answer works but sadly only for the first time (app error) . I have reported this to the developer

Meanwhile, I thought of trying to see if a *broadcast* intent would solve the problem. Lacking understanding of how intents work, I tried this and other combinations (`ON` in square bracket, Action same as class) , but couldn't get it to work.

Here is the Tasker intent that works

Request help in constructing broadcast intent.

NOTE:Please don't edit to make the images smaller for the sake of readability, let them be

# Answer
This works. No idea for the logic behind it. Any body knows why, please edit to explain or answer
> 0 votes

---
Tags: intents, macrodroid
---


title: Stuck with bricked OS

text:
# Question
Title: Stuck with bricked OS
A few days ago I've updated my rooted(with magisk) galaxy s10(SM-G973F) to the latest firmware(patched with magisk) of ILO(`G973FXXU7CTF1` \- my previous firmware - `G973FXXU4BTA8` \- had one ui 2.0), and it seems that since then, it is pretty much bricked.

GBWhatsapp Mini doesn't work anymore(can't download media), Google Play tells me Netflix and a bunch of other apps are "not compatible with your device" and I can't connect my Galaxy Watch anymore(stuck on pairing).

I've previously tried to upgrade it to `G973FXXU4CTC9` and had the same issue so I've downgraded back to `G973FXXU4BTA8` and it was all fixed, but now it won't let me even downgrade(SW REV CHECK FAIL)..

What can I do then?

Thanks

# Answer
> 0 votes
Eventually solved it...

The Galaxy Watch thing + the Netflix thing were solved with this combination(not sure which of these steps solved it):

1. Installed `MagiskHide Props Config` module and blocked the following using `Magisk Hide`:

* Galaxy Watch Plugin(all)
    * Galaxy Wearable(all)
    * Google Play Games
    * Google Play Music
    * Google Play Services for AR
    * Google Services Framework
    * NFC
    * Samsung Health
    * Wearable Manager Installer
    * Google Play services(`com.google.android.gms` and `com.google.android.gms.unstable` only)
    * Google Play Store(all except `com.android.vending`)
2. Ran these commands as root:

```
mount -w -o remount /vendor
cp --preserve=all /vendor/etc/vintf/manifest.xml /vendor/etc/vintf/manifest.xml.bak
sed -i /`grep wsm /vendor/etc/vintf/manifest.xml|sed 's@/@\\\/@'|sed 's@>@\\>@g'|sed 's@<@\\<@g'|tr -d ' '`/,/'<hal format="hidl">'/d /vendor/etc/vintf/manifest.xml
mount -r -o remount /vendor

```
2. Installed `Bluetooth Library Patcher` module

Now the GBWhatsapp Mini problem. For some reason it required that `Install unknown apps` permission would be allowed for it.

Now everything works fine.

---
Tags: rooting, ota-update, samsung-galaxy-s-10
---


# Question
Title: Why applications doesn't show up in "open with" list?
Let's say, if I download image file from mobile browser, opening it leads to the "open with" window where i see all of the installed gallery apps to choose from.

however, there are other apps (i.e. upwork messenger) from where if i download the image file, while opening it, there doesn't show up any image editor/gallery aps, instead quite unrelated apps (i.e. ms word or pdf viewer shows up) so i just can't open images...

what could be the reason for that and how to force apps (i.e. image apps) everywhere to be shown up when opening the image files.

# Answer
* Android 10 bought about an important change regarding apps accessing data, which is a good thing for privacy. Quoting from answer

> Before Android 10, any app could read or write any files to external storage (the place where apps store their data), if they requested the `READ_EXTERNAL_STORAGE` and `WRITE_EXTERNAL_STORAGE` permissions. Starting from Android 10,apps can **only** access data created by them and not other app's data or common data like images, downloads etc.

* This means access to external storage apps need to access it using Storage Access Framework (SAF). SAF isn't new, it's been around since Android 5.0 but many developers didn't want to use it since it was not developer-friendly
* The messenger app you are using isn't seeking permissions through SAF, so it can't show "open with" options.
* Install Local Storage app to overcome this limitation. From app description

> Local Storage uses the new Storage Access Framework to allow other applications to read or write any file in your primary storage and read from secondary external storage devices.
> 1 votes

---
Tags: images
---


# Question
Title: Moto G6 not charging, not connecting via USB and battery indicator frozen at zero, not enetering battery saving mode
Here is how problem came about:

I unlocked my moto G6's bootloader and fastboot flashed twrp-3.4.0-0-ali.img in it. I opened TWRP trough the recovery option in fastboot, and enetered my PIN, but TWRP was unable to decrypt my storage. I noticed that TWRP was showing that the CPU temperature was at 34ºC and battery full. Then, I clickend on "cancel" the operation, kept TWRP read only and rebooted to delete the fingerprint recognition in system settings, which I thought could have been causing the failure of TWRP to decrypt. That didn't work, but this time I shut my phone down with power button. I am unsure if I did so before or after cancelling the operation, but I didn't choose the option to keep TWRP read only. I also noticed TWRP showing a ridiculously high CPU temperature before turning off. Regardless, it disappeared. I can now boot normally but I am having the issues described in the title. I tried a factory reset from moto but it solve this problem.

I performed a full adb backup before unlocking the bootloader with the command

> adb backup -apk -shared -all -f C:\Users\

However, I may not be able to restore this backup via USB, given that my phone is not connecting via USB.

Any ideas of what to try?

# Answer
After factor resetting through fastboot (so called hard reset), rather than factor resetting through the settings (i.e. soft reset), I got my phone in order again.
> 0 votes

---
Tags: recovery-mode, usb, charging
---


# Question
Title: Xiaomi stuck in fastbot mode while bootloader is locked
I've found my Xiaomi redmi note 4 stuck in fastboot mode after the battery had died. I tried different ways to unbrick it but nothing helps. The list of ways I tried:

1. platform tools fastboot binary. `fastboot reboot bootloader` \- still rebooting to fastboot.  Also, adb binary doesn't recognize my device.
2. I can't use mi unlock tool because it doesn't see my phone.
3. Miflash doesn't recognize the device also.

Are there any other ways to unbrick it?

Edit: It's Mediatek Helio X20

# Answer
> 1 votes
The problem was not in fastboot mode. The reason was that my volume button was shortening and was always pressed. Fixing the button solved the issue.

---
Tags: fastboot, xiaomi, bootloader-lock, redmi-note-4
---


# Question
Title: How do I set Google Chrome to close when I swipe away the last tab?
On another device, when I swipe away chrome's last open tab, the whole app closes. I don't know how I got it to do that.

# Answer
> 4 votes
On newer Chrome versions, to get the app to close itself when you close tha last tab, setting homepage on is not enough. When you set homepage on, you get to choose between:

* Chrome's homepage
* (enter custom web adress)

The trick is to select the second option and leave it blank!

# Answer
> 1 votes
This is automatic for Google Chrome, if it has no tabs open then it closes everything, I know it's annoying, and there's a fix. Go into the top bar, settings, and the 7th option or so should be called Home page. Turn this off and it won't happen again.

Regards

# Answer
> 0 votes
For some reason that will only happen if you have home page enabled. Open chrome, open menu\>settings\>home page\>on.

---
Tags: applications, chrome-for-android
---


title: Any app to help finishing call?

text:
# Question
Title: Any app to help finishing call?
My mother has the habit of ending the conversation by pressing the BACK button several times instead of hitting the red button. The perso she talk to can be heard after a few minutes (people are nosy and my mother is old). Is there an option or an application that contains a silent closing of conversation windows and was visible until the end of the conversation?

# Answer
> 1 votes
An alternative approach that might be easier for your mom: In Settings→Accessibility, there is an option to make the phone's power button end the call (here labeled "power button ends call"). That might be easier for her than remembering to tap the on-screen button.

Google's support site has an an article on the feature but it doesn't really say anything more.

---
Tags: applications, google-apps
---


title: Safest way for rooting

text:
# Question
Title: Safest way for rooting
I would not recommend rooting a device that is still under warranty.

I am trying to find a way to root my old device from 2014 that has become my daily because the new one got damaged and cannot afford a new one. It runs on Android Lollipop.

I am trying to avoid the traditional root way which involves unlocking the bootloader and then flashing it with different files. I am not comfortable in doing that since it is risky and my brick my phone from a mistake. There are tutorials on doing it for my exact phone model so that is not the requirement here at all.

I also know about the one click root solutions but there seems to be a lot of debate on its safety as it is not clear what info is being collected by the app developer. I did kingroot on my test device and it is fine for that device but I don't want it on my daily.

I have found a way which "on paper" seems the safest. It roots without rooting the device. However, I would still like to make sure that it is safe before I use it.

In the below link there is a video that is about an app called VMOS which allows to duplicate the O/S (done automatically) and creates a virtual O/S on top of the locked one on the device and then the virtual one can be rooted.

https://www.youtube.com/watch?v=UUTxMGsM\_Uc

The app has been removed from the "Android Play Store". I am adding below the FAQ from their website. In the FAQ they mention that they do not collect any data and that the only data they collect is for error logs.

https://www.vmos.com/faq.htm

Can that claim be trusted? Would anyone trust that they are honest and do not collect any other data.

I don't think that the app can be put behind a firewall because then it might block all the apps that are running on it as it is the main gateway for them.

I am also sure that running a virtual O/S would require to use more resources on the device. So this solution would not be useful for just any device.

# Answer
As far as the app you found my impression is, that it is as of until someone of standing in the community can legitimately say otherwise, that its ability and origin are "questionable" at this time. I have only seen a few people even comment ABOUT it, let alone bonafide users that actually USED it and have some form of empirical data that can back up any claim to it being effective/non-spyware related/not full of issues like bricking peoples Galaxies, Lg ThinQ's (god I love mine), Note, etc., and so on. If it is a usable way of being able to solve some issues for the general public than I'm all for it but hopefully someone can start showing some good hard data on this for everyone.
> 0 votes

# Answer
You have to use the tool towelroot by Geohot (https://towelroot.com/) or FrameRoot Apk from XDA Developers(https://forum.xda-developers.com/apps/framaroot/root-framaroot-one-click-apk-to-root-t2130276). All this toolks are .apk files that you can install on your smartphone and click root once installed.
> 0 votes

---
Tags: rooting, 5.0-lollipop
---


# Question
Title: where are MyPhoneExplorer SyncJobs stored?
I like to know where exactly the **FileSync jobs** are stored in a MyPhoneExplorer phone profile? (in what file, and which location (profile folder or AppData folder))?

I like to **emigrate to a new phone** and I have a lot of **customized FileSync folders** configured, all the folders have the same path on my new phone and I want the same folders and options as in the old phone. How can I easily **import them into a new profile** I created for my new phone? Without creating them all over again (would spare me a lot of work).

I searched all the config files in my old phone profile folder and hoped they were stored in "FileSync.dat", I copied that file to the new profile and restarted MyPhoneExplorer, but it did not seem to work, still no SyncJobs in the SyncFiles menu...

Thanks a lot in advance.

# Answer
The SyncJobs are stored in "settings.dat" ! An editable text file you can open with any text editor:

* close MyPhoneExplorer
* open settings.dat from your old profile folder
* copy all the text from the rule: \[FileSync\_\*\] until the end of the file
* from the old\_phone's: settings.dat
* to the new phone profile: settings.dat (in your new profile folder)
* restart MyPhoneExplorer

thanks to "Koelner" to give me this great information, that saves my day! So I share it here and hope there will be an import/export function in the future.

answer on MyPhoneExplorer support forum
> 1 votes

---
Tags: applications, sync
---


title: Will installing TWRP wipe my device?

text:
# Question
Title: Will installing TWRP wipe my device?
So I've rooted my Galaxy S10 Exynos using Magisk and now I wish to install Twrp for easier updates flashing.

Will installing TWRP on my magisk rooted device wipe my data?

Thanks

# Answer
No. TWRP is only a custom recovery that replaces your stock recovery. But be sure to flash the right TWRP for your device.

Searching in this XDA thread using your model number would be a good idea (On some devices it is possible that root is lost, and you may need to root again)
> 5 votes

---
Tags: rooting, twrp, magisk
---


# Question
Title: How can I customize the list of services that pops up when I choose to "share" something in an app?
Many apps give you the option to "Share" whatever it is you are looking at (or watching or listening to). This usually manifests in the form of a popup list of services that include: Gmail, Facebook, Twitter...) The list seems to be the same from app to app. How can I change what services are listed on this popup screen? Is there any way to change, add, remove, append this list?

I'm running Android 2.2 on a Moto Droid 1.

# Answer
The items in the list are determined by which installed apps support the `ACTION_SEND` intent. Any app that supports that intent will be included in the list. I don't think there is a way for users to modify the list other than installing/uninstalling applications.
> 12 votes

# Answer
I personally use **AppChooser Pro** for about a year already (there's also a free version to test first if you like it). It's quite similar to *Andmade Share* which already was recommended with an older answer here, but first looks better (OK, that's quite subjective), but for me also works better, somehow more "intelligent":

<sup>*AppChooser:* List and grid view (source: Google Play; click images for larger variants)</sup>

First, it offers a list *and* a grid view – as above screenshots show. You can switch between both using the appropriate icon on the bottom (in the middle; easy to identify in the screenshots). You can sort the list alphabetically, hide items you never (or rarely) use while still being able to show them “ALL” (appropriate icon again), select multiple targets, and more. By default, the list/grid order is kind of LRU: once you used a target, it will be moved to the top.

I immediately went for the paid version (not even taking a look at the free one), and never regret it. Differences between the two are listed on the Playstore page of the free version.

> Unfortunately, this app has been removed from the play store by the developer.
> 4 votes

# Answer
You can't change the list, short of removing the apps in question. Speaking as an app developer, I can say it's also hard to do it from that side too - so we're pretty much stuck with how the system works.

It may be annoying, but the system makes interop so easy between applications, both from the user and developer perspectives, that it's hard to complain.
> 2 votes

# Answer
This isn't possible from an OS level. That share menu is populated by Android based on what apps you've installed declare they can open. You can look at the technical details here, but the end result is that without extra coding from each individual app to filter the results, you are always going to get the full list in whatever order Android returns them in.
> 1 votes

# Answer
Fliktu Not free but looks great, simple, customisable and very slick
> 1 votes

# Answer
SharedR does this nicely. 4.0 rating in google store

https://play.google.com/store/apps/details?id=com.rejh.sharedr
> 1 votes

---
Tags: share-menu
---


# Question
Title: installing custom rom in Samsung galaxy s3 SGH T999
hi I m unknown from unknown I want to install custom 6.0 on my Samsung galaxy s3 SGH t999 I tried available ones but did not work cm13 rom and Google apps are installed but getting into boot loop can u tell me how I resolve this I tried all possible ways

# Answer
> 1 votes
Try to install TWRP Recovery and go to recovery mode and click wipe data and tick all without internet and external storage then wipe data then go back and click install select the file and install it

---
Tags: cyanogenmod
---