# Question
Title: Can I charge my Galaxy S9+ with a laptop charger
I was wondering if i could charge my Samsung Galaxy S9+ safely with a USB C laptop charger.

here's what is says on it:

```
INPUT:100-240V~1.3A 50-60HZ
OUTPUT:20V--2.25A/15V--3A/9V--2A/5V--2A

For Lenovo information equipment use only

```

Theres a lot more stuff on it but I'm pretty sure thats the only stuff thats important.

# Answer
The data of the power supply indicates that it is compliant with the USB Power Delivery Standard (USB-PD). If it has an USB logo there should be some sort of "power flash" within that logo to indicate that it supports USB-PD.

The USB Power Delivery standard defines backward compatibility, this means that by default the charger will output 5V and only switch to 9V, 15V or even 20V if the connected device has signaled by the USB PD protocol that it supports this mode.

Based on the information I found the Galaxy S9 / Galaxy S9+ support USB Power Devlivery, however they don't make use of the modes with higher voltage.

Therefore connecting it to the described charger it should charge with 5V 2A.
> 1 votes

---
Tags: samsung, samsung-galaxy-s-9
---


# Question
Title: Is dhcpcd used in newer Android versions? How to configure new DHCP client?
Basically, there's a file `/etc/dhcpcd/dhcpcd.conf` . Is this file or `dhcpcd` used at all? My phone runs Android 7.1.2 and I wanted to change the default hostname using the `hostname somename` line in this file, but it looks like it was ignored (there was no change in dhcp request).

I've read something about "legacy Android DHCP client" in the dev options, but I don't have this position there, and also I couldn't find anything about the modern DHCP client, which I think is used now - does it have any config file like `dhcpcd`?

# Answer
> 2 votes
`dhcpcd` is not used in Android 6+, it was deprecated in favor of Java DHCP client. *"Legacy DHCP client"* option was available during transition phase but was removed in Android 7 <sup>(, )</sup>. Quoted from source:

> *The legacy DHCP client has been removed from the platform. The only DHCP client that the platform supports is the DHCP client introduced in M.*

`net.hostname` is set (up to Android 7) by ConnectivityService (runs in Java stack), and DhcpClient uses it (at least up to Android 10). You can set it manually using `setprop` command or add in some `init`'s `.rc` file to set on every boot.

> does it have any config file like `dhcpcd`?

No. Java processes running in `system_server` are not configurable except through some command-line tools e.g. `/system/bin/service`. However no method is available to set `net.hostname`.

---

**RELATED:**

---
Tags: wi-fi, networking, dhcp
---


# Question
Title: How can I factory/hard reset/wipe a Nokia 2.2 (TA-1188) without a (windows) PC?
Having looked around hither and thither now for a night as to how to factory reset a Nokia 2.2, I am still a bit confused and unable to do it.

Holding **volume-down + power on** brings me to a boot screen saying *"=\> FASTBOOT mode"*, but no buttons are having effect after that. Apparently the next step is to connect it via usb cable to a Windows computer with some specific tool or another installed on it?

I've seen people in youtube videos apparently using a Windows tool called **'InfinityBox AST'** , and I have tried running that in a Windows VM, but for some (in my opinion) suspect reason, 'InfinityBox' decides to detect that's it's being ran under VirtualBox, and instantly refusing to launch with a message specifically stating that it wont run on a Virtual Machine.

*(This 'vm detector' behavior is enough of a reason to me being quite reluctant and suspicious to even having attempted to run the utility trough Wine/Proton)*

* **Is there really no way to factory reset a Nokia 2.2 TA-1188 cellphone *without* requiring an actual physical (Windows) PC in addition to some shady unofficial utility made by neither Google nor Nokia?**
* If not possible without a PC, is there some Linux software solution able to perform the task?

# Answer
Having now been in contact with Nokia support; Apparently **there is no way**, at least with that specific phone in question *(or the specific firmware ver.?)*, to get it unlocked/factory reset, for the common user.

Fortunately, the dude at Nokia support chat checked the IMEI's of it, and it turned out it was still within warranty, by a hair's length. So having contacted the chain that sold it, a second time, it seems the local store will be replacing the phone tomorrow.

As such, and though depending on varying consumer rights in countries; My hindsight tip would be to **first *press the seller* with the fact**, rather than immediately *"making an appointment"* trough Nokia's online warranty form, to send the phone away to Nokia as was suggested by Nokia support; Simply for Nokia to do the *"magic"* of unlocking ***your* bought and paid for property(!!)**, and sending it back to you ..Something which no doubt would have added considerably more time than the store simply replacing the device and having to deal with manufacturer warranty themselves.

**BTW:** If you are indeed able to get to the *'downed droid'* splash logo on your Nokia 2.2 (TA-1188) trough any physical button-combo, you just might want to confirm with Nokia support whether your phone might be a counterfeit one or not, or to verity that it's not been flashed with unoriginal and thus possibly tampered-with firmware.. *(just push your way trough their silly chat-bot for a few questions, and then an actual human will respond to your inquiry on the other end)*

**PS:** Google *did* eventually come trough with assistance in recovering my brother's hacked/locked Google account. (takes ~3.5 days).. But seemingly, that process also unlinks it from the/any associated device(s). Which is good, from a security perspective.. ..Though the problem becomes then, that that effectively makes it impossible to reset from online Android Device Manager as shown trough some online *how-to*'s .. *Meaning, the phone would've basically be considered as good as destroyed, if it had not been for it still being within warranty timerange... (personally, I'll be looking at Librem phone for myself in the near future, rather than risk experience a similar ordeal and frustration)*
> 2 votes

# Answer
You need to hold `Volume Up`+`Power` (not Volume Down). Keep holding until you see the android logo. It will take you to the Recovery mode. Use the volume keys to select "Wipe data/factory reset". Then press on the `Power` button. Choose Yes to wipe all user data.

When completed, you can select "Reboot system now".
> 0 votes

# Answer
**factory reset from fastboot**

enable OEM unlocking in developer options first

```
sudo apt install android-tools-adb android-tools-fastboot
fastboot flashing unlock

```

and if you want to re-lock bootloader

```
fastboot flashing lock
fastboot reboot

```
> 0 votes

---
Tags: factory-reset, linux, hard-reset, nokia, nokia-2
---


# Question
Title: WhatsApp call/LINE call over phone speaker and Spotify music over Bluetooth speaker at the same time
I connected my Samsung Galaxy S7 edge to my car's Bluetooth and started to call my friend using *the phone's loudspeaker* on WhatsApp or LINE app. However, I also want to listen to music on the Spotify app, but through my *Bluetooth speaker* on my car.

Is it possible to do this?

# Answer
> 0 votes
As explained in Youcanic - 5 Ways To Play Music From Phone To Car Radio, you can use Mono Bluetooth router app or other similar ones.

Let us know about the sound quality.

---
Tags: whatsapp-messenger, bluetooth, spotify, line, loudspeaker
---


# Question
Title: Malware automatically installing unless I disable the play store
So I have been working on my brother's Elite 6.0l+ Sky device. This poor thing has been struck by the xhelper virus which auto installs firedoor, firemyn and an app that likes to hide itself by appearing to be settings.

I have been chasing this malwares source for a couple of weeks and through a ton of trial and error I've discovered that disabling the playstore seems to keep the malware from being reinstalled. However, if I re-enable the playstore so I can grab a game or check for app updates, the malware is immediately re-installed on the device.

I have also discovered that the device itself is apparently known to come with pre-installed problems (SKY/x6069\_trx\_l601\_sky/x6069\_trx\_l601\_sky:6.0/MRA58K/1482897127:user/release-keys) but what I can't find any where is solutions!

While disabling the playstore does keep the malware off the device, it's not exactly a perfect solution and if it's at all possible I want to remove this malicious pest at the roots so the phone will actually be totally functional.

does anyone know how to deal with this? I'm tech savvy and completely comfortable in command prompt, and I'm not afraid to work with code if need be as long as I have instructions.

Thank you in advance for any and all help!

# Answer
regarding xHelper

* unpack firmware247.com/sky-elite-6-0l-plus-firmware
* install VCOM preloader usb drivers
* install Mediatek SP Flash Tool
* load the scatter file, DESELECT all checkboxes (especially preloader)
* switch off device completely
* flash boot, system (click Download only, Download, then connect usb-cable)
* flash cache, userdata (= factory reset if you wanna be 100% sure)

regarding OTA updater

readback boot.img with SP Flash Tool, patch with Magisk Manager, flash magisk\_patched.img into boot, root the device and disable the OTA updater from terminal or adb shell

```
su
pm disable --user 0 com.adups.fota
pm disable --user 0 com.adups.fota.sysoper
pm disable --user 0 com.fw.upgrade.sysoper

```

after this, restore the original boot.img (unroot device) and uninstall Magisk Manager

(Note: unlocking bootloader is most likely not required for this old device, SP Flash Tool can flash with locked bootloader. However, be aware unlocking bootloader will perform factory reset)
> 2 votes

---
Tags: 7.0-nougat, malware
---


# Question
Title: Read the URL of currently open tab in a browser, every time it changes
I use Logitech media server (LMS) to play my music on a DLNA device. The server also has a youtube plugin and can play the sound of youtube videos if a specific url, which contains the youtube video id, is opened. For example `http://myLMS:9000/status.html?p0=playlist&p1=play&p2=youtube://wS1drVzZPmw&player=myPlayer`.

But it only plays back a single video this way. And I'd like them to autoplay, the way they do when youtube is accessed with a browser.

One way to do this, would be to open a browser and read the youtube url every time it changes, somehow, extract the video id from the url, and then forward it to LMS by generating a link, similar to the one I posted above, but containing the id of the video, that was extracted from the youtube url.

The generating and opening of the custom link for the LMS should not be too difficult, by using tasker, I think. But I suspect getting the url from the browser and constantly checking if it changed, would be more difficult.

So - is it possible to read the URL of currently open tab in a browser, every time it changes, and store it as text somewhere?

Or maybe the youtube app on android stores the id of the video it is currently playing somewhere. That might work also, if we could read it somehow. I think the youtube app also autoplays the videos.

# Answer
Apps on Android can't access data of other apps. Therefore you can't just read the current URL of a web browser like chrome.

If this would be possible every app with advertisements would do so and report all the URLs you are visiting in the web browser back to some ad network. As you can see such an interface would be a privacy nightmare.

