# Question
Title: Can I have different volumes settings for notifications and ringtones with Nexus 4/Android 4.2?
My old Gingerbread phone would let me have a low volume for notifications while having a high volume for ringtones (very useful at night). My new Nexus 4 seems to have these volume settings tied together. Is there any way to separate them?

I'm running Android 4.2.1 stock.

Have looked at a Nexus 7 running 4.1.1 and it has separate volume streams so this looks like a phone specific bug/feature.

**Update**
Tried various apps but couldn't fine one which separated the Ring and notification audio streams.

In the end I downloaded the Cyanogenmod notification sounds, selected the ones I liked and processed them to -10db and -15db versions. Then copied them to the 'Notifications' folder on the phone. (The phone looks at the title tag in the mp3 file rather than the file name so needed to change that as well.)

I now have the ringtone as normal but a quieter version of the notification sound that doesn't wake me at night or sound ridiculously loud in meetings.

# Answer
> 4 votes
It appears to be somewhat awkward in ICS and JB to get this functionality, several methods in order to achieve it are discussed here. I'll summarise/copy some of the better sounding ones (I added the links):

> Try Audio Control, it's by far the best volume management app in the Google Play store. There is both a notification and ringer volume for ICS or Jelly Bean.

If you're willing to pay then this app has "Separate Notification and Ringer volumes for ICS/JB devices".

> Google & download a silent MP3, use Profile Manager or Tasker to change notification sound to silence mp3 when required.

Or alternatively (as the OP points out in the comments) use a low volume ringtone so you can still hear it. Someone points out that for this method if you have custom notifications for different apps then they won't be silenced/lower volume, only apps that use the default system notification will be affected unless you update all of the notification sounds.

> Another option is to use a profile switcher like Tasker or Setting Profiles (what I use) and make two profiles:
>
> 1. Silent - profile set it to silence your ringer
> 2. Ring - profile to set your desired ringer volume
>
> Now make a rule to trigger your "Ring" profile based on incoming call condition. The condition could be a call from a specific person, or persons from particular groups in your address book. Use the * wildcard if you want the condition to include calls from anyone. You can piggy back conditions so that, for example, you can add a time condition so the rule might only be activated at a certain time of day.
>
> So what you have now is 2 profiles, one that mutes ALL sounds (thanks to ICS) and another that sets the ringer volume to a specific level. Set the "Ring" profile to have a higher priority, that way when they are both active at the same time, the "Ring" takes precedence. Combined with your condition, the result should be, ALL of your sounds are muted, but when a call comes in, it triggers the incoming call condition, triggers the "Ring" profile, and both the mute and the ring profiles are active at the same time, and the ring profile will win. There might be a short delay, but it shouldn't be noticeable.
>
> This would of course have the effect that certain calls will ALWAYS ring and maybe sometimes you truly do want to silence your phone. To that, you will just make another profile, call it "True Silent" for example, and have it silence everything and give it the highest priority (or at least higher then the "Ring" profile) and then when you activate that profile, it will win over the others.

Both of these apps are again paid for applications however they have a grater functionality than Audio Control. Tasker is a particularly great one.

> Ringleader allows you to set up profiles that you can change any or all of your individual ringtones to silent in one click. It takes a while to configure. Once you install it you have to set all of your ringtones and alerts again using the Ringleader option for choosing alerts. If you set it as the default ringtone chooser option it simplifies the process. Once you have reset each one they will shop up in the Ringleader options list. In Ringleader you then save a base profile. After you have a base profile saved you can edit all of the alert sounds individually through Ringleader and save new profiles. I have three profiles. One is for normal use, one for phone calls only and one for silent. There is a simple widget available for switching them quickly.

This is a free application however there's also a paid for version. Someone else in the thread mentions this working for them however the actual notification volume can't be set separately, the notifications can only be silenced while still allowing the phone to ring.

When Googling around I did see people mention Audio Manager as a solution to this, however I've tested it out and although you can set the ring volume independently of the system volume as soon as someone rings you the volumes change to the same level, even if you use the app to lock the volumes.

# Answer
> 1 votes
Downloaded Sound Profile a free app, and now notifications and ringtone are separate!

# Answer
> 0 votes
None of these apps seem to work with HTC sense. I was forced to install CyanogenMod 10.1 custom ROM which has this feature and is also based on Jellybean.

# Answer
> 0 votes
Finally, with Android 14, we can have this option:

Additional details: Android 14 offering separate ringtone and notification volume sliders.

---
Tags: 4.2-jelly-bean, volume-control, nexus-4
---


# Question
Title: How do I bypass ACCESSIBILITY_DATA_PRIVATE_YES?
https://www.androidpolice.com/android-14-review/ says:

> In another attempt to limit the havoc false accessibility services can wreak, Google offers a new option for app developers to limit the visibility of their apps to disability-focused accessibility services only. This new option only allows accessibility services that are officially screened by Play Protect and the Play Store to see what you’re doing in potentially security-focused apps. Since malware and phishing software often use accessibility services to get around security features, this is a welcome change, even if it may break a few legitimate apps that rely on accessibility services in the process.

I don't need Google to protect me from myself. If I want to let a non-disability-focused accessibility service access an app that its developer doesn't, I should be able to since at the end of the day, it's my phone. How can I bypass this? I'm willing to do things that need ADB and/or root.

# Answer
I think the description fro AndroidPolice is a bit misleading. The one in this blog is better. Based on this information in my understanding this feature works this way:

`ACCESSIBILITY_DATA_PRIVATE_YES` is a security feature an app developer can enable for views in their app. The flag is a bit similar to `FLAG_SECURE` which disables screen shots of a view which has this flag set.

But `ACCESSIBILITY_DATA_PRIVATE_YES` **disables that third party apps can remote control this view using accessibility services except from those third party apps which had been installed from Google Play Store** and thus are compliant to the usage rules Google has formulated for that apps should only use accessibility services to support disabled people.

That means this flag is not designed to protect you. An app developer can use it to protect their app (or parts of it) from automation tools without blocking really disabled people, which makes it an security feature.
> 1 votes

---
Tags: accessibility, android-14
---


# Question
Title: Is there a way to disable "National/Presidential Alerts" on Android devices?
According to the FCC (emphasis mine):

> WEA alerts only cover critical emergency situations. Consumers can receive four types of alerts:
>
> * "National Alerts" issued by the President of the United States or the Administrator of FEMA;
> * "Imminent Threat" alerts involving imminent threats to safety or life;
> * "AMBER Alerts" about missing children; and
> * "Public Safety Messages" conveying recommendations for saving lives and property.
>
> **Participating carriers may allow subscribers to block all but National Alerts.**

The latest "National Alert" (formerly known as a "Presidential Alert") was conducted on October 4th at 2:20 Eastern Time and iPhone users couldn't turn it off due to the law above. Is there a way for users with an Android phone to turn off such alerts?

# Answer
According to Reddit this can be done without root:

> Stock Android ships with a package called com.android.cellbroadcastreceiver, which is responsible for handling alerts. You can check the source code here.
>
> You don't need to be root to remove this package with adb. You can uninstall this package from your phone by running:
>
> ```
> adb shell
>
> pm uninstall -k --user 0 com.android.cellbroadcastreceiver
> pm uninstall -k --user 0 com.google.android.cellbroadcastreceiver
>
> ```
>
> For people on Samsung Phones:
>
> Samsung doesn't include com.android.cellbroadcastreceiver on their phones - as far as I can tell, they handle WEA messages in the Samsung Messages app, which is the default SMS app on the S9 and other Samsung devices. Fortunately, this makes things even easier:
>
> 1. Install Android Messages, and set it to be the default SMS handling app.
> 2. Navigate to "Settings," then select "Apps." From there, find and select "Messages" (Samsung). Scroll down to "App Settings." Revoke all permissions and block all notifications. Ensure the default messaging app is set to "Messages for Android". Disable the "Appear on top," "Change system settings," and "Install unknown apps" options. Lastly, force stop the application.
> 3. Enjoy peace and quiet.
>
> This technique works because the Android Messages app expects the `com.android.cellbroadcastreceiver` package to handle WEA message (so Android Messages doesn't have any code to receive them), and the Samsung Messages app (which you can't remove, which does have WEA support) no longer has any permissions to receive anything, so it can't alert you even if it wanted to. This deadlock basically ensures you won't get alerts, provided you never enable Samsung Messages ever again.

And according to HackerNews there's also an alternative method for rooted phones:

> For folks with rooted devices, all alerts can be disabled with:
>
> ```
> adb shell su -c 'pm disable com.google.android.cellbroadcastreceiver'
>
> ```
>
> and reenabled with:
>
> ```
> adb shell su -c 'pm enable com.google.android.cellbroadcastreceiver'
>
> ```
>
> For folks on custom Android builds (or older stock Android builds without APEX module support), the package name is `com.android.cellbroadcastreceiver` (without the `.google`).

If you're using Graphene OS you can also disable such alerts thanks to this commit in their repository.
> 8 votes

# Answer
In Android 13 (German, sorry), you have settings at "Sicherheit & Notfall" ("Safety & Emergency" or similar in English), and within there is "Drahtlose Notfallalarme" ("wireless emergency alerts", or similar in English).

And finally there, you have "Extreme Gefahr" (extreme danger), "Erhebliche Gefahr" (significant danger), "Gefahreninformation" (information about danger), and "Testwarnung" (test warning). There is also a main switch "Notfallbenachrichtigungen zulassen" (allow emergency notifications).

You can toggle each on and off.
> -1 votes

---
Tags: alerts, cell-broadcast
---


# Question
Title: Running a console app on non-rooted Android Phone
I was able to run a console app (compiled with NDK) on a rooted Android phone, but can't run it on a non-rooted phone.

I tried:

```
adb push MyApp /mnt/sdcard/temp
adb shell
cd /mnt/sdcard/temp
chmod a+x MyApp

```

but `chmod` did not work and the file remained non-executable:

```
tulip:/mnt/sdcard/temp $ ls -l
total 33904
-rw-rw---- 1 root sdcard_rw 34713488 2023-10-05 19:49 MyApp

```

The files are uploaded as `root`, but the commands are executed as `shell`:

```
adb shell "id"
uid=2000(shell) gid=2000(shell) groups=2000(shell),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:shell:s0...

```

# Answer
> 1 votes
tl;dr: You're trying to do root-things without root. Getting root in android is extremely difficult and dangerous. Given the scope of your question, I would not recommend that you continue attempting what you're asking about.

Just so you're aware...

