Sample Header Ad - 728x90

Android Enthusiasts

Q&A for enthusiasts and power users of the Android operating system

Latest Questions

1 votes
0 answers
54 views
It's 2025, 8 years and 8 versions after launch - what happened to Project Treble?
From my understanding Project **Treble** was supposed to separate Android's OS data from the OEM's binaries (which are more or less equivalent to the drivers one installs on Windows) into different partitions. From that point on, Android device certification would include ensuring a device could boo...
From my understanding Project **Treble** was supposed to separate Android's OS data from the OEM's binaries (which are more or less equivalent to the drivers one installs on Windows) into different partitions. From that point on, Android device certification would include ensuring a device could boot Google's Generic System Images and Treble support was supposed to become mandatory for devices released with Android 9.0 or later. By this logic, seven years later, everything one could reasonably get their hands on would be Treble compliant - yet custom ROMs still seem to be made bespoke to individual devices, and I do not find much mention of people installing Google's GSIs. Why? Did Treble fail in its original purpose somehow? Why is there still no equivalent to doing a clean Windows install for Android devices?
VelvetRebel (141 rep)
Jul 1, 2025, 12:06 PM • Last activity: Jul 1, 2025, 03:14 PM
0 votes
0 answers
97 views
How do I connect my rooted Android device to my PC as a USB Drive
I want to connect my phone to my pc and the pc detects the phone as a USB flash drive, only one partition, not as an MTP device, like it always does when switching USB modes from charging only to file transfer. Is that possible?, I am on a rooted Android 13 GSI I need that because the GSI I am using...
I want to connect my phone to my pc and the pc detects the phone as a USB flash drive, only one partition, not as an MTP device, like it always does when switching USB modes from charging only to file transfer. Is that possible?, I am on a rooted Android 13 GSI I need that because the GSI I am using doesn't support MTP on my device.
Insertx2k_Dev (21 rep)
Feb 5, 2025, 08:33 PM
2 votes
1 answers
715 views
Is there a way to receive security updates after vendor stops them, without compromising SafetyNet attestation?
Imagine the following situation: - The vendor of my phone has stopped providing security patches for the stock OS. - The HW is perfectly fine and powerful enough for years to come, so I'm definitely not willing to replace it just to get access to security patches. - Running a phone OS with unfixed s...
Imagine the following situation: - The vendor of my phone has stopped providing security patches for the stock OS. - The HW is perfectly fine and powerful enough for years to come, so I'm definitely not willing to replace it just to get access to security patches. - Running a phone OS with unfixed security vulnerabilities makes me uneasy. (It feels insane enough to run a computer at home with an OS that's a year behind on security patches. It's twice as insane to do the same with a device that I routinely take to all kinds of hostile environments and untrusted networks.) - Authors of all kinds of random apps have grown a habit of requiring SafetyNet attestation. - I don't need root access to my phone, and I can live with losing some of the proprietary vendor-provided features. I also don't care too much about running the latest Android version, as long as it's receiving security fixes and is compatible with most apps. I know I have the following two options: - Stick to the stock vendor OS, which is gradually going to become full of security holes. However, SafetyNet passes and I can run all kinds of apps because they feel safe on my device. - Install a custom OS. This will fail SafetyNet, unless I use a tool to hack around it and try to pretend the phone is not rooted. This approach is likely to stop working at some point, leaving me with a device that fails SafetyNet. Thus although my device may have up-to-date security patches, apps will refuse to run because they deem the device insecure. **Is there a third way, which would let me stay up-to-date on security patches while not breaking SafetyNet?** I can imagine something like a pure AOSP system, perhaps built and signed by Google or another vendor, that I could run unrooted and unmodified (relying on vendor drivers through the Treble thing).
TooTea (121 rep)
Sep 13, 2020, 12:26 PM • Last activity: Nov 27, 2024, 06:03 PM
0 votes
0 answers
240 views
How to reduce GSI .img file size to flash in system partition?
I want to install a GSI to Huawei P10, but it does not accept big files to flash in the system partition: `ProjectElixir_4.0_arm64_bgN-14.0-20240108-1305-OFFICIAL`. When I try to flash it via fastboot, I get: `FAILED (remote: 'sparse flash write failure')` How to reduce the .img of the GSI?
I want to install a GSI to Huawei P10, but it does not accept big files to flash in the system partition: ProjectElixir_4.0_arm64_bgN-14.0-20240108-1305-OFFICIAL. When I try to flash it via fastboot, I get: FAILED (remote: 'sparse flash write failure') How to reduce the .img of the GSI?
DD.Zz (1 rep)
Feb 20, 2024, 06:10 PM • Last activity: Feb 21, 2024, 03:18 PM
3 votes
1 answers
2542 views
How to install GSI on Samsung Galaxy Tab Active3
I am trying to flash an Android 12 GSI onto my Samsung Galaxy Tab Active3. Goal is to install the GSI without root / voiding the warranty. My company produces an app which is primarily used on Android on Galaxy Tab Active devices. It's expected Galaxy Tab Active3 will get Android 12 update in the ne...
I am trying to flash an Android 12 GSI onto my Samsung Galaxy Tab Active3. Goal is to install the GSI without root / voiding the warranty. My company produces an app which is primarily used on Android on Galaxy Tab Active devices. It's expected Galaxy Tab Active3 will get Android 12 update in the next few months and we wanted to do some regression testing in advance of that. Hence the need to get Android 12 GSI onto the Tab Active3. Device is an arm64 so I downloaded the arm64+gms version of Android 12 GSI (from Google's website). I have successfully unlocked the bootloader, and enabled DSU support. The device supports Project Treble and the VNDK isolated namespace, so in theory should support GSIs. Everything I tried so far has failed. Any ideas to get it working? ## Manual DSU I have tried to install the GSI by manually starting the DSU via activity manager. Every time it just says "Installation failed" after reaching about 50% progress. I have tried setting different sizes for the USERDATA: 8GB (Google's recommended size), 2GB and 1GB. I get the same error every time. The device has around 40GB free space and the GSI image size is around 2GB, so it shouldn't be anything to do with the space requirements. Logcat reports an error:
11-11 13:10:09.620  1103  3695 I DynamicSystemService: Failed to install system
11-11 13:10:09.621 16445 23403 E InstallationAsyncTask: java.io.IOException: Failed to start installation with requested size: 1257738436
This doesn't help unfortunately; it is thrown from the following file and this is just thrown if there is any error in the underlying dynamic installation: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java PS: Unfortunately the device does not support DSU Loader even though it's running Android 11 (searching for "dsu" in the settings returns no relevant results). Apparently none of the Samsung devices are supporting DSU Loader. ## Fastboot and FastbootD The device can be rebooted into fastboot mode (adb reboot bootloader) but every command just hangs forever (except for fastboot devices, which does detect the device). I tried fastboot reboot fastboot, but it just reboots into the standard mode of the device and does not enter a fastboot userspace mode (fastbootd mode) as some have suggested it should. ## Heimdall At least one person has said they can patch GSIs using Heimdall: https://forum.xda-developers.com/t/can-i-flash-gsi-roms-with-odin.4029921/ That person was able to flash their GSI to the SYSTEM partition, but my device doesn't have a SYSTEM partition. The partitions are like SUPER, PRISM, etc. I'm not able to get Heimdall working properly on Windows 10. I have tried with WinUSB, libusb0 and libusbK, but the same is true for all of them. After rebooting the device into ODIN mode, the device can be detected with heimdall detect, but I can't do anything more including heimdall print-pit, as I get a "Failed to access device. libusb error: -12" error. I managed to set up Heimdall on an Ubuntu instance of WSL and map the USB using USBIPD. Inside WSL, heimdall print-pit does work but I can't get further to flashing anything (I tried to flash the GSI to SUPER, not sure if this was a good idea but anyway it failed) as I get a "Protocol initialisation failed!" error. ## Odin I am not sure if Odin even supports GSIs and I can't find anyone saying it supports them. I have tried flashing the GSI as an AP in Odin 3.12, 3.13, 3.14 and the patched 3.14 which removes signature checks. But every time it just fails. ## Custom recovery Just to also note, it seems none of the custom recoveries (TWRP, SHRP, Orangefox etc) support the Tab Active3, or I could have tried to flash those using Heimdall/Odin and then use them to flash the GSI. But I feel it's likely I would have had the same issues, at least with Heimdall. ## EDIT: Heimdall on native Linux @Robert in the comments below suggested I run Heimdall on native Linux rather than on WSL or the Windows version. This worked better and fixed the issues I was having before with Heimdall. I then tried to flash VBMETA (the one which is bundled with the GSI) using Heimdall which worked, however my device is now soft-bricked, can only boot into Download Mode, and gives the following error:
ODIN MODE (AVB fail)
vbmeta: Public key used to sign data rejected. (5)
vbmeta: VERIFICATION_DISABLED bit is set.
CUSTOM VBMETA
VBMETA : No sign info
VBMETA ,
@alecxs in the comments had suggested flashing a VBMETA generated from avbtool instead; I tried this also, but got almost the same situation and a very slightly different error output:
ODIN MODE (AVB fail)
vbmeta: Error verifying vbmeta image: OK_NOT_SIGNED (3)
vbmeta: VERIFICATION_DISABLED bit is set.
CUSTOM VBMETA
VBMETA : No sign info
VBMETA ,
## EDIT 2: Heimdall on WSL again, VBMETA findings, and how I got DSU working I found that both Heimdall on native Linux and Heimdall on WSL actually suffer from the same problem. You can only post one command to the device, then subsequent commands fail with "protocol initialisation failed". On WSL I was doing things like heimdall print-pit --no-reboot and that's why I was facing issues when flashing. Basically, if you get protocol initialisation failed, just reboot the device and it should work. Samsung devices seem to do a signature check on VBMETA and only accept official Samsung-signed ones. I found two different VBMETA images in my stock ROM - vbmeta.img and vbmeta_samsung.img. I happened to notice that vbmeta_samsung.img has the same file size as the vbmeta disable images. By the time I'd got this fixed I'd flashed vbmeta_samsung.img and then done a factory reset. I'm not sure if this was strictly necessary though, as after flashing vbmeta.img it still worked. Not sure if re-flashing original stock vbmeta.img will have re-enabled AVB though. Although I'd say it's unlikely, as even Google themselves say you need to disable AVB in order to use DSU. How I got DSU fixed eventually (aside from the above) - I had made a really stupid error when running the DSU command. For KEY_SYSTEM_SIZE I was passing the gzipped system size, not original system image size. This is why the installation always failed after 50%, because it was only installing 50% of the system image. Also another really important thing to note is that after running DSU, you have to restart the system from the DSU notification and not from the normal power menu of the device.
Kidburla (522 rep)
Nov 11, 2021, 05:59 PM • Last activity: Jan 23, 2024, 02:05 PM
4 votes
0 answers
158 views
Bluetooth speaker failed back to phone speaker when there's a power status change on a GSI ROM
#### Current Behavior: When my Bluetooth earphone reports a power change to the phone, the Bluetooth disconnects and falls back to the phone speaker. #### The problem The Bluetooth speaker falls back to the phone speaker when there's a power status change. #### Device information Device: Redmi Note...
#### Current Behavior: When my Bluetooth earphone reports a power change to the phone, the Bluetooth disconnects and falls back to the phone speaker. #### The problem The Bluetooth speaker falls back to the phone speaker when there's a power status change. #### Device information Device: Redmi Note 11T 5G (codename: evergo) Build Flavor: PixelExperience_Plus_arm64-ab-13.0-20230104-UNOFFICIAL.img.xz #### Logs
01-07 21:40:12.443  4947  5548 E bluetooth: packages/modules/Bluetooth/system/bta/dm/bta_dm_pm.cc:1016 bta_dm_pm_btm_status: Received unknown power mode status event:5
01-07 21:40:13.605  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_api.cc:1410 GATT_Disconnect: conn_id=6
01-07 21:40:13.605  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_main.cc:328 gatt_update_app_hold_link_status: removed gatt_if=6
01-07 21:40:13.605  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/eatt/eatt_impl.h:880 disconnect:  Device: [Bluetooth Addreess here, removed], cid: 0xffff
01-07 21:40:13.605  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_main.cc:392 gatt_update_app_use_link_flag: GATT fixed channel is no longer useful, start link idle timer for 1 seconds
01-07 21:40:13.605  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_api.cc:1084 GATT_SetIdleTimeout: idle_timeout=1, status=1, (1-OK 0-not performed)
01-07 21:40:13.606  4947  5548 W bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_main.cc:324 gatt_update_app_hold_link_status: attempt to remove non-existing gatt_if=6
01-07 21:40:13.606  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gatt/gatt_main.cc:356 gatt_update_app_use_link_flag: App status is not updated for gatt_if=6
01-07 21:40:14.651  4947  5548 E bluetooth: packages/modules/Bluetooth/system/stack/btm/btm_sco.cc:957 btm_sco_on_disconnected: Unable to find sco connection
01-07 21:40:14.652  4947  5548 I bluetooth: packages/modules/Bluetooth/system/stack/gap/gap_ble.cc:303 client_connect_cback: No active GAP service found for peer:xx:xx:xx:xx:f1:47 callback:Disconnected
01-07 21:40:14.681  1737  1764 W BroadcastQueue: Permission Denial: receiving Intent { act=android.bluetooth.device.action.ACL_DISCONNECTED flg=0x5000010 (has extras) } to com.google.android.apps.wearables.maestro.companion/.connectivity.ClassicBTReceiver requires android.permission.BLUETOOTH_CONNECT due to sender com.android.bluetooth (uid 1002)
Tsing Kwai (41 rep)
Jan 10, 2023, 12:42 AM • Last activity: Jan 23, 2024, 02:04 PM
4 votes
0 answers
6443 views
Do I need a 'vbmeta' partition to install GSI?
Following the official GSI installation instructions from [Google](https://source.android.com/setup/build/gsi#flashing-gsis), they say to run `fastboot --disable-verification flash vbmeta vbmeta.img`. When I run that, I get the following message: ``` Rewriting vbmeta struct at offset: 0 Sending 'vbm...
Following the official GSI installation instructions from [Google](https://source.android.com/setup/build/gsi#flashing-gsis) , they say to run fastboot --disable-verification flash vbmeta vbmeta.img. When I run that, I get the following message:
Rewriting vbmeta struct at offset: 0
Sending 'vbmeta' (4 KB)                            OKAY [  0.010s]
Writing 'vbmeta'                                   FAILED (remote: 'This partition doesn't exist')
fastboot: error: Command failed
Does this mean dm-verity is not in use, and I can ignore this message? Do I need to make a partition? How do I do that? Right now the GSI image is not booting for me. I am flashing onto the Blackview BV5500 Pro, if it matters.
Zachary Vance (141 rep)
Nov 17, 2020, 04:09 AM • Last activity: Jan 23, 2024, 01:59 PM
0 votes
0 answers
550 views
Difference between GSI ROMs
I have a Samsung Galaxy Tab 4 8.0 (SM-T330NU) supported by Project Treble. It says the GSI is system-arm32-binder64-ab-vndklite.img.xz, but what I find [here][1] on GitHub is system-**squeak**-arm32-binder64-ab-vndklite-gogapps.img.xz. Can I install that on the tablet or does it have to be that spec...
I have a Samsung Galaxy Tab 4 8.0 (SM-T330NU) supported by Project Treble. It says the GSI is system-arm32-binder64-ab-vndklite.img.xz, but what I find here on GitHub is system-**squeak**-arm32-binder64-ab-vndklite-gogapps.img.xz. Can I install that on the tablet or does it have to be that specific GSI?
user405457
Jan 19, 2024, 01:54 PM • Last activity: Jan 23, 2024, 01:55 PM
Showing page 1 of 8 total questions