Hence the only chance to get what you want to do it inside of a browser-plugin. However I don't think that there is any browser-plugin for Chrome, Firefox or another web browser on Android that would do what you want. Hence you would have to develop your own web browser plugin (please note that development topics are off-topic on this site).
> 1 votes

---
Tags: tasker, youtube, url
---


title: "System" using 342GB storage?

text:
# Question
Title: "System" using 342GB storage?
I have a Samsung Galaxy S7 Edge in which I put a 400GB SanDisk micro-SD card to expand its storage space. Seems that didn't work though. The space is not available to me. And I can't really figure out why or how I can make this space available.

When I inserted the SD card, I selected that this SD card needs to be adopted as internal storage (I don't intend to take it out any time soon). And I had Android reformat it as it likes. However the storage app seems to be confused or the partitions messed up.

Bottom line, I'm not able to take more photos or transfer more music onto the phone because it's running out of storage.

Here's what the "Storage Settings" settings menu says about my disk usage:

* 367GB total used of **728GB**
    + Internal shared storage: 366GB used of 367GB
    + - Apps: 845MB
    + - Images: 483MB
    + - Videos: 0
    + - Audio: 19.50GB
    + - **System: 342GB**
    + - Other: 3.17GB
    + - Cached data: 112MB
    + SanDisk SD Card: 0.96GB used of 361GB
    + - Apps: 2.71GB
    + - Cached data: 40.42MB

Bold is my highlight. I don't understand why System is using 342GB or why it's counting the SD card double (the phone itself comes with 32GB built-in storage). Why is it not letting me store these files on the SD card?

I have Termux installed and here's the output of the `df` command:

```
Filesystem       1K-blocks     Used Available Use% Mounted on
rootfs             1680128     4560   1675568   1% /
tmpfs              1816220      448   1815772   1% /dev
tmpfs              1816220        0   1816220   0% /mnt
/dev/block/dm-0  378585556  1006608 377562564   1% /mnt/expand/612126b2-7bab-4bf8-8a24-ebacec5b0c23
/dev/block/sda14   4233152  1095448   3121320  26% /system
/dev/block/sda15    197472      188    193188   1% /cache
/dev/block/sda18  25772320 25243840    512096  99% /data
/data/media       25772320 25243840    512096  99% /storage/emulated

```

So I understand that this `/storage/emulated` is the one that's full, but somehow in this `/dev/block/dm-0` there is this 377.6GB of space being unused. How can I make that space available to me? I've got ADB installed on my computer if necessary. It seems that the only thing saved on the SD card is several apps.

# Answer
The answer was found through a comment by Irfan Latif here: "System" using 342GB storage? While I'd found this question prior to posting my own, I had dismissed it as being inapplicable since my `df` output is very different, and I hadn't found the menus shown in the screenshots there.

What I had to do is to go to Settings -\> Storage -\> The (almost empty) SD card. Then click on the grippy 3-dot menu in the top right, and select Migrate. You then get into the menu mentioned in the above answer (which was apparently supposed to show up when first installing the SD card, but didn't show for me). I moved the content, which took 15 minutes or so. And since then my phone indicates:

* Internal shared storage: 344GB used of 367GB
* SanDisk SD card: 26.32GB used of 361GB

When plugging in the phone, it now also indicates 334GB available space, and I can load more music and take more pictures.

Thank you for the suggestions, everyone.
> 2 votes

# Answer
if adoptable-storage is supported from this ROM, all new installed apps will go to microSD Card by default, as long as `android:installLocation="auto"` is defined in AndroidManifest.xml

* check available disk space (of /data or /mnt/expand/\*)
* uninstall some apps
* check available disk space
* install some apps
* check available disk space

you will see available disk space for /data increases
> 0 votes

---
Tags: external-sd, adoptable-storage, samsung-galaxy-s-7-edge
---


# Question
Title: How to set default Home screen on Nougat/7.1.1?
It's driving me crazy.

On a Moto G5s Plus (with Android 7.1.1) how do I set the screen I want as the default one, so that is shown when I press the Home button?

At the moment the left-most screen (of 3 screens) is the default. I wan to set the middle one as default one.

* I already disabled *Google Feed*.
* I already tried to long press one screen, get the setup view (change order, remove, Widgets, etc) **but there is no icon** (usually a "Home") at the top of the screen to be pressed for setting the default screen. I find this method everywhere but **doesn't behave like that**
* I already tried to pinch-in with 3 fingers; nothing happens

# Answer
> 0 votes
Long press on screen, then hold and drag wanted screen to left (first) position

---
Tags: motorola-moto-g, 7.1-nougat, home-screen, lenovo, home-button
---


title: Annoying overlay add

text:
# Question
Title: Annoying overlay add
This specific add keeps popping up as overlay at random. It's always the same Facebook Maket thing. I'd appreciate any hint on how to get rid of it.

# Answer
> 1 votes
First, see @Ifran Latif's comment. This is a good action for finding malicious apps.

If it's simply an ad that you want to not see anymore, there are several ad blocker apps available that can help:

AdAway

AdBlock Plus

AdGuard

---
Tags: ads, overlay
---


# Question
Title: How to recover from recovery boot loop in Galaxy A20?
Everything was fine on my rooted device with magisk, until I flashed a custom recovery (TWRP) on RECOVERY partition. That didn't work, resulting in a message "recovery error validating footer vbmeta" during boot into "download mode".

Perhaps the device was still ok after that. However, trying to fix the message and put TWRP to work, I flashed a vbmeta.img on VBMETA partition. This resulted in the current boot loop, I suppose because of some checksum regarding vbmeta and the (stock) root partition.

Is there any hope for this device?

I am still waiting for the battery to drain, but so far all the attempts with using the buttons/USB failed to be able to communicate with the device in any way. I does anything other than just rebooting.

# Answer
> 1 votes
Following @alecxs advice, I managed to exit loop and enter download/odin mode:

1) Just drain the battery until it turns off.

2) Hold vol+ and vol- while connecting usb cable.

3) Press vol+ to enter download/odin mode.

ps. The fix of the system is subject of another question.

---
Tags: samsung, boot-loop, custom-roms
---


# Question
Title: How to install new Python modules in the Dcoder app?
The Dcoder app supports the Python programming language. However, for a code that requires 3rd-party modules (e.g. mlxtend), it will show the following error when running:

```
Traceback (most recent call last):
  File "fun.py", line 7, in <module>
    from mlxtend.data import iris_data
ImportError: No module named mlxtend.data

Process finished with exit code 1.

```

How to install new Python modules in the Dcoder app?

# Answer
As of 2 February 2020, **Dcoder does not support 3rd party modules.**

This was their developer's statement on the Twitter

> Currently we do not support 3rd party modules, we are working on 3rd party module integration, keep an eye on our updates.

---

*Below is my personal reasoning before getting their reply.*

The reason is, as stated in their app's description, it uses an online cloud service to compile and run the code.

> Disclaimer: Dcoder uses array of strong cloud based compilers to compile the code and display output, \[...\]
>
> \[...\]
>
> Dcoder is an online compiler, now run, compile and execute your code snippets on your own android mobile devices.

To put it simply, Dcoder does not install Python nor compile the code on the user's device. Instead, the app works as a code editor, sends the code to the online compiler and runs it, then returns and shows the result on the app. As such, the modules are restricted to their online compiler.

To list which modules are installed, run the following code on Dcoder

```
set1=set2=set3="None"

set1 = 'list(k[1] for k in pkgutil.iter_modules())'
set2 = 's.modules.keys()'
set3 = 's.builtin_module_names'

import pkgutil, sys as s
def calculate(what): return eval(what)

print(calculate(set1))
print(calculate(set2))
print(calculate(set3))

```

Code modified from SOLOLEARN's Discussion Board
> 0 votes

---
Tags: installation, python
---


# Question
Title: Why am I getting an SSL error on my captive portal?
I setup a captive portal on a wireless access point. If I use a laptop to connect to it, the laptop pops up a browser telling me to login to the captive portal. I can open any browser on the laptop (IE, Chrome, Firefox) and it works fine.

With my Samsung Galaxy S8 (Android 9), when I connect to the wireless access point, Android automatically checks for captive portals, same as every other device does these days. Since it detects it, it also pops up a browser and tries to load the login page, and on my phone, it shows an SSL cert error. Other Android phones don't have this error.

If I tell my phone to stay connected to the WiFi despite not having logged in, and open Chrome on my phone, the exact same captive portal redirect loads without any issues. It is clear that whatever internal browser my phone is popping up, it's not the regular Chrome browser, as that one works fine. It also doesn't appear to be the "Internet" app my phone shipped with, as that shows no SSL error either.

What browser is my Galaxy S8 using to detect captive portals? Why does it have an SSL error when other browsers and devices don't? How do I even begin to debug this?

Note: My SSL cert was generated by LetsEncrypt. It points to http://ocsp.int-x3.letsencrypt.org as the server for verifying that the cert hasn't been revoked. I added this domain to my captive portal's walled garden (bypass) list, so that connections to that domain are NOT redirected, but it didn't help.

# Answer
After a ton of digging, I finally figured it out.

First - a quick recap: The captive portal's job is to intercept any requests to the internet, and redirect it to the captive portal's login page. Because my login page is cprewrite.hyperlinkinc.ca, a remote website, I had to add it to the whitelist. Any requests to that domain will actually get online. This works great.

The problem is that when the user is redirected to that web page, the web page's HTML reference some external resources. My page relied on bootstrap for some css formatting. My bootstrap was stored locally, on cprewrite.hyperlinkinc.ca, so that wasn't a problem. Unfortunately, when I read the source code for bootstrap (bootstrap.min.css), one of the first lines reads:

```
*/@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");

```

Essentially bootstrap references an external resource for its fonts. This makes the Galaxy S8 try to load the resource. Because the link is an HTTPS link (not HTTP), it is expecting to receive an SSL cert for fonts.googleapis.com. Since fonts.googleapis.com was not in the whitelist, my captive portal was redirecting the request to itself, returning its own SSL certificate, rather then the expected one.

Some browsers, like the regular Google Chrome browser on Android, just fail silently. Others, like this In-App browser, fail loudly, and show an SSL warning.