1. "root" in \*nix-based environments (including android) is the singular user that has absolute authority.
2. "rooting" your phone means you have the ability to run commands as "root".
3. If you're not "root", security restrictions will not allow you to perform certain tasks... like changing permissions on files.
4. If you look at the file permissions, the file is owned by "root", and the "sdcard\_rw" group. Unless you're the owner you have no permissions to modify the permissions on that file. You cannot set the execute permission on that file without ownership and/or root permissions. Since you're not root, and you're not the file owner, you're out of luck.
5. If you're simply trying to side-load a valid app... you'll need to enable installing apps from 3rd parties in the phone's security settings... and use an appropriate installer to install the .apk to the device. If the apk contains things that would violate the security checks of the device, (like an app that contains some sort of exploit or requires elevated permissions outside the normal scope of what an app can do) you're out-of-luck.
6. If you force your phone to accept whatever you want to do... you'll need to essentially hack/exploit your phone in some way that would give you elevated permissions. Be careful when attempting to exploit a phone... as you can modify certain bits that would no longer pass the security checks of the bootloader... which might give you root access temporarily, but will also make it no longer able to boot after power-cycling the phone.

---
Tags: applications, terminal
---


title: How to get USB debugging on ZTE Z233VL?

text:
# Question
Title: How to get USB debugging on ZTE Z233VL?
I've been trying to get USB debugging on the ZTE Z233VL, to possibly install apps. The issue is that I've been trying to look up "Where does Android keep the configuration on if USB debugging is enabled", and all it tells me is how to enable USB debugging on every Android device but this one.

Most of the Android test codes don't work, no debugging features work, and the APK package installer app (the GUI for the installer, not the "pm" tool) isn't bundled. It shows the icon for the app, but it doesn't have a program to run it, it says. Also, it has no WiFi.

# Answer
So I looked up the model and a ZTE Z233VL is a flip-phone based on Android OS.

Android OS is open-source which means that any manufacturer can create a Custom ROM and use it for their devices. However if the manufacturer wants the Google Play Store they need to enable things like developer mode and `adb` so that Android application developers can test their apps on the device.

What this also means is that if the manufacturer *doesn't* use the Google Play Store, they have no obligation to add in the side-loading or developer mode options.

**TL;DR:**

* While the phone runs Android it isn't running Google Play Services supported Android.
* The manufacturer doesn't need to add in side-loading as they are using a custom ROM and from your account they didn't add side-loading or developer mode.
* Unless someone finds a way in, you won't be able to side-load apps or enable developer mode.
> 2 votes

---
Tags: usb-debugging, zte
---


# Question
Title: Is there any way to programmatically turn on airplane mode on non-rooted Android?
I used to use Tasker tasks to turn airplane mode on and off automatically when I needed it. Now, it seems, this requires root. But rooting my phone bans me from using Android Pay or any other SafetyNet-locked app. (The latest updates to SafetyNet even detect the new systemless root, and may even be triggered by an unlocked bootloader even on an unrooted phone.)

Is there any way I can reliably turn airplane mode on and off with Tasker or some other automated tool, without losing access to Android Pay?

# Answer
Using Tasker and AutoInput plugin, here is the procedure:

* First, create a profile that suits your needs (i.e. when to trigger airplane mode e.g at a specific time, etc)

**Task**

* Create a new task "New Task + "
* You can name this Task *Airplane\_mode* or anything.
* Click "+" to add new Action

**A1**: Settings ➡ Airplane Mode Settings

We need to add a task Wait action for just about 1 or 2 seconds (to allow the screen to load in time).

**A2**: Task ➡ Wait \[Seconds:2\]

