title: How to decrypt a phone in bootloop mode

text:
# Question
Title: How to decrypt a phone in bootloop mode
I have an encrypted android running LineageOS 15. When it said that there was an OTA update, I choose to download and install this new update. In the first moment it seemed to be alright but when the phone restarted itself the recovery (TWRP) appeared again... and again...

It is in a bootloop mode and there is nothing I can do without loss my data and I can't do nothing to copy my date due to the full disk encryption.

The encryption was made, I think, with the fingerprint and even if it was done with a password I cannot decrypt the entire disk (with the command `adb shell twrp decrypt`) because my TWRP version doesn't support the decryption.

# Answer
I had same problem and I'll write tips how i fixed this situation.

You can fix it by just dirty-flash any rom.

Flash any rom by using external storage or by adb sideload(Advanced -\> ADB Sideload -\> Run "adb sideload ROM-FILENAME.zip") You will see lock screen after reboot.After login,you can decrypt data in TWRP.

*If you see some error/crash after android bootup due to dirty-flash,install magisk and create backup by Migrate and restore it after clear data.*
> 3 votes

# Answer
Searching a lot over the web I saw this question and by reading the entire post, and in particularly this answer https://android.stackexchange.com/a/176124/77853 I brought back my phone to life and without losing anything !

What I had to do was (as suggested in the answer) **repair the /data partition plus the /system partition** !
> 1 votes

# Answer
Hey you could have downloaded the lower version of twrp. My phone also went into bootloop when i flashed twrp version 3 but when i flashed version 2 it worked perfectly. But anyway since you have found the solution ,to anyone who reads this answer you must first flash lower versions of twrp.
> 1 votes

---
Tags: twrp, boot-loop, encryption, restore
---


# Question
Title: What exactly will clearing storage cached data do?
What will clearing the internal storage cached data clear? Worried I'm gonna lose something I need.

I've searched for the answer but the information I was able to find seem to be about cached data of Apps. I'd like to know about the storage (Setting \> Storage \> Cached data), not Apps (Settings \> Apps \> Chrome...).

# Answer
It will clear the caches of all your apps. It's the same data you can clear by tapping the `Clear cache` button on the **App info** page for each app in Application Manager, except this clears the cache for all apps at once.

Cached data generally consists of the app's frequently or recently accessed data, information about the app's current state, and login credentials. Pretty much the only irreplaceable data that's ever stored in a cache is search history and records of recently accessed items (though many apps store this kind of info in app data rather than the cache, and the cache is never used for logs or records that users are expected to want to keep, such as call history in the phone app).

> Worried I'm gonna lose something I need.

Unless it's important to you not to lose search/view histories on apps where the developer didn't think they would be important to keep, no, you won't lose anything you need because all the data in the cache is easily replaceable. Some apps might run a little slower temporarily as they re-access data that was previously cached (and presumably, put it back in their cache), start on the default screen rather than the most recent one you were using, prompt you for credentials instead of logging in automatically (just the first time), and things of a similar nature.

Now, the question is whether you actually have a reason to do this. The two main reasons I can think of is if you're out of storage space and need to clear some quickly without uninstalling apps or sifting through your files to see what you can delete, or if your phone has been having strange inexplicable quirks that you suspect might be caused by some misbehaving apps.
> 2 votes

---
Tags: internal-storage, cache, cleanup
---


# Question
Title: how to positively locate focus in quick settings using external keyboard to enable screen mirroring (screen black recovery)
I want to use an external keyboard to navigate the quick settings menu blind to turn on Screen mirroring (aka Smart View). I can enter this menu using Win-Q but getting a known focus or selecting Smart View is the next step.

A Samsung Galaxy S6 is fully operational except it has a black screen (dropped by the kids). External mouse and keyboard are working fine and if I can just press the smart view icon on the Quick Settings the screen will mirror and I'll have full control. I am testing using the keyboard on my own identical phone so I can do it blind on the affected phone.

Most usefully, Win-Q directly opens Quick Settings. Also of interest is Win-N which gives a visually identical result but with a different focus (somewhere in the notifications obvs).