I'm still not entirely sure what this browser is that pops up when captive portals are detected, but the question is now moot, since I know why it didn't like my page.
> 1 votes

---
Tags: samsung-galaxy-s, captive-portal
---


title: Emoticons/emojis not being sent via SMS

text:
# Question
Title: Emoticons/emojis not being sent via SMS
I have a Lenovo K6 with Android 7 and when I try to send an emoticon from any keyboard like Gboard, Swift or Chrooma (the device does not have a native keyboard) the emoticon does not appear at all to the people I sent it to.

For example if I send 'Hi (smileyface emoticon)', only 'Hi' will show up to the recipient but also only 'Hi' appears if I go to messages app and see what I have sent.

I have tried lots of emoticons from complex to very simple and I haven't been able to send any.

This is not a carrier issue because my previous phone (LG G4) with the same carrier and plan was showing emoticons and they reached the recipient.

Is there some setting that I can change so that I will be able to send emoticons through SMS?

# Answer
> 0 votes
After some search I found what the problem was!

1. In the messaging app settings I went to advanced settings
2. I tapped 'Input mode' and instead of GSM alphabet which was the default option I selected 'Automatic'

Now my emoticons are delivered and I am :)

# Answer
> 2 votes
Several steps to the solution

1. Recipients should have Android Kitkat or newer to view the emojis.
2. The fonts in used on your Lenovo K6 does not support the emojis.
3. The Android 7 provided for your K6 does not support emojis.

You can't do much for any of the above cases as they depend on someone other than you. Wait until their side is rectified or a workaround is provided.

**Solution that you can do!**

Install an Emoji Android keyboard. Search for it in the playstore.

# Answer
> 1 votes
Mine is a Huawei Nova 2 that had the same problem I just now fixed it.

Go to Messages - Settings - Advanced, and then there's an option that says "Convert special characters in SMS". If it is on, it will not show emojis when you text. Just uncheck it and it works.

---
Tags: sms, emoticons
---


# Question
Title: how to get battery percentage back in status bar, Android 7.1.1
I have a Samsung Galaxy J2 Pro running Android 7.1.1, and Samsung Experience version 8.5.

How do I get the battery percentage into the status bar? I am sure it was there until yesterday (unless I am going crazy) and now it has disappeared. Yes I have tried turning it off and on :)

# Answer
> 1 votes
OK, I found it myself when I had time to read through all the Settings in the manual:

1. tap "Settings"
2. tap "Display"
3. tap "Status Bar"
4. turn on "Show battery percentage"

# Answer
> 0 votes
Step 1: Tap on the Settings from the Home Screen.

Step 2: Select Smart manager

Step 3: Select Battery

Step 4: Now, you should see the option that can help you show the battery percentage.

Step 4: Turn Battery Percentage on.

Source: https://phoneradar.com/samsung-galaxy-j2-pro-tips-tricks-faqs-options/#f

---
Tags: battery-life, notification-bar, 7.1-nougat
---


# Question
Title: Getting DeadObjectException on uninstalling any app using adb
On a fairly old non-rooted Galaxy Tab A-tablet I wanted to uninstall all the Samsung and Microsoft apps and most of the Google packages to make it faster. Using `adb shell pm uninstall -k user 0` I uninstalled 106 packages but after `com.sec.android.app.music` I suddenly can't uninstall packages anymore. Instead, I get a `DeadObjectException` and the tablet reboots:

```
$ adb shell pm uninstall -k user 0 flipboard.boxer.app

    android.os.DeadObjectException
            at android.os.BinderProxy.transactNative(Native Method)
            at android.os.BinderProxy.transact(Binder.java:628)
            at android.os.BinderProxy.shellCommand(Binder.java:675)
            at com.android.commands.pm.Pm.runShellCommand(Pm.java:299)
            at com.android.commands.pm.Pm.runUninstall(Pm.java:674)
            at com.android.commands.pm.Pm.run(Pm.java:170)
            at com.android.commands.pm.Pm.main(Pm.java:103)
            at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
            at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:315)

```

It looks to me like pm needs something that isn't there, so I might have uninstalled something that it needs. My question is, how do I find out what it was, and, assuming it wasn't the Samsung music app, why did it function correctly until after I installed that?

In an attempt to start over I have reset the tablet to factory settings and all the apps are there again, including the music app, but even now I get the same error when attempting to uninstall any of them.

# Answer
> 0 votes
I noticed that user needs some dashes to look like `--user`

Second are you sure that is the package name? "clipboard.boxer.app" because general but not always the case it starts with a `com.package.name`

---
Tags: adb, uninstallation
---


title: Re: Internal storage space

text:
# Question
Title: Re: Internal storage space
I had a LOT (100+) apps installed on an LG Stylo 3+. Never had any problems as far as storage space (no error messages about space running out, low memory, anything like that.) Recently I upgraded to an LG Stylo 5. In the course of setting that one up, I installed EXACTLY the same apps, EXACTLY the same # of apps, as I had had on the 3+. The next thing I know, the 5 is refusing to download email and popping up messages about "not enough storage space". Both phones are supposed to have the same amount of internal storage space, so why is what worked on the 3+ too much for the 5?

# Answer
> 1 votes
As Izzy has already surmised, via comment, the new device likely comes with a lot more space taken by the pre-installed apps and system data. That is what I believe is the problem. If you want to save space by stopping the default apps from updating, you can try to disable them in the apps portion of your android configuration menu, or, if that doesn't work, then this guide explains how to force disable apps using adb from a computer, though to get rid of the pre-installed versions' files, you need root. https://www.xda-developers.com/disable-system-app-bloatware-android/

---
Tags: applications, internal-storage
---


# Question
Title: Where does Android store the binaries of the apps themselves?
In operating systems like windows there is a special folder like Program Files where the executables themselves are stored. But in android it's kind of amazing that the binaries themselves are hidden after their installation via an APK file, and the APK can be deleted safely. Moreover, the only way to uninstall an app is via the application manager! Can anyone give me insights to the reason behind this design ?

# Answer
> 0 votes
Just answering as the comments suggested,

```
 /data/app/package.name/base.apk

```

The APK File is placed inside the data partition.

This is different from Windows as you mentioned.

Windows uses a different protection for System Software called UAC (User Access Control) whereas Android uses a separated Partition on the HDD ( SSD ) called the System Partition.

All Stock Software is stored under

```
system/app/*app name*/app name.apk

```

&

```
system/priv-app/*app name*/app name.apk

```

or

```
system/app/appname.apk

```

&

```
system/priv-app/appname.apk

```

Additional Software from OEM's is usually stored under

```
system/vendor/app/

```

However since the new partitions in Android 7.0+ i believe that Vendor is now designated its own partition, making the app directory

```
vendor/app

```

Or similar.

Some Vendors put APK's into the system tp be automata installed also under "custom" partition or root folder

```
custom/app

```

Furthermore, applications can be built by binaries under

```
system/bin/

```

&

```
system/xbin/

```

If you're the Administrator of your PC, you can hypothetically destroy the systems integrity on Windows - however due to any changes being placed in /data partition on Android, you can not delete system software or destroy the system integrity without root access.

The data partition & cache partition hold every single modification made to the device - this means a "Factory Reset" just Erases the Data & Cache partitions on Android - VS windows reinstalling the entire system from a separate backup partition.

---
Tags: apk, android-device-manager
---


# Question
Title: Dual booting android x86 with LineagOS x86 on external hard drive
I an installing on an internal notebook HDD that I use as an external dribe from the USB

The drive is a 500 GB HDD but has 50 GB, 50 GB, 50 GB partitions on it and the rest is unallocated at the moment

I have android x86 (android-x86\_64-9.0-rc2.iso) installed on the first partition (sdb1) and I also installed EFI GRUB2 while installing android

I then installed LineagOS x86 (cm-x86\_64-14.1-r2.iso) to the second partition (50 GB) and I also told it to installed EFI GRUB2 while installing LineagOS

The GRUB from LineageOS seems to have overwritten the GRUB from android-x86 and now I can't boot into android-x86 from the BIOS boot screen, even though it's files are all there in the first partition

Is there any way to edit the GRUB for LineagOS and add an entry to boot android-x86 from the first partition?

I also have in internal SATA HDD inside the notebook with Windows 10. I do not want the bootable installations on the external hard drive to affect this windows installation or the internal drive in any way, but it seems the EFI GRUB2 that got installed while installing android-x86 and LineageOS got installed on the internal HDD. This is still still acceptable because it doesn't seem to have affected the windows installation or it's booting procedure in any way, but I am not experienced with GRUB and whatever it is that I have to do, I want to make sure it will not affect the Windows 10 installtion on my internal hard drive.

To summarize:

sdb1: android-x86 sdb2: LineageOS, bootable using it's GRUB (this grub menu shows up when I select the entry for it in the BIOS boot menu)

How do I edit this GRUB menu to also point to the android-x86 installation? Is it possible to do this from Windows?

# Answer
To start it would help if you could provide some logs with adb. The x86 firmware to get a dump of whats going on just simply throw the command `adb logcat`from an elevated command prompt. Making it simpler to read though it should be a dump and pretty straight forward you can try to add -v (verbose) long looking like: `abd logcat -v long`

hopefully the adbd daemon has started since thats part of the init job.

However, if it has not and cannot get a logcat then you can try to skip part of the boot process to get thing farther along within the boot process by stopping the zygote by:

From the x86 developers website:

> Stop zygote to run automatically:
>
> Go within the the vendor/whatever\_device\_oem/eeepc/init.rc, change following lines:

`service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on`

> to:

`service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
disabled
oneshot`

At this point hopfully stopping the zygote will get things communicating once the davlik starts going since that is what gets things in the virtual machine going.

Try to pull logs through the above mentioned logcat command.

When you want to start zygote manually after you get or if it fails then throw the command from an adb shell `start zygote` or if unable to get an adb shell you could just try from a terminal emulator `start zygote` if that fails then stop and revert the changes to the vendor/whatever\_device\_oem/eeepc/init.rc from the booted is is, or within the iso, or before re-compilation.

Hopefully by this point you can post a dump output so we can get to the nitty gritty of what is going on.

Though it sounds like a boot order issue from the primary bootloader to the secondary bootloader and so on. It could also be any of the other pertinent paths needed to boot.