**A3**: Plugin ➡ Auto input ➡ Action \[ Go to the "**Airplane Mode Settings**" screen in your Android settings.

* Swipe down on the notification bar and touch the "**Add**" button in the AutoInput notification.
* Touch the "Airplane Mode" setting
* Touch "Accept" in the notification and go back to Tasker. There select the "Airplane Mode" **text** and **accept** (tap on tick) these settings.

**A4**: (Going back to the original screen) Add an "AutoInput Global Actions" Tasker action. Plugin ➡ AutoInput ➡ Global action \[Select the "Back" option\]. Accept the setting (tap on the tick)

* Tap back to exit from this task
* Save this task and exit

*NB: This requires the screen to be unlocked*.

---

Note: AutoInput has a built-in option to unlock the screen if it is disabled in Tasker. Simply add this action to the top of the task:

**A1**: Plugin ➡ AutoInput ➡ Unlock screen (note: some screen lock options are still not supported e.g fingerprint, but it is worth a try)

Acknowledgments
> 3 votes

# Answer
You can achieve that with Tasker + Auto input combo or another third-party application called Airplane Mode PRO ($1.78). Alternatively, get Schedule Airplane Mode.

> Airplane Mode PRO allows you to set up various automatic triggers for Android's Airplane Mode. This app is the only one that also works on Android versions higher than Jellybean 4.2, such as Jellybean 4.3, Lollipop 5.0 and Marshmallow 6.0 and still does NOT require a rooted device.
>
> Features:
>
> * Support for automation and third-party launchers
> * Separate shortcuts for toggling, enabling and disabling
> * Toggle via a notification
> * Enable airplane mode while a specific app is running
> * Enable / Disable at a specific time
> * Toggle when charger is dis/connected
> * Enable when a certain battery percentage is reached (Any percentage can be set)
> * Enable when a certain battery temperature is reached
> * Toggle via a home screen shortcut (One click only)

---

Note: The workaround requires the screen to be on

Disclaimer! I am by no means affiliated with that application(s) but came across it, so I thought it was a good workaround to the addressed problem.
> 1 votes

# Answer
Without root access, one needs the "default assist app" privilege for being allowed to switch the airplane mode. It works for instance with the MacroDroid app - see also https://macrodroidforum.com/wiki/index.php/Action:\_Airplane\_Mode\_On/Off.
> 0 votes

---
Tags: automation, airplane-mode
---


# Question
Title: Transfer storage from stock recovery to PC
I made my backups and everything before attempting to upgrade to the latest security patch on my rooted phone (SM-G781B), but because of laziness ("it's gonna work 100%"), I didn't transfer them to my PC or my external drive.

After flashing BL, CP, HOME\_CSC and Magisk-patched AP it now got into a boot loop (I don't know why, maybe it's because I downloaded the firmware via another way since Bifrost didn't seem to work anymore) and I only can access stock recovery and download mode.

I am going to need to do a factory reset or clean flash, but before that I'd like to obtain my backups stored on the internal SD card. ADB displays "unauthorized" but I can choose to sideload something. Is there any way to do that or is it impossible?

# Answer
As your phone is rooted I assume your bootloader is unlocked. If this is the case you are free to boot or flash a different recovery ROM which offers more functionality than the stock recovery ROM.

I know that some recovery ROMs like TWRP have support for accessing encrypted user data. This way you should be able to access and copy/extract the backup files that are still stored on your user data partition.
> 0 votes

---
Tags: samsung, recovery-mode, data-recovery
---


# Question
Title: How to use Pixel 6 as webcam on Android 14?
Many reports in the tech press said that Android 14 would include an option to use Android phones as a webcam when connected to another device over USB.

Here it is mentioned on the official Android 14 website

Upon installing Android 14 on my Pixel 6, I don't see this option. It's supposed to come up on the USB menu when you plug in the phone.

I contacted Google Support as a Google One user, but they were useless as usual - hadn't even heard of the feature.

Has anyone gotten this to work?

# Answer
The feature should/will be available in December feature drop (also known as Android 14 QPR1), not Android 14 release that just started rollout.

So you either need to install a Beta OS or wait for a couple of months for it to rollout.

When that happens, you'll plug in the phone into your computer via USB cable, tap the "Charging this device via USB" notification and select webcam as the option.
> 4 votes

---
Tags: google-pixel-6, webcam, android-14
---


# Question
Title: Force proxy to be used by all of my Android applications
I'm looking to force some applications on my phone to use a proxy whose certificate is installed on my phone. Some applications (like Instagram, YouTube, etc.) are using this proxy and I can sniff the communication between my phone and the proxy.

To make this work, I need to use root permissions on my Android. I found an app that may help me do this, but I want to use the terminal to achieve this.

Any ideas that could help me would be appreciated.

# Answer
> 0 votes
HTTP Toolkit does this using an Android app that uses the VPN mechanism to proxy all traffic through your HTTP Toolkit server.

---
Tags: root-access, proxy
---


# Question
Title: How to use multiple physical keyboard layouts on Android Oreo 8.1.0 Go Edition phones?
After connecting Bluetooth keyboard to my Android phone, I can't add more than one physical keyboard layout. Here is the picture

I mean, using the Ctrl + Space shortcut that has multiple physical keyboard layout options, I can't. My Android phone version is 8.1.0 Oreo Go Edition.

I can't even use the Android system keyboard shortcut! Example: Notification is displayed by pressing search + n. But pressing the shortcut key is not working. Here is the picture

# Answer
> 0 votes
May be irrelevant, but I had the same issue on MIUI 12.0.4.

Seems like **Layout selection** menu is bugged, but there is a workaround. You need to glitch menu to actually select layouts. Try turn on and off rapidly multiple layouts in couple of seconds (two are usually enough, just one is also works, but much rarer), and after leaving this menu and coming back you can see some of them switched.

In my case after ~10 attempts I managed to enable only layouts I need (English and Russian). They still doesn't display them in layout selection though, but now i can switch them with `Cmd(Win)` \+ `Space`

---
Tags: external-keyboard, android-go
---


# Question
Title: Emergency alerts: is there any way to silence the "severe threat alerts" and "Amber Alerts" while I'm sleeping?
There are some emergency alerts I would be very grateful to receive even when I'm sleeping, but so far I've only receive alerts for things that didn't actually put me in danger or for things that I could literally do nothing to help with until I woke up the next day.

I would like the emergency broadcasts to be silenced at night, specifically the ones in the categories "Show severe threats" and "Show AMBER alerts." I would still like to receive these alerts (so I can do something about them in the morning if I need to), just without any sound, and just for the period while I'm sleeping. Additionally, I would prefer to still have "Show extreme threats" and "Presidential alerts" sound at night if it is possible.

I know this is a fairly specific order and in all my searching on this subject I have found no way to silence the emergency alerts without unsubscribing from them altogether, so I don't know if this is currently possible. But that's why I came here, to ask if there's something I've missed so far.

Please note: I am talking about the emergency broadcasts you access through "Settings," rather than the feature available in "Google Now" I've seen floating around this website.

Phone info: model: Moto G Android version: 5.0.2

# Answer
In the Emergency Alerts stock app -\> Settings, there is an option "Emergency alert tone" with subtitle "Play a sample emergency alert tone." When you do this, it plays the tone and a dialog says "The sound you hear now will be played when you receive an emergency alert. The alert volume matches your phone's volume." This indicates that you could avoid the alert sounding when you are asleep simply by **silencing the phone** when you go to sleep (or using an app to change the volume on a schedule).

This doesn't discriminate between different classes of alerts (e.g. make sound for some but not others); if there's an app for that (probably is) someone else can post that as an answer.
> 1 votes

# Answer
When sleeping I put my phone in flight mode.

Assuming if you won't want to be disturbed by emergency alerts, you also don't want to be disturbed by less important things like phone calls or social media "news".
> 0 votes

---
Tags: audio, volume, silent-mode, alerts
---


# Question
Title: Rooting "Redmi Pad SE" with Magisk (MIUI 14, Android 13)
How to root Redmi Pad SE with Magisk (MIUI 14, Android 13)?

There are many guides out there, but doing it with `boot.img` doesn't work.

Some of the guides are specific to Redmi Pad SE, but they are really copies where the device name has changed but the instructions are the same for all devices.

# Answer
> 1 votes
I wrote this guide for anyone with "**Redmi Pad SE**" (a tablet) which comes with "MIUI 14" and "Android 13".

```
In Settings > About Tablet you have the MIUI and Android versions.

```

Take note of them.

```
In my case:
MIUI 1.0.3 TMUEUXM
Android 13 tkq1.221114.001

```

**Note**: The device came with MIUI 1.0.1 but the ROM versions available online where for 1.0.2 and 1.0.3, so I upgraded it from within MIUI/Android. As you will see later, you will need to download the ROM/Firmware.

---

### **Requirement**

First, you need to request the bootloader to be unlocked as soon as possible, because you will have to wait 7 days until it can be done.

https://www.miui.com/unlock/index\_en.html

https://en.miui.com/unlock/download\_en.html

The program provided by Xiaomi is for Windows and it says it will wipe out any data you had inside the Android device.

If you see that something is failing in the connection with the device, click on options. There is a section to Install drivers into Windows.

After the 7 days, unlock the device and continue.

---

The official instructions to install Magisk are here

https://topjohnwu.github.io/Magisk/install.html

However, as described here

https://aiomobilestuff.com/root-android-13-via-magisk-patched-init\_boot-boot/#comment-149823

for devices that come originally with "Android 13", the process is slightly different. In particular, you will work with `init_boot.img` and NOT with `boot.img`

---

### **1: Install Android SDK (Windows)**

or

### **1: Install adb and fastboot (Linux)**

```
# sudo apt install adb fastboot

```

---

### **2: Enable USB Debugging and OEM Unlocking**

Clicking on MIUI version several times you will enable 'Developer mode' (see the image above).

Then under Settings \> Additional Settings you will find 'Developer options'

There are many places describing how to Enable USB Debugging. I won't go into that.

---

### **3: Extract Stock `init_boot.img`**

This is very unclear on the official instructions. It just says "If your device has boot ramdisk, get a copy of the boot.img (or init\_boot.img if exists)."

Well, google for your MIUI version ("MIUI 1.0.3 TMUEUXM" in this case) and you will find repositories for the firmware that you have installed.

In my case I got it from 2 different sources and compared that the results were identical.

```
(You may find something different)
They were called
miui_XUNEEAGlobal_V14.0.3.0.TMUEUXM_f8cfc20eb5_13
miui-blockota-xun_eea_global-V14.0.2.0.TMUEUXM-V14.0.3.0.TMUEUXM-ecc1df367d-13.0

```

You can just unzip it, but then you need to extract the payload.

For that I used payload-dumper-go from https://github.com/ssut/payload-dumper-go

Find inside the decompressed payload the `init_boot.img`

Optional: I compared that file from both firmwares to verify they are identical. For that you can use `md5sum` or similar.

---

### **4: Install Magisk App on Android**

Get the latest APK from its official web ( https://github.com/topjohnwu/Magisk/releases ), **NOT** from Play Store.

---

### **5: Patch the init\_boot.img with Magisk and flash it**

All the `adb` / `fastboot` commands below are to be run from a PC. There are ways to root Android without PC but I haven't tested it.

```
# With the Tablet in normal mode and powered on (well charged).
# Copy the init_boot to Android
$ adb push init_boot.img  /sdcard/Download/

```

Proceed to patch that file within Magisk. This is explained in many places.

**IMPORTANT NOTE ABOUT FUTURE UPDATES OF MIUI**:

\[updated 2024-02\] If you accept any of the MIUI OS updates, your rooted init\_boot will be replaced by the update, your tablet will stop being rooted (the apps that need a rooted device will stop working properly) and you will have to repeat the steps from here. Although one could argue that it should be from point 3 to be fully correct. I just did it from here (I didn't care about the changes made by the update) and it went well (may not be always like that, be warned).

**END OF IMPORTANT NOTE ABOUT FUTURE UPDATES OF MIUI**

```
# Get the patched file from Android to PC
$ adb pull /sdcard/Download/magisk_patched-<something_here>.img

# Reboot Android into fastboot
$ adb reboot bootloader

# Flash the patched img from PC into Android
# This is the part that is different for devices that came with Android 13.
$ fastboot flash init_boot magisk_patched-<something_here>.img

# Reboot Android
$ fastboot reboot

```

Done.

Now Magisk should say that it is installed.

---
Tags: rooting, redmi, android-13
---


# Question
Title: Firefox cannot access internet with mobile data (but does with Wi-Fi). Chrome works with both
My phone is a Xiaomi Poco X3 pro, running Android 12 (QKQ1), and it says it has MIUI Global 13.0.4 stable. Firefox is version 118.1.1. With Firefox, I am able to access the internet through Wi-Fi, but not using mobile data. With Chrome, both work.

I have checked the permissions (Wi-Fi and mobile data are allowed), and even deleted and re-installed Firefox, and also reset the AP settings associated with my SIM card. Nothing helped.

I should say that in the past no such problems had occurred, but I do not know when exactly this problem started to occur.

Another observation is (and I am not sure whether that could be related) that some apps seem to sometimes lose network connectivity until I restart them. For example, I have a public transport app to search for connections and buy tickets, which sometimes hangs until I remove it from memory and restart it. This problem seems not to occur with other people using the same app at the same time and place (but on another phone).

What else can I check to solve this problem?

# Answer
I feel really stupid, but it seems for some reason my mobile data AP was configured with a proxy (I did not do that, so this must somehow have happened automatically). Since I removed the proxy, everything works.
> 3 votes

---
Tags: mobile-network, android-12, miui-13, poco-3
---


# Question
Title: Can Android device send emergency message to 911 without SIM card?
I already know that Android devices can call 911 without a SIM card (ref: Can an Android phone with no SIM card make an emergency call?), but can they can send a message to 911 without a SIM card?

# Answer
You can call 911 on any cellphone with or without a SIM card. You may not be able to send 911 a text, a feature my county has available. To be honest, whenever I have texted 911 they text back with "Are you in a safe enough place to call 911?"....Without a SIM card I don't see that even being a possibility unfortunately. I know you can make a 911 phone call sans SIM card though.

Verified with FCC - you cannot text 911 without a working SIM card in the cellphone you are calling from.
> 4 votes

---
Tags: sms, sim-card, emergency-calls
---


title: How to play YouTube videos in mpv?

text:
# Question
Title: How to play YouTube videos in mpv?
I sometime do that on the Linux desktop - but on the phone I cannot do it. What I see is exactly what is presented in this video on *reddit*. Adding the video url to *mpv* does nothing. The answer seems to be that `yt-dlp` has to be installed.

To do that I have followed these instructions, installed Termux and then did:

```
pkg up
pkg install python
pkg install ffmpeg
python3 -m pip install --upgrade yt-dlp

```

Then, in order to make mpv work with `yt-dlp`, I followed the instruction here: entered `mpv` advanced settings, selected the option to edit `mpv.conf`, and pasted `script-opts=ytdl_hook-ytdl_path=/usr/bin/yt-dlp`.

But those are settings for Linux. Should they work for Android? Why don't they? I see the same as before, `mpv` does nothing after adding the url.

# Answer
> 3 votes
Not the first time once I post a question I find the answer :)

This `mpv-android` issue complains exactly about that, linking to this about integration with `youtube-dl`. There, a link to a `mpv-android` `apk` file which has that integration is available. Uninstalling default release of mpv and installing *that* version of `mpv-android`, we can see that its advanced settings include a new entry to install `youtub-dl` or `yt-dlp`.

There is a limited amount of GUI options in mpv, but playback in background is one of them:

---
Tags: youtube, mpv
---


# Question
Title: Where did the Google calendar widget go?
Until recently, I had the combined date / weather widget from Google on my home screen. Clicking on it opened either the calendar, or the weather frog app.

A few days ago, I noticed it was replaced with the Google assistant 'quick overview' widget, and I can't find the original one in the list of widgets.

Did Google remove that widget altogether, or is there a way to get it back?

I did get an update to Android 13 recently, but I'm not sure if that's related.

# Answer
Yes, Google removed the combined date and weather widget from Android 13. The widget was replaced with the Google Assistant Quick Overview widget.

There are a few ways to get the combined date and weather widget back:

* Use a third-party launcher such as Nova Launcher or Lawnchair Launcher. These launchers allow you to add widgets that are not included in the stock Android launcher.
* Use a third-party weather app such as Pixel Weather Widget & Themes. These apps typically have their own widgets that you can add to your home screen.
* Use a custom widget pack. There are many custom widget packs available on the Google Play Store. Some of these widget packs include a combined date and weather widget.

To add a widget using a third-party launcher, long-press on an empty space on your home screen and select "Widgets". Then, select the widget from the list of widgets.

To add a widget using a third-party weather app, open the app and go to the settings menu. Then, look for a section labeled "Widgets" or "Home screen widgets". Select the widget that you want to add to your home screen.

To add a widget using a custom widget pack, open the app and select the widget that you want to add to your home screen. Then, follow the instructions that are provided by the app.

I hope this helps!
> 2 votes

---
Tags: google, calendar, app-widgets, weather
---


# Question
Title: Why can't Google Maps find better location? (without Location Services)
Google maps just shows a big circle (maybe 2 miles / 5 km) around my approximate location. Because of this, I cannot use it for navigation.

If I use OsmAnd~ (an alternative maps program), it can find my approximate location (\< 100 m / 100 yards) instantly and my precise location within about 5 seconds. So at least other apps are able to find my location.

My goal is to limit talking to Google servers as much as practical. Unfortunately, the setting names themselves are not obvious regarding how much information it will cause to be shared with Google, so I am hesitant to experiment and turn them on.

Here are things that may affect Google Maps:

Settings -\> Location: This is turned on. Maps and OsmAnd~ both are allowed the location.

Settings -\> Location -\> Location Services:
On: Earthquake alerts
On: Emergency Location Service
Off: Google Location Accuracy
Off: Google Location History
Off: Google Location Sharing
Off: Wi-Fi scanning
Off: Bluetooth scanning
Off: Carrier Location Access

Within Google Maps, if I go to its settings, there is a "Location accuracy tips" item, which when selected brings up a dialog that says "To continue, turn on device location, which uses Google's location service". I am hesitant to say OK, since it should not need to use Location Services which talk to Google servers.

The phone is a Moto G Stylus 5G (2022), running Android 12.

# Answer
After an update from Android 12 to 13 was offered, I find I am able to go to Settings -\> Apps, select the Maps app, click on Permissions, then Location, and finally here there is a slider for "Use precise location". Enabling this setting allows the app to get a near-precise location using only the GPS.

I am not sure whether this setting was there under Android 12 or not.
> 0 votes

---
Tags: google-maps
---


title: Android app sound unknown

text:
# Question
Title: Android app sound unknown
From which App is this notification sound in Android, after playing an audio message?

Sound unknown app

# Answer
> 0 votes
It looks to be from your or someone's mail service as a notification. I'm not positive as I can't hear the audio very clearly but it's listed as Mail.com notification in the properties afte:r #1downloading and playing the audio #2 reading file propties Hope your that helps.

---
Tags: notifications, audio
---


# Question
Title: How can I connect to a specific access point in a group having the same SSID?
I'm on Android 10 and I have a WiFi network with multiple access points, each one with 2.4 and 5 GHz, everything with the same SSID to let the phones pick the best one.

However android has a too low threshold for switching network: sometimes the signal is poor because I'm still connected to the same AP even if I moved around, while a much stronger signal would be available.

With the app "WiFi connection manager" I can list all access points within a WiFi network but by clicking on one the connection fails. I think it's an issue with Android 10, since this was exactly the point of the app, together with automatic switching according to custom rules.

The only workaround I found is to manually disable and enable again the WiFi, which results in a connection to the strongest access point, which is nevertheless not the best one, since the 5 GHz network from each access point is often a bit weaker power-wise, but it would nevertheless grant much higher speed.

Is there a way to connect to a specific access point, which implies also specific frequency?

No root privileges available, android 10 stock.

# Answer
In general, I trust the OS's ability to switch access points more than the router's Roaming Assist feature. So try turning this off on the router.

Additionally, many routers have a Smart Connect feature. This switches a device from one band to another band. You could try turning that off too.

If it still doesn't work, then I guess it's Android's fault. A workaround is to create 2 separate SSIDs for 2.4 and 5 GHz. Then just use the 5 GHz SSID. It's likely that the 2.4 SSID doesn't confer any benefits, even range (at target throughput), so just don't use it.
> 1 votes

---
Tags: wi-fi, android-10
---


# Question
Title: How do you delete thousands of text messages at once?
I have a HTC Vivid and need to delete about 30,000 texts. Every time I try to do it, it freezes my phone. The same thing happens when I try to create a backup.

# Answer
There is a way to delete all SMS and MMS (and call logs) all at once.

In Android, SMS are normally received and stored by the package com.android.providers.telephony. That package’s common name is “Phone/Messaging Storage” in Android 4.2.2 and “Dialer Storage” in Android 2.3.7.

If you clear all data of that app, all it’s databases are cleared and SMS/MMS are gone. You can “force stop” and then “clear data” with the app manager, which you find under

* Settings→Apps
* Settings→Application settings→Manage applications

If you have an alternative SMS app, note that most of them side access the “standard” database anyway. – This is technically not clean, but has the huge advantage that you can swap SMS apps at will, because the SMS storage stays the same.
> 2 votes

# Answer
Here are the steps (requires root):

1. Back up all SMS using the SMS Backup & Restore app to your external card
2. Open Root Explorer, go to `/data/data/com.android.providers.telephony/databeses/mmssms.db`
3. If you want, you can copy the current `mmssms.db` to external card for backup too
4. Delete the current `mmssms.db` file
5. Restart phone
6. Now all your SMS will disappear.

If you want to restore just some of the SMS threads, you can restore them using the "SMS Backup & Restore" app from the backup SMS data that has already been made.

Hope this help
> 2 votes

# Answer
In Android 4.2 Jelly Bean, open the standard messaging app, go to Settings or press the bottom-left touch key to show options/settings within the app, select/press Delete \> Select All \> Delete.
> 1 votes

# Answer
Here is a non-root way to delete **all** text messages:

```
adb shell content delete --uri content://sms/inbox

```

Tested and works on Google Pixel 3/Android 10.

You can also delete some text messages using a `Where` clause:

```
adb shell content delete --uri content://sms/inbox --where "read='1'"

```

Some (but not all) columns are: address, person, date, date\_sent, read, status, type, subject, body, locked, error\_code, seen
> 1 votes

# Answer
You might also try using a phone manager via your PC that works over Wifi, such as AirDroid. You should be able to delete from there, but not all of them at once I don't think, but in batches at least...
> 0 votes

# Answer
If a factory reset isn't acceptable, you might try an app such as Handcent, which allows you to set a limit on how many messages are kept for each sender. Set the limit to 29000 and see if it trims them down in a reasonable time. If that works, try dropping the limit 2000 at a time until you get to the number you want. This won't work if your messages are from many different senders.
> 0 votes

---
Tags: sms, delete
---


# Question
Title: How to get all old Google Calendar events on a new phone
My Google Calendar has events going back to 2009. However, even after syncing to my phone I can only see events back to June 2022. I cannot search or reference or even see any event prior to this on my phone. Using the web version as a workaround is non-viable.

This has been an issue for as long as I can remember. There must be a way to solve this issue as not having my calendar on my phone makes the Calendar feature all but useless.

# Answer
The issue is that Google intentionally only syncs events "modified" within one year. The reasoning behind this is baffling. However, the solution is to ensure that all events are seen by Google as being modified within a year so that they are correctly synced.

The way to do this is to export your calendar and then import it again. This is a time-consuming manual process that cannot be done on mobile and requires the web version of Google Calendar.

1. Log into your account and go to you Google Calendar settings.
2. Click Import & export
3. Click Export at the bottom. This will download a zip file of all your calendars. You can then upzip the individual `.ics` files.
4. If you have a lot of events and the files are much bigger than 1 MB, you will have to split them. Use the https://brokenvectors.github.io/ to do this. Upload each `.ics` file and split it so that each split file it is below ~1 MB in size. I recommend between 1000-2000 events per split file.
5. You can then reimport your calendars.
6. If you get the error "you do not have sufficient access to target calendar" there is an issue with the UIDs. I would not recommend following instructions online that recommend removing or editing the UIDs *en masse* in the `.ics` files as you run the risk of duplicate events. Instead, ensure you have a good backup and then completely delete all calendar entries before reimporting again.
7. Once you have reimported all calendar entries, go to the Google Calendar app on your Android phone and press refresh. All events should then be synced.
> 1 votes

---
Tags: sync, calendar, google-calendar
---


# Question
Title: Android messages app not adding the correct number to group chat
I am running Android version 10 with the latest Messages app. At some point a group chat was created with me and 2 other people, one of whom's phone number is not correct (the incorrect number is the same as the correct number, except the incorrect number does not have an area code attached to it, and as I am in a different area code, it will default to adding the wrong area code). The correct number is stored in my Contacts app, but when I delete the incorrect group chat and try to create a new group chat with those numbers, it adds the incorrect number to the group chat (the one without an area code, even though the Contacts app does have the area code). How do I fix this?

# Answer
The only thing I can think of is that, is that it looks like it is using the phone number format from your friend's phone. Get them to make their format more universal. The only phone number you can change is in the Google account in use.
> 0 votes

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


# Question
Title: How to debug Android permission denied at the file system level?
Something is basically pretty messed up on my phone. It looks like everything is running. But sometimes I can't open something or something crashes. The logcat shows a lot of permission denied.

A simple example is com.oneplus.calculator: I don't notice anything wrong when operating it. But in the Logcat I see:

```
09-25 14:42:35.662 29331 13606 E libEGL  : error opening cache file /data/user_de/0/com.oneplus.calculator/code_cache/com.android.skia.shaders_cache: Permission denied (13)
09-25 14:42:35.675 29331 13606 E libEGL  : error opening cache file /data/user_de/0/com.oneplus.calculator/code_cache/com.android.opengl.shaders_cache: Permission denied (13)

```

When comparing the DAC (Direct Access Control) with a healthy phone, I don't see any differences:

```
drwx------ 4 u0_a153 u0_a153 3488 2023-09-25 10:05 com.oneplus.calculator
    drwxrws--x 2 u0_a153 u0_a153_cache 3488 1971-12-27 23:26 cache
    drwxrws--x 2 u0_a153 u0_a153_cache 3488 2022-01-03 14:49 code_cache
        -r-------- 1 u0_a153 u0_a153_cache 113084 2023-07-10 15:31 com.android.opengl.shaders_cache
        -r-------- 1 u0_a153 u0_a153_cache  45136 2023-07-10 15:31 com.android.skia.shaders_cache

```

dumpsys package com.oneplus.calculator: userId=10153

ps -A | grep calculator: u0\_a153 27212 993 6770376 106716 do\_epoll\_wait 0 S com.oneplus.calculator

In some cases it helps to simply delete the file in question. If it is recreated automatically then logcat is clean. Since DAC looks the same afterwards, I am assuming there is something else preventing the access.

I am quite lost when it comes to checking file/ambient capabilities, MAC and further permission control of the Android framework. How can I debug this? Is it possible to get more detailed information exactly what permission is denied?

Android 13, OnePlus 8 Pro IN2023

Any help would be appreciated, many thanks,
Zweikeks

# Answer
Here's what I found out so far, correct me if I'm wrong.

# File permissions of Android 13 on data partition

Permissions are stored in the inode of a file or directory.

* ls -a and the like lists the traditional permissions.
* lsattr is used to view the attributes. lsattr und chattr have been present on my OnePlus 8 Pro with Android 13 in /system/bin. (They only work with a supported file system, otherwise error 'Inappropriate ioctl for device'.)
* getfattr is a general tool to look at the extended attributes - XATTR. (There are more specialized tools for specific attributes like getfacl, getcap, ls -Z etc.)
Within Termux pkg install attr to get the tools getfattr and setfattr.
(setfattr works only with a supported file system, otherwise error 'Operation not supported on transport endpoint'.)
The use of getfattr is a bit clumsy. Per default it shows only the user namespace. To display all, the recommended way is
getfattr -d -m ^ -- file\_or\_dir
getfattr -d -m ^ -R -- file\_or\_dir recursively
(-m ^ matches start of any string without need for escaping the parameter, double dash -- is needed as a separator in case the filename or directory starts with a dash)

Linux implements a whole range of different permission concepts.

* DAC, Discretionary Access Control, is the traditional Linux security with the rwx bits plus the more advanced features setuid, setgid, sticky.
No differences compared to a working system. No change in behavior when I chmod 777 files and folders for testing.
* ACL, Access Control Lists, as far as I read, are supposedly not used on Android.
However, I had lots of ACL labels attached as XATTR. Only at /data/media/0 and below. Samba, while not configured to use ACL, labelled the top directory of the share with system.posix\_acl\_default. This has been inherited by all the files and directories below.
setfattr doesn't work recursively by itself. So I used 'find' which also shows hidden files. I have deleted all the useless labels with:
find 0 -exec setfattr -h -x system.posix\_acl\_default {} ;
find 0 -exec setfattr -h -x system.posix\_acl\_access {} ;
Not related to my problem, though.
* Ambient capabilities are set in the /system/etc/init/\*.rc for boot processes and services.
They determine which processes can execute which functions and which resources are allowed to use.
The content of /system/etc/init is identical on both systems. I don't think that this has anything to do with my problem.
* Attributes attached to files.
The man page of chattr lists all possible attributes. On the data partition there are mostly E (encrypted), I (indexed), N (inode data present), sometimes e (block extents). These are all characteristics how the file is stored, not typical permission control. Large amounts of files have the same attribute combination set.
Only on four files I saw V (fs-verity) set.
I didn't notice any relevant differences to the working system.
* File Capabilities as XATTR attached to the files.
A process's access rights are checked by the kernel against caps assigned to a file. File caps are stored in an encoded form. getcap can decipher it to a human readable form. They are stored in an extended attribute named security.capability.
On my data partition I've not a single security.capability, though.
What I have and where the value looks a bit like an encoded cap are attributes like:
user.inode\_cache=0szRUAAAAAAAA=
user.inode\_code\_cache=0szhUAAAAAAAA=
user.inode... is only attached to every app directory in /data/data and /data/user/0, nowhere else. I don't know what it is. The sequence of characters is different for every directory and different to the working system.
Other interesting stuff:
user.serial="0" attached to /data/data, /data/misc\_ce/0, /data/system\_ce/0, /data/system\_de/0, /data/user/0, /data/user\_de/0
user.extdbsessionid0 and user.uuid attached to com.google.android.providers.media.module/databases/external.db in /data/data and /data/user/0
user.extdbnextrowid0 and user.extdbsessionid0 attached to /data/media/0
All the IDs are different to the working system.
* MAC, Mandatory Access Control of SELinux, checks processes and file access based on central policies in /system/etc/selinux.
The file context is attached as XATTR. To see with getfattr or simpler with ls -Z.
cat /proc/kmsg | grep avc: displays SELinux log messages. These are routed to dmesg, and as far as I read, to logcat as well.
cat /sys/fs/pstore/console-ramoops-0 | grep avc: supposedly displays messages from the previous boot.
In my logs I have seen extremely few avc: messages. And none related to the error messages/crashes in the first post. Although setting the correct SELinux file context helped against the 'permission denied' error messages.
There are a lot of differences in the file contexts to the working system. So I started out to correct individual folders and files e.g. with
setfattr -n security.selinux -v u:object\_r:app\_data\_file:s0:c153,c256,c512,c768 com.oneplus.calculator
I figured out that I get the same result by using restorecon. It is used to correct wrong contexts. It restores the default context of files and directories based on the central SELinux policies.
As of the documentation restorecon should actually work recursively with the -R parameter, but it did not. A construct with 'find' does the job:
find com.oneplus.calculator -exec restorecon -v {} ;
With that the permission denied errors no longer occur.
* On top of all this we have the manifest-based permission control of Android apps in the Java framework. Stuff like ACCESS\_FINE\_LOCATION.

So in the end, setting the correct SELinux file context helped against the permission denied errors in my original post.
I'm still investigating this. Until now, I have not been so bold as to run restorecon over the entire data partition.

Best Regards,
Zweikeks
> 1 votes

---
Tags: file-permissions
---


title: How to set image canvas size?

text:
# Question
Title: How to set image canvas size?
When you rotate an image, you might also need to adjust the canvas size to avoid cropping or leaving blank spaces. All I want is to have a picture, expand the canvas to a new size, and have the original pic pinned to either the bottom, top, or centrally. The free open-source software GIMP has had this feature for decades, easy to use, free, with no confusion and no pain:

Now, is it true that Google Photos on Android cannot even increase the canvas size, making it effectively impossible to rotate a picture a number of degrees and keep the whole picture without being forced to try and trick the software into doing a simple task? I just wanted the simple task of increasing canvas size, "adding head space", or adding white space, or enlarging the canvas but not affecting the image size, for so long.

# Answer
I had to find a way with a separate app named Photo Editor. After several hours of non-scientific guessing, searching, and random fuzz testing, it appears that the function named fit (at the far right of the menu in the app) with "Don't Enlarge" will resize the canvas.

Now the canvas is resized.
> 0 votes

---
Tags: samsung, images
---


# Question
Title: What Percentage of Android Devices Runs on x86 Architecture?
This question might be redundant or a possible duplicate, but I use an NDK library that runs only on ARM devices. Is there a way I could know what percentage of Android devices my app can support based on CPU architecture just like these statistics on Android Platform Versions?

My goal is to ascertain the number of devices my app won't support.

# Answer
> 27 votes
Since ultimately you're deciding whether x86 is still worthy of spending effort to support, I'm listing several facts about x86 for Android devices here:

* Intel had decided to discontinue the Atom SoC line for phones/tablets.
* The last generation of handheld Atom SoC - x3, x5 and x7 series - were at best equipped on lower-end Chinese Android tablets. Some come with phone/data capabilities (based on x3-C3230RK). Regardless, none made it onto mainstream devices, specifically phones.
* The last x86 Android device that's widely popular was ASUS' Zenfone 2, released in March 2015 - and even its subsequent variants shifted to Qualcomm's Snapdragon 410/615, partly due to the compatibility issues Android on x86 had back then.
* Spreadtrum (now UNISOC) has a partnership with Intel and just announced SC9861G-IA in March 2017 / SC9853I in August 2017. However, this has yet to come to fruition on consumer devices, and given Spreadtrum's focus on low-end devices for emerging markets, this SoC likely won't give x86 on Android much significance.

EDIT: The first device utilizing the above Spreadtrum SoCs, the Leagoo T5c, is now on pre-sale. Leagoo is a small China-based firm, and the device mainly targets India, not to mention another variant of the same device (the T5) with a conventional SoC is sold at the same time, so it doesn't change the assumptions above that it will remain unpopular.

# Answer
> 48 votes
I ended up with this conclusion after searching a lot.

Useful info in Unity Stats.

* ARMv7: 98.1%
* Intel x86: 1.7%

However I was not satisfied so I verified it from many resources.

According to Android Documentation.

> armeabi was deprecated in r16. Removed in r17. No hard float.

and

> Historically the NDK supported 32-bit and 64-bit MIPS, but support was removed in NDK r17.

**Summery after searching a lot**

* mips (deprecated)
* mips64 (deprecated)
* armeabi (deprecated)
* armeabi-v7a (**required** — most popular architecture nowadays)
* arm64-v8a (**required** — newer version of armeabi-v7a)
* x86 (optional, very limited number of devices, like Asus Zenfone 2, Genymotion/ Android emulator)
* x86\_64 (optional, very limited number of devices, like Asus Zenfone 2, Genymotion/ Android emulator)

I should also mention that ChromeBook are using Intel processors based `x86` and `x86_64` architecture. (Only add these architure when you support ChromeBook)

### Conclusion

If you app supports `armeabi-v7a` and `arm64-v8a` architectures because they have around 99% of Android devices.

### Important Suggestion

Do you worry about app size (you should), you should split your apk for multiple abi. Android studio and play store support uploading multiple apk, so that app has only 1 architecture ndk files.

**So this will be much efficient to build multiple apk.**

### Important links

# Answer
> 9 votes
From Google Play Console (supporting a minimum of Android 4.1 and landscape screen):

# Answer
> 0 votes
A new doc has dropped:

https://developer.android.com/topic/arc/device-support

So officially Google says:

> **Most Android phones have ARM chipsets.** However, many ChromeOS devices use x86 chips. The difference is not important for basic apps written in Kotlin or Java. However, for apps written in native code, including those created with game engines, the chipset in the device can be an important concern.

> Ideally, all apps and games with native code ship with all four major Android ABIs (Application Binary Interfaces): armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86\_32), and x86\_64.

---
Tags: cpu, arm-processors, x86-processors
---


# Question
Title: Create an exact image of the internal storage
My relative lost all her photos by clicking on "format data" on her Realme 7 recovery menu (the one popping up at startup when holding together the volume down and power button - found out after that the volume down button was broken and like kept hold down by itself).

I'd like to create an exact image of the internal storage to try to recover the possible because the phone is not rooted and I need to root it to enable the USB mass storage mode.

Is there any way to do this? Is the Realme 7 encrypted like other phones, so it's completely useless?

# Answer
> 0 votes
Yes, `userdata` partition is encrypted and dump completely useless. Anyway, exact image can be created with MTKClient.

---
Tags: backup, data-recovery, realme
---


# Question
Title: How to power off (not reboot) Samsung S10+?
I appear to have bricked my S10+ by incorrectly flashing what I thought was stock firmware using heimdall and am now stuck in a boot-loop (that may be the wrong term).

The screen shows:

```
only official released binaries are allowed to be flashed (SYSTEM)

...

An error has occurred while updating the device software
...

```

If I hold volume-down + power long enough the screen goes black but then the phone immediately appears to reboot right back into the same screen.

I am hoping that I may be able to boot into download mode (volume-down + bixby + power ?) or recovery (volume-up + bixby + power ?) and try to salvage the situation.

But step one on all the guides I've found is to turn the power off, and I can't work out how to do that.

# Answer
> 0 votes
The only way I found to get out of this is by getting into download mode by holding volume up+down and connect the phone to a PC using a USB cable then unplug the USB and let the phone in download mode to power off itself after 30 minutes (it will be like idle).

---
Tags: samsung, boot-loop, power-on
---


# Question
Title: Sync exchange with local calendar WITHOUT granting permissions to gmail or Samsung
It's pretty simple, what I want, I think:

* 1 local/offline-only calendar on the phone (default Samsung app)
* 1 on-line exchange calendar (automatically synced)
* ability to show one or the other or both at the same time in the same view
* notifications coming from both calendars, as if they're both local

I do NOT want:

* to associate a google account with the phone
* the gmail app to be in any way involved
* to accept Samsung's request to hold my personal information for 5 years on their servers
* any kind of sync involving e-mail, contacts etc etc.

It amazes me that this seems nearly impossible to do. Is it/how?

# Answer
I managed this using the https://framagenda.org/apps/calendar/ calendar and the DAVx5 app, which uses the caldav protocol. DAVx5 syncs nicely between the built-in calendar app on my phone and the web interface at framagenda.org.

I can define as many calendars as I like ("personal", "business"...) and sync them and can have a local phone calendar (which I no longer use).
> 0 votes

---
Tags: sync, calendar, exchange
---


# Question
Title: Is Android becoming a 64-bit only operating system?
The newest ARM processors only support 64-bit code. The Play Store has stopped showing 32-bit only apps to 64-bit capable devices. 32-bit support has not been a *requirement* for devices since Android 9.

Will Android become a 64-bit only operating system as time passes?

# Answer
# Yes, although this matters less than on other operating systems

On Android, most apps are written in Kotlin or Java, and are not specifically 32-bit or 64-bit. Developers build them from Kotlin or Java code, which are compiled into Dalvik bytecode for the Android Runtime. They upload their apps to app stores in that form, and devices download them in the same form.

Once downloaded, apps are compiled *again*, into machine code for the device. This machine code is either 32-bit or 64-bit, as suits the individual device. See "Glossary" below for the technical terms I've used.

This is quite different from Apple's iOS, iPadOS, and related operating systems. Apps for those devices are compiled into machine code *by the developer*, who uploads them in that form. This meant that Apple's transition from 32-bit to 64-bit was done earlier than Android's, and had less flexibility.

# Native code in apps

Some Android apps, for various reasons, include machine code built by the developer, called "native code," rather like iOS apps. This gets uploaded to the app stores, downloaded again to devices, and run directly, without any compilation or translation steps along the way. An app that uses native code must provide *separate* versions for 32-bit and 64-bit devices if it is to be usable on both 32-bit and 64-bit devices. The APK app file format caters for providing multiple versions of machine code files; this isn't necessary for Dalvik bytecode files.

# Changes in Play Store rules

Since August 2019, apps that include native code have been required to provide 64-bit native code when they are released or updated. Since August 2021 any remaining apps that use native code, but only have a 32-bit version of that code, have not been offered to 64-bit capable devices. This is presumably intended to push app developers who use native code to either (a) provide 64-bit native code or (b) stop using native code at all.

Those rules don't apply to apps that are for Wear OS or Android TV, which didn't support 64-bit as of 2019. It appears Wear OS is now preparing for 64-bit, but Android TV isn't yet.

# Changes in ARM processors

When 64-bit capable ARM processors first appeared, they could also run 32-bit code. However, that part is *optional*, and is gradually being dropped. Since 32-bit and 64-bit ARM native code are fairly different from each other (much more so than 32-bit and 64-bit x86), leaving out 32-bit makes processors simpler and thus cheaper to manufacture.

In the early days of 64-bit, there were some odd devices. There were ones that had 64-bit capable processors, but a 32-bit Android OS, and ones that had 64-bit processors and operating systems, but a 32-bit Android Runtime. However, those are now all in the past.

Nowadays, many of the newer ARM processors *can't* run 32-bit code. This is easiest to explain in terms of ARM Holdings' core designs, since those form the basis of many manufacturers' SoCs.

The early 64-bit cores could run 32-bit code happily, although the ability to run a 32-bit operating system was dropped at Cortex-A76. The ARMv9 cores that were introduced in starting in 2021 mostly can't run 32-bit code at all; the only exceptions are the Cortex-A710 and Cortex-A510.

That means, for example, that the Qualcomm Snapdragon 8 Gen 2 can only run 32-bit code on five of its eight cores, not including the fastest ones, and the Snapdragon 8 Gen 3 and later won't run 32-bit code at all. In the same way, the MediaTek Dimensity 9200 can only run 32-bit code on its slowest cores, and the Dimensity 9300 can't run 32-bit code at all. The Samsung Exynos 2200 won't run 32-bit code on its fastest core, but will on all of the others, while the Exynos 2400 can't run 32-bit code at all.

The first cores in each series from ARM that *don't* run 32-bit code are:

# Changes in installed Android

It is possible to build Android as:

1. A 32-bit-only operating system, appropriate for devices with 32-bit processors.
2. A 64-bit-only operating system, appropriate for devices with processors that can't run 32-bit code, and usable on devices with processors that can run 32-bit code if the manufacturer doesn't want to support that.
3. A 64-bit operating system that can also run 32-bit native code. This is only appropriate for devices with 64-bit processors that can also run 32-bit code. It is larger than a 64-bit-only operating system, so some manufacturers may prefer the 64-bit-only option.

Recent Pixel devices from at least the 7a onwards, have 64-bit-only Android. 64-bit-only Android 13 and 14 images for Pixel 4a to Pixel 6 Pro are available for testing.

# Glossary

## Machine code

Computer programs consist of instructions telling the computer to do specific, simple things. The complicated and flexible behaviour of programs (which includes apps) is built out of many individual instructions. The instructions are encoded as numbers - because, to computers, *everything* is expressed as numbers - and the set of instructions that a computer can execute is its "machine code." The part of the computer which reads the machine code instructions and acts on them is the "processor" or "Central Processor Unit", abbreviated "CPU".

Different kinds of computer use different machine codes. Some manufacturers produce several different kinds of computers, with different machine codes. People have been designing machine codes for about 80 years (as of 2023) and new ideas are still being invented and put into use.

* Most desktop computers use the "x86" or "x86-64" machine codes, developed by Intel Corporation and its competitor, Advanced Micro Devices, since the 1970s. Both those companies manufacture and sell CPUs. That's fine for desktop and laptop computers, which have space for lots of separate components.
* Almost all mobile devices use the ARM family of machine codes, developed since the 1980s by ARM Holdings. ARM do not manufacture CPUs. Instead they license their designs to other companies, who manufacture "Systems-on-Chip" or "SoC"s that include the CPU and all the other electronics needed in a mobile device. Mobiles don't have space for lots of separate components: most of their small volume is taken up by the screen and the battery.

## "Dalvik bytecode"?

"Bytecode" is a way of storing computer programs that isn't specific to a particular kind of computer. Many bytecodes exist, using different ways of representing programs. Dalvik bytecode was used in the Dalvik system for running Android apps that was used in Android versions before 5.0 "Lollipop". That runtime used just-in-time compiling.

Nowadays, Dalvik bytecode is used as a distribution format. When it is downloaded to a device, it is compiled by the Android Runtime ("ART") to the appropriate native code to be called by ART: 32-bit on a device with 32-bit ART, 64-bit on a device with 64-bit ART.
> 4 votes

---
Tags: arm-processors
---


# Question
Title: What makes a 64-bit Android, except the kernel?
I have a phone (Samsung Galaxy A320F (AKA "A3 (2017)") with the stock ROM that contains a 64-bit armv8l kernel (Linux 3.18.14) and 32-bit userspace with 32-bit Android 8.0.0 platform. Some Android applications provide only 64-bit NDK-based libraries, which makes them incompatible with this setup.

I've tried transferring a few ELF64 binaries to the phone, like `gdb`, `strace`, `gphoto2` along with `libc.so.6`, `ld-linux-aarch64.so.1` and other parts of glibc. They run fine, so I'm confident in the kernel's ability to handle such binaries.

Now I'd like to try and make the Android platform 64-bit capable. In particular, I'm interested in making the 64-bit-only APK able to communicate with the display, touchscreen and a USB device attached to the phone. I have root access (via Magisk), so in principle, I can hack the system however I like.

My question is now: what components actually make the Android platform 32- or 64-bit? Is it just the VM, or maybe some additional libraries? Or does there have to also be a 64-bit part of the HAL? How many of these components could be taken from e.g. Lineage OS without actually installing the complete Lineage OS? Has anyone even tried to do a similar mod?

# Answer
> 1 votes
For Android to be 64-bit you need several things:

* 64-bit-capable hardware, which you have.
* 64-bit kernel, which you have.
* 64-bit Android Runtime ("ART"). This is what you're missing.

The 32-bit ART you have will compile Dalvik bytecode into 32-bit machine code. 32-bit machine code can't make straightforward calls to 64-bit machine code, which is what's in 64-bit NDK libraries. That's why you can't install apps that use 64-bit NDK libraries.

Android isn't really designed for putting custom OSes together from binaries intended for assorted devices. Lineage OS supports the A5 (2017) and A7 (2017) models, but not your A3 (2017).

At this point in time, buying a more modern device is the easiest solution.

# Answer
> 0 votes
For a 64-bit Android, all the partitions should be 64-bit.

In your case, the system partition is 32-bit, the same case with Samsung Galaxy J8.

# Answer
> -1 votes
A register makes a system 32-bit or 64-bit. 8 bits = 1 Byte, 32 bits = 4 Bytes, and 64 bits = 8 Bytes.

So it means 32-bit registers can store 4 Bytes of information per register and 64-bit registers can store 8 Bytes of information per register.

---
Tags: compatibility
---


# Question
Title: Forgot lock screen PIN on child phone with Family Link, can't figure out how to get into it or reset PIN
My child forgot her lock screen PIN and I use Family Link, but I can't figure out how to get into it or reset the PIN through the app.

What are my options?

# Answer
If she does not have anything important on it, you can try factory resetting it.

WARNING: This will erase everything on the phone except Android.

First you need to get to the system recovery screen, here's how:

According to the LG User Manual/System recovery page

> Turn the phone off. Press and hold the following keys at the same time: Volume Down Key + Power/Lock Key for approximately 10 seconds. Release both of the keys when the System recovery screen is displayed.

In order to navigate here, since touchscreen does not work here:

Use the volume up key to go up, the volume down key to go down and power button to click.

1 - Select "Factory reset" (may be written differently depending on your device model).

2 - Click it.

3 - Wait for it to erase everything on the phone.

After that, it will ask you to do the first use setup again.
> 0 votes

# Answer
Theres no way to recover it. If there is stuff on it that she doesnt want to lose then just try some numbers.

* She can start with usual pins she would use, with a digit either side of each number. Then birthday related days.
* Or just try all numbers in sequence. If she is dedicated, she could try 500 pins an hour. Thats 20 hours for all combinations. An hour a day is 20 days.
> 0 votes

---
Tags: lock-screens, locked-out, google-family-link
---


# Question
Title: How to enable Android USB Debugging option without the "Allow USB Debugging" popup?
When we enable USB Debugging, there is automatically a popup that asks whether you want to authorize the PC to access the phone via USB Debugging. How do I enable it without the popup? Is there a command line query using which I can say "no prompt" or something like that?

Here is an image of the popup I am referring to:

Thanks for the help.

# Answer
# The reason

This is deliberately omitted from production Android. If it was allowed, it would be trivial to read the contents of a lost or stolen phone. Since many people keep much of their lives on their phone, this would be a huge security problem.

As it is, someone who obtains a phone that belongs to someone else has to get through the screen lock (PIN, pattern, fingerprint, etc.) before they can enable USB debugging. If they can get through the screen lock, they can use the phone and its apps anyway, and the ability to enable USB debugging does not make things much worse.

# A possible solution for an individual

If you enable developer mode and USB debugging, then authorise a computer with the pop-up, you can check the box "Always allow from this computer" and then the phone will connect to `adb` as soon as you plug it in. With more recent versions of Android than the 7.1 in the question, you should turn on "Disable adb authorisation timeout" in Settings =\> Developer Options if you want authorisation to persist longer than a week.

You can enable that for all your computers individually. Alternatively, you can enable it for any computer that you can copy a few files onto. This is a bit more of a risk, but it may suit the OP's needs.

## The .android directory and its contents

The information that an Android device uses to recognise a host computer isn't a built-in part of the host. Instead, it is created by `adb` when you first run it on the host. In your user directory, you'll find a directory called `.android`. If you copy that directory and its contents to another computer where `adb` has never been run, and *then* install and run `adb`, the two computers will be treated by the device as being the *same* computer.

### On Windows

You should use the Command Prompt for this. If you don't know how to use that, learn: it's basic technical computing, and if you can't learn this, you should not be tinkering with Android USB debugging.

In the command prompt:

```
C:\> echo %USERPROFILE%
C:\Users\ExampleUser
C:\>dir %USERPROFILE%
 Volume in drive C is Local Disk
 Volume Serial Number is Q8P4-Q7KQ
 Directory of C:\Users\ExampleUser

 22/07/2023  15:51    <DIR>          .
 12/10/2023  06:47    <DIR>          ..
 08/06/2023  20:19    <DIR>          .android
 ...
 28/08/2023  15:37    <DIR>          Desktop
 16/10/2023  03:21    <DIR>          Documents
 17/10/2023  14:58    <DIR>          Downloads
 ...
                0 File(s)              0 bytes
               14 Dir(s)  373,509,562,890 bytes free

```

Copy the `.android` directory and its contents to the corresponding place on another computer. Provided you keep this data safe, you can use it to authorise any future computer, *even one you don't have yet*.

### On Linux or macOS

In the shell:

```
ls -ald ~/.android

```

# Other solutions

## Extremely custom ROMs

If you're willing to rebuild Lineage OS from source, you should be able to build it with USB debugging pre-enabled and then flash a Lineage OS supported device with it. However, using such a device as your personal device would be silly: if you lost it, it's trivial for someone to get into it.

## Devices that come pre-enabled for USB debugging

For completeness, there are devices that can run Android that come pre-enabled for USB debugging. However, they are *not* phones or tablets that you'd want to carry around. They're single-board computers, a bit like Raspberry Pis, designed for doing heavy-duty hardware or software development. They're intended to live in labs, not to be personal devices.

# Non-solutions

Termux has no reference to doing this in its wiki.
> 2 votes

---
Tags: adb, usb, usb-debugging, 7.1-nougat, popup
---


# Question
Title: VLC accesses NFS share but cannot play videos
The NFS share (configured as read-only) was added via the 'Local Network' option in the VLC app.

The NFS share's directory and contents are displayed in the VLC app; however, when a video is selected, a "Playback error" results. Unfortunately, the error message is displayed for a fraction of a second, and is therefore illegible.

The NFS share is accessed via multiple computers, which employ the desktop version of VLC to play videos, so the share is functioning correctly. When copies of the videos are in local storage, they play without issue.

Why are the videos unplayable?

UPDATE: Audio files contained in the NFS share are able to be played without issue.

# Answer
Was stuck on same issue with NFS server on macOS (native system server, not from third party tools) and VLC on Google TV installed from Google Play.

For me helped moving file from `/Users/my-user/Movies/some-other.folder.WithMany_different_specialSYMBOLS/some-movie-file.mkv` to `/Users/my-user/Movies/some-movie-file.mkv`. IDK why it's matters — maybe some stupid limitation for characters or filename limit — but it works now.
> 0 votes

---
Tags: vlc
---


title: How to know when my smartphone is EOL?

text:
# Question
Title: How to know when my smartphone is EOL?
Long story short, I have been under the impression that my Samsung Galaxy S5 had still been receiving security updates even though I was aware it wouldn't be getting any major Android updates. One Google search later, I found out that this is not the case. After some reading, I went on Samsung's page and found a list displaying what Samsung apparently plans to keep updates for.

What I don't understand is why I'm not being told that my phone is effectively a legacy device and is not being supported anymore. It's one thing to lose out on Android updates, but it's another thing to be missing critical security updates. All vendors should be sending out some kind of message to outdated/unsupported phones, otherwise everyone will be under the stupid impression that they can keep the same phone forever and still be secure.

Is there some way to find out when my particular smartphone vendor effectively stops pushing out updates for a particular phone? There's got to be something better than checking their crumby website every now and then. Any leads?

# Answer
> 1 votes
The only way easy way to have an Android phone with current software is to buy from one of the 4 companies (Google, Honor/Huawei, OnePlus, Xiaomi) that bother to keep older devices up to date (though all but Google tend to be a few months late);

so that the OS will notify you of updates when they are available. You can double-check by cross-referencing the kernel version and Android security patch level with

LineageOS is a nice alternative for unsupported phones, but is not without issues;

# Answer
> 0 votes
**As of October 2023, some Google Nexus devices and all Google Pixel devices tell the user if their device is already EOL when they try to check for OS updates:**

As documented in It's Time to Retire Your Unsupported Things,

> \[...\] as of October 15, 2019, you might see a screen such as the following when checking for OS updates on some unsupported Google Nexus devices, such as the Nexus 5X:

On Pixel 3a:

> ### Regular updates have ended for this device
>
> Android version: 12
> Android security update: May 5, 2022
>
> Your device will no longer receive regularly scheduled system updates and security updates.
>
> Your Pixel 3a is running the last version of Android available on this device.
>
> Learn more

As for other manufacturers, as mentioned in the previous link, there is not yet a notification or even a statement directly on the device.

> I have been using a smartphone since 2011, and I can say that I've never been pushed a warning when the device software has reached EOL from the vendor. That goes for both Android \[...\]

I'm afraid users still have to check for external sources, e.g. official sites, aggregator info, 3rd-party apps, etc.

---
Tags: updates, security
---


# Question
Title: How to remove ads from all apps via a single payment
I've heard it is possible to pay a subscription service to remove all ads from all apps on your Android phone.

Can someone please tell me how to do this?

Thanks.

# Answer
> 1 votes
Not necessarily all apps, but **Google Play Pass is a monthly subscription service that promises to remove ads on participating apps and games.**

> Your pass to hundreds of awesome games and apps, completely free of ads and in-app purchases. All for one low monthly price.

More information on Google Play Help - Subscribe to Google Play Pass.

> When you subscribe to Google Play Pass, you’ll get over 1,000 games and apps, without ads or in-app purchases. \[...\]. Play Pass won’t give you access to all of Google Play, just a selection of apps and games. Availability of games, apps, and offers on Play may vary by country.

Main requirements:

> To buy a subscription to Google Play Pass, you’ll need to:

---
Tags: ads
---


# Question
Title: Pixel 3 stuck in fastboot loop after flashing factory image
## The problem

After trying to flash a factory image of Android to my (previously working) Pixel 3, I can now no longer exit the bootloader, nor can I boot into the system. The bootloader simply reads `no valid slot to boot`.

I was trying to downgrade my phone to Android 11 in preparation for installing /e/OS. I attempted to flash a factory image from Oct 2021 to my Pixel 3 Android phone using ADB but after completing the process, I received the following message in the terminal:

```
Erase successful, but not automatically formatting.
File system type raw not supported.
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 235.583s

```

and then after my phone finished rebooting, it showed the following screen:

```
Fastboot Mode

Product revision: blueline MP1.0(ROW)
Bootloader version: b1c1-0.4-7617406
Baseband version: g845-00194-210812-B-7635520
Serial number: XXXXXXXXX
Secure boot: PRODUCTION
NOS production: yes
DRAM: 4GB Micron LPDDR4XUFS: 64GB Micron
Device state: unlocked
Boot slot: b
Enter reason: no valid slot to boot

```

## Current Phone State

If I attempt to reboot my phone, it simply returns to the fastboot screen.

From the fastboot screen, I have the following options: Start, Power Off, BarCode, Rescue Mode, Recovery Mode, and Restart Bootloader.

* Clicking "Start" immediately returns me back to the fastboot screen.
* Clicking "Power Off" powers off the phone if unplugged, or just returns to the fastboot screen if plugged in.
* Clicking "BarCode" brings up the expected screen.
* Clicking "Rescue Mode" or "Recovery Mode" brings up the android icon with "No command". Holding the power button and clicking the volume up button brings up the expected screen of commands.

I can also still run the `fastboot reboot fastboot` command from the terminal and enter the `fastbootd` screen successfully.

## What I've tried so far

Here are the following things I have tried to recover from this:

* Running the `flash-all.sh` script again.
* Flashing each image (boot, bootloader, radio, system, vendor) individually.
* Flashing different factory image versions of Android, both of Android 11 and 12, and both using the `flash-all.sh` script and flashing each image individually.
* Switch to using a USB 2.0 cable (USB-A to USB-C). I had first tried all the above steps using a USB 3.0 (USB-C to USB-C) cable.

Prior to doing this, my phone was in working order and running the latest version of Android 12 available for my phone.

Have I simply bricked my phone? The fact that I can get to so many different screens and still access the phone from my computer makes me think this is recoverable but I've so far been able to fix it.

---

## Additional Information

I've included the results of running the `flash-all.sh` script below:

```
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ ./flash-all.sh
Sending 'bootloader_b' (8521 KB)                   OKAY [  0.440s]
Writing 'bootloader_b'                             (bootloader) Flashing Pack version b1c1-0.4-7617406
(bootloader) Flashing partition table for Lun = 0
(bootloader) Flashing partition table for Lun = 1
(bootloader) Flashing partition table for Lun = 2
(bootloader) Flashing partition table for Lun = 4
(bootloader) Flashing partition table for Lun = 5
(bootloader) Flashing partition msadp_b
(bootloader) Flashing partition xbl_b
(bootloader) Flashing partition xbl_config_b
(bootloader) Flashing partition aop_b
(bootloader) Flashing partition tz_b
(bootloader) Flashing partition hyp_b
(bootloader) Flashing partition abl_b
(bootloader) Flashing partition keymaster_b
(bootloader) Flashing partition cmnlib_b
(bootloader) Flashing partition cmnlib64_b
(bootloader) Flashing partition devcfg_b
(bootloader) Flashing partition qupfw_b
(bootloader) Flashing partition storsec_b
(bootloader) Flashing partition logfs
OKAY [  0.269s]
Finished. Total time: 0.902s
Rebooting into bootloader                          OKAY [  0.018s]
Finished. Total time: 0.119s
Sending 'radio_b' (71468 KB)                       OKAY [  2.780s]
Writing 'radio_b'                                  (bootloader) Flashing Pack version SSD:g845-00194-210812-B-7635520
(bootloader) Flashing partition modem_b
OKAY [  0.423s]
Finished. Total time: 3.394s
Rebooting into bootloader                          OKAY [  0.019s]
Finished. Total time: 0.270s
--------------------------------------------
Bootloader Version...: b1c1-0.4-7617406
Baseband Version.....: g845-00194-210812-B-7635520
Serial Number........: XXXXXXXXX
--------------------------------------------
extracting android-info.txt (0 MB) to RAM...
Checking 'product'                                 OKAY [  0.059s]
Checking 'version-bootloader'                      OKAY [  0.059s]
Checking 'version-baseband'                        OKAY [  0.059s]
Setting current slot to 'b'                        OKAY [  0.078s]
extracting boot.img (64 MB) to disk... took 0.677s
archive does not contain 'boot.sig'
Sending 'boot_b' (65536 KB)                        OKAY [  2.490s]
Writing 'boot_b'                                   OKAY [  0.321s]
extracting dtbo.img (8 MB) to disk... took 0.056s
archive does not contain 'dtbo.sig'
Sending 'dtbo_b' (8192 KB)                         OKAY [  0.400s]
Writing 'dtbo_b'                                   OKAY [  0.102s]
archive does not contain 'dt.img'
archive does not contain 'recovery.img'
extracting vbmeta.img (0 MB) to disk... took 0.000s
archive does not contain 'vbmeta.sig'
Sending 'vbmeta_b' (8 KB)                          OKAY [  0.120s]
Writing 'vbmeta_b'                                 OKAY [  0.067s]
archive does not contain 'vbmeta_system.img'
extracting super_empty.img (0 MB) to disk... took 0.000s
Rebooting into fastboot                            OKAY [  0.060s]
< waiting for any device >
Sending 'system_b' (4 KB)                          OKAY [  0.001s]
Updating super partition                           OKAY [  0.019s]
Resizing 'product_b'                               OKAY [  0.005s]
Resizing 'system_b'                                OKAY [  0.006s]
Resizing 'vendor_b'                                OKAY [  0.006s]
archive does not contain 'boot_other.img'
archive does not contain 'odm.img'
extracting product.img (2148 MB) to disk... took 26.647s
archive does not contain 'product.sig'
Resizing 'product_b'                               OKAY [  0.006s]
Sending sparse 'product_b' 1/9 (262140 KB)         OKAY [  9.263s]
Writing 'product_b'                                OKAY [  1.304s]
Sending sparse 'product_b' 2/9 (262140 KB)         OKAY [ 10.195s]
Writing 'product_b'                                OKAY [  1.289s]
Sending sparse 'product_b' 3/9 (262140 KB)         OKAY [ 10.014s]
Writing 'product_b'                                OKAY [  1.269s]
Sending sparse 'product_b' 4/9 (262140 KB)         OKAY [ 10.325s]
Writing 'product_b'                                OKAY [  2.340s]
Sending sparse 'product_b' 5/9 (262140 KB)         OKAY [ 10.254s]
Writing 'product_b'                                OKAY [  1.289s]
Sending sparse 'product_b' 6/9 (262140 KB)         OKAY [ 10.050s]
Writing 'product_b'                                OKAY [  1.320s]
Sending sparse 'product_b' 7/9 (262140 KB)         OKAY [ 10.353s]
Writing 'product_b'                                OKAY [  1.294s]
Sending sparse 'product_b' 8/9 (262140 KB)         OKAY [ 10.516s]
Writing 'product_b'                                OKAY [  1.277s]
Sending sparse 'product_b' 9/9 (102612 KB)         OKAY [  3.970s]
Writing 'product_b'                                OKAY [  0.544s]
archive does not contain 'product_services.img'
extracting system.img (845 MB) to disk... took 13.288s
archive does not contain 'system.sig'
Resizing 'system_b'                                OKAY [  0.006s]
Sending sparse 'system_b' 1/4 (262140 KB)          OKAY [  9.876s]
Writing 'system_b'                                 OKAY [  1.271s]
Sending sparse 'system_b' 2/4 (262140 KB)          OKAY [ 10.578s]
Writing 'system_b'                                 OKAY [  1.289s]
Sending sparse 'system_b' 3/4 (262140 KB)          OKAY [ 10.270s]
Writing 'system_b'                                 OKAY [  1.274s]
Sending sparse 'system_b' 4/4 (79656 KB)           OKAY [  3.154s]
Writing 'system_b'                                 OKAY [  0.422s]
extracting system_other.img (67 MB) to disk... took 0.737s
archive does not contain 'system.sig'
Sending 'system_a' (69440 KB)                      OKAY [  2.707s]
Writing 'system_a'                                 OKAY [  0.344s]
extracting vendor.img (442 MB) to disk... took 5.910s
archive does not contain 'vendor.sig'
Resizing 'vendor_b'                                OKAY [  0.006s]
Sending sparse 'vendor_b' 1/2 (262140 KB)          OKAY [ 10.532s]
Writing 'vendor_b'                                 OKAY [  1.289s]
Sending sparse 'vendor_b' 2/2 (191236 KB)          OKAY [  7.695s]
Writing 'vendor_b'                                 OKAY [  1.008s]
archive does not contain 'vendor_other.img'
Erasing 'userdata'                                 OKAY [  8.253s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Erasing 'metadata'                                 OKAY [  0.009s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 235.583s

```

Flashing each image individually results in the following:

```
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash boot boot
boot.img                                  bootloader-blueline-b1c1-0.4-7617406.img
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash boot boot.img
Sending 'boot_b' (65536 KB)                        OKAY [  2.700s]
Writing 'boot_b'                                   OKAY [  0.392s]
Finished. Total time: 3.291s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash bootloader bootloader-blueline-b1c1-0.4-7617406.img
Sending 'bootloader_b' (8521 KB)                   OKAY [  0.440s]
Writing 'bootloader_b'                             (bootloader) Flashing Pack version b1c1-0.4-7617406
(bootloader) Flashing partition table for Lun = 0
(bootloader) Flashing partition table for Lun = 1
(bootloader) Flashing partition table for Lun = 2
(bootloader) Flashing partition table for Lun = 4
(bootloader) Flashing partition table for Lun = 5
(bootloader) Flashing partition msadp_b
(bootloader) Flashing partition xbl_b
(bootloader) Flashing partition xbl_config_b
(bootloader) Flashing partition aop_b
(bootloader) Flashing partition tz_b
(bootloader) Flashing partition hyp_b
(bootloader) Flashing partition abl_b
(bootloader) Flashing partition keymaster_b
(bootloader) Flashing partition cmnlib_b
(bootloader) Flashing partition cmnlib64_b
(bootloader) Flashing partition devcfg_b
(bootloader) Flashing partition qupfw_b
(bootloader) Flashing partition storsec_b
(bootloader) Flashing partition logfs
OKAY [  0.272s]
Finished. Total time: 0.909s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot reboot-bootloader
Rebooting into bootloader                          OKAY [  0.019s]
Finished. Total time: 0.119s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash radio radio-blueline-g845-00194-210812-b-7635520.img
Sending 'radio_b' (71468 KB)                       OKAY [  2.930s]
Writing 'radio_b'                                  (bootloader) Flashing Pack version SSD:g845-00194-210812-B-7635520
(bootloader) Flashing partition modem_b
OKAY [  0.414s]
Finished. Total time: 3.536s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash system system.img
Sending sparse 'system_b' 1/4 (262140 KB)          OKAY [ 10.840s]
Writing 'system_b'                                 FAILED (remote: 'Partition should be flashed in fastbootd')
fastboot: error: Command failed
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot reboot fastboot
Rebooting into fastboot                            OKAY [  0.011s]
< waiting for any device >
Finished. Total time: 16.212s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash system system.img
Resizing 'system_b'                                OKAY [  0.007s]
Sending sparse 'system_b' 1/4 (262140 KB)          OKAY [ 10.777s]
Writing 'system_b'                                 OKAY [  1.297s]
Sending sparse 'system_b' 2/4 (262140 KB)          OKAY [ 10.784s]
Writing 'system_b'                                 OKAY [  1.306s]
Sending sparse 'system_b' 3/4 (262140 KB)          OKAY [ 10.676s]
Writing 'system_b'                                 OKAY [  1.294s]
Sending sparse 'system_b' 4/4 (79672 KB)           OKAY [  3.095s]
Writing 'system_b'                                 OKAY [  0.468s]
Finished. Total time: 39.727s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot flash vendor vendor.img
Resizing 'vendor_b'                                OKAY [  0.006s]
Sending sparse 'vendor_b' 1/2 (262140 KB)          OKAY [ 10.659s]
Writing 'vendor_b'                                 OKAY [  1.275s]
Sending sparse 'vendor_b' 2/2 (191236 KB)          OKAY [  7.817s]
Writing 'vendor_b'                                 OKAY [  0.977s]
Finished. Total time: 20.757s
chris@chris-XPS-13-9300:~/Android/Sdk/platform-tools$ fastboot reboot
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 0.201s

```

# Answer
I guess this is all because of your `platform-tools` SDK package. You need to install or update it via the following commands:

```
sudo apt-get update -y
sudo apt-get install -y android-sdk-platform-tools

```

After installation/update, run again the `fastboot flashall` command. The formatting issue will be removed, and hopefully, your problem will be solved.
> 0 votes

---
Tags: boot, bootloader, adb
---


# Question
Title: How can I save a Google Pixel 4a stuck during boot?
I got a Google Pixel 4a that is stuck during boot without obvious reason (maybe it did an automatic update and restart during the night). Whenever I start the phone, it only shows the "Google lettering" but won't continue to boot.

I can access fastboot (vol- + power button). That way, I have also access to the phone via cmd console on my computer. Still, when I try to access recovery mode, it will also get stuck when it shows the Google lettering. Also, a wipe or factory reset is not possible via power button + vol+ as I cannot access recovery mode. Resetting the phone via https://flash.android.com is also not possible with the error message:

> Device Unlock Disabled
>
> For security reasons, you need to enable "OEM unlocking" in order to flash your device. See the device preparation instructions for more information.

So what other options do I have to get the phone back running?

# Answer
If fastboot mode is accessible, please use the command `fastboot -w` to trigger a factory reset on the device.
> 0 votes

---
Tags: boot-loop, boot, google-pixel-4a
---


# Question
Title: Can I use an external hard drive on my tablet?
I'm wondering if I can use a hyper 5-in-1 USB-C hub with my x8max tablet so I can connect an external hard drive.it would make my life easier to just plug the drive into the tablet instead of copying files to an SD card or some other way to transfer large files. It would also make the tablet a lot more usable for other projects that I am thinking of. Any input on this would be very helpful.

# Answer
> 0 votes
Android does support connecting USB Storage device. The speed of reading/writing would however, depend on the USB port (if it is a 2.0 port, it will be comparatively slower than a 3.0 port), but it should just work.

---
Tags: tablet, usb-c
---