But, after pressing Win-Q focus seems to be a bit random. Sometimes it's under the screen brightness, sometimes it's the Settings icon itself. Direction arrows work fine to navigate, as does tab. Typing alpha (W for Wi-Fi) unfortunately seems to not move focus (wouldn't that be perfect). For the purposes of working blind I'd like to know where focus is absolutely, even if it's just a starting point.

Is there a keyboard input I can use after Win-Q to either:

* ideally, select the Smart View icon, or the Smart View text. Is there way to type "S" to do this? or
* less ideally but still useful, set focus to, say, the top left icon (wireless on this phone)?

Or is there some previous action such that pressing Win-Q gives a known focus (such as power cycling the phone)?

Unavailable alternatives:

* debugging is not enabled
* MHL is in theory not supported by the phone; I don't have a cable to try it

# Answer
I was searching for quick settings images of Galaxy S6 and at the time it only displays 10 quick settings. So to make it work, I believe you must had previously added "Screen Cast" in the list of 10 items.

I guess your best shot is to find the correct combination of arrows and enter. I tested here and typing "S" don't do anything on quick settings.

I have a galaxy A70 (which is much newer, I know) but the starting point is a search button. To go to start a screencast I did the steps:

1. Win-Q
2. Down (3 times) - to get to quick settings
3. Right (2 times) -\> Enter - to go the second column of the second page of quick settings and selecting it
4. Down -\> Enter -\> Enter - to select the first device found and confirm you want to cast

I also remember that holding home key was a shortcut to call google assistant. Have you tried that?
> 0 votes

---
Tags: external-keyboard, user-interface, quick-settings, focus
---


title: How to diagnose malfunctioning wifi?

text:
# Question
Title: How to diagnose malfunctioning wifi?
Nexus One, cleared internal user storage to near-factory settings using the boot menu. My computer is connected to wifi, and I have a USB tether to my phone.

But when I click on "Connect to wifi" -- even in the virgin "user setup" menu -- No networks are found, and the device becomes unbearably slow.

The device had functioned properly for 1.5 years ... until yesterday.

I don't know whether the problem is hardware or software. If it is in software, I would like to fix it... but I don't have wifi, and I don't have 3G.

What are the steps to diagnose this problem?

If it is a software problem, what are the steps to fix it?

# Answer
From my experience working on Service Centers I would say it's probably HW. But you can try some things to confirm it or not:

* Usually Wi-Fi and Bluetooth are on the same SoC. If BT is also not working it's a good indicative that it's HW issue on that SoC.
* If you go to Settings -\> System -\> Advanced -\> Reset Options -\> there is an option "Reset Wi-Fi, mobile and Bluetooth". Have you tried that?
* Another option is to take a look at kernel logs, even if you don't understand much. With USB debugging enabled, try to connect to wifi and while the device is slow type "adb shell dmesg". If you get a "permission denied" error try "adb bugreport" and in the generated text file look into the "Kernel log" part. If you see consecutive error/fail messages of somthing related to Wlan or Wifi, this probably means it's a HW issue.
> 1 votes

# Answer
1. Tap the Menu button on your handset.
2. Tap Settings.
3. Tap Wireless and Networks.
4. Tap Wi-Fi settings.
5. Tap the Menu button again.
6. Tap Advanced ( Figure B ).
7. Tap the Proxy setting and make sure your Android device is not set up for a Proxy. (Unless the Wi-Fi network you are on requires a Proxy, this setting will get in the way of your device's access to the computer) If you tap on Proxy and see an IP address or domain, delete it.
> 0 votes

---
Tags: wi-fi, nexus-one
---


# Question
Title: How to choose which gallery app is opened by OpenCamera?
I am using `lineage_a3y17lte-userdebug 10 QQ3A`, which is LineageOS 17.1 (Android 10), and I've had a problem with taking photos that are automatically saved to *external* SD-card. That ended up being solved by installing OpenCamera, but then the stock gallery would not list nor open photos in SD card; and that got solved by installing Simple Gallery Pro.

This is apparently due to the introduction of "scoped storage" in Android 10, and some more details about this I've noted in my comment here: Pictures stored on sd card not shown in gallery (#2211) · Issues · LineageOS / issues / android · GitLab.

However, I still remained with one more problem: I take a photo in OpenCamera which gets saved to external SD card, then I click on the thumbnail to see it in a gallery - and then still the stock gallery opens, which cannot read the external SD card, and so cannot show the last picture taken.

So the question here is - how to have OpenCamera open a different gallery, other than the stock gallery, when I click on the thumbnail of the latest taken/snapped picture?

# Answer
> 1 votes
EDIT: false alarm, it turns out - the solution below worked *only the first time* after reboot; once OpenCamera was backgrounded, and then opened again to take a new picture - upon the tap on the last photo taken thumbnail, I got the old stock gallery (with all its problems) again `:(`

---

Ok, here first I found:

https://community.e.foundation/t/how-to-choose-which-gallery-app-opencamera-opens/25775

There, there is a suggestion to

> Open the settings app.
> Go to “apps and notifications”.
> There in the app listing tap the app in question, in this case the standard Gallery app.
> Tap the “Open as standard” section.
> Tap the “Flush standard setting” button.
> Next time you do a preview from within the Camera app (or any other app calling for a picture viewer) you will be given the opportunity to select a standard app of your desire.

... however with the caveat "*Dunno if I made the translation from my Swedish user interface correctly*".

In any case, I tried to mess around with the above, and I experienced the same as in the response to that post:

> On my phone (FP3), there is no standard settings linked to Gallery.

Then I found Open Camera / Discussion / General Discussion: Unable to set default gallery app:

> One thing that finally worked: Settings -\> Apps -\> ... (The Three Dots) -\> Reset app preferences.
>
> After that, you will have exactly ONE CHANCE to choose the preferred photo application (as no app will be pre-chosen this time, all three should be equally available) in OpenCamera.
>
> Also please note that "Reset app preferences" is a nuke - it destroys ALL your default app associations, all your blocked notifications, all background data restrictions etc. It's a pain in the \***, but nothing else ever worked for me :(

So, actually, I did that - and *still*, OpenCamera opened the last-taken-photo thumbnail in the stock gallery!

However, then I remembered this from the /e/ post, which I otherwise found cryptic:

> Edit: after a reboot, everything is fine!

So, I decided to reboot the phone; opened up OpenCamera again, tapped the thumbnail of the last taken photo - and finally, I was asked to choose a Gallery app, and when I chose Simple Gallery Pro, I also got the option to choose it "Always", which I did... And finally, problem solved!

Just two weeks of fussing about for this. I can hardly wait for the next update to Android, where SD cards will be completely disabled `:)`

---
Tags: lineageos, photos, android-10, gallery
---


# Question
Title: How to unlock view get app info "Move app to SD card" option locked missing in android 5.1.1
**Question :-How to unlock view get app info "Move app to SD card" option locked missing in android 5.1.1?**

I have two mobiles of same company with different model **both having same os android 5.1.1** sharing below screenshot of about phone of both mobiles

**Lyf water 7 ls 5004 about phone**

**Lyf wind 6 ls 5009 about phone**

But one of the mobile model Lyf wind 6 ls-5009 (with 8gb internal memory) is showing "Move to SD card" option in setting apps but another mobile model Lyf water 7 ls 5504 (internal memory 16gb) one is missing locked not showing option for same app "move to sd card" may be locked by OEM. Screenshot of same app settings for both mobile option pasted below.

**Lyf wind 6 ls 5009 app info (move to sd card option available)**

https://www.linkpicture.com/q/c0Gpg.jpg

**Lyf water 7 ls 5504 app info (move to sd card missing)**

https://www.linkpicture.com/q/z81Ra.png

\** My queries\**

1. How to **unlock view or see the same option "move to sd"** in another model lyf water 7 of android 5.1.1 by modifying the settings through any adb shell fastboot or terminal with or without rooting the mobile.
2. I tried app manager III or app2sd or link2sd apps on unrooted and rooted mobile to do the same but all fails to move the apps. All apps when move to sd option clicked they open take me open same dialogue box window to original settings\>app\>appinfo option to move apps ( as shown in screenshot above) and there no option of move app to sd

**Link2sd when app moved to move to sd it gave following error and link to sd is grayed out and disabled and not working (even on rooted phone)**

Failure

pkg: /data/app/ com.gmail.heagoo.sdcardmovable-1/ base.apk Failure \[INSTALL FAILED INVALID\_INSTALL LOC ATION\]

Storage screenshot of link2sd of lyf water 7

https://www.linkpicture.com/q/Screenshot\_2021-09-26-11-36-04.png

3. I tried **adb shell pm set-install-location 2** in rooted mobile it's changed succesfully but still apps installed through Google Play Store or apkpure **do not installs automatically to external sd card** they still installing in internal storage not
4. I know all apps are not movable as their app mainfest don't allow I had tried to edit **apk editor default prefered install location to external** still same app without editing the app is moving to sd card in one mobile and no option of moving not showing option in another mobile with same android 5.1.1 same app same kernal version same.company but different models it means there is some setting lock or change how can we modify or unlock that option .
5. Any **more setting I can alter to get the result of moving apps to sd card on my lyf water 7 ls 5504.** Any adb shell command. I don't know if its locked in rom or hardware incompatibility then will 3rd party custom rom available in xda may be android 6.03 or android 7.1.1 or android 8,9,10 will allow or have such option and work in the same mobile or not
6. If there is any hardware or rom uncompatibilty or lock by manufacturer or vendor I am worried if I install custom rom of android 6.0.3 marshemellow or android 7.1.1 then will they have such option or not to move app to sd or to format as as internal in both custom rom

# Answer
> 1 votes
Failure \[INSTALL\_FAILED\_INVALID\_INSTALL\_LOCATION\] indicates something is wrong with signature.

If app is moved to MicroSD Card primary partition, Android native app2sd - settings - app - storage - MOVE TO SD CARD - created encrypted container in `.android_secure` directory which is mounted to `/mnt/secure/asec`

The same MicroSD Card cannot used in another phone without reformatting, because app2sd get in conflict with existing `.android_secure` directory which cannot decrypted on other phones.

You are using same MicroSD Card that's why android app2sd (asec) works for only one of both devices.

Reformat or use another MicroSD Card to fix

---
Tags: custom-roms, app2sd, adoptable-storage, link2sd
---


# Question
Title: App2sd link2sd how to show mount view 2nd micro sd card ext2 partition
Question :App2sd link2sd how to show mount view 2nd micro sd card ext2 partition

I had loaded twrp recovery (fastboot boot twrprexovery.img) in bootloader mode and installed SU and rooted and then installed app2sd and link2sd apps.

I had partitioned my 64 gb memory card 30gb fat32 and remaining 32 gb. As ext2 and then when I tries to view partitions in android 5.1.1 settings\>storage it show only one fat 32 partition in sd. Card and not second sd card for ext2

As I want to install 2nd sd card and from recovery or adb pull take NANDROID image backup Of second partition backup in cloud and want to see pace and access file system so that I can recover if any thing goes wrong or memory card got corrupted

My queries:-

1. How can I view second partition of external micro sd card partiton through file manager or in setting\> storage
2. Can I be mounted In boot.init through any aap
3. App2sd auto created a mount script to run through recovery to mount the ext2 partition how to run it in twrp so I have to run through install
4. How to take NANDROID image backup of system boot recovery internal (userdata partition) and external sdcard 1st and 2nd partitiion and save it in usb drive or cloud storage through adb pull or twrp. Or any other apps how can these files be secured in password or encrypted in cloud
5. As app2sd pro or link2sd plus card link apps and moves lib hex odb files to which files which are randomly access should be not moved to sd card and should be left in internal memory.

**types of files to moved app2sd link2sd**

**app2sd eroor mounting script screenshot**

**link2sd error mounting script**

# Answer
TWRP is not compatible with Link2SD, therefore one must manually mount MicroSD Card 2nd partition each time before TWRP backup/restore is started.

One can do this from - TWRP menu - Advanced - Terminal

```
mount /dev/block/mmcblk1p2 /data/sdext2

```

TWRP backup will include 2nd partition in `data.ext4.win` as regular directory `sdext2` therefore it is important to double check `/data/sdext2` is actually mounted before restoring process is started, otherwise TWRP will try to restore all files into phone storage `/data` instead (and probably run out of disk space)

If you prefer to create separate TWRP backup files for 2nd partition (instead of mixed userdata) this can be done from TWRP backup menu.

It requires modified TWRP recovery. Unpack `twrp.img` ramdisk with AIK and add new entry in `/etc/twrp.fstab`

```
/dev/block/mmcblk1p2  ext4  /sd  flags=display="MicroSD 2nd Partition";backup=1

```

This will show you separate entry in TWRP backup menu and create separate `sd.ext4.win` backup files
> 1 votes

---
Tags: mount, app2sd, link2sd
---


# Question
Title: Prevent switching keyboard layout when pressing Shift+Space on an external keyboard
When I use a Galaxy Note together with an Apple Wireless Keyboard, pressing `Shift`+`Space` switches keyboard layout. This is really annoying. Is it possible to disable it?

# Answer
> 4 votes
I have the same issue with the Samsung Galaxy S5 and a bluetooth keyboard. I was able to install Gboard (google keyboard from the app store) and this fixed the problem.

# Answer
> 4 votes
I just got a Tab S7 with Samsung's keyboard cover and this was annoying as heck. After reading this and seeing that the solution was just to download another keyboard, I knew there had to be a setting since you can't download a physical keyboard and case.

If you go to settings and search for "lang", then go to General Management \> Language and Input \> Physical Keyboard. Then go to "Change language shortcut. You can select which shortcut you use or turn it off entirely. I had three options and went with Ctrl + Space. Even though this is something I will probably never use.

# Answer
> 3 votes
Switching to any other keyboard application as the default should solve this problem, for example SwiftKey. The shortcut exists in the Samsung keyboard and is not possible to turn off.

# Answer
> 1 votes
On my Samsung phone running One UI version 3.1.1 and Android 11, this is a setting you can change in the following location: Settings \> General Management \> Physical Keyboard\* \> Change language shortcut

In there are three (3) choices that will toggle between languages:

1. Shift + Space
2. Control + Space
3. Left Alt + Space

Simply move the slider to turn whichever options you want on or off.

---

\*Physical keyboard must be connected to access this setting

# Answer
> -3 votes
You can try ctrl+shift. This option better works for the XP. May be it can also work with you.

---
Tags: samsung-galaxy-note, external-keyboard, text-input
---


# Question
Title: Moto G3 (Android Marshmallow) not detecting SD card anymore (solution?)
About a month ago, the Moto G (3rd Gen) of my wife was not able to recognize the Transcend Premium 400x 32GB SD card (which was formatted as adoptable storage) anymore. On this card were very important pictures and movies for us (of our newborn baby). As of a certain Android version, the adoptable storage is also encrypted, and reading it on a PC or other phones is not possible without the encryption key. Since the phone was also not rooted, it was also not possible to get the encryption key from the `/data/...something directory...` (see https://nelenkov.blogspot.ch/2015/06/decrypting-android-m-adopted-storage.html). So I almost gave up hope.

I bought the exact same type of SD card, also 32GB, only about a year later. Hoping that I would be able to make an exact clone of the card and I would be able to start some experiments with it without the risk of destroying something on the original card and losing all the data. When I mounted the original card under Linux, it shows two partitions 17MB and about 31GB. Cloning the card with some Linux command-line tools didn't give me the same result.

Is there any other way to fix this issue?

# Answer
> 0 votes
This worked for me:

* Removed the SD card from the phone
* Plugged the SD card into a MicroSD to MicroUSB adapter
* Plugged the MicroUSB adapter into the MicroUSB plug on the phone
* Run ES File Explorer and in my case the SD Card was named '0'. I was able to access the DCIM folder and upload all my photos and videos

NOTE: ES File Explorer Ver 4.0.5.5 was used. When I upgraded it to the latest version so I could upload to Google Drive, it no longer could recognize the files, so I had to downgrade back to 4.0.5.5 and use Dropbox.

# Answer
> 0 votes
*Taken from the Emiel Kosse's original revision with copyedit.*

---

The next thing I tried was cloning it using HDD Raw Copy, first write the entire card to an image on my hard drive. When I copied the data to my new 32GB card, I noticed that the new card did not have the same capacity as the image file (image was 32.22GB, new card shows capacity of 31.11GB) so that trick doesn't work.

Luckily I also happen to have a 64GB SD card (same type) which should have enough space for this test. So using HDD Raw Copy, I wrote the image to this card. Checked under Linux if I see the same partition as with the original card and this happens to be (of course it also shows about 32GB of free space not partitioned).

So, I thought, let's see if the Moto shows the same error with my new card in the phone and that I made an image on which I can start to try to hack the encryption off (now or in the future). To my surprise, the Moto shows immediately that the transcend 32GB volume is mounted! I went to the gallery of the phone and it shows our pictures and movies again!

So, in short, when this happens, buy a larger volume SD card (to make sure that there are enough data-block available). Use HDD Raw Copy to make a bit-wise clone/image of the original card. Write the image to your new card and check if it can be read by your phone.

Never do the following or your data will be lost:

* Format the card
* Set your phone back to factory default (destroys your encryption key)
* Make the phone to forget/unmount the storage location (also destroys encryption key)
* upgrade to a newer version of Android (or any other major system update).

(of course, make sure to make backups or cloud syncs to prevent this situation at all)

I hope this can help someone out there who might end up in the same situation.

---
Tags: sd-card, motorola-moto-g, adoptable-storage, disk-encryption
---


# Question
Title: What are the requirements to have the change your background feature enabled in Microsoft Teams?
https://support.microsoft.com/en-us/office/change-your-background-for-a-teams-meeting-f77a2381-443a-499d-825e-509a140f4780 mentions:

> Note: If you don't see this option in the menu, the feature might not be available on your device yet.

What are the requirements to have the change your background feature enabled in Microsoft Teams on Android? I have a Samsung Galaxy S9 with Android and I don't see the feature.

# Answer
As of late March 2021, Microsoft Teams for Android doesn't have "blur background".

However, per MSPowerUser.com - Background blur is coming to Microsoft Teams for Android which has a link in the article to a support forum, such a feature is pending/planned, but with no definitive timeline.
> 1 votes

# Answer
https://www.tomsguide.com/news/galaxy-s21-features-to-enable claims one can change the background on a meeting in MS Teams on Android with a Samsung Galaxy S21:

> Galaxy S21 features: Video effects. With the Galaxy S21, Samsung has introduced a new feature for video calls. Simply called Video Call Effects, it lets you add blur, a solid color, or an image to your background while on a chat. In this age of social distancing, Video Call Effects spice up your video calls.

https://redd.it/p726we claims that MS Teams the virtual background option with Xiaomi Pocophone F1.
> 0 votes

---
Tags: privacy, video-conference, microsoft-teams
---


title: Connection to DoT server is not retried

text:
# Question
Title: Connection to DoT server is not retried
I'm running my own DNS-over-TLS server under my domain (dns.example.com). On my Motorola G100, which is running Stock Android 11, I can set the private DNS to this domain and it works. This works on my Linux machines, two other Androids (some Motorola on Android 10 and a Samsung with Android 10), and also on two different routers (AVM FritzBox can use DoT as upstream).

The server is not at fault, the certificate is valid and all devices work the way they should, that is, until the server is rebooted or otherwise blocked. Then, of course, I receive the notification that it "can't access the private DNS server".

The Linux machines recover and just retry to connect, as well as the routers. But the Android phones don't want to retry even when I know for sure that the connection is working.

Upon disabling private DNS and reenabling with my domain, the following log is shown (IPs removed)

```
09-30 19:32:46.091  1144 20197 W resolv  : Validating DnsTlsServer <MY_IPV4> with mark 0xf006b
09-30 19:32:46.091  1144 20198 W resolv  : Validating DnsTlsServer <MY_IPV6> with mark 0xf006b
09-30 19:32:46.138  1144 20197 W resolv  : SSL_connect ssl error =1, mark 0xf006b: No such file or directory
09-30 19:32:46.138  1144 20198 W resolv  : SSL_connect ssl error =1, mark 0xf006b: No such file or directory
09-30 19:32:46.138  1144 20197 W resolv  : TLS Handshake failed
09-30 19:32:46.138  1144 20198 W resolv  : TLS Handshake failed
09-30 19:32:46.138  1144 20197 W resolv  : query failed
09-30 19:32:46.138  1144 20197 W resolv  : validateDnsTlsServer returned 0 for <MY_IPV4>
09-30 19:32:46.138  1144 20198 W resolv  : query failed
09-30 19:32:46.138  1144 20198 W resolv  : validateDnsTlsServer returned 0 for <MY_IPV6>
09-30 19:32:46.138  1144 20197 W resolv  : Validation failed
09-30 19:32:46.138  1144 20198 W resolv  : Validation failed

```

I don't know why it tells my that the handshake fails, all other devices (or `kdig +tls`) can connect just fine. From the server's reboot to now, no config, certificate or software version was changed.

My guess is that Android caches the connection and "remembers" that it failed at some point in the past and doesn't even try to connect again. I tried rebooting, shutdown, airplane mode, another DoT (dns.google works), disabling DoT but nothing fixes this behavior.

# Answer
Apparently, Android (even the newest versions) can't deal with the type of certificate that Let's Encrypt generates by default.

The solution is a combination from the Let's Encrypt forum and the setting `--preferred-chain="ISRG Root X1"` for certbot.

If you use caddy as your server, you can set it in the Caddyfile global options:

```
{
...
  preferred_chains {
    root_common_name "ISRG Root X1"
  }
...
}

```

You have to force the renewal of the affected certificates/subdomains by deleting the corresponding files in caddy's data directory. (Beware of rate limiting if you generate many certificates at once.)
> 1 votes

---
Tags: privacy, dns
---


# Question
Title: Chrome won't open unlinked URLs on Android 11
I have a Google Pixel 4a running Android 11, and I haven't been able to open any links in Chrome by tapping them. On my old Android 9 phone, I was able to tap/select a URL, and there was an option to open the URL in Chrome. I used this feature heavily when opening links from my email client.

Chrome is set as my default browser. In the app permissions for Opening Links, Chrome's option to open supported links is greyed out. The option to open supported links is also greyed out for all other web browsers.

Interestingly, if I select the first part of a link, like `https://www.example.com`, there is an option to open the URL in Chrome. But if I select the full link, like `https://www.example.com/abc`, then the option to open in Chrome disappears.

Screenshot for selecting partial link:

Screenshot for selecting full link:

My phone is rooted.

# Answer
> 1 votes
Go to settings, apps, Chrome, there's a menu "browser app", where you may change the default browser from webview to Chrome.

This is probably related to the recent change to Webview. Google has decided that opening links with a generic chromium browser without any stored user information is more convenient for the user.

---
Tags: chrome-for-android, browser, url, hyperlinks
---


# Question
Title: How to exclude a specific destination IP from VPN?
I want to route a specific IP address from hotspot (`wlan0`) to Mobile Data (`rmnet_data1`) interface on Android 11, bypassing VPN.

I use my phone as a hotspot and also with the help of an app called "VPN Hotspot" I share the VPN with my PC. I want to exclude a specific IP address from VPN. I have tried the route option in "OpenVPN for Android" client and it doesn't seem to work properly. I think it might because of "Always On" enabled.

Can I achieve this with `ip route` command?

# Answer
> 1 votes
***Note:** The commands given below require a rooted device.*

---

Whenever you enable or disable VPN on Android device, routing table is recreated by the Android framework. There can be a score of rules added to the routing table when VPN is enabled, since it does filtering based on UIDs and Socket Marks. So you need to manipulate the routing table depending on the existing rules.

## ROUTING POLICY AND TABLES

From the info you provided, I'm quoting the relevant parts:

```
~# ip -4 rule
...
11000:  from all iif tun0 lookup local_network
...
17900:  from all iif wlan0 lookup tun0
18000:  from all iif wlan0 lookup rmnet_data1
...

~# ip -4 route show table all
...
192.168.18.0/24 dev wlan0 table local_network...
...
default via 21.62.249.109 dev rmnet_data1 table rmnet_data1...
21.62.249.104/29 dev rmnet_data1 table rmnet_data1...
...

~# iptables -t nat -S
...
-A POSTROUTING -j tetherctrl_nat_POSTROUTING
-A tetherctrl_nat_POSTROUTING -o tun0 -j MASQUERADE
-A tetherctrl_nat_POSTROUTING -o rmnet_data1 -j MASQUERADE
...

```

In simple words what the above rules state:

* Everything coming at VPN interface (`tun0`) is routed to hotspot interface (`wlan0`) if the destination IP is within hotspot subnet (`192.168.18.0/24`) i.e. the packets don't belong to the apps running on device (open sockets).
* Everything coming at hotspot interface is routed to VPN interface.
* The packets which don't qualify to be routed through VPN (mainly the VPNed traffic itself, any excluded apps, or the local packets) are routed to Mobile Data interface (`rmnet_data1`).
`21.62.249.109` is your IP assigned by the carrier and `21.62.249.104/29` is their gateway.
* All packets going out through VPN and/or Mobile Data interfaces are MASQUERADEd i.e. their source IP address is changed from local IP to a routable IP address (`21.62.249.109` in your case).

So this is the simplified flow we are interested in:

```
Hotspot -> Routing -> FORWARD -> SNAT -> Internet
Internet -> Conntrack -> Routing -> FORWARD -> Hotspot

```

---

## SOLUTION

After understanding how it works, lets route it the way we want. Say a host on hotspot network is connecting to `1.2.3.4` through internet. But you don't want to send this specific traffic through VPN on Android device.

* Define a rule in RPDB and a routing table to route the traffic coming at hotspot interface to Mobile Data interface, if it's destined for `1.2.3.4`:

```
~# ip rule add iif wlan0 lookup 9000 pri 9999
~# ip route add 1.2.3.4 dev rmnet_data1 table 9000

```

I used RPDB priority 9999 and table 9000. You might need to change the priority (so that your rule is always on top) and table number. Check `/data/misc/net/rt_tables` for reserved table numbers which you should not use.
* Define another rule to route the packets coming from `1.2.3.4` at Mobile Data interface to hotspot interface (if the destination IP is within hotspot subnet):

```
~# ip rule add from 1.2.3.4 iif rmnet_data1 lookup local_network pri 9999

```

Note that I used here an already existing routing table `local_network`. You can define your own too.
* All outgoing packets through Mobile Data interface are already MASQUERADEd as explained above, so we don't need to add another `iptables` rule. If needed, you can also use `SNAT` target in place of `MASQUERADE`.
* Make sure that IP forwarding is enabled and allowed in firewall. Usually it's not needed because Wi-Fi hotspot already sets this up for you:

```
~# echo 1 > /proc/sys/net/ipv4/ip_forward
~# iptables -I FORWARD -o rmnet_data1 -d 1.2.3.4 -j ACCEPT
~# iptables -I FORWARD -i rmnet_data1 -s 1.2.3.4 -j ACCEPT

```

To delete these rules use `ip rule del`, `ip route del` and `iptables -D`.

---

## NOT WORKING?

If the above rules don't work, or you need to adapt the rules for a different situation, `iptables -j LOG` is a good friend for troubleshooting.

For reference read any Linux documentation or guides about IP routing and Netfilter. It's not specifically about Android.

---

**RELATED:**

---
Tags: networking, wifi-hotspot, android-11, openvpn
---


# Question
Title: Is Google deleting critical reviews from the Play Store?
I've had numerous factual critical reviews disappear from the Play Store. On more than one occasion, I received a notification that a developer had responded to my review. When I went to look at their response, my review was gone, i.e., it appeared that I had never rated or reviewed the app. This led me to look at my other reviews and discovered many of them missing.

My reviews were entirely factual and did not violate Google's comment policy. Examples of reviews that were silently deleted:

> This app blocks the back button and has no apparent way to exit. You have to kill it by swiping from recents.

And

> Sign-in required to try it out.

I've also noticed that you can no longer identify bad apps by the telltale U-shaped ratings curve, i.e., many 1-stars and many 5-stars.

**Is Google engaging in mass deletion of critical reviews?**

# Answer
Thanks for A2A, before answering i must add that though this question is rather off-topic for this community, i would still try to answer it.

Google isn't generally engaging in mass deletion of critical reviews.

However, incase the app developer reports of recieving spam negative reviews and if Google's regex algorithms and human intervention proves them to be true, multiple negative reviews might be removed by Google.

Another instance where something similar might be done from Google's end is when the algorithms detect people installing apps, reviewing it and uninstalling within minutes - such reviews are considered illegit so removed automatically.

And regarding that U-shaped histogram type review curve, Google ditched it aroud an year ago and i do agree that it was really 10 times useful compared to the new implementation
> 1 votes

---
Tags: google-play-store
---


title: Reinstall app removed via ADB

text:
# Question
Title: Reinstall app removed via ADB
I removed 'MusicFX' via

```
adb shell pm uninstall --user 0 'musicfx package'

```

And now I'm having issue with playing Bluetooth media audio, so I thought maybe it's that

Can it be reinstall, maybe an ADB command? The APK is still in /system/priv-app, but trying to install from there won't work (says app not installed)

# Answer
> 2 votes
```
adb shell pm install-existing com.android.musicfx

```

---
Tags: adb, system-apps, 8.1-oreo, bluetooth-audio
---


# Question
Title: Permissions denied but still the app can use it
As you can see in the attachment, i have denied access to microphone. But when I go to "All Permissions", it shows that the app can still use microphone. What does that mean? And how can I stop it from using my microphone?

# Answer
"All Permissions" just give an insight into what all permissions the app can have once allowed, i.e. it just shows that chrome has the ability to "record audio using the microphone at any time".
> 2 votes

---
Tags: permissions, android-11
---


# Question
Title: How can I directly edit text files over SSH or FTP?
Sometimes I want to edit text files on a remote computer (such as linux scripts, websites, etc.) but I only have an Android device at hands (let's say I'm sitting in a train and have nothing better to do with my time).

I could download the files over SSH, edit them, and upload them again, or even edit them on the SSH console, but this is tedious (I mean MORE tedious than it already is to edit text with an handheld device, if that is possible).

Is there a way that I can directly edit the files remotely? I would envision a solution that might, for example, automatically download the file, and upload it back on save.

# Answer
For what it's worth, here are the solutions I've found so far, but I'm happy with none:

DroidEdit has an SFTP/FTP option in the pro (paid) version. I have not tested it myself so I can't guarantee anything.

I used to mount a samba or NFS share on my local Android file system, using the CifsManager app, which can be tunneled through SSH, and then you work on the files as if they were on your local device. However, this required a rooted device, and I'm not sure it's still possible with recent Android systems (the problematic part being to mount a file system that isn't provided by the base Android system ; it seems the cifs or nfs kernel module is not part of standard ROMs anymore).

If your remote computer has a desktop environment, you could use a VNC client (there are a few available for Android). But remote applications are not designed to work with a touchscreen, and without keyboard/mouse.
> 1 votes

# Answer
nmm lets you edit text files directly over ssh.

From the Google Play description: https://play.google.com/store/apps/details?id=in.mfile

《NMM File Manager / Text Edit

File management, support archive viewing and modification. Terminal emulator, support ssh connection. High-performance text editor, code editor: Find and replace (supports mark all, regular expressions). Auto determine text encoding. Auto indent and code folding. Show line numbers, whitespace, EOL, control characters. Multiple programming languages highlighting. Customize the bottom toolbar, quickly enter or delete text.》
> 1 votes

---
Tags: ssh, text-editor
---


# Question
Title: How to lock home screen icons folders dragging deleting settings
**Question How to lock home screen icons folders dragging deleting settings**

I have rooted my mobiles and installed Nova launcher now on home screen i have categroized apps icons in circle folders. As the phone is also used by kids and family members whole opening touching the mistakenly drag or delte the icon on home screen folders mistakenly

How can in rooted phone I can lock the home screen or drawer or folder icons or new notifications from deleting or dragging or changing...or from settings changes without pin or administrative permissions . Is it possible through app or adb shell commands kindly suggest.

# Answer
Settings - home screen - scroll down to the bottom.... advanced - lock desktop
> 0 votes

---
Tags: lock-screens, launcher, app-icons, app-drawer, nova-launcher
---


# Question
Title: Why can I view files from "Internal Storage" WITHOUT entering password either in OrangeFox recovery or via USB cable on PC?
I was under impression that all user files are encrypted by default in Android using FDE. It was to my surprise that I can just run, for example, OrangeFox recovery and when it asks me for a password to decrypt `data` partition, I can simply cancel entering it and then still view `/sdcard` directory. If I then open some text file (from that `/sdcard`) in a built-in (OrangeFox) text editor, it would show me all the text properly without any scrambling. The same would obviously apply to all other files such as photos, videos, and etc. Similarly if I enable MTP in OrangeFox, I can also view all of that via USB on PC. At the same time, when booted to Android ROM, in `Settings` and `Encrypt phone`, it says `Encrypted`.

I would imagine that only after entering user password/pattern should it be possible to even mount that partition in OrangeFox. Viewing through USB again should only work if I'm either logged into Android ROM and unlocked the user or if through OrangeFox, when partition is unlocked and mounted.

Do I miss something? How to ensure proper encryption on all of the user data?

# Answer
> 3 votes
The newly flashed ROM was `xiaomi.eu` 12.0.4. I then tried various modifications of it, but all of them expose the same issue over and over again. After I flashed Lineage OS, the behavior was as expected: no way to see any files on "Internal Storage" (`/sdcard` or `/data/media/0`). In fact, as I expected in my original post, even though `/sdcard` is viewable in OrangeFox, the only directory there is `Fox`, where it puts recovery logs and other volatile data, but there are no files from user even visible whatsoever. Accordingly the "Data" partition is not even treated as mounted, and going to "Mount" option reveals that the checkbox of it is unchecked and one cannot even check it until one explicitly decrypts it. Interestingly, I would have expected such mount-related behavior only with FDE, but I can confirm that this installation has FBE. So this looks good now, but it's a pity that latest MIUI ROMs are that broken, what a mess... `:(`

---
Tags: encryption, xiaomi, partitions, internal-sd, disk-encryption
---


# Question
Title: Setting Android 10 Dark theme on and off with adb shell - how to do it without reboot?
To Enable Dark Mode:

> `adb shell settings put secure ui_night_mode 2`

To Disable Dark Mode:

> `adb shell settings put secure ui_night_mode 1`

For Auto Dark Mode:

> `adb shell settings put secure ui_night_mode 0`

and then

> `adb reboot`

My question is how to change Dark mode without `abd reboot` ?

# Answer
This worked for me, no need for root.

`adb shell "cmd uimode night yes"`
> 21 votes

# Answer
On root devices

To Enable Dark Mode:

```
adb shell "su 0 cmd uimode night yes"

```

To Disable Dark Mode:

```
adb shell "su 0 cmd uimode night no"

```

For Auto Dark Mode:

```
adb shell "su 0 cmd uimode night auto"

```
> 3 votes

---
Tags: dark-mode
---


# Question
Title: MKV video files stutters GALAXY TAB 4 SM-T351
So here we are, I have that big ass 10.1 inches screen and with the course of the years I have more and more troubles with playing the videos, especially the ones from Shaanig and MINX torrent releases.

I inspected my tab with Antutu and it shows me clearly that I have a really old device.

Surprisingly it is still possible to have a very smooth playback with Xtreme player, available in Play Market but this fact ignites my interest even more.

Why is it just about a one single player app that can run .mkv releases on my device?

Is my device too old and there is no hope anymore for playing latest releases of all those .mkv-s?

Should I try another video players instead?

Here goes the Antutu results screenshots. Antutu version - 9.1.7 I know that Antutu of 4.x.x. shows even worse results for my device something about 12.000

# Answer
MKV is just a container (like AVI), more relevant is what video type is inside. E.g. an MPEG4 or H265 video and the used encoding profile. If the video type and encoding profile is not supported by the hardware encoder of your tablet, then a stuttering playback is the common effect as everything has to be decoded by the CPU. Additionally battery usage of software based decoding is way higher than decoding a video in hardware.

There are apps displaying all the codec available on your device, usually this means that a supported codec is decoded in hardware or at least mainly in hardware.

My preferred player is MX Player (I prefer the ad free pro version). While the video is playing you can see which video decoder is used: SW (software), HW (hardware) or HW+ (hybrid of hardware accelerated decoding plus software enhancement).

If you have videos that can only be decoded in software I strongly recommend to reencode them on a PC using video transcoder like Handbrake (or if you prefer to make it manually you can use ffmpeg). If the PC has a GPU with integrated video encoding then reencoding does not take too much time.
> 0 votes

---
Tags: video, troubleshooting, benchmarks
---


title: Why I can't make a call with Telegram?

text:
# Question
Title: Why I can't make a call with Telegram?
Every time I try to call,it write "Waiting" and then "Failed to connect". I cant make a call.

How fix this?

# Answer
Try to clear cache and data of the app through `Settings > Apps and notifications > See all > Telegram > Storage and cache > Clear (for both)`
Check also the permissions (on the same menu of "Storage and cache") and make sure Telegram can access Phone.
> 1 votes

---
Tags: calls, telegram
---


# Question
Title: Connecting Samsung Galaxy Tab S6 to HDMI without activating Dex
I own a Samsung Galaxy Tab S6, and it's quite good... except for Samsung's software, which I would qualify as bloatware without hesitation.

I bought a cable that is able to move signal from USB-C ports to HDMI ports, and I connected my tablet to my TV using that cable.

The problem arrives when Samsung, in all its wisdom, refuses to just stream my screen, and insists on starting this Frankenstein thing of Dex. Even if the idea seems good, its execution is very poor, and all the software running on it becomes highly unstable, crashing all the time (when it does not have any problems running in basic mode).

And that's why I'm looking for some way to send my tablet screen to my TV while avoiding to activate Dex.

As an extra, I also considered using something like Chromecast Ultra, and in fact I did, but its streaming quality is just a disaster, and looses a lot of quality (hence my intention to go with simple cables).

Thank you for your attention.

# Answer
It seems that it depends more on the TV than on the tablet itself. In my particular case, I had to select the specific input source in the TV, and only then the tablet sends the image without trying to run in Dex mode.

To summarize, I had these connection methods:

* Google Chromecast Ultra: relatively low latency, but very bad quality image for anything not being Netflix or Youtube.
* Google/Samsung Smart View: it sends the image via bluetooth, with higher quality than what we have in Chromecast Ultra, but with much higher latency. Unacceptable for videogames.
* USB-C -\> HDMI "out of the box": The Dex mode takes control, leading to unstable applications.
* USB-C -\> HDMI, but controlling the input source from the TV: What I wanted.

I hope this might be useful for someone else. Best regards.
> 0 votes

# Answer
I had this problem while trying to use my TV to have a "messenger" meeting dex kept automatically starting even when I turned it off

Go into settings on your tablet click on the writing "Samsung DEX" below the dex symbol then go to "details" and disable "auto start when Hdmi is connected"
> 0 votes

# Answer
Dex is bound to display link to USB-C. You can truly deactivate Dex if you use a USB-C display output. Because it is linked to a USB plug-and-play detection, you can share the display without Dex only on Wi-Fi.

Dex is more than just a launcher. It switches the Android display and also kernel to support multitasking and multi-screen output. y run Dex always on because it adds additional drives support as LAN connection, hardware keyboard, trackpad, etc. on fex the CPU scheduler runs at a high rate. Take an example the Android for PC which has similar characteristics.
> 0 votes

---
Tags: samsung, hdmi, samsung-dex, samsung-galaxy-tab-s-6
---


# Question
Title: Can I install custom ROM on Android mobile having low internal memory?
I want to install the latest custom ROM like Lollipop but my mobile has low internal memory, about 150MB.
Will that be a problem during the installation of the new custom ROM?
I have already rooted my phone and I'm worried that my mobile could get bricked.

# Answer
> 0 votes
**No it will not effect**

Just place the ROM in sdcard and flash it through custom recovery by following given steps properly and flash the ROM which is developed for your device otherwise you will end up having bricked your phone.

If your device have low RAM it may become laggy.

*Share the link of ROM that you want to flash and detail of your phone.May be we can help you little better*

# Answer
> 0 votes
As long as the ROM was built for your device, it shouldn't be a problem. However, like what Ash-Ishh mentioned, you'll probably experience some lag.

You can also try looking up other forums to see if anyone else has flashed the same ROM on a device the same as yours and see if they're successful in the flashing.

# Answer
> 0 votes
like previous comments, if it's built for your phone it'll boot up and work properly (unless the developer is a noob).

but your problem can be taken care of by one to these two methods

1. you can swap the internal and external memories by a script (you have to find that, sorry).
2. Partition your external memory card and format it to ext4 and with other script you can use this partition as your internal memory. (in this case if you remove your external memory card you'll get boot loops)

# Answer
> 0 votes
If you have root, you can install a partition manager app like

And don't worry, you cannot brick the phone by flashing ROMs.

If the ROM is not designed for your device, it won't boot but you can flash the latest official room from your manufacturer.

And you mean the total space or is that 150 MB the user partition? Go to Lineage OS as they have most ROMs for most devices

Do not install to SD card as mostly old phones do not support SD card boot. Some devices don't have even recovery and boot partition by default, so in order to have a bootloader to support such, it needs to be custom made to include extra functionality like SDcard and cloud boot, pxe.

But if the entire nand chip has just 150 MB, maybe that is the RAM and not the ROM. Watch closer, take your time.

But if that phone has just 150 MB total nand space, well it won't even have a 3G network, so maybe the 150MB is the free space that you have provided the phone specs, look at About Phone in Settings.

Use an app like AIDA64.

---
Tags: 5.0-lollipop, custom-roms, insufficient-memory
---


# Question
Title: Google Play store gift card - not accepting?
I have born in LocationA, and I have registered an nice gmail email address when I was young in LocationA.

I have moved to LocationB, and bought a new phone in LocationB.

Now, I got a gift card (which shall be redeemed via https://play.google.com/redeem.

However no matter what I do, it keeps telling me:

> Couldn't redeem this code. This code can only be used in LocationB

I'm currently at LocationB. My phone has been bought in LocationB. I just made a mistake that I born in LocationA.

So what now? Come on Google, why are you this stupid?

If I open https://pay.google.com and check my "Addresses", I have only one, guess what: in LocationB.

Everything is in LocationB, and Google's very perfect AI keeps telling me that an error occured as I can only redeem this gift code in LocationB.

It's really a shame. Also, that Google has so smart customer care that it seems much faster and wiser to ask this question from the community, as I can imagine I'm not the only one suffering from this "feature".

# Answer
> 1 votes
Google fixed this after more than a week.

They haven't give me any reason or root cause, nor any possible steps to avoid this in the future.

Congrats.

---
Tags: google-play-store
---


# Question
Title: Bluetooth keeps turning on by itself - Is there a way to determine why?
I saw similar questions but there was no generic answer to the issue. Is there a way to determine what is turning my BT ON? I don't have rooted phone (but can ADB)

I got Samsung Galaxy S5 with Android 6.0.1.

What I did:

1. Turned off BT scanning for "fine localization"
2. Revoked permission to change phone settings to ALL apps that had one (including g services)
3. Disabled all BT scanning related things that I have found.

How to find what is turning BT on?

# Answer
> 0 votes
You gave permission to all apps to change the phone settings as per need which means some app which uses Bluetooth connection is using that to turn the Bluetooth on. Change that setting and it will work fine

# Answer
> 0 votes
Get a rom from ubuntu touch for a similar device and try installing it. If it works, inform the team that ubuntu touch works for that particular device. It looks like your OS is compromised which is an increasing feature of the soon to be deprecated android operation system. Fushia will be the next google mobile OS and it will ship without GPL2 end user protections. Now more than ever we need proper GNU/Linux phones to take off.

---
Tags: settings, bluetooth, troubleshooting
---


# Question
Title: Android update removed "change account" button on login screen
After a Android Update on my Samsung Galaxy Tab S5e, the button allowing to choose the user-login (or Android account, I mean here "multi-user feature of Android") does not show anymore.

The button nevers shows up. (neither after reboot nor after changing user through user parameters, see under)

So to change user, you have to log on the last logged user, and then go in the parameter \>user and choose the user you want.

My other Samsung tablet does not have this problem.

Android Version : 11; One UI Version : 3.1 (that's the Samsung UI, I guess) ; Google Play last update 1 aug 2021

# Answer
I re-searched for an update. There was one availlable, installed it. The "change user" button did not appear directly. But by changing the user once again throught the parameters, then it appear finaly on top right corner.

It's now working as expected.
> 0 votes

---
Tags: multi-user
---


# Question
Title: Can I auto switch phone to silent triggered by specific wifi connection?
Specifically my phone is Xiaomi Pocophone F1 and I'd like it to automatically switch into silent/DND mode as soon as it connects to the office Wifi.

The phone is not rooted and runs Muii version 12.03

Can this be achieved? Thanks!

# Answer
> 0 votes
A Tasker app could be a solution.

---
Tags: automation, silent-mode, xiaomi-pocophone-f1
---


# Question
Title: Can I make the USB connection default to file transfer only for my computer?
Every time I plug in my phone to my computer, it defaults to only charging. I have to open the phone notification to switch to file transfer mode. Is there a way to tell it to remember to use file transfer mode when connecting to my laptop? Or to change the default when connecting to my laptop?

I know that it is possible to change the default for all connections. However, I would prefer if it only changed the default when connecting with my laptop. I'm also uncomfortable that I would need to dig inside the developer settings to change the default.

If it matters, my phone has Android 10 (Q).

# Answer
Your phone can not identify which computer it is connected to, USB an MTP protocol does not include something that could identify a host computer.

There is a feature for USB-C authentication planned but I have never heard that it is already supported by a device and if I understand it correctly it should allow to identify a device type or a device class, not an individual device or computer:

> USB Type-C Authentication empowers host systems to protect against non-compliant USB chargers and to mitigate risks from malicious firmware/hardware in USB devices attempting to exploit a USB connection. Using this protocol, host systems can confirm the authenticity of a USB device, USB cable or USB charger, including such product aspects as the capabilities and certification status.

Therefore the answer is no, with pure MTP and/or USB this is impossible.

However the other Android USB protocol Android Debug Bridge (ADB) supports authentication. The host computer automatically creates a RSA key pair you is used for authentication. The whole process is similar to SSH where you can trust a computer based on it's key pair when you connect to it the first time.

Hence you should enable developer options and ADB on your device and use adb based tools instead.

Note that if you should get an update to Android 11 there is a feature that automatically removes adb authorizations after a certain time. This option can also be found in developer options. In my opinion it is recommended to disable feature.
> 1 votes

---
Tags: file-transfer, android-10
---


# Question
Title: Google Authenticator and Switching or Resetting your Phone
My phone isn't working so well, so I'd like to factory reset it. However, I use Google Authenticator for a number of different websites. How can I resume using it after I rest my phone?

Can I wipe my phone even if I use it for 2-step verification? Discusses editing 2-factor settings for Google, but I don't want to change the settings for all my different accounts on different sites.

How To Geek has a post on using Titanium backup, but is there a simpler way?

# Answer
> 4 votes
When you initially set up two-factor authentication you should have been given a set of 10 single-use passwords and told to store them somewhere safely for use if the authenticator on your phone was unavailable. Alternatively if you don't want to use one of them, log into your Google account before the reset and turn on SMS message authentication for two-factor.

You can then use one of those methods to log back into your Google account the first time after you reset your phone.

Once you're into your Google account go through the normal method to reset up the Google Authenticator for 2-factor and when you get to the point that it shows you the QR code that you can scan from your phone to set up your account, print out or save the picture of that QR code (obviously make sure you store this securely). If you ever reset your phone again, or want to set up the Authenticator app on another device, you can just re-scan that same QR code again, it seems to work every time, years apart.

# Answer
> 1 votes
I use titanium backup a lot for when i switch roms (which is almost every week at the moment), and it works flawlessly with restoring the Google Authenticator. Never really looked into any other options though.

# Answer
> 1 votes
Same here, I've used Titanium backup to transfer my authenticator settings across 3 devices for multiple accounts and it has worked flawlessly.

I only backed up the app's data though - usually install the authenticator app from the play store then restore the data using TiBu.

So you could possibly explore the app's data path and backup those files.

# Answer
> 1 votes
If you use Google Authenticator for different websites the only solution is to disable and re-enable 2FA for each service. You can also use backup codes but take into account that not all services offer them. You can use Google backup codes only to restore an access to your Google Account.

When you use 2FA you make your account more protected and secure. Be careful with Titanium backup as root permission will make your device less protected since different viruses could get an access to protected memory areas. 2FA apps store seed keys and if the phone is rooted it makes easier for the hacker to gain access to it.

# Answer
> 0 votes
It's possible to "export" a qr code from within the Authenticator App. You can take a photo of it with another phone or your desktop webcam and then use the "import" feature within the Authenticator app once you've reinstalled it. You probably want to disable TFA on the Google (Gmail) account associated with the phone and Google Play before doing this, in case the picture is too blurry for importing after the reset.

---
Tags: backup, factory-reset, titanium-backup, google-authenticator
---


# Question
Title: How can I copy entire chain of text messages (not just a single one) with the stock Android messages app?
How can I copy or export an entire chain of text messages (not just a single one) with the stock Android messages app? This is needed for a claim.

I know I can screenshot stuff, but the date for older messages is missing. I know I can long press on a single message to select it. I can long press on multiple messages. But that's beside the point: how can I grab the data --- message, date & time received?

If it's relevant, the phone is Pixel 4a.

# Answer
Stock SMS app on Pixel 4a does not have this option and you need alternative methods.

Use SMS Backup and restore

* **Option 1** : Take a complete backup of your SMSes and from the app see "Backed up (time)" and tap *view details*. It will list SMS Backup. Tap on that to *view conversations* and all your conversations are listed. From the 3 dots menu against the conversation you want select *print conversation* and it will be printed as a PDF file with date and time stamps. Example below (You can get sent and received. I chose a conversation that doesn’t reveal personal details). From the pdf you can copy and paste wherever needed.

* **Option 2**: From settings → backup settings → selected conversations only, choose the conversation you want and repeat steps in Option 1 to get a print, share or copy to clipboard.

I am not affiliated to this app but it's likely the best of it's kind.
> 4 votes

---
Tags: sms, google-messages, export
---


# Question
Title: Is it possible to create a plain text file in android?
I see lots of apps that can create "files that contain text", but the files are in their own proprietary format. I would like to create a plain text file so that if the file is transferred to a computer, it could be opened using a common text editor, like notepad or gedit etc.
Is this possible?

device * Samsung galaxy note 2
* running android 4.4.2

# Answer
You need to install a third-party app to create a text file. There is a swarm of text editors in Google's proprietary Play Store app store and on free/libre and open source F-Droid app store. Choose whichever text editor suits your needs.

Do note that some file manager apps also allow creating a plain text file, so check your file manager first to see if it provides such a feature or not.

You can also create a text file in your phone by connecting your phone to your PC in MTP (file transfer) mode and using your text editor in PC to save the text file in the phone.
> 7 votes

# Answer
If you're serious about wanting to deal with plaintext on Android, I recommend installing Termux and learning how to use the Nano text editor (via Termux). Here are some links to help you get started there. Also, I recommend getting a bluetooth keyboard.

Okay, so once you have Termux installed, you basically have a Linux command-line app; no GUI, but you don't really need one terribly. You can install and use all sorts of programs that make your tablet useful--and you can make your own, if you're a programmer. As an added bonus, both Termux and Nano make it easy to multi-task once you learn how (in Termux ctrl+alt+c makes a new terminal; ctrl+alt+up/down moves between them; in Nano, you can move between open text files with alt+left/right).

So, in Linux, to create a text file, you can do it plenty of ways:

1. `touch myFile.txt` (that will create it if it's not there)
2. Type `nano myFile.txt` edit it, and save it.

Stuff like that. Learning how to use the Linux command-line will be important if you take this approach. You'll want to know commands like this:

* `ls` to show the contents of the current working directory
* `cd myDirectory` to change the directory to myDirectory
* Follow just about any command with `--help` (e.g. `nano --help`) to learn more about how to use it. `man whatEverMyCommandIs` also helps (it opens the manpage for it, if available).
* `rm myfile` to delete a file
* `rm -r myDirectory` to delete a directory/folder
* `mkdir myDirectory` to make a new directory
* `chmod +x myFile` to make a file executable
* `./myExecutableFile` to run an executable file that is in the current directory.
* `exit` to exit the shell (note you can type `bash` to create a new one running inside of the current one, so if you exit, you'll return to the old one)
* `pkg install myApp` to install a program called myApp (if it exists in the package manager); I don't remember if Nano comes pre-installed; if it doesn't, type `pkg install nano`.
* ctrl+c and ctrl+z are useful if you need to force quit a running program.
* Press tab to autocomplete stuff you're typing (like file and directory names).
* If you can't find a program for your purpose, see if someone has made one with Python; Python works on Termux, and so does pip (so, you've got access to lots of stuff).

There are more Termux-related apps on F-Droid, if you want to be able to do even more stuff with that.
> 1 votes

# Answer
Turbo Editor is what you're looking for.
> 0 votes

---
Tags: text-editor
---


# Question
Title: Why does WhatsApp insist to "unlock to link a device"?
When trying to connect the app to web.whatsapp.com, the app insists to "unlock to link a device", meaning I get the same screen as when I turn my phone's screen on after it sleeps.

I know other WhatsApp users don't need to do that, they get right into the QR screen without any security measures.

So why does it happen?

# Answer
To me it seems like the authentication for linking a device is meant to be rolled out to everyone. If someone does not have it yet, it's because a) he might not have updated the app yet or b) WhatsApp is publishing its new versions as a staged rollout, so not everyone is going to get it the same time.

The need for authenticating before linking is also described in WhatsApp's help center, which leads to the conclusion above.
> 0 votes

# Answer
*I'm only guessing here, and I'm probably wrong*

Maybe it's due to screen pinning feature? Like they want to be sure that it's you linking with a computer?
> -1 votes

---
Tags: security, whatsapp-messenger
---


# Question
Title: Can I encode an NFC tag to send HTTP POST data?
Can I encode an NFC tag to send HTTP POST data? Or can I only use HTTP GET?

I have Googled extensively, but can't seem to find an answer (which, I suppose, implies that it is HTTP GET only, but I would like someone to say so).

---

\[Update - 6 years later\] This project was abandoned, but it was basically advertising, embedding NFC tokens in posters.

As such, it should work on any Android, out of the box, with no helper apps being necessary (my bad; maybe I ought to have made that clearer).

The extra step to install an app would drastically lower the number of people who scanned the tag.

# Answer
No, you can only encode a URL on the tag. The tag neither contains an instruction to issue a HTTP GET request nor a HTTP POST request.

How the URL is interpreted and processed depends on the app that opens the URL. Typically that app will be a web browser and that web browser will typically treat the URL as if it was typed into the address bar. Consequently, the web browsers usually opens the URL by issuing a GET request.
> 1 votes

# Answer
Yes, NFC Tools PRO has a Post option https://play.google.com/store/apps/details?id=com.wakdev.nfctools.pro&hl=en
> 1 votes

# Answer
The Tasker application can be set to send any http request to any address when it gets in contact with a NFC tag that it recognizes.
> 0 votes

---
Tags: nfc
---


# Question
Title: How to make Android device visible to Bonjour / Zeroconf with .local name?
I would like to access my device as `myandroidthing.local`, as I can do it with my (both Linux and Windows) laptops. Is it somehow possible?

Most ideally, it could be done by some app what I can install from an app store.

**Responses to the answer:**

* `Android.local` works. But it finds only one of my Android devices. Is there a way to replace the Android `mdsnd` with a better configurable one which allows changing the name it advertises?
* Does running a patched `mdnsd` require a rooted device?

# Answer
My answer to Why is "mdnsd" draining my battery and how to stop it? explains the role of Android's mDNS Daemon which is an `init` service, started on demand. It provides Multicast DNS (host/domain name resolution) and DNS-SD (DNS-Based Service Discovery); both part of ***Zero Configuration Networking***.

### How to resolve Android's mDNS hostname to IP address?

Technically it's possible for DNS-SD to use the old unicast DNS to resolve the domain name found in the SRV record (of a broadcasted service) to an IP address. But mostly mDNS and DNS-SD are bound to each other. And this is the case with Android.

Android doesn't expose any setting or API to do **only the name resolution** (as mDNS Responder or Querier) and not the service discovery. Neither the name resolution mechanism uses mDNS. Android's `mdnsd` serves as mDNS broadcaster / responder only to DNS-SD service. You cannot use either of the both independently (as to my knowledge).

But there are a few options:

* Run an app on your Android device with a **discoverable service** (even a dummy), which uses Android's official API (which in turn interacts with `mdnsd` underneath) to broadcast and discover services. So any other host on the local network with mDNS/DNS-SD capability can discover the service. For instance use `avahi-browse` command on a Linux system. Resolving the service provides the IP address of the Android device.
* When `mdnsd` is running, Android device is already broadcasting itself with a hard-coded name: **`Android.local`**. If you don't want to broadcast a service, there's another option.

ADB relies on mDNS to discover devices on local network by registering a service of type `_adb._tcp` (see references here, here and here). So enable "USB Debugging" in Developer Options and you'll see `mdnsd` running on your device.

Or on a rooted device start `mdnsd` alone, without starting ADB, by executing `setprop ctl.start mdnsd` or simply `start mdnsd`.

In both above cases, when `mdnsd` is running, executing `avahi-resolve-host-name` `Android.local` on a Linux PC should return IP address of your Android device.

### What if two Android devices have the same hostname?

In case of name conflict, as the name `Android.local` is hard-coded, the Android device which joins later automatically renames itself to `Android-2.lcoal`, `Android-3.local` and so on (see reference here). So you can resolve the names accordingly.

### Any option to change the mDNS hostname?

Coming to the next problem, what if your OEM/ROM developer removed or modified the `mdnsd` service, or if you want to run with a name of your choice, not the hard-coded one?

* Build and run your own more configurable mDNS responder like Avahi on Android device.
* Even simpler, patch and rebuild Android's `mdnsd` to receive a commandline argument for name, or read from a config file if exists.

No, it doesn't need a rooted device. The patched `mdnsd` binary should run fine from `adb shell`, or even on a terminal emulator app like Termux. As of this writing, there's only one syscall in `mdnsd` source code which the `seccomp` blocks for apps. But it can be removed easily. Neither the DAC or MAC block the execution.
> 4 votes

---
Tags: networking
---


# Question
Title: How to convert Viber's voice message files to common audio file?
Viber's voice message files are located in `/sdcard/viber/media/.ptt/` directory, and they don't have any extension format on them. I'm looking for a solution to convert them to a `common audio file` format.

# Answer
> 0 votes
I suppose you have voice tags on your phone or tablet. They are in the folder `sdcard/Viber/media/PTT`. They are designated by numbers 1, 2, ... without the extension.

1. First you need to install Viber on your computer.
2. Install Audacity on the PC as well.
3. Run Viber on the PC and let somebody send a short voice message to you. If this is the first voice message after installation, it will be labeled "1" and will be in the `\users\%username%\documents\viberdownloads\ppt`.
4. Delete this message and replace it with a sound file from your tablet or computer. (I send the file by email from tablet to PC). Be careful that the file had to be the same name as deleted file and had no extension.
5. Start Viber and test play a sound file.
6. Run Audacity. Select the correct input source (at the microphone icon) - in my case SoundMaxDigitalAudio-stereo mixer. Enable recording.
7. In Viber, play voice recording and let the whole recording play.
8. In Audacity, stop recording and save the recording as a "file in another format", e.g. mp3.

Further reading: How to Save Voice Messages that you Received on Viber (archived)

# Answer
> 0 votes
In `Memory/Android/data/com.viber.voip/files/.ptt`, you'll find all the \*.m4a audio files.

---
Tags: audio, files, viber-messenger
---


# Question
Title: How to get adb logcat to filter ONLY by specific app (package name)
Would like to know how can I get the `adb logcat` of ONLY certain app, and all its errors and messages associated.

I've tried before with `adb logcat -c; adb logcat | grep com.fitbit.FitbitMobile`, but the thing is, it forces a grep on EVERY line, and sometimes there's a crash that involves multiline where needed information gets omitted.

I've tried the command on page Displaying and filtering with Logcat, however doesn't work. It just gets everything:

```
adb logcat -c && adb logcat com.fitbit.FitbitMobile:V

```

I've tried also the filtering option on Android Developers Documentation, but just mutes everything:

```
adb logcat com.fitbit.FitbitMobile:D *:S

```

Others commands that get the pid are not useful if the app is not running when I run logcat, and crashes immediately and is relaunched with a different pid.

Any ideas about the proper format?

# Answer
> -1 votes
I found a simple solution without requiring a third party app.

Just connect to the device using shell: `adb shell`

Then run: `logcat | grep your.package.name`

It will only show lines that contain that package name.

---
Tags: applications, adb, logging, content-filter
---


# Question
Title: Is a SIM card needed for a remote hard reset through findmymobile.samsung?
The screen of a Samsung phone is broken completely and I want to take it to a repair shop, but before that I prefer to erase all data on it.

I have been able to verify that the phone was not associated to Google’s Find My Device but that it was associated with Samsung’s Find My Mobile. There, I can select the "Erase" option.

But the phone is marked as offline.

It has no SIM installed now but is powered on and vibrates from time to time like when emails and other messages are received. So, I thought it must be connected to the home wifi. Scanning on Linux with Wifi Guard, I can see one supplementary device connected that must be this phone, but it is still reported as offline on that site.

Should I insert a SIM for the remote erase procedure to work? Or would a wifi connection suffice? - in which case I'm wrong saying it is already connected to wifi etc.

# Answer
> 1 votes
The answer seems to be "yes". The phone can connect to the home wifi but that is not enough.

After using a SIM card - namely a different one than the one initially used on this phone (and listed on the Samsung site)

* the new number was seen by the Samsung website,
* the "Erase" option triggered a new message saying that the phone has to be *unlocked* first
* remote unlock didn't work though: "Can't unlock your phone. It's not connected to a network."

That seems a vicious circle but the answer is nevertheless "yes": because a phone needs a cellular connection for the "remote erase" procedure to work, a SIM card **is indeed** needed, although that is not sufficient; the phone has also to be unlocked for it to receive/use the cellular signal etc.

It seems extremely difficult if not impossible to erase remotely a lost phone *if it's disconnected*. Luckily I have access to the phone, and can use the other old SIM and the biometric data to unlock it, and once I do that I'll update this answer.

---
Tags: samsung, factory-reset, sim-card
---


# Question
Title: Apps read/write storage without asking permissions
I have noticed that some apps are accessing/reading/writing in the storage without asking for permissions. Note that I am not talking about apps' internal folder, but the shared storage located at */storage* or */storage/emulated/0*.

For example, browsers like Chrome, Brave, etc. can download files without asking for storage permission. While Firefox does have to gain permission before the download starts (I am aware that Chrome already has permission since it's built in, but Brave does not have it).

On the other hand, I have downloaded a video player called Just Video Player, it's simple and open-source, and I like it. It also does not ask for storage permission. I go to any file manager, click on a video file, select Just Video Player, and it starts playing. How does that happen?

I know I may be asking for information which is too technical for me or something, but I need to know.

# Answer
> 1 votes
When you open a file through a file manager, the receiving application is automatically granted access to that resource. Though the access is somehow limited (short lived) and may not work past app or device restart.

As an author of Just (Video) Player, I focus on simple working design where you don't need read permission except for some edge case (supporting some outdated apps).

You may check this comprehensible table for various types of access to files: https://developer.android.com/training/data-storage

---
Tags: applications, permissions
---


# Question
Title: Device doesn't show up in fastboot [OnePlus Nord]
I installed:

* the latest platform tools from google
* the universal adb driver
* the OnePlus USB driver

USB debugging & OEM unlock are on.

With the phone turned on everything runs fine. I can copy files onto the device and it shows up in adb and the device manager just fine.

But when I go into the bootloader, fastboot does not list or recognize the device and I noticed in the Device-Manager the phone shows up like this. Idk if this is normal or not, but I'm out of ideas.

Any help would be much appreciated.

# Answer
Fix Device not showing up in Fastboot Mode

So it turns out Windows doesn't like the OnePlus USB drivers because they are not signed. So you have to bypass it by disabling driver signing enforcement.

> 1. install the OnePlus drivers that are included with your phone.
> --- they should show up as CD Drive: OnePlus Drivers when you just connect your phone to your computer
> 2. This will create a directory like this... `C:\Program Files (x86)\OnePlus USB Drivers`, containing the USB driver
> 3. In that folder there is a driver `""` but both when installed from my phone, and a downloaded version, I ran into ***"The hash for the file is not present in the specified catalog file. The file is likely corrupt or the victim of tampering."*** So next we are going to disable signed drivers on windows.
> -----Select the "Start" button.
> -----Type "startup".
> -----Select "Change advanced startup settings".
> -----Select "Restart now" under the "Advanced startup" area.
> -----Select "Troubleshoot".
> -----Select "Advanced Options".
> -----Select "Startup Options".
> -----Select "Restart".
> -----A menu will appear where you can press "7" on your keyboard to choose "Disable driver signing enforcement".
> Now Device Driver Signing should be disabled, allowing you to install any driver you like in Windows 10 until you reboot.
> 4. Boot your device into fastboot mode. This should cause it to show up in device manager as Android, with a yellow triangle
> 5. In device manager (press windows + x to bring up a menu, then you can press m or select device manager for quick access) right click the android device
> -----Update driver
> -----Browse my computer
> -----Let me pick
> -----Have Disk
> -----Navigate to `C:\Program Files (x86)\OnePlus USB Drivers`
> -----Select `OnePlus_android_winusb.inf` and click okay
> -----OnePlus **Android Bootloader Interface** should be selected, and go ahead and install it.
> 1 votes

---
Tags: adb, fastboot, bootloader, oneplus
---


title: How To Autofill Custom Forms?

text:
# Question
Title: How To Autofill Custom Forms?
I have a webapp I frequently use, which have such kind of forms:

```
<form method=POST action=...>
  <input type=text name=urname placeholder=urname>
  <input type=text name=secretid placeholder=secretid>
  <input type=text name=otherfield placeholder=otherfield>
  <input type=submit>
</form>

```

What I want to do is to be able to autofill those fields with specified values (e.g.: urname=kristian, secretid=abcdefghijkl, otherfield=000111222333444555666777888999).

Currently I do it by opening "note" app then copy-pasting its content each time, which can get tedious since it's quite long and I have to go back and forth 3 times. Also, the content of the autofill input is not exactly a secret.

Is there a way to do it?

I found a question with similar problem on Super User: Autofill web forms (but instead of Chrome on PC I want to do it in Chrome in Android). The comments seems to recommend a Cchrome extension that can inject JavaScript into the page. I don't mind that, I can write JS, but I don't think Chrome extensions are available on Android.

EDIT: I found here that I can execute bookmarked JS via chrome without extensions here: How can a bookmarklet be ADDED on mobile Chrome without copying and pasting?

So I made a bookmark with such content:

```
javascript:(function(){ document.querySelector(`#urname`).value=`kristian`; document.querySelector(`#secretid`).value=`abcdefghijkl` ; document.querySelector(`#otherfield`).value=`000111222333444555666777888999` ; })()

```

Which if it gets prettified/formatted it will looks like:

```
javascript:(function(){
  document.querySelector(`#urname`).value=`kristian`;
  document.querySelector(`#secretid`).value=`abcdefghijkl` ;
  document.querySelector(`#otherfield`).value=`000111222333444555666777888999` ;
})()

```

But I still have problem: the page seems to use some kind of data binding (e.g.: react two-way binding). So when the value got changed via JS, when I click on the element it goes back to its old (empty) value. Now, how should I circumvent it?

# Answer
After some research and digging github issues, here is my own solution:

In general I have to do:

1. inject custom/self-written JS to chrome android
2. figure out why it didn't work and the element value changes back to its old / empty value
3. call correct function so 'react' framework can change the input element AND its internal / 2-way binded data

### First step: inject custom/self-written JS to chrome android

From this question: How can a bookmarklet be ADDED on mobile Chrome without copying and pasting? I learned that I can add custom JavaScript to bookmark in chrome

First step cleared

### Second step: figure out why it didn't work and the element value changes back to its old / empty value

First look, wonder why the value was not changed even after injecting code like:

```
document.querySelector(`#otherfield`).value=`000111222333444555666777888999` ;

```

So I suspected if it used some kind of JavaScript framework to do 2-way data binding (bind a variable value with an input element).

To detect which framework they used, I installed this extension: Library Detector https://chrome.google.com/webstore/detail/library-detector/cgaocdmhkmfnkdkbnckgmpopcbpaaejo (disclaimer: I'm not associated with the author of said extension)

The result: they used react.js

So, the reason why it didn't work and the element value changes back to its old / empty value is because it used react 2-way data binding

Second step cleared

### Third step: call correct function so 'react' framework can change the input element AND its internal / 2-way binded data

After some googling, I find this github issue: https://github.com/facebook/react/issues/11488 which links to this issue comment: https://github.com/facebook/react/issues/10135#issuecomment-314441175

Basically the solution is to call such function:

```
function setNativeValue(element, value) {
  const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
  const prototype = Object.getPrototypeOf(element);
  const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;
  if (valueSetter && valueSetter !== prototypeValueSetter) {
    prototypeValueSetter.call(element, value);
  } else {
    valueSetter.call(element, value);
  }
}

setNativeValue(textarea, 'some text');
textarea.dispatchEvent(new Event('input', { bubbles: true }));

```

After changing my JS to

```
function setNativeValue(element, value) {
  const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
  const prototype = Object.getPrototypeOf(element);
  const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;

  if (valueSetter && valueSetter !== prototypeValueSetter) {
    prototypeValueSetter.call(element, value);
  } else {
    valueSetter.call(element, value);
  }
}

var element1 = document.querySelector(`#urname`);
setNativeValue(element1, `kristian`);
element1.dispatchEvent(new Event('input', { bubbles: true }));

var element2 = document.querySelector(`#secretid`);
setNativeValue(element2, `abcdefghijkl`);
element2.dispatchEvent(new Event('input', { bubbles: true }));

var element3 = document.querySelector(`#otherfield`);
setNativeValue(element3, `000111222333444555666777888999`);
element3.dispatchEvent(new Event('input', { bubbles: true }));

```

And then enclosing them in

```
javascript:(function(){  ...  })()

```

Now it works perfectly
> 0 votes

---
Tags: chrome-for-android, javascript, auto-fill
---


# Question
Title: Blocking websites by syncing Android with desktop
I know of an app, Blocksite, that allows users to block websites by syncing their Android phone with their desktop. But to do so you must install Blocksite on Android, which can easily be uninstalled. Is there any way to sync a blocking app on Android and the desktop which does not need to be downloaded on the phone? In other words, you download it on the desktop only and it also blocks websites on your phone once you sync it. Or is there any other way to control apps on your phone through your desktop to block websites so you must access your desktop to unblock them? Thank you.

# Answer
I think it's not possible. You can try Google's Digital Wellbeing to block and set timers on the websites. But there's no desktop version available to use.

From my experience, If you block a website for at least two weeks with an app. You can control yourself for the third week without the help of an app.

I would like to recommend Freedom (https://freedom.to) instead of Blocksite. It's paid one. But worth it.
> 0 votes

---
Tags: sync
---


# Question
Title: How to prevent charging over USB while debugging / tethering internet over USB?
When I'm on the go, I want to use internet tethering and debugging over USB to develop mobile apps with my Pixel 3A, but I don't want to charge the phone, because I want to waste energy on my MacBook as little as possible.

Is it possible to disable charging when the device is connected to my laptop, if so how? I know that I can set up debugging over WiFi and use a mobile hotspot, but I can't stand my hotspot performance and WiFi drains energy from my laptop as well.

# Answer
I was looking for a solution that doesn't require root and I came across one. When USB tethering is on, I can get into its settings by touching on the notification:

|  |  |
| --- | --- |
|  |  |

There is a toggle that allows me to disable charging for this session.

Funny thing is I had to enable the toggle to disable charging, the option should be called "Don't charge connected device" instead.
> 3 votes

---
Tags: usb, charging
---


# Question
Title: How to unlock bootloader on Samsung Galaxy S6 Lite?
I have a new SM-P610 device that I want to install Lineageos on. I am following the instructions at https://wiki.lineageos.org/devices/gta4xlwifi/install but I am unable to unlock the boot loader.

Under "developer options" on the phone I can toggle "OEM unlocking" and changing this is reflected on the download mode screen which shows either "OEM LOCK: ON(L)" or "OEM LOCK: ON(U)", so obviously Locked or Unlocked, however ON in both cases.

If I try to run the heimdall command to flash the recovery image it prints "ERROR: Failed to receive session end confirmation!" and on the screen "Custom Binary(RECOVERY) Blocked By OEM Lock" is displayed in red.

So how do I actually unlock the boot loader?

# Answer
I eventually figured it out. The guide says

> With the device powered off, hold Volume Down + Volume Up and connect USB cable to PC. Now, click the button that the onscren instructions coorelate to “Continue” and/or “Unlock Bootloader”.

and on the screen the tablet displays

```
Volume up: Continue

```

This I assumed was a perfect implementation match for the generic *“Continue” and/or “Unlock Bootloader“* description, but clicking volume up will just end up in the situation I described in the question.

However on the next line (which I did not read since I had already found a perfect match...) it says

```
Volume up long press: Device unlock mode

```

So the device requires a **long press** to actually unlock the boot loader (which is not described in the install instructions). I did not notice this line until now when writing the answer, I found the long click information in this xda forum post.

---

After the successful unlock procedure the tablet behaved as expected (all apps/settings reset/deleted, it now nags about the boot loader being not being verifiable upon every boot, and the OEM unlocking option in developer options is greyed out with status "Bootloader already unlocked".)
> 1 votes

---
Tags: bootloader-lock
---


title: My nook HD won't charge

text:
# Question
Title: My nook HD won't charge
Unlike similar posts about this issue, the light doesn't from green to red to nothing when I plug it in, but rather, it just goes to green for a few seconds, and then nothing. I hadn't used it in a few years, and I went to use it again and this happened. I'm using the nook brand block and cable. It is a BNTV400. holding the power button for 20 seconds, or any length of time does not turn it on.

# Answer
oops, tried a different charger and it worked
> 0 votes

---
Tags: charging, nook, nook-hd
---


# Question
Title: How to remove the android OS version from the DHCP request?
When my phone connects to my home WiFi network, it sends DHCP request in order to get an IP address. It looks like the following:

```
22:50:53.743535 IP (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a0:39:f7:5f:c0:45, length 300, xid 0xddd7abec, Flags [none]
          Client-Ethernet-Address a0:39:f7:5f:c0:45
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Client-ID Option 61, length 7: ether a0:39:f7:5f:c0:45
            MSZ Option 57, length 2: 1500
            Vendor-Class Option 60, length 18: "android-dhcp-7.1.2"
            Hostname Option 12, length 9: "localhost"
            Parameter-Request Option 55, length 10:
              Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
              MTU, BR, Lease-Time, RN
              RB, Vendor-Option

```

As you can see, there's `Vendor-Class Option 60, length 18: "android-dhcp-7.1.2"` which contains the OS version. Is there a way to remove this from the request?

# Answer
> 2 votes
It's hard-coded in Java DhcpClient:

```
...
    private String getVendorId() {
        if (testOverrideVendorId != null) return testOverrideVendorId;
        return "android-dhcp-" + Build.VERSION.RELEASE;
    }
...

```

So the only way is to rebuild your ROM with modified source code. Or use a different DHCP client from command-line. For reference: Connecting to WiFi via ADB Shell.

# Answer
> 0 votes
You can use an extender. My Android comes in the through a TP link extender as:

```
Vendor-Class Option 60, length 12: "udhcp 1.22.1"

```

Probably not want you want, but a possibility.

---
Tags: dhcp
---


# Question
Title: Importing/restoring contacts from HTC's .vef file on other devices
I have backed up my contacts from the HTC device, and I got the .vef file.

How to use the .vef file in Samsung mobile? I can't open the .vef file. Is it possible to convert .vef to .vcf? Or are any other methods available to convert the file?

# Answer
> 1 votes
This worked for me and only if you still have access to your HTC device: when exporting the contacts, you can choose not to encrypt them. The contacts are exported to a .vcf file then.

---
Tags: contacts, backup, htc
---


# Question
Title: Umlauts (Ö, Ü, Ä) on English US-International keyboards on Android with a physcial keyboard
Alt codes don't seem to do anything. AltGr + O, U, A create ó, ú, á.

I need a way to type ö, ü and ä without switching layouts. I'm using a Galaxy Tab S7 on Android 11, if it matters.

# Answer
> 1 votes
The "international" version for US keyboards is

* `AltGr+q`-\> ä
* `AltGr+y`-\> ü
* `AltGr+p`-\> ö

But whether this actually works might depend on how your physical keyboard is configured, as well as on your Android configuration.

Here's an image (source: Wikipedia) of the international layout:

---
Tags: keyboard
---


title: How to change the default alarm sound?

text:
# Question
Title: How to change the default alarm sound?
It seems to me that it is impossible to change the default alarm tone. Does anyone know if it's possible to do that?

I am using Sony Xperia Z2, if that matters.

# Answer
> 17 votes
Oddly enough, Android doesn't provide (as of the time of writing) a way to change the default alarm tone: if you navigate to Settings \> Sound & notification, you can pick "Alarm volume", "Phone ringtone" and even "Default notification ringtone", but there's nothing about an "Default alarm ringtone".

The solution that worked for me came from this post. It requires using the ES File Explorer (install it if you don't have it yet, you can remove it afterwards). The steps below are to pick one of the existing alarm sounds as the default one, but can be used for any sound in your SD card. Here's what you do:

* Using the ES File Explorer, navigate to /system/media/audio/alarms
* Click on the file you want, and in the "Open with" prompt, select "ES Media Player"
* Open the menu in the top right, and pick "Set ringtone" (the entry with a bell icon)
* In the dialog that appears, pick "Set alarm"

After doing this, all applications that use alarms will use the chosen sound if they're configured to use the system default. The stock clock app will also use this.

# Answer
> 4 votes
I also used ES Explorer but recently, I am on Android 11 and it seems you can do this from the Settings:

1. Open Settings
2. Tap on Sounds
3. Tap on Advanced
4. Tap on Default alarm sound
5. Choose an alarm tone and confirm

# Answer
> 2 votes
You can do this with zedge. When you download a notification sound and choose the "set" option, it will give you a choice of setting it as the main ringtone, the default alarm, and two other options I can't remember right now.

# Answer
> 2 votes
Once you move your song or ringtone into the file you have created and you click on it and file explorer if you push the three dots on the top right it'll say set ringtone push that and it'll give you the three options shown in the picture!

# Answer
> 0 votes
It is hidden down the alarm options. You must slide up to see the rest of options configuration for each alarm.

# Answer
> -1 votes
1. Open the Alarm & clock application, then select the alarm that you want to change.
2. Select Alarm sound and select an option, or select the music note button to select from your music files.
3. Tap Done twice.

http://userguide.sonymobile.com/referrer.php?region=global-en&product=xperia-z2#!Alarm-clock.html

# Answer
> -1 votes
Open a file manager, choose the sound file you want, and move the file to the 'alarms' folder. Once there it will show up in both sections of the clock app under," Alarm sound:" "Alarm Tone," and "Music," but you must select it! It will not self-add. Tap either one and scroll to it; tap on its name, (not on the right which is play only), tap Save.
To have a more or less permanent Clock/Alarm of this sound: tap +(add), select the sound, and set the time/date for anything, \>Save. Now simply use that alarm by resetting the time/date, instead of crafting a new one, and the alarm sound will follow at that setting. From BeOhBe

---
Tags: alarm
---