With that, after going through your long detailed steps that you have tried for debugging. Leading to my long detailed winded answer to state logs are key to debugging. Of the top off my head I say that it is most likely a path issue that can be corrected using the `set` command from a linux based system or linux like system command prompt or emulator. (Key by the way when saving a brick from grub-recovery).

Throw the `set` command to see what the system recognizes and see as the way to the chosen path.

See what's shown and compared to what's needed such as set root, cmdpath, kernel, boot, grub, vmlinux or aboot, and many more things required for boot but not the same let device and OEM, OS version, or variants.

The syntax is:

set {envvar=value}

Simplified:

Set option = (Value)/the/chosen/path

To delete/remove an environmental variable just us `unset` instead of the set command.

GN'U technical manual explains what's appears to be your asked issue:

https://www.gnu.org/software/grub/manual/grub/html\_node/set.html#set

> GRUB’s normal start-up procedure involves setting the ‘prefix’ environment variable to a value set in the core image by grub-install, setting the ‘root’ variable to match, loading the ‘normal’ module from the prefix, and running the ‘normal’ command (see Section 16.3.51 \[normal\], page 77). This command is responsible for reading ‘/boot/grub/grub.cfg’, run- ning the menu, and doing all the useful things GRUB is supposed to do

Start your debugging solutions with the `set` command to get the proper boot variables in order. If you have to delete a variable that's been set then use the `unset` command.

If not that than we need logs to find out what's going on with the boot process.
> 1 votes

---
Tags: lineageos, android-x86, dual-boot
---


# Question
Title: Unlocking Samsung Galaxy S7 with broken screen plugged into computer
The screen on my phone is broken, and there are a few files I'd like to get off of it. I don't care about the phone at all, just the files. I know the password, I just can't enter it on the broken screen.

I can plug the device into my computer, and it recognizes it, but I can't unlock it, so my computer cannot copy files off of it.

`lsusb` lists it as `Bus 001 Device 097: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)`.

`adb devices` unfortunately doesn't recognize my phone, presumably since it's locked.

It's possible there's more damage to my phone than just the screen, not sure though since it won't turn on.

Any advice would be appreciated, I don't even really know where to start.

# Answer
> 0 votes
A bit late to the party but you can unlock your phone with find my phone That wasn't enough in my case.

Most recovery tools require you to have usb debugging enabled before you break your phone.

---
Tags: linux, broken-screen, samsung-galaxy-s7
---


# Question
Title: Some games force use of gamepad controls instead of touch controls
I recently bought a new smartphone, it's a LG Q7 and it's running Android 8.1

With it I tried running various games, of which, two of them are **gear.club** and **Implosion - Never Lose Hope**. Although I wasn't able to play gear.club on my previous smartphone, I was able to play Implosion albeit a bit slowly and I know I can control the character via touch. In regards to gear.club, my brother played it on his phone and he was able to use touch but on my phone, those two games, when doing the tutorial, they show the buttons for a gamepad/controller and won't respond to any touch input I give them. I haven't yet connected any device to this smartphone.

What I tried:

* Going into settings and search for an options about controllers, couldn't find anything.
* Disabling the LG Gaming Extension but it does nothing ( it's used to change resolution and framerate)
* Contacting gear.club and implosion support to no avail

This question might be similar but both in gear.club and Implosion there is no option to change from gamepad to touch controls.

# Answer
K. Try looking into the web View application. Is the Q7 using Chrome as web View or Google's web View from the play store? They are different. You could be stuck in the web View or you've got an overlay app that you have to manually find by uninstalling one app at a time, checking to the if it works after each time. The update on Nov. 1, 2019 should have probably solved the issue. I like the increase to 9.0 system. Good luck. PS These phones are tanks! But, the framework leaves much to be desired.
> 1 votes

---
Tags: 8.1-oreo, touch
---


# Question
Title: How to flash custom or stock ROM with Odin mode working? (from a bad flashed Galaxy A20, see image)
The current state of the device is shown bellow. I prefer using heimdall to flash each partition directly from command line if possible. Unless it is mandatory to put all images inside a tar and flash them at the same time.

Top left corner of the Download mode screen:

More details of the previous (and solved) problem here: question

# Answer
> 4 votes
Flashing the correct img solved the problem:

```
heimdall flash --RECOVERY TWRP-3.3.1.0_A20_V1.2_by_Agrim720\[Black-themed\].img.img

```

File was found here: XDA-forum

Device: A205GUBU4ASK2

Previously rooted with boot.img patched by magisk and vbmeta flashed:

```
heimdall flash --BOOT magisk_patched.img
heimdall flash --VBMETA vbmeta.img

```

I highly recommend to avoid Samsung devices. Motorola ones, e.g. are better for custom ROMs.

If device complains about "official binaries", bypassing KG state is needed.

# Answer
> 1 votes
For Heimdal:

I refer to the Developers read me file for linux command line instructions:

Flashing Firmware from Command Line:

```
1. Fully charge your phone (use the wall charger as it's faster).

2. Download a decrypted device ROM or a Heimdall Firmware Package
   and extract everything to the one directory.

3. If the ROM is not a Heimdall Firmware Package it may instead be provided
   as multiple archives (nested or otherwise), extract them all to the same
   location.

   NOTE: If you want to use the CSC then extract it last.

4. Put your Galaxy S device into download mode and plug it in..

5. Open a terminal and navigate to the directory where you extracted
   the ROM/firmware files.

6. Type the following to list all the functionality Heimdall supports:

        heimdall help

7. Before flashing, you must first know the names of the partitions you
   wish to flash. These can be obtained by executing:

        heimdall print-pit --no-reboot

   The inclusion of --no-reboot ensures the phone will not reboot after PIT
   file has been downloaded and displayed. After executing a command with
   the --no-reboot argument, the next command should include the --resume
   argument.

   NOTE: You can still safely reboot your phone manually (with the power
         button) after executing --no-reboot commands.

8. Use the help and print-pit output to construct a command with all the
   files you want to flash.

   Here is an example that does a full flash and repartition on a GT-I9000:

        heimdall flash --repartition --resume --pit s1_odin_20100512.pit --FACTORYFS factoryfs.rfs --CACHE cache.rfs --DBDATA dbdata.rfs --IBL+PBL boot.bin --SBL Sbl.bin --PARAM param.lfs --KERNEL zImage --MODEM modem.bin

9. Heimdall will display the progress as it flashes so that you know things
   are working as they should.

```

How to Create a Heimdall Firmware Package:

```
Firstly, Heimdall's firmware package format is just a regular TAR archive
compressed with gzip. The only two real requirements are that a valid
firmware.xml must be included (refer to Appendix A) and you can only
include files (no directories, links etc.) As such if you'd like there is
nothing preventing you from creating Heimdall packages manually. Of course
Heimdall Frontend provides a simple user interface that takes care of all
the hard work for you.

There are two ways in which you can create a firmware package. You can
create a package from scratch, or you can load an existing package, apply
modifications and then save the package. Creating a package from scratch
is the preferred approach, by taking this approach you're far less likely
to run into file name length limitations.

Before you can access Heimdall Frontend's firmware creation functionality
(available from the "Create Package" tab) you must first specify which
files will be included in your package, as well as a few flashing options
i.e. Whether or not users should repartition when flashing. This
information must be filled out from the "Flash" tab in exactly the same
fashion you would provide information to flash your device (see "Performing
a Custom Flash with Heimdall Frontend"). As mentioned above, it's not the
preferred means, but you're able to load an existing package as a starting
point for this information.

Once you've specified the files/partitions you wish to include in your
firmware package the "Create Package" tab will become available. Clicking
this tab will display additional information that you can include in your
package. In order to continue you must fill out all sections except for the
URLs section, which is optional. The following is a break-down of what all
these options mean.

```

For Odin:

Depending on what Odin version you are using it can be slightly different. A newer Odin version it is pretty simple:

Make sure your bootloader is current with the devices firmware or updated. Check the `u#` within the firmware zip/tar name.

1) unpack the .zip of the official firmware.

2) Start Odin.

3) connect your device through USB. Once connected a device should show up within the com box.

4) select AP, within the selection go to your unpacked firmware and select the tar.md file or tar file.

**Make sure you do not select/enable anything with the pit option.**

5) Once loaded push the start button and let it so it's thing.

It should take a bit or got to twenty minutes or more to boot. Once booted you should be good to go with the firmware.

If you have more than just a single tar or tar.md5 file then:

1) unpack the .zip of the official firmware.

2) the zip might include a variety of things (files) such as AP, BL, CP, CSC.

3) start Odin.

4) connect your device through USB. Once connected a device should show up within the com box.

5) select each of the different boxes and within the selection put the associated files in the correct box. The AP (system), BL (Bootloader), CP (Modem), CSC (Device Variant).

**Make sure you do not select/enable anything with thepit option.**

6) Once loaded push the start button and let it so it's thing.

---
Tags: rom-flashing, odin
---


# Question
Title: How can I remove system apps on my amazon fire 7 9th gen tablet using adb commands?
I'm tired of bloatware on my amazon fire 7 tablet (9th gen)

# Answer
# 1. Find out the package names

In order to uninstall the apps, you need their package names. Within an `adb shell`, execute:

```
pm list packages

```

Take note of all the package names that you want to uninstall. (PLEASE be careful. **DO a backup first.** Many if not all sources say it's oh so easy to re-install apps because you don't really fully delete them and only uninstall them for the current user but I did have issues with re-installing it on some devices in the past! Also removing crucial system applications can cause bootloops.)

# 2. Uninstall the package

```
pm uninstall -k --user 0 PACKAGE

```

Replace `PACKAGE` with the name of the package (e.g. `com.confetti.app`).
`-k` is to `keep the data and cache directories around after package removal`, this might be neccessary without root. It worked without it on an LG device for me in the past though.
`--user 0` uninstalls the app just for the current user, so basically the app is still there, but since uninstalled for the main user, it won't bother you in any kind of way. Without root or RW access to the system partition, this is your best bet.

**Done.**

---

**Alternative method (requires a recovery with RW access to the `/system` partition):**

On some devices you can use a custom recovery to do this, slightly more efficiently, aswell. You won't need root within the phone (e.g. no superuser app.) but you will need a custom recovery and the ability to mount the `/system` partition as `RW`. Then you can use this, within an `adb shell` in recovery:

```
mount /system
ls /system/app

```

This will list your system apps. Take note of what you want to delete. For example if you want to delete `confetti.apk`, run this command:

```
rm /system/app/confetti.apk

```

Do this command for every app you want to remove, then restart your device.

---

# In any case: **BACKUP FIRST**
> 1 votes

---
Tags: adb, uninstallation, bloatware
---


# Question
Title: Google Play does not install applications through OpenVPN connect
Google Play works fine as application browser, but fails to install any app when OpenVPN is active. The same problem repeats on 3 phones from different vendors.

How to investigate?

# Answer
To answer the "How to investigate?":

1. Enable ADB (Android debugging) on your phone.

* Go to settings -\> about this phone (or similar naming) and press the "Build number" 7 times. Congratulations, you are now a developer!
    * Go to settings -\> Developer Options. Enable "Android debugging"
2. Connect your phone to a PC and install adb on there.

* On debian based Linux: `apt-get install adb`
    * On arch based Linux: `pacman -S adb`
    * Please see Google "How to install adb on *YOUR\_OS*" for other Operating Systems
3. Open a terminal on your PC (On Windows, make sure you are in the same directory as the `adb` binary. You might need to replace the `adb` below with `./adb` or `./adb.exe` on Windows.)
4. Run `adb devices` to make sure your phone shows up. Confirmation on phone might be required.
5. Run `adb shell` to get a shell into your phone.
6. Within that shell, run `logcat *:W` (without the `*:W` for more verbosity).

You will now get a lot of log entries, the `*:W` shows only warnings and "worse". Without disconnecting USB or closing the shell, try to get something from the Play Store now. Watch the log window on your PC. Try to look for anything related in there.

My guess is that Google simply blocks downloads from your VPN (logcat should show this clearly), so have this workaround aswell:

**Install F-Droid**

F-Droid is an alternative App Store that has a lot of really nice open source applications.

**But I want an app that isn't on F-Droid**

Check out Yalp Store on F-droid!

I personally do not use Google services and removed everything Google from my phone. Nor do I have a Google account. Whenever I do need an application that's only on the Play Store though, I use Yalp. You don't need an account, you can browse apps just like in the Play Store and they install just as easily. It's kinda like a proxy to the Play Store. APKs are being downloaded from Google, not some fishy weird websites, so it's safe to use.

Depending on how Yalp works exactly, it might try to access the APK from Google's servers using your IP, which means it might still get blocked. But it's most certainly worth a try and might very well work!
> 0 votes

---
Tags: google-play-store, openvpn
---


title: Access phone without SIM PIN

text:
# Question
Title: Access phone without SIM PIN
Sometimes I want to access my phone without unlocking the SIM cards (yes, two of them, so two PINs). It may be that I just want to play some games, and I know that there is no coverage so I do not care about missing calls.

How can I avoid entering the PIN but being able to unlock the phone itself?

Note: removing PIN for normal SIM access is not an option.

# Answer
> 1 votes
It's a bit late for answering this, but I had the same issue: When you get asked for the SIM PIN, press the power button for some time until the menu with shutdown options pops up. Select "Airplane mode" here. Now you can use your phone without the SIM PIN.

Verified on an old Galaxy S4 mini.

# Answer
> 0 votes
You can simply remove the SIM cards. Then you will not be asked for a PIN. Some phones will show a "No SIM card"-dialog.

# Answer
> -1 votes
On my Samsung Galaxy SIII, holding the power button displays a window which can be used to power down the phone. Then the battery can be safely removed, and then also the SIM card. Upon rebooting the phone I get the No-SIM-Card icon in the top-left notifications area, but I can still dial emergency numbers and access the Internet using Wi-Fi. On my phone it is also possible to disable having to enter the PIN from `Settings -> Security`.

Regards.

---
Tags: sim-card, sim-pin
---


# Question
Title: How to make stock browser stop asking which browser I want to use?
I know almost this exact question title was asked, but the original asker stated that he had not set any browser as a default. I, on the other hand, ALWAYS select the stock web browser as the default.

Nonetheless, every time I open the browser and every time I click a link I am asked to select a default web browser. I had dolphin and opera mini installed, but deleted dolphin in hopes that would help the issue since Opera was not always showing as an option.

However, now Opera shows up every time as an alternate and the problem persists as it always has. I do not know of any catalyst that could have caused this behaviour. I updated to Gingerbread (using T-Mobile G2) some time ago (like July 2011) and this problem has only been around for maybe a month or so.

Any help with this?

*As I said, I already select that the stock browser be the default. If I check the settings, Opera mini is not set for any defaults. This is seriously irritating.*

# Answer
You can try this:

1. Tap your device "home" button;
2. Tap your device "menu" button;
3. Tap "Settings";
4. Tap "Applications";
5. Tap "Manage Applications":

Look for the browsers in question, notice "Launch by default", with the caption stating "No defaults set", make sure the button "Clear defaults" is tapped, if it's disabled, it means its the only one in use. i.e. no other alternative app that handles the browser.
Repeat that for other browsers you may have.

Next time you launch the browser, a pop-up will appear with a choice, there's a check-box underneath, "Make default", tap that, and next time, the default browser of your choosing is used.

*This applies to other apps also that handles the flow of actions as well, such as an alternative to messaging, email, music etc.*
> 3 votes

# Answer
This worked for me, using Android version 9 (aka Pie).

Home, settings, apps, Chrome (or any browser your phone gives you the option to use when you click on a link), Browser app. A list of unselected browsers will appear and you can select which one you want to use.

The picture here shows what happened after I selected a default browser. But initially, the list of browsers will just have un-ticked circles next to them.

Here's a slightly faster way in Android 9:

Home, settings, apps, upper right 3 dots, Default apps, Browser app. A list of unselected browsers will appear and you can select which one you want to use.
> 0 votes

---
Tags: browser, default-applications
---


title: Proxy server connection

text:
# Question
Title: Proxy server connection
I have got a question.

I am a college student in India, my college provides free wifi throughout the campus . To access the wifi we have to use the proxy server connection , we use apps like psiphon pro to connect. Using this proxy server connection we can access youtube and many other apps but apps like PUBG,netflix etc don't connect to this server and we cant use these.

I just want to know why is that these few apps dont connect to the proxy server while other apps do. I dont have much knowledge about network and proxy servers. Is there any we can use PUBG mobile using college proxy.

I am planning to develop an android application which can allow users to play PUBG mobile using college proxy. Shall I reach out to the PUBG mobile developers , so that they can help out as why is it happening so.

Please tell me what you think about this issue and is there any other way to solve this problem.

# Answer
> 2 votes
Most likely the used proxy server is an HTTP proxy server (also called Web Proxy server). This means effectively that you can only make HTTP connections (which is a TCP based protocol).

Online games require fast responses therefore they usually use UDP or at least TCP. A game that essentially requires a fast reaction rate like PUBG never use HTTP for game data.

Therefore if your proxy server only supports HTTP(S) you can't tunnel UDP traffic through it without loosing the speed advantage of UDP. Hence if you really would finally succeed to tunnel PUBG traffic through your proxy you will most likely pay this by extreme high latency values making it no fun to play.

Hence you may succeed in your "project" but anyhow at the same time loose.

The only chance I see if the used proxy would support the SOCKS-5 protocol. However it seems like Android can't use this proxy type without third party apps therefore it would be really luck if the used proxy would support this.

---
Tags: networking, mobile-network, proxy, ad-hoc-networks
---


title: Accessing local computer using hostname

text:
# Question
Title: Accessing local computer using hostname
From my tablet running Android 9 I would like to access a web site on my local server using its hostname (*server*). This works fine from my laptop computer running Debian 10. However, on my tablet I get the error message "This site can't be reached" when I enter the address `http://server.local` in a web browser. Any clues?

# Answer
**Duplicate of: How to ping a local network host by hostname?**

I order to access a local computer from Android using hostname. You have two options:

1. Add the IP address vs. hostname mapping of the local computer to `/system/etc/hosts` file on your Android device. See How to edit 'etc/hosts' file? and How to edit '/etc/hosts' file on non-rooted phone?

OR

2. Run a DNS server on local network. Usually a WiFi router is already hosting a DHCP+DNS server.
    * Make sure that DNS server is aware of the hostname of the local computer e.g. communicated through DHCP or some other mechanism.
    * Make sure that DNS queries from Android device goes to local DNS server and not on internet. See How to configure DNS properly?
        + Turn Private DNS off on Android 9+, and
        + Add static DHCP/DNS from settings, or
        + Add DNS using `ndc resolver setnetdns` command-line, or
        + Use VPN based app mentioned above to force DNS server, or
        + On rooted phone use `iptables DNAT` for port `53` to force DNS server

---

**RELATED:**
> 1 votes

---
Tags: networking, dns
---


# Question
Title: Why is the global mobile data usage higher than the sum over all the applications?
On my Samsung Galaxy Note10+, the mobile data usage shown via the settings is much higher than the sum of the amounts (given below the global one and the graph) over all the applications. Why?

For instance, on 2020-01-01, it shows **10.20 MB**, but the individual amounts for the applications are 576 + 386 + 362 + 283 + 65.12 + 53.13 + 44.76 + 34.35 + 24.85 + 21.33 + 16.96 + 13.56 + 10.25 + 9.48 + 9.45 + 8.91 + 5.41 + 3.54 in KB and 878 + 311 + 179 in B, which gives only about **1.9 MB**.

**EDIT:** This seems to be a bug since after sending a big mail (several hundreds of KB) with K-9 Mail, the global data usage increased as expected, but the data usage corresponding to K-9 Mail is still 179 bytes only!

# Answer
Many Samsung S10/Note10 users are affected by this issue as this can be seen in this thread. So, this is a bug, and there's nothing one can do, except waiting.
> 0 votes

---
Tags: mobile-data, data-monitoring, samsung-galaxy-note
---


# Question
Title: How can I make the Firefox menu bar dark?
How can I make the Firefox menu bar dark?

The dark reader add-on doesn't change the Firefox menu color which is still white :

# Answer
> 0 votes
The bar you are targeting for dark mode can be changed via a theme. Head over to Addon store for Firefox, pick a theme of your liking and install/enable it. Do note that many themes listed there won't work on Firefox for Android even though they would install just fine.

But even after this, the menu bar or whatsoever that is called when you press the three-dots line is still gonna remained unaffected.

---
Tags: firefox-for-android, dark-mode
---


# Question
Title: Android asks me for USB debugging permission on one computer, but not another
I have two Ubuntu machines, a laptop and a tower. ADB works on the tower but not on the laptop. I'm using the same Android device on each, with the same `adbkey` and `adbkey.pub`. On my tower, ADB works - I can access the shell, etc. However, the moment I plug the device into my laptop, I get the "Allow USB debugging?" popup on the Android device. This is a problem because this device is non standard hardware with no touchscreen, so I have no way of clicking Yes. How can I troubleshoot this and get ADB working on my laptop?

The device is running Android 5.1.1.

# Answer
This was due to missing udev rules on my laptop which I'd forgotten I'd set up on my tower. You can find information on setting up udev rules elsewhere, but I'll post the exact steps I took here (which I got from my company's internal help wiki - remember we use weird hardware, so I can't guarantee this will work in all cases).

Create a file at `/etc/udev/rules.d/51-android.rules` with the following contents:

```
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

```

Then run:

```
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

```

Disconnect and reconnect the device physically, then start using adb.
> 2 votes

---
Tags: adb, 5.1-lollipop, linux
---


# Question
Title: Google assistant triggers in hindi language
Whenever I trigger google assistant using bluetooth headphones, it starts speaks in hindi and I need to ask in hindi. But when I start assistant from mobile directly it works normally (in english). How can I fix this to always work in english ?

# Answer
Could this problem be solved by going into keyboard settings and update the language feature? Android keyboard that came with the phone vs. app keyboards can vary greatly.Google assistant is in the input method of Android settings....it depends on your phone model but i would check there .hope it helps
> 0 votes

---
Tags: bluetooth, languages, bluetooth-audio, google-assistant
---


# Question
Title: How does rooting affect full disk encryption (Oneplus 3T)?
My oneplus 3T running Oxygen OS 9.0.6 (Android 9) came with full system encryption by default.

I want to install root but also keep full system encryption.

* Will root disable encryption?
* Does root allow to bypass encryption / lock screen with adb or some other method? (I. e. in any case)
* I am familiar with the half-baked Android system backup feature. is there a way to root the phone without a factory reset? if not, what is the best way to create a system image or similar so I don't have re-install and configure everything over again?
* what is the difference between system and systemless root?

# Answer
> 3 votes
* no, rooting does not affect encryption
* encryption remains safe. depending on user (who is responsible for granting root access) it is not vulnerable as long as malicious app has no root permissions
* rooting does no factory reset. once rooted, the simplest straight forward backup method is (FDE)
`adb pull /dev/block/dm-0`
* rooting system is outdated. systemless root does it's stuff without modifying system (to preserve functionality)

**However, the answer becomes invalid when we are talking about unlocked bootloader**

* attacker can flash modified boot or recovery
* TWRP may able to decrypt userdata partition without asking for credentials when FDE uses *default\_password* (which seems the case for you)
* attacker can inject scripts without having access to encrypted userdata, which can wait for the user unlocks it's device and then gain access to decrypted userdata. for FBE it is possible to modify credentials (not the case for you)
* unlocking bootloader requires factory reset. your only chance for full backup would be a rooting method without unlocking bootloader, which is afaik only available for Mediatek devices and for the Galaxy S9 and Note 9. you rely on common (non-root) backup solutions

---
Tags: rooting, security, disk-encryption
---


title: "Weather is running" notification

text:
# Question
Title: "Weather is running" notification
Running 8.1.0 on a Moto x4: I keep getting this notification:

> **Weather is running**
>
> Tap for more information or to stop the app.

If I tap and Force Stop the Weather app, it comes back before long.

1. How can I *really* keep the Weather app from running in the background?
2. Or, if I want it to run in the background, how can I prevent this notification from constantly appearing?

# Answer
> 2 votes
> \[How\] can I prevent this notification from constantly appearing?

If you long-press that notification you would be given the option to turn off the notifications for that app. Since it is Android Oreo, you may even get the option just to turn off that particular category of notification from Weather app. In Android 9, 10 and 11, you can also change a notification's priority status to "Other" and enable "Minimize" so that they at least become less infuriating and smaller in size, if cannot be hid completely.

---

If that doesn't work out for you, than I suggest you try MacroDroid. You can detect that notification and clear it automatically and immediately.

Setup MacroDroid and setup permission for "Notification access" and "Modify system settings" in it. Setup a macro with the following details:

**Trigger**: Device Events → Notification → Notification Received → Select your application:

* Text Content: select *Contains*
* Text to enter for match: enter the text from your notification. In your case, it can either be "Weather is running" or "Tap for more information or to stop the app".
* uncheck *Ignore ongoing notifications*
* uncheck *Prevent multiple triggers*

**Action**: Notification → Clear Notifications → Select your application → fill the details mentioned above *verbatim* for the notification received.

**Constraint**: none

The next time the notification would show up, the trigger would automatically fire up the action which would immediately clear the notification.

---

> How can I really keep the Weather app from running in the background?

You can delete the app for your user account (the default user). Know that the only way to reinstall that app again as a system app is to factory reset. **Note** that removing a system app can cause boot issues, so **proceed with caution and backups taken beforehand**. However, I suggest you try disabling it first.

Disable the app from your Settings app. This should be enough to prevent the app from executing anything. If you can't disable it or it is not having the desired effect, setup and execute:

```
adb shell pm disable-user PACKAGE_NAME  # disables the app for the current user
adb shell pm enable PACKAGE_NAME        # enables the app for the user, if you must need it again, regardless of how the app was disabled.

```

This is akin to what you'd have done using Settings app. However, if you're still adamant on uninstalling that app, run:

```
adb shell pm uninstall --user 0 PACKAGE_NAME

```

Replace PACAKAGE\_NAME with the package name of the troublesome app. To get help in finding it, see my answer here.

# Answer
> 2 votes
Moto Z3 Settings \> Apps \> Tap on 3 verical dots \> Show System \> Time & Weather \> Uncheck the Time and Weather box

---
Tags: applications, notifications, 8.1-oreo
---


# Question
Title: Make me able to choose which images/videos received via WhatsApp to show in my Google Photos Gallery?
I am having a problem that drives me crazy. Coming from iOS I had my Photo Gallery, and separated from that I had my WhatsApp App with its chats and images. When I wanted to save some of those images friends sent me, I tapped them and saved them to the Gallery. Now on my Galaxy Note 10 either ALL images received by ALL chats are also shown in my Google Photos App or none of them and within WhatsApp I am TOTALLY unable to safe choosen images manually to my Google Photos Gallery. They do not show up on the Gallery nor any Album.

This drives me crazy!!! Who would want all images one receives beeing shown in the gallery? And who would not be able to store some chosen images to the gallery? How comes Android completely rides aside an obvious desire of a common user?

Is there any solution to this?

Note: I am not talking about automatic download of media in WhatsApp. I am talking about selectively/manually showing/saving media to my Google Photos Gallery.

# Answer
WhatsApp saves - all photos which are downloaded - to the WhatsApp/Media/WhatsApp Images folder. The way gallery apps work on Android is that they scan internal storage and any folder which has media files in it are shown in the gallery app. So, similarly, the WhatsApp Media folder shows up for you in the Google Photos app.

Your few options are:

* You can copy items from the WhatsApp Media folder and move them to another folder.
* You can manually stop media from *certain* chats from appearing in your Gallery app. You can set that in chat settings and WhatsApp will move these files to a folder with `.nomedia` attribute set. So, this media will not show in any gallery app (except file managers).
* You can disable all media from all chats from appearing in your Gallery apps. In this case, if you need to specifically save some media items, you will need to manually copy those items from the *nomedia* folders to your main folder. You will need a file manager for this task.
> 1 votes

---
Tags: whatsapp-messenger, gallery, google-photos
---


# Question
Title: Will Nextflix Widevine L1 play with magisk?
If my phone natively supports Widevine L1 in order to play 1080p to 4K videos on Netflix or Amazon Prime, will Netflix play the high res rather than 480p with magisk that passes safetynet.

# Answer
> 2 votes
Unlikely. Generally, on most phones, your DRM keys will be wiped when you unlock the bootloader. So, even if you clear SafetyNet, your Widevine level is most likely already dropped down to L3. That means no more HD playback. Locking the bootloaderback will work on some phones, won't on others. Ideally, it is a permanent loss of Widevine L1 when you unlock with no way to restore it.

I am not sure if there are some **hacks** which pass fake Widevine status to the apps in question and restore their HD playback.

---
Tags: netflix, amazon-video
---


# Question
Title: How to Tether NordVPN internet from Android to Laptop?
I tether my internet with my phone. I connect with my laptop to it. If I keep my VPN client (NordVPN) activet, internet does not work.

NordVPN support says to configure VPN in Settings \> VPN. However, I want to use many VPN servers so manually setting each there is not possible. NordVPN frontend has a nice map where you can choose which VPN server to use. Internet works with VPN in my phone but not in my laptop when it is using the tethered source.

**Differential condition**: NordVPN Android application does not keep VPN active all the time

* complication: Client laptop cannot get internet in USB tethering when VPN is active in the phone

I forwarded this thread (26.9.2016, 3.10.2016 and 4.10.2016) to the NordVPN support and stated a deep wish to get a manual about using NordVPN internet from phone with your Debian laptop. Feel free to ask me more details about the test configuration if needed. Questions of the tech support

1. *Does \[Android NordVPN\] disconnect when you are browsing or not launching at all?* It disconnects itself when browsing internet.
2. *Can you give more information about our application not keeping connection at all time. How often you are getting disconnect and on what event it disconnects ( i.e. when you lock your phone or when it fall in sleep for not using it).* It occurs daily. It occurs when I lock my phone.

Phone: Oneplus 2
Phone OS: 3.1 OxygenOS
Laptop: Asus Zenbook UX303UA
Laptop OS: Debian 8.5 64 bit
Laptop Linux kernel: 4.6 of backports
VPN client in Android: NordVPN (tried many locations)

# Answer
## How to Tether NordVPN internet from Android to Laptop?

Answer from NordVPN support of ID #555274

> Unfortunately, when you are using VPN your device automatically becomes unreachable to any other devices due to safety so sadly you won't be able to use usb tether while VPN is active.

I asked further why this is going to be changed in NordVPN. Why it cannot be guaranteed at the moment?

> Unfortunately, it's technically impossible to make a device to be reachable when it uses VPN. Maybe someday someone will find how to make unreachable device to become reachable when VPN is active but for know there is no solution.

I think this is not right because you can create a virtual machine which handles the ports for you. Please, see

**Differential solution**: Same security policy is used with `openvpn` terminal application in Debian OS. So it can be easier to test it first there and understand the situation better.

## Differential condition: NordVPN Android application does not keep VPN active all the time

> When you lock your phone the internet might disconnect for few seconds because of battery save feature on phone. However it should reconnect when you unlock your phone.

I think the battery save explanation is sound here.
> 1 votes

# Answer
If you are rooted you can use tethernet, hot-spot on the vpn then tethernet then connect to pc/laptop, you can't do Android to Android tho. it's worked on HTC m8, m9, 10, u11, u11+ & u12+ . I would look on xda if you are not rooted. https://forum.xda-developers.com/oneplus-2/general/guides-how-to-guides-beginners-t3146568 Hope this helps
> 0 votes

---
Tags: 6.0-marshmallow, linux, vpn, oneplus-two, oxygenos
---


title: Use phone as USB modem by ADB

text:
# Question
Title: Use phone as USB modem by ADB
I want to use the phone as a backup line for my Linux server. Can I do this by using the ADB? I mean, forward everything to a socket and route the traffic there.

I also need some port forwarding, would be great if it could be transparent. Or do I have to use the tether option on the phone and configure an interface?

# Answer
First, you need to make sure that your phone has a public IP so that it's accessible from the internet (which is usually not the case). Otherwise, port forwarding doesn't make sense. See How to connect to Android over 3G/4G public IP?

Using an Android phone as a ***USB modem + router*** is rather simple. That's what we do by turning on the WiFi hotspot or USB tethering. On rooted phones, port forwarding works by adding DNAT firewall rules. On non-rooted phones, you can use `adb` or `netcat` or apps like Fwd (ports under 1024 cannot be forwarded though). For details, see How to port-forward internet using Android Hotspot to PC?

However, transparently forwarding all traffic (and not specific ports) to a Linux server - using Android as ***USB modem only*** \- is complex (it won't work without root access). It works by manipulating network routing (tables and RPDB) on Android and optionally on a connected host. See How to assign Mobile Data's public IP to a host connected on a hotspot?
> 1 votes

---
Tags: adb, router, usb-modem
---


# Question
Title: How to end process while quiting, Firefox
Firefox has a quit button in it's menu. My settings are check marked to clear all data upon closing. However, quitting Firefox is still leaving the process running and the cache non-empty. So to really quit, I have to: Settings | Apps | Firefox, then tap 'Force stop' and 'Clear cache'. I end up doing this a couple times a day. A couple times a year I mistakenly tap 'Clear data', which is disastrous because settings and add-ons are lost.

The mozilla website maintains that stopping and clearing are OS tasks. So here I am.

How can I, an end user, stream line this? perhaps configuring the OS to end the process when the firefox quits?

Short of that, is it possible for an end user to add to the homescreen a shortcut to: Settings | Apps | Firefox

# Answer
> 1 votes
The regular Firefox for Android is not a privacy-focused browser, it's a general purpose browser with (IMHO) the best privacy defaults that balances privacy and day-to-day usability, but it's not meant for high privacy.

You should use Firefox Focus instead, which is actually designed to be an incognito browser. Additionally, if you really need the highest level of privacy, you should be using Torbrowser.

---
Tags: firefox-for-android, cache, processes
---


# Question
Title: Setup wizard on samsung phone: run or make it run
How can i make a samsung phone, go through setup wizard again so the end user may personalize the phone?

I tried the factory reset but it wipes all data and applications installed, my interest is to keep applications and only wipe existing user data.

Is there any way to run it through ADB?... (this way i can only turn the phone off and let the end user handle the rest)

# Answer
You can't factory reset a phone and keep applications. This is by design.

> my interest is to keep applications and only wipe existing user data

Apps are tied to a **user**, not a device.

Actually, the reason is because of Google's Terms of Service:

https://play.google.com/intl/en-us\_us/about/play-terms.html

When you download an application from Google Play, you are agreeing to the ToS. Setting up a new user with pre-installed applications breaks the agreement between Google and the end-user, since agreement happens at *install* time.

This is also why multi-account devices also do not share applications - each user is required to "agree" to fair use of each app.

Additionally, using the App Licensing service, developers can block use of apps that haven't been licensed to the current user properly.

Finally, Google has been urging app developers to include EULA within their apps thus corroborating the above.

All that being said, if you had root permissions, you could make any apps system level apps and theoretically circumvent this issue - but I wouldn't recommend nor endorse it.
> 0 votes

# Answer
I did this a few months on my tablet, and here is the general way I did it.

I used the app 3CTools and found the system app on my tablet that contained the Activity to for the setup wizard.

I believe it was Settings.apk but not sure.

Then I used Terminal emulator to start activity. pm start com.android.settings/com.android.settings.SetupWizzardActivity

Or something very close to that. Hope this helped

TwilightTime
> 0 votes

---
Tags: 6.0-marshmallow, samsung
---


# Question
Title: Modify the Chinese date localization in the quick settings of Flyme 8.0.0.0A Stable (SystemUI.apk modification)
I translated the firmware Flyme 8.0.0.0A Stable (RU & UA) for Meizu Note 9 and Meizu 8X, but I can’t kill the Chinese in the quick settings:

The fact is that China’s events are taking place there - the usual date, for example, if you translate from Chinese “己亥 年 十月 廿六” - “October 26.”

Who can help remove this problem from the quick settings? Or at least tell me where to look in SystemUI.apk, I suspect that somewhere in the Smali code. Thanks.

# Answer
I think that you are doing the same stuff as I do. I have Meizu 16Xs (Same CPU as Note 9) and I'm trying to actually mod the Flyme 8.20.1.7 Beta (Chinese firmware)- which is by the way IMHO more stable, at least for my device, than 8.0.0.0A. What I found out is that you can in some way partially "convert" the "Chinese" version of firmware to the "Global" by changing the single parameter in `/system/build.prop` file.

This is the original setting: `ro.product.locale=zh-CN`

Try to change it to: `ro.product.locale=en-US`

After restarting your device, this will give you the "Global look", which means:

* In the quick settings on the top-right, there won't be a "notification setting" icon anymore, but will be changed to "cog-wheel" -\> which means it's linked to the "Settings"
* In the top left (where you are now seeing the Chinese characters), you will see network carrier info and the current date
* You will be able to change the "Region" from the Settings-\>Language and Time
* This also unfortunately will disable some options of the Chinese ROM, which means:
    + No Dark (night) mode (doesn't work even if found by app "QuickShortcutMaker" and tried to turn it on)
    + No advanced notification settings available (you won't be able to set the priority of notifications anymore)
    + No Driving mode
    + The Aicy link will disappear from the settings menu (this, I don't know why, will stay disappear also after changing the setting back to the `zh-CN`, and will remain like this until you do the "factory reset", but other mentioned stuff will return back after changing to `zh-CN`...)
    + The Digital Health link won't work
    + The Chinese theme app won't work (can be partially solved by using the `CustomizeCenter.apk` from the Global firmware, but there will be only wallpapers loaded then, no themes) as I found out, that theme app's functionality relies on the setting `zh-CN` or `en-US`.
    + You won't be able to change the lock screen wallpaper by swiping to the right on the lock screen anymore
    + And I think there are also some other things, but I won't be listing everything

For the above-mentioned reasons, I'm rather staying with the option `zh-CN` (as I would like to use these options, which are disabled in the "Global" ROM) and I'm trying to ignore the above-mentioned Chinese characters in the quick settings.

But what I can tell you (hopefully might help) is that I found out what these characters actually probably are: it's probably the Chinese "Lunar Calendar", because, when you go to the settings -\> Notification & status bar, there is an option "Lockscreen Lunar Calendar" which you can enable and disable. When you enable it, the same Chinese characters that are shown in the quick settings will be shown on the lock screen.
> 1 votes

---
Tags: device-firmware, localization, quick-settings, meizu, flyme-os
---


# Question
Title: How to create a folder shortcut inside another folder?
I'm trying to create a folder shortcut inside another folder. I tried ES File Explorer, but it shows an option to add a shortcut to the home screen only.

How to create a folder shortcut inside another folder in Android?

# Answer
> 0 votes
To create a "shortcut" to a folder on a file system, you can use **symlinks**(symbolic links) or **bind mounts**. You can use an app(e.g. Apps2SD) to do that, or run the command through adb or terminal emulator.

## 1. Using Apps2SD

You can use an app like Apps2SD to create **symlinks**(symbolic links) or **bind mounts**.

You can download Apps2SD from xda or google play(here it's renamed as "App2SD", but the package name is the same).

You can go to its official site to look for some more help. But according to my experience, you need to be careful about the SD card partition whose underlying filesystem format is `vfat` / `FAT32` / `extFat`**(Type 1)**, in contrast with the internal storage or the 2nd partition on the SD card created by Apps2SD, whose filesystem could be `ext4` / `ext3` / ... **(Type 2)**.

You can freely create symlinks from a place in **Type 2** to another place in **Type 2**.

But when it comes to file system **Type 1**, you might have to use **bind mounts**, which is not exactly a shortcut. For example, using `rm -r` on a parent folder may have different consequences, as mentioned here:

> I should warn against `rm -r` on a `mount --bind`. With a `ln`, it removes the link, whereas for a `--bind`, it has the same effect as running the `rm -r` on the target. Not good, as I found shortly before rebuilding one of my servers...

You can, however, create a mount bind using Apps2SD, with the source being in the internal storage(**Type 2**) and the destination(where the data really is) being in the 1st partition of the SD card(file system of **Type 1**), in order to save space in the internal storage.

The usages of Apps2SD mentioned above are my personal experiences. You will have to try it yourself if you want to use it differently.

## 2. Using shell command or shell script

You can do it yourself using commands like `ln` or `mount --bind` to create symlinks or bind mounts, respectively.

Check out the command manuals: mount, ln

Other info that might help(provided by Irfan Latif):

1. How can I make a symlink (or equivalent) inside /storage/emulated/0? - Android Enthusiasts Stack Exchange
This is about how to make a "shortcut" in the SD card. Note that `/storage/emulated/0` is the SD card.
2. sd card - How to create a shortcut to some file in another folder? - Android Enthusiasts Stack Exchange

---

PS: Below is my previous answer to this question. I misunderstood this question as the OP was trying to create a folder shortcut inside another folder ***on the desktop***.

You can use an APP like Folder Organizer or Glextor Manager.

---
Tags: file-management
---


# Question
Title: Firefox for Android: Download a video file
I've got Firefox running on the Nexus 10, and I'm trying to download a video from a URL. When I tap on the video link, it starts trying to play in the browser, instead of downloading the file. How can I download the file?

Long-pressing on the URL does not provide a download or "save" option.

# Answer
As of December 2012, I don't see any way to get something like "Save link as" option in Firefox for Android. However, in some cases clicking on a video link automatically starts downloading the video, but in most cases it starts playing them. Best you can do is to request Firefox to add this feature. Meanwhile, you can try an alternative browser that has this feature for your video downloads.
> 6 votes

# Answer
As of 2020, the other answers to this question are outdated. When Firefox opens the video you can long press the video (the *video* itself, not the link to it!), you can press the "Save media" button. It will then save the video to your downloads. This will work for all videos that support saving in the first place, like by right click in desktop Firefox.
> 3 votes

# Answer
As stated on https://support.mozilla.org/fr/questions/792670 this by design you can’t download videos without the required server‑side ʜᴛᴛᴘ headers.
The reason is dumb users get confused when they are too much options in the menus *(I agree that I don’t understand the difference with desktop)*.
**So the rule is always keep the user interface minimal.**

Of course, extensions can’t triggers the android file dialog box.

Just use opera mobile classic or vivaldi…
Or learn the hard way that android is always less featured than a Windows® ᴘᴄ.
> 2 votes

# Answer
I'm not sure if it worked this way back when you asked the question, but this can be done without an addon.

Change Firefox settings to tap-to-play plugins if not already set.

Then click the video link to open the file. Firefox will not play the video if tap-to-play is set to on.

Instead of tapping to play, long-tap the video placeholder until you are presented with a menu which will include an entry to download the file.
> 1 votes

# Answer
I had to google a lot before finding this solution. In firefox everything can be configured to the finest details using the `about:config` link. Just type in `about:config` in the address bar. The resulting page will have a search bar on top. Search for `browser.download` and you'll see a lot of browser downloading window configurations. The specific configuration might change for different versions of firefox. But what worked for me was this `browser.download.preferred.audio/mpeg` configuration. Set it to false or if you see the "Reset" button click that.

And thats it.

Hope this helps someone
> 0 votes

# Answer
Did you try chrome browser. It has the save link option in long press menu.
> -3 votes

---
Tags: downloading, firefox-for-android
---


# Question
Title: Is it possible to designate a Wi-FI SSID as metered "mobile network"?
I am wondering if there is a method by which I can designate a WLAN/WiFi connection as "mobile network" based on its SSID for the sake data usage policies by apps or the Android system in general.

Typically when you have a data plan with your mobile provider, your phone's LTE (or 3G ...) modem will connect to the provider to enable you to have internet access.

Now if I am using a mobile LTE/WLAN router instead, my phone assumes that it's on an unmetered WiFi uplink and apps/the system will (mis)behave accordingly.

Is there a way to tell the system that when it connects to a particular SSID it should treat that as "mobile network" in regards to how apps may use data?

Phone: Samsung S9+ (SM-G965F), Android 9

NB: the settings from this answer don't exist on my phone.

# Answer
> 5 votes
This option actually exists and I have just tested it on Android 10 (AOSP). The trick is to set a custom DHCP option 43 with the text value "ANDROID\_METERED". What I find a bit confusion is that Android does not show you that it is on a metered Wi-Fi. I verified it with the NetworkMonitor app.

Someone documented this further: https://www.lorier.net/docs/android-metered.html

# Answer
> 3 votes
I don't think WiFi can be designated as a Mobile Network, but stock Android provides option to set WiFi network as metered. When connected to the WiFi, go to that WiFi connection settings and you will find options to set the connection `metered` or `unmetered` (at least on Pie).

OEMs might be removing the option from GUI. You can also try CLI method as stated here. From `adb shell` execute:

```
~$ cmd netpolicy set metered-network <WIFI_SSID> true

```

---
Tags: wi-fi, mobile-data, 9.0-pie, data-connection
---


# Question
Title: How do I disable the popup when I connect my phone to my PC via USB?
How do I disable the popup (the one asking me if I want to mount my SD card) when I connect my phone to my PC via USB?

I've been told it's a feature of CyanogenMod but I can't for the life of me find it. I'm using CyanogenMod 7.0 RC, with Android 2.3.2.

# Answer
> 6 votes
If you enable USB debugging in the Developer options, the phone's "USB Connected!" screen doesn't popup anymore :)

# Answer
> 4 votes
Not a CyanogenMod user, but have you checked under `Settings -> About Phone -> USB Settings`, or `Settings -> Wireless and network -> USB Settings`?

# Answer
> 2 votes
It certainly looks like, Google has disabled USB Mass storage option for most recent Android versions as you probably have noticed, do not allow you to mount SD Card / storage partition as USB Mass Storage (UMS) when plugging it to a computer.

Given that you are rooted, you can try the following resoltuions:

1. **Using terminal to mount mass storage**

su

```
setprop persist.sys.usb.config mass_storage,adb
reboot

```

If you want to go back to MTP, open terminal emulator and enter:

```
su
setprop persist.sys.usb.config mtp,adb
reboot

```

su setprop sys.usb.config mtp,adb reboot

2. **Activate auto-mount when USB debugging is enabled**.

As previously mentioned, when USB debugging is enabled the sd card will automatically mount when connected to the computer provided the drivers were installed correctly.

Thus you will not get persistent notifications about sd card monting

3. **Using QtADB**

QtADB is a full-featured tool (designed for windows )and has a plethora of features to manage your droid. Some of these include:

* File manager (copying files and dirs between phone and computer, delete , creation of dirs)
* App manager (installing, removing, creating backs ups etc)
* Shell and more..

The essence of this is that it alows **mounting of external sd card to a computer without giving annoying notifications**. Check here for more info: QtADB

4. **Using USB MASS STORAGE Enabler (root)**

This is one of the few apps offering to restore the lost Universal Mass Storage (UMS) option.

1. After downloading the tool ,connect your device using USB cable to your computer.
2. Open the ‘UMS Enabler’ app and press ‘Enable Mass Storage’. Remember, give the app root access if it asks.

At this point, you might get various messages by the app, for instance, there a message asking you to set **SELinux** – a Linux module Android uses to make it more secure – to permissive state; this is required for the app to run properly

Credits

1. Any way to get USB Mass Storage instead of MTP?
2. How To Mount Android Device As USB Mass Storage (UMS)?
3. QtADB for android

# Answer
> 1 votes
If you want to disable all notifications that pop up when you connect your USB cable go to the "menu" then "notifications" then touch "usb connection" then change the settings to "Charge only"

# Answer
> 0 votes
Developer Options -\> Default USB configuration -\> Charge phone only (or whatever you want as default), then it will not pop up again.

# Answer
> -2 votes
It's usually under Settings -\> Applications -\> Development -\> USB debugging

---
Tags: cyanogenmod, notifications, usb-connection-mode
---


title: Offset Android Keyboard

text:
# Question
Title: Offset Android Keyboard
I'm making an installation using Android (Bliss Os).

For getting the recognizable android keyboard that everybody knows I installed GBoard. Everything worked fine except that my keyboard misses half the most left line of letters.

Does anybody have any experience with this problem? I already tried using a different display but this didn't help.

Also tried installing *swiftkey*. But this also had the same problem. They do have a functionality to rescale the keyboard but this is a dirty fix for my problem..

Sorry for the bad picture quality, I do not have the buttons on this elo touch display to take a screenshot.

# Answer
> 2 votes
I fixed this by disabling and re enabling the application that was forcing my device in portrait mode.

The application I was using was "Set orientation" V1.1.4 from package com.googlecode.eyesfree.setorientation.

---
Tags: keyboard, android-x86, gboard, screen-resolution
---


# Question
Title: How to fix device when stuck in firmware update with "Do not disconnect USB" message?
I have an LG Android phone. When I turned it off last night, it turned itself back on again with the firmware update showing "Do not disconnect USB". But when I received it from my contract holders, there was no USB; so I used my regular charger. I've woken up this morning and it's still on 0% after about 10 hours.

Can someone help or give me any tips and advice?

# Answer
> 1 votes
Either wait until the battery runs out to recharge it, or wait until the device resets by itself.

This has happened to me twice:

1. The first time, about 3 days, it just reset itself.
2. The second time, after giving up when trying to reset the device by holding down the power and volume down buttons while either plugged or not, the screen suddenly went blank. Then, after plugging-in to charge the device, the screen was unfrozen and it charged up.

It seems to me that on both occasions this has happened, my phone has been almost out of battery, though I don't know if this is related or not. Better to keep the device charged up at all times.

# Answer
> 1 votes
Try holding down the power and the volume down buttons at the same time for around 10 seconds, then the device should restart and run normally again.

I remember with a situation with my iPhone when it got frozen and I had to reboot it with the same approach. This also worked on my Android phone which was stuck on 0% firmware update.

---
Tags: updates, boot, lg
---


# Question
Title: Does "adb backup" also backup /data/misc/vold - the Encryption Key for Adoptable SD card?
I want to make sure that using `adb backup -apk -shared -all -f ~/backup.ab` will also save `/data/misc/vold`?

I am trying to backup before rooting, in order to be able to gain access to the encryption key in `/data/misc/vold` (got corrupted SD card adopted as internal). So I want to make sure ih something bad happens during the rooting, I could still access the backup version of `/data/misc/vold`?

Thanks!

# Answer
> 2 votes
My solution to Matifow problem was ...

I cannot extract the token because my device was not rooted.

I bought a new microSD and clone in it the microSD from my device.

https://askubuntu.com/questions/227924/sd-card-cloning-using-the-dd-command

When i put this new card the phone recognize as the old one.

I recover photos, media from whatsapp, apps installed ...

I lost some files ( the corrupted I assume) but can recover the most.

---
Tags: adb, rooting, backup, encryption, adoptable-storage
---