How To Guide Step-by-Step 1.How to mount RO to RW |2.VegaBobo DSU |3.Custom AP Step by Step (install GSI without TWRP/Fastboot Part 1,2,3for A/B Partition Device)

Search This thread

tom.android

Senior Member
Jul 12, 2016
919
300

The only way to get away from the official firmware.

for this device A/B Partition Based on Android12
----------------------------

->Enable Linux Subsystem and Install Ubuntu in Windows 10,11
(WSL2 For modify GSI system image)
->A generic method of patching any Android super images.

------------------------------------------------

->Creating CustomAP framework file for Odin flashing tool.

(for lack of TWRP/Fastboot)

------------------------

->Using Android 11 Fastboot Mode For install GSI

(Required TWRP , Fastboot Driver for Win)

-----------------------------+

Test GSIs with VegaBobo/DSU First

IF it works well

Use Native CustomAP

(DSU v2 Not supported Stock A12 )

Much much more comfortable and safe

No Computer needed.

No TWRP No Fastboot

----------------------------------------------------



Step by Step for changes mount Read Only To Read/Write.






-------------------------------------------------------------------

Odin Resources:

OFFICIAL Samsung Odin v4 1.2.1-dc05e3ea - For Linux



Convert IMG to TAR (zip to tar.md5) Odin Flashable Files




21 Nov 2022

How to mount Read Only System TO Read/Write.




16 Nov 2022

Final PE A12.1 GSI








13 Nov 2022

Howto install 3in1






7 Nov 2022
Test New AOSP Android13 with VegaBobo DSU , work well and safety.



6 Nov 2022 (DSU Sideloader with Android 11)
Because of very boring about new installation for testing New GSI A13. ( used too many hours for restored back, too long for creat our CustomAP.

then find the easy way to....






Working with new VegaBobo DSU Sideloader v.2.01






Safety First



Test GSIs with DSU First

IF work well

Use Native CustomAP


30 Oct 2022
✓ Don't try testing Android 13 with base on TrebleDroids patch. ( bootanimation loop )

Download CherishOS 12L for SM-T220
( CustomAP for Multi CSC OXM)
You must used Android 12 based ( T220XXU1BVGB)





Check your Multizone for OXM here https://samfrew.com/model/SM-T220/



>>>>>>ProjectBlaze 12L unofficial GSI
Add Battery Charging Limit Apps





28 Oct 2022
microG with ArrowOS GSI Unofficial




25 Oct 2022
*Don't update (Sep Security Update)

If you want to drowngrad to Android 11

cause Bootloader has changed. from U1 to S1.



ProjectBlaze 12L GSI





20 Oct 2022
ArrowOS 12.1 GSI Unofficial Now support exFAT sdcard




13 oct 2022 ( For Samsung Devices)
UPDATE: TUTORIAL Create CustomAP framework For Odin Flashing. (Part 1, 2)



"Step by Step CREATE CustomAP for Odin Flashing with Patching Dynamic Partitions."

(Part 2)




"Step by Step CREATE CustomAP for Odin Flashing

(Part 1)


Resources:
✓Patching Dynamic Partitions in Android Super Image



✓Where is the Ubuntu file system root directory in Windows Subsystem for Linux and vice versa?



✓How to install Ubuntu sub-system with WSL2 ?



✓Install Ubuntu on WSL2 on Windows 10



10 Oct 2022
SparkOS v12.6 with Mod Offline Charging.
6 Prerequisites for Tab A7 Lite GSI installation



READ:Step BY Step CREATE CustomAP framework file for GSI flashing with Odin.



How to chooses GSI variant?
vndklite variant or non-slim varian = R/W + Secure (No SU)


Sep 2022
New SUPERIOR OS GSI12L (Base A12)



Sound modules for CherishOS A12L

========
!! TEST UPDATE CUSTOM AP firmware for install GSI WITHOUT LOST DATA.
I have founded KG 'Broken' status after Odin fashing with Home_CSC although uninstall Magisk before. But i can flash Stock Firmware back to ' Checking' status.


NOTE:- By normal this 'Broken' status , we can't boot into system.

>>>>>>>>>>>>>

New Update: for Android 12
" Custom AP for install GSI without TWRP
(Step by Step) with imjtool ( no lpunpack )"
install in action here https://forum.xda-developers.com/t/...ite-without-twrp.4456821/page-9#post-87418505



Step by Step making Custom AP firmware.

here: https://forum.xda-developers.com/t/...stom-ap-overlay-making.4473159/#post-87204333



>>>>>>>>>>>>>>



Treble GSI Overlay
Enable Auto-Screen Brightness






>>>>>>>>>>>>>

Warning ! First flash install A12 with Odin then/or delete cache device after reboot system will auto-relock Bootloader.
( Back to Stock Firmware (no root) Always , Before changes across System )

Full tutorial list: ( if you are in a hurry)
1. CherishOS unofficial GSI Base on A11




2. Pixel experience plus GSI Base on A11




3. SUPERIOR OS. (BASE ON A11 ROM) unofficial GSI (Recommended)






TWRP FOR Android 11 Device SM-T22x
No touch supported.

Used only (TWRP 's Fastboot)Mode.



》》FIRST TIME INSTALLATION

Howto install TWRP For SM-T225

# Patch Samsung AP Firmware via Magisk v24.0 ( patched entire AP file)

1. Install Magisk.apk on your device SM-T225 with select no update checking, and transferred AP_xxx.tar.md5 from computer to your tab.



2. Patch Samsung AP Firmware via Magisk Manager.

( Once done, the newly created magisk_patched.tar file will be present under the

Downloads folder on your device.)



3. you may now transfer this patched TAR file to the folder on your PC where other extracted firmware files (AP, BL, CP, CSC, and HOME_CSC) are present.



4. FLASH it with ODin as usual by used magisk_patched.tar file at AP slot .



5. REBOOT SYSTEM Quick SETUP < NO NEED INTERNET>



6. Power Off and press Volum up +Volumn down + USB for boot into Download mode



7. FLASH TWRP.tar from https://github.com/DevZillion/android_device_samsung_gta7lite/releases at "AP slot"

But this time set Odin option NO Auto- REBOOT, yes do it yourself with key press ( power + volumn up).



## if you can't use keypress but reboot to the system , you can use cmd " adb reboot recovery "



When had access to twrp menu

Go to Advanced > Terminal and type "multidisabler" (without quotes", then data wipe.
Now reboot into system, after completing first setup of the device reboot into TWRP again to see if you can see the contents of your Internal Storage, you should, if yes you have successfully disabled Samsung encryption of internal storage.
NOTE: If you wish to install TWRP without rooting, there are numerous pitfalls to consider. For example, a stock device is protected by Android Verified Boot. This is implemented as a vbmeta partition that contains cryptographic digests for verifying the integrity of boot.img, recovery.img and other partitions/images. Flashing TWRP without first flashing a vbmeta image with verity disabled will render your device unable to boot.
》》》》》》》》》》》》》》》》》



QUICK RESTORE TWRP

FROM (ANY GSI )




!!! Want more detail , please download Ain1.jpg.

IF YOU DON'T KNOW ABOUT " TWRP FASTBOOT".

Easy & Quick RESTORE FROM (ANY GSI ) BACK TO (STOCK with TWRP)
!!! If you are already on the A11 ***(pure stock)

-( U must be on stock rom to flashsing GSIs .)

!!! Bootloader unlocked.

check Developer options

OEM unlocking toggle is grayout. (full state unlocked)
USB debugging is enable . ( connect with Computer, run "adb devices" Enter ) gives permission to debugging with your computer.
!!! Download the actual Firmware A11 with Frija or samfirm or Bifrost, and extract

it and you will get 5 files (AP, BL, CP, CSC and HOME_CSC). All files are in tar format and can be opened by 7-Zip, WinRAR or other archrive software.



1. Flash the FW A11

- BL + AP + CP + CSC ( clean data)

- put (TWRP + vbmeta_disabler)dot tar in USERDATA slot.

and click "Start"



NOTE.

• Default Auto reboot to system.



• Your device will reboot but it will not boot into system as "vbmeta signature" has changed.



2. When Auto Boot into TWRP mode from step 1.

Connect USB OTG and mouse.

In your TWRP Recovery menu.



• Go to Advanced > Terminal, type: multidisabler. Click Enter.



• Go back to Main menu , Wipe > Format Data > type yes.



Option<<<Install the Magisk.apk with TWRP >>>



3. Boot---->System

Done



NOTE: If you wish to install TWRP without rooting, there are numerous pitfalls to consider. For example, a stock device is protected by Android Verified Boot. This is implemented as a vbmeta partition that contains cryptographic digests for verifying the integrity of boot.img, recovery.img and other partitions/images. Flashing TWRP without first flashing a vbmeta image with verity disabled will render your device unable to boot.



Download:

(TWRP225 + vbmeta_disabler).tar https://mega.nz/file/QTIWmTJb#jIneu-vSC-tOSzN-mFhOurCtShGuZTkyoRrQ791R24s



twrp 220 + vbmeta_disabler :https://mega.nz/file/BTR1FbDL#oMfBn7TQCy2j0Qk3EtIOafoD2IY01AsX8UIOR-mSSVc



>>>>>>>>>>>>>>>>>>>>>>



BACKUP CURRENT STATE OF THE SYSTEM BY TWRP
1. Forced Restart into TWRP Recovery mode.

Or command>> adb reboot recovery

( key combo press & hold Power + Vol up until screen showed yellow text " warranty bit" )



2. Black screen show then press power then volumn button. For activated recovery screen.



3. At Backup menu select

Data, Boot, Recovery, Super, NVRAM, NVdata

Select storage -----> internal or external SD card

Swipe to Backup






Then you can try & test GSI BACK and FORTH with my tutorial.



>>>>>>>>>>>>>>>>

✓ Treble GSI Overlay for SM-T220 , 225 ,225N


Overlay is crucial as it fixes the following :



• Brightness stack



• CPU core frequencies



• Missing battery usage stats



• Missing night light toggle



• Ambient light & Doze



In Action & Download here: https://forum.xda-developers.com/t/...-a7-lite-sm-t225-t-220.4487817/#post-87379271

 

Attachments

  • platform-tools.zip
    5.8 MB · Views: 78
  • MTK_Driver_Auto_Installer_EXE_v5.1632.00_DROIDWIN.rar
    8.9 MB · Views: 78
  • MTK_ALL_USB_VCOM_DRIVERS_DROIDWIN.rar
    395.5 KB · Views: 33
  • Windows+11+Fastboot+Drivers.zip
    8.3 MB · Views: 64
  • Ain1_0.jpg
    Ain1_0.jpg
    963.9 KB · Views: 800
  • usb_driver_r13-windows.zip
    8.3 MB · Views: 39
  • Ain1.jpg
    Ain1.jpg
    3.6 MB · Views: 171
  • ain1.PNG
    ain1.PNG
    102.5 KB · Views: 2,983
  • udata+vbmeta-disable+twrp.tar
    29.8 MB · Views: 52
  • vbmeta_disabled_R.tar
    11.5 KB · Views: 25
  • Data_Encryption_Recovery_Restoration_Disabler_1.1_By_Serajr (1).zip
    2.1 KB · Views: 25
  • platform-tools_r33.0.2-windows.zip
    6 MB · Views: 24
  • Backup1.png
    Backup1.png
    54.1 KB · Views: 130
  • Backup2.png
    Backup2.png
    89.8 KB · Views: 2,000
  • Screenshot_20220827-130532_Gallery.jpg
    Screenshot_20220827-130532_Gallery.jpg
    1 MB · Views: 1,450
  • Screenshot_20220918_193932_Vivaldi Browser.jpg
    Screenshot_20220918_193932_Vivaldi Browser.jpg
    432.6 KB · Views: 919
Last edited:

tom.android

Senior Member
Jul 12, 2016
919
300

Part 2​

Modified sub-partition of super.img

Step by Step

CREATE CustomAP for Odin Flashing with Patching Dynamic Partitions.


*** the continue part of Step by Step CREATE CustomAP framework file for GSI Flashing with Odin.
(Required Win10 with wsl2 or Ubuntu or VirtualBox)

(Our scope)​

What are we doing now ?

1) unpacking super.raw with imjtool. ( super.img.lz4 -->super.img-->super.raw)
2) resizing system.img (in order to insert our modifications to the rom)
3) mounting system.img
4) do our modifications
5) umounting system
6) shrink edited system.img to the minimal size
7) generating new super.img
8) Create customAP file ( for flashing it to our device with odin.)

( Essencial tools)​

Extract Sub-Partition inside super.img.lz4 tool​

## Download Samsung framework file. (Stock Firmware)

## Extract "super.img.lz4" from (AP framework file) with (unzip FILE.zip) command. or uses utility from win 10

## Decompress "super.img" from "super.img.lz4" with LZ4 command

## sparse format ""super.raw" from "super.img" with simg2img command

## Use imjtool to extract the partitions of super.raw. Notice that partitions in a super image are split into several groups.

(The exact grouping varies across devices/OS versions, so one should always use imjtool to check first.)

Code:
wget http://newandroidbook.com/tools/imjtool.tgz && tar xzvf imjtool.tgz
Screenshot from 2022-10-14 10-30-24.png
imjtool v2.0 beta1
Screenshot from 2022-10-14 10-38-37.png
*You may also use the official lpunpack for extraction but it can’t display the group schema.

Code:
./imjtool.ELF64 super.raw extract
output:
MMapped: 0x7f5f4a89d000, imgMeta 0x7f5f4a89e000
liblp dynamic partition (super.img) - Blocksize 0x1000, 2 slots
LP MD Header @0x3000, version 10.0, with 4 logical partitions on block device of 5812 GB, at partition super, first sector: 0x800
Partitions @0x3080 in 2 groups:
Group 0: default
Group 1: main
Name: system (read-only, Linux Ext2/3/4/? Filesystem Image, @0x100000 spanning 1 extents of 3 GB) - extracted
Name: product (read-only, Linux Ext2/3/4/? Filesystem Image, @0xe6700000 spanning 1 extents of 1 GB) - extracted
Name: vendor (read-only, Linux Ext2/3/4/? Filesystem Image, @0x12d500000 spanning 1 extents of 685 MB) - extracted
Name: odm (read-only, Linux Ext2/3/4/? Filesystem Image, @0x158300000 spanning 1 extents of 4 MB) - extracted

Screenshot from 2022-10-14 11-20-36.png

Note: Notice file size of "system.img" =3GB

Download Samsung Firmware tool

Install Bifort


Download "Bifrost_Linux.zip"
Extract to home

change directory to
Code:
 cd Bifrost/bin

give execute permission
Code:
 chmod +x Bifrost

Run apps
Code:
 ./Bifrost

Screenshot from 2022-10-14 13-27-17.png


CSC Samsung code https://technastic.com/csc-home-csc-samsung-odin/

Repack Partition Tools

Download otatools
Extract to home
Screenshot from 2022-10-14 12-56-28.png

Give its execute permission or 0755

Code:
cd otatools/bin

Code:
chmod +x lpmake

Interact with the internal partition’s file systems tools​

## Available in common Linux distributions
Extract lz4 archirve: lz4

Usage :
lz4 [arg] [input] [output]

input : a filename
with no FILE, or when FILE is - or stdin, read standard input
Arguments :
-1 : Fast compression (default)
-9 : High compression
-d : decompression (default for .lz4 extension)
-z : force compression
-D FILE: use FILE as dictionary
-f : overwrite output without prompting
-k : preserve source files(s) (default)
--rm : remove source file(s) after successful de/compression
-h/-H : display help/long help and exit

Sparse Format

simg2img

Usage: simg2img <sparse_image_files> <raw_image_file>

fallocate, resize2fs, dumpe2fs, e2fsck


(Inaction Steps, "system.img" modification)

1.) Format of File

Let’s say we want to modify system.img. (May be from any GSI )
Firstly, check the file format.

Code:
sudo file system.img
Ex.Output
system.img: Linux rev 1.0 ext2 filesystem data, UUID=6a979985-101a-4fa4-bd87-f3ff81ebaaba (extents) (large files) (huge files)


Although it shows ext2, but it’s in fact an ext4 image.


2.) Resizing < system.img>​


All imges have been shrunk to their minimum sizes. In other words, there’s zero space left in the partition of which the image file holds. As we would like to add more files to it, we need to firstly enlarge the file to create some space, then expand the file system accordingly.

# Enlarge the file to 2G. (It can be any size)
# allocates more space for system.img 2GB

Code:
sudo fallocate -l 2G system.img

Code:
ls -lah system.img
Ex.Output
---------- 1 fortuner6898 fortuner6898 2.0G Oct 12 13:18 system.img


# Resize the filesystem
this command increases the file system size of the partion to ....xG
Try

Code:
 resize2fs system.img 2G
resize2fs 1.46.5 (30-Dec-2021)
resize2fs: New size smaller than minimum (871879)
*Note not fit

TRY
Code:
 sudo resize2fs system.img 3G
Ex.Output
resize2fs 1.45.5 (07-Jan-2020)
resize2fs: New size smaller than minimum (890902)
*Note not fit

FINAL TRY

Code:
resize2fs system.img 4G
resize2fs 1.46.5 (30-Dec-2021)
Resizing the filesystem on system.img to 1048576 (4k) blocks.
The filesystem on system.img is now 1048576 (4k) blocks long.

*Note this time OK


3.) Mounting & Problems.


create mount point directory
Code:
mkdir system

Code:
sudo mount -t ext4 -o loop system.img system
Ex.Output Error!!

Code:
mount: system: mount failed: Operation not permitted.


3.1) Problem 1. came from no loop command.

*** ERROR MUST BE FIXED

if you used (wsl1) linux from win 10 "mount" command, changes it to wsl2.




Resource: Windows Subsystem for Linux.

>>>Howto Fix Ubuntu loop device command---> Open Spoiler
Checking..
Ubuntu terminal

Code:
cd /dev
Code:
ls -l | grep -v tty

output
total 0
drwxr-xr-x 1 root root 4096 Oct 13 07:38 block
crw-rw-rw- 1 root root 120, 0 Oct 13 07:38 dxg
lrwxrwxrwx 1 root root 13 Oct 13 07:38 fd -> /proc/self/fd
crw-r--r-- 1 root root 1, 11 Oct 13 07:38 kmsg
crw-rw-rw- 1 root root 10, 50 Oct 13 07:38 lxss
crw-rw-rw- 1 root root 1, 3 Oct 13 07:38 null
drwxr-xr-x 1 root root 0 Oct 13 07:38 pts
crw-rw-rw- 1 root root 1, 8 Oct 13 07:38 random
lrwxrwxrwx 1 root root 8 Oct 13 07:38 shm -> /run/shm
lrwxrwxrwx 1 root root 15 Oct 13 07:38 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Oct 13 07:38 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Oct 13 07:38 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 1, 9 Oct 13 07:38 urandom
crw-rw-rw- 1 root root 1, 5 Oct 13 07:38 zero

>>> not founded loop command ( not wsl2)

Howto update
1.open windows10 update
setting-->windows update--->Advanced option = open receive update

2. open windows system--->command promp-->Administrator mode
cmd>
Code:
wsl --update

output

Checking for updates...
No updates are available.
Kernel version: 5.10.102.1 <----wsl2

check which Ubuntu version has installed.

CMD>.
C:\Windows\System32>
Code:
wsl --list --verbose

NAME STATE VERSION
Ubuntu-20.04 Stopped 1

convert to WSL2

cmd>
Code:
wsl --set-version Ubuntu-20.04 2

output
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The operation completed successfully.
=================================

TEST LOOP with WSL2

[email protected]:/dev$ ls -l | grep -v tty
total 0
crw-r--r-- 1 root root 10, 235 Oct 14 15:49 autofs
drwxr-xr-x 2 root root 40 Oct 14 15:49 block
drwxr-xr-x 2 root root 80 Oct 14 15:49 bsg
crw------- 1 root root 10, 234 Oct 14 15:49 btrfs-control
drwxr-xr-x 3 root root 60 Oct 14 15:49 bus
crw------- 1 root root 5, 1 Oct 14 15:49 console
crw------- 1 root root 10, 62 Oct 14 15:49 cpu_dma_latency
crw------- 1 root root 10, 203 Oct 14 15:49 cuse
lrwxrwxrwx 1 root root 13 Oct 14 15:49 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Oct 14 15:49 full
crw-rw-rw- 1 root root 10, 229 Oct 14 15:49 fuse
crw-r--r-- 1 root root 1, 11 Oct 14 15:49 kmsg
crw------- 1 root root 10, 237 Oct 14 15:49 loop-control
brw------- 1 root root 7, 0 Oct 14 15:49 loop0
brw------- 1 root root 7, 1 Oct 14 15:49 loop1
brw------- 1 root root 7, 2 Oct 14 15:49 loop2
brw------- 1 root root 7, 3 Oct 14 15:49 loop3
brw------- 1 root root 7, 4 Oct 14 15:49 loop4
brw------- 1 root root 7, 5 Oct 14 15:49 loop5
brw------- 1 root root 7, 6 Oct 14 15:49 loop6
brw------- 1 root root 7, 7 Oct 14 15:49 loop7
drwxr-xr-x 2 root root 60 Oct 14 15:49 mapper
crw------- 1 root root 1, 1 Oct 14 15:49 mem
drwxr-xr-x 2 root root 60 Oct 14 15:49 net
crw-rw-rw- 1 root root 1, 3 Oct 14 15:49 null
crw------- 1 root root 10, 144 Oct 14 15:49 nvram
crw------- 1 root root 108, 0 Oct 14 15:49 ppp
crw-rw-rw- 1 root root 5, 2 Oct 14 16:56 ptmx
drwxr-xr-x 2 root root 0 Oct 14 15:49 pts
brw------- 1 root root 1, 0 Oct 14 15:49 ram0
brw------- 1 root root 1, 1 Oct 14 15:49 ram1
brw------- 1 root root 1, 10 Oct 14 15:49 ram10
brw------- 1 root root 1, 11 Oct 14 15:49 ram11
brw------- 1 root root 1, 12 Oct 14 15:49 ram12
brw------- 1 root root 1, 13 Oct 14 15:49 ram13
brw------- 1 root root 1, 14 Oct 14 15:49 ram14
brw------- 1 root root 1, 15 Oct 14 15:49 ram15
brw------- 1 root root 1, 2 Oct 14 15:49 ram2
brw------- 1 root root 1, 3 Oct 14 15:49 ram3
brw------- 1 root root 1, 4 Oct 14 15:49 ram4
brw------- 1 root root 1, 5 Oct 14 15:49 ram5
brw------- 1 root root 1, 6 Oct 14 15:49 ram6
brw------- 1 root root 1, 7 Oct 14 15:49 ram7
brw------- 1 root root 1, 8 Oct 14 15:49 ram8
brw------- 1 root root 1, 9 Oct 14 15:49 ram9
crw-rw-rw- 1 root root 1, 8 Oct 14 15:49 random
crw------- 1 root root 251, 0 Oct 14 15:49 rtc0
brw------- 1 root root 8, 0 Oct 14 15:49 sda
brw------- 1 root root 8, 16 Oct 14 15:49 sdb
crw------- 1 root root 21, 0 Oct 14 15:49 sg0
crw------- 1 root root 21, 1 Oct 14 15:49 sg1
lrwxrwxrwx 1 root root 8 Oct 14 15:49 shm -> /run/shm
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 1, 9 Oct 14 15:49 urandom
crw------- 1 root root 7, 0 Oct 14 15:49 vcs
crw------- 1 root root 7, 1 Oct 14 15:49 vcs1
crw------- 1 root root 7, 128 Oct 14 15:49 vcsa
crw------- 1 root root 7, 129 Oct 14 15:49 vcsa1
crw------- 1 root root 7, 64 Oct 14 15:49 vcsu
crw------- 1 root root 7, 65 Oct 14 15:49 vcsu1
drwxr-xr-x 2 root root 60 Oct 14 15:49 vfio
crw------- 1 root root 10, 238 Oct 14 15:49 vhost-net
crw------- 1 root root 10, 63 Oct 14 15:49 vsock
crw-rw-rw- 1 root root 1, 5 Oct 14 15:49 zero
[email protected]:/dev$

It's only for linux subsystem installed after this command is set. " wsl --set-default-version 2"

Then after run
wsl --set-default-version 2
install new Ubuntu
or
Uninstall old Ubuntu and then install new one.
if run command Not success
wsl --set-version Ubuntu-20.04 2

Exam
C:\WINDOWS\system32>wsl --set-default-version 2
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The operation completed successfully.


3.2.) Problem 2: came from SHARED_BLOCKS


It turned out that system imgage in Android 10+ is formated with EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS, found by @topjohnwu.
In other words, it’s read-only.

We can run dumpe2fs and check “Filesystem features” to confirm that the image has shared_blocks turned on.


Code:
 sudo dumpe2fs system.img

Ex.Output
dumpe2fs 1.45.5 (07-Jan-2020)
dumpe2fs: Permission denied while trying to open system.img
Couldn't find valid filesystem superblock.

## Solution:
Luckily shared_blocks is merely a restriction at the file level. We can simply run e2fsck to remove it.

Code:
 sudo e2fsck -E unshare_blocks system.img
Ex.Output
e2fsck 1.45.5 (07-Jan-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/: ***** FILE SYSTEM WAS MODIFIED *****
/: 7953/8064 files (0.5% non-contiguous), 890901/898552 blocks

# # Check that the shared_block feature is gone.
Code:
sudo dumpe2fs  system.img

Ex.Out
dumpe2fs 1.45.5 (07-Jan-2020)
Filesystem volume name: /
Last mounted on: /
Filesystem UUID: 6a979985-101a-4fa4-bd87-f3ff81ebaaba
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr dir_index filetype extent sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 8064
Block count: 898552
Reserved block count: 0
Overhead blocks: 576
Free blocks: 7651
Free inodes: 111
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 288
Inode blocks per group: 18
Filesystem created: Mon Oct 10 13:22:09 2022
Last mount time: n/a
Last write time: Wed Oct 12 13:36:28 2022
Mount count: 0
Maximum mount count: -1
Last checked: Wed Oct 12 13:36:28 2022
Check interval: 0 (<none>)
Lifetime writes: 3501 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Default directory hash: half_md4
Directory Hash Seed: 06b89061-20ea-4d29-bcfe-6f40b0b487d3
Group 0: (Blocks 0-32767) csum 0xe0d5
Primary superblock at 0, Group descriptors at 1-1
Block bitmap at 2 (+2)
Inode bitmap at 3 (+3)
Inode table at 4-21 (+4)
0 free blocks, 0 free inodes, 103 directories
Free blocks:
Free inodes:
Group 1: (Blocks 32768-65535) csum 0xa982
Backup superblock at 32768, Group descriptors at 32769-32769
Block bitmap at 32770 (+2)
Inode bitmap at 32771 (+3)
Inode table at 32772-32789 (+4)
0 free blocks, 0 free inodes, 1 directories
Free blocks:
Free inodes:
Group 2: (Blocks 65536-98303) csum 0xfcd7
Block bitmap at 65536 (+0)
Inode bitmap at 65537 (+1)
Inode table at 65538-65555 (+2)
0 free blocks, 0 free inodes, 16 directories
Free blocks:
Free inodes:
Group 3: (Blocks 98304-131071) csum 0x3fe9
Backup superblock at 98304, Group descriptors at 98305-98305
Block bitmap at 98306 (+2)
Inode bitmap at 98307 (+3)
Inode table at 98308-98325 (+4)
0 free blocks, 0 free inodes, 9 directories
Free blocks:
Free inodes:
Group 4: (Blocks 131072-163839) csum 0xc769
Block bitmap at 131072 (+0)
Inode bitmap at 131073 (+1)
Inode table at 131074-131091 (+2)
0 free blocks, 0 free inodes, 9 directories
Free blocks:
Free inodes:
Group 5: (Blocks 163840-196607) csum 0xd240
Backup superblock at 163840, Group descriptors at 163841-163841
Block bitmap at 163842 (+2)
Inode bitmap at 163843 (+3)
Inode table at 163844-163861 (+4)
0 free blocks, 0 free inodes, 6 directories
Free blocks:
Free inodes:
Group 6: (Blocks 196608-229375) csum 0x5407
Block bitmap at 196608 (+0)
Inode bitmap at 196609 (+1)
Inode table at 196610-196627 (+2)
0 free blocks, 0 free inodes, 4 directories
Free blocks:
Free inodes:
Group 7: (Blocks 229376-262143) csum 0x4b24
Backup superblock at 229376, Group descriptors at 229377-229377
Block bitmap at 229378 (+2)
Inode bitmap at 229379 (+3)
Inode table at 229380-229397 (+4)
0 free blocks, 0 free inodes, 1 directories
Free blocks:
Free inodes:
Group 8: (Blocks 262144-294911) csum 0x482c
Block bitmap at 262144 (+0)
Inode bitmap at 262145 (+1)
Inode table at 262146-262163 (+2)
0 free blocks, 0 free inodes, 3 directories
Free blocks:
Free inodes:
Group 9: (Blocks 294912-327679) csum 0x9009
Backup superblock at 294912, Group descriptors at 294913-294913
Block bitmap at 294914 (+2)
Inode bitmap at 294915 (+3)
Inode table at 294916-294933 (+4)
0 free blocks, 0 free inodes, 1 directories
Free blocks:
Free inodes:
Group 10: (Blocks 327680-360447) csum 0x56cf
Block bitmap at 327680 (+0)
Inode bitmap at 327681 (+1)
Inode table at 327682-327699 (+2)
0 free blocks, 0 free inodes, 131 directories
Free blocks:
Free inodes:
Group 11: (Blocks 360448-393215) csum 0xd354
Block bitmap at 360448 (+0)
Inode bitmap at 360449 (+1)
Inode table at 360450-360467 (+2)
0 free blocks, 0 free inodes, 41 directories
Free blocks:
Free inodes:
Group 12: (Blocks 393216-425983) csum 0xcdd1
Block bitmap at 393216 (+0)
Inode bitmap at 393217 (+1)
Inode table at 393218-393235 (+2)
0 free blocks, 0 free inodes, 58 directories
Free blocks:
Free inodes:
Group 13: (Blocks 425984-458751) csum 0x68ab
Block bitmap at 425984 (+0)
Inode bitmap at 425985 (+1)
Inode table at 425986-426003 (+2)
0 free blocks, 0 free inodes, 112 directories
Free blocks:
Free inodes:
Group 14: (Blocks 458752-491519) csum 0xbd9d
Block bitmap at 458752 (+0)
Inode bitmap at 458753 (+1)
Inode table at 458754-458771 (+2)
0 free blocks, 0 free inodes, 20 directories
Free blocks:
Free inodes:
Group 15: (Blocks 491520-524287) csum 0xc1ff
Block bitmap at 491520 (+0)
Inode bitmap at 491521 (+1)
Inode table at 491522-491539 (+2)
0 free blocks, 0 free inodes, 71 directories
Free blocks:
Free inodes:
Group 16: (Blocks 524288-557055) csum 0xfc8e
Block bitmap at 524288 (+0)
Inode bitmap at 524289 (+1)
Inode table at 524290-524307 (+2)
0 free blocks, 0 free inodes, 61 directories
Free blocks:
Free inodes:
Group 17: (Blocks 557056-589823) csum 0xc2ae
Block bitmap at 557056 (+0)
Inode bitmap at 557057 (+1)
Inode table at 557058-557075 (+2)
0 free blocks, 0 free inodes, 44 directories
Free blocks:
Free inodes:
Group 18: (Blocks 589824-622591) csum 0x5ad5
Block bitmap at 589824 (+0)
Inode bitmap at 589825 (+1)
Inode table at 589826-589843 (+2)
0 free blocks, 0 free inodes, 5 directories
Free blocks:
Free inodes:
Group 19: (Blocks 622592-655359) csum 0x73e2
Block bitmap at 622592 (+0)
Inode bitmap at 622593 (+1)
Inode table at 622594-622611 (+2)
0 free blocks, 0 free inodes, 3 directories
Free blocks:
Free inodes:
Group 20: (Blocks 655360-688127) csum 0x7973
Block bitmap at 655360 (+0)
Inode bitmap at 655361 (+1)
Inode table at 655362-655379 (+2)
0 free blocks, 0 free inodes, 4 directories
Free blocks:
Free inodes:
Group 21: (Blocks 688128-720895) csum 0x5642
Block bitmap at 688128 (+0)
Inode bitmap at 688129 (+1)
Inode table at 688130-688147 (+2)
0 free blocks, 0 free inodes, 4 directories
Free blocks:
Free inodes:
Group 22: (Blocks 720896-753663) csum 0x2117
Block bitmap at 720896 (+0)
Inode bitmap at 720897 (+1)
Inode table at 720898-720915 (+2)
0 free blocks, 0 free inodes, 2 directories
Free blocks:
Free inodes:
Group 23: (Blocks 753664-786431) csum 0x0e26
Block bitmap at 753664 (+0)
Inode bitmap at 753665 (+1)
Inode table at 753666-753683 (+2)
0 free blocks, 0 free inodes, 2 directories
Free blocks:
Free inodes:
Group 24: (Blocks 786432-819199) csum 0xff3f
Block bitmap at 786432 (+0)
Inode bitmap at 786433 (+1)
Inode table at 786434-786451 (+2)
0 free blocks, 0 free inodes, 7 directories
Free blocks:
Free inodes:
Group 25: (Blocks 819200-851967) csum 0x2b16
Backup superblock at 819200, Group descriptors at 819201-819201
Block bitmap at 819202 (+2)
Inode bitmap at 819203 (+3)
Inode table at 819204-819221 (+4)
0 free blocks, 0 free inodes, 9 directories
Free blocks:
Free inodes:
Group 26: (Blocks 851968-884735) csum 0xe01c
Block bitmap at 851968 (+0)
Inode bitmap at 851969 (+1)
Inode table at 851970-851987 (+2)
0 free blocks, 0 free inodes, 70 directories
Free blocks:
Free inodes:
Group 27: (Blocks 884736-898551) csum 0x7365
Backup superblock at 884736, Group descriptors at 884737-884737
Block bitmap at 884738 (+2)
Inode bitmap at 884739 (+3)
Inode table at 884740-884757 (+4)
7651 free blocks, 111 free inodes, 7 directories, 111 unused inodes
Free blocks: 890901-898551
Free inodes: 7954-8064



4.) Now we can mount the partition and do whatever modifications we like.

create folder mount point

Code:
mkdir system

Code:
 sudo mount -t ext4 -o loop system.img system

Code:
 ls system

Ex.Output
at system folder , manipulate everything from system.img with loop.

Screenshot from 2022-10-13 14-46-34.png

4.1) How to modify system

in order to make changes you should use superuser:
you can use the file explorer with superuser permission by typing;
Code:
sudo nautilus
when finished your modify task.

Code:
 sudo umount system



5.) Prepare for repacking


Once finished, we can start to prepare the image for repacking. The idea is simple: we firstly check and fix the errors in the file system (there’ll always be some, probably due to bugs in the previous tools), then shrink the image file back to its minimum size.
Code:
 sudo e2fsck -yf system.img
Ex.Output
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/: ***** FILE SYSTEM WAS MODIFIED *****
/: 7575/7776 files (0.6% non-contiguous), 871878/880082 blocks

# # Shrink the file system to minimum
Code:
 ls -lah system.img
output
-rw-rw-r-- 1 tom tom 4.0G ต.ค. 13 14:51 system.img

Code:
 sudo resize2fs -M system.img
output
resize2fs 1.46.5 (30-Dec-2021)
Resizing the filesystem on system.img to 871894 (4k) blocks.
The filesystem on system.img is now 871894 (4k) blocks long.


Code:
 ls -lah system.img
output
-rw-rw-r-- 1 tom tom 3.4G ต.ค. 13 14:54 system.img



6.) Prepare formular file-size of LPMAKE


6.1) # Get the size of all images.


Before we repack, we need to know the sizes of all images in bytes.

Code:
 stat -c '%n %s' *.img

Output:

1.) Group main 4 imgs​


odm.img 4349952
product.img 1188118528
vendor.img 718503936

Sum of the group-main​


(fixed size) = 1,910,972,416

+

(variable size) = system.img size

( 3571277824 <------ This is variable size.)

TOTAL = 5482250240

2.) super.raw (fixed size)= 6094323712



6.2.) Generating new super.img


The same as Part 1 Command.
Our last quest is to craft a lengthy lpmake command to build the new super.img. Essentially that translates to three things:


-Define the groups
-Define which partition goes into which group
-Assign image files that correspond to each partition
Most information can be obtained from the previous imjtool.
Some of the flags to take note of are:

--metadata-slots: same as imjtool’s output
--metadata-size: The maximum size that partition metadata may consume. A partition entry uses 64 bytes and an extent entry uses 16 bytes. I think 65536 should work in most cases.
--group: format of <name>:<size>. The size should be the sum of all sub-partitions under the group
--partition: format of <name>:<attributes>:<size>[:group], attrs must be ’none’ or ‘readonly’.
--image: for each partition, specify a corresponding image file

Once done, you should now have the new super image.
[explanation: Not copy and paste]
Prepared command "LPMAKE" Parameter.

sudo ./otatools/bin/lpmake --metadata-size 65536 \
--super-name super \
--metadata-slots 2 \
--device super:ORIGINAL_SUPER_IMG_SIZE \
--group main:SUM_OF_ALL_PARTITIONS_SIZES \
--partition odm:readonly:ODM_PARTITION_SIZE:main \
--image odm=./odm.img \
--partition product:readonly: PRODUCT_PARTITION_SIZE:main \
--image product=./product.img \
--partition system:readonly:SYSTEM_PARTITION_SIZE:main \
--image system=./system.img \
--partition vendor:readonly:VENDOR_PARTITION_SIZE:main \
--image vendor=./vendor.img \
--sparse \
--output ./super_new.img


--‐-‐-------------------------
New command

Code:
sudo ./otatools/bin/lpmake --metadata-size 65536 \
--super-name super \
--metadata-slots 2 \
--device super:6094323712 \
--group main:5482250240 \
--partition odm:readonly:4349952:main \
--image odm=./odm.img \
--partition product:readonly:1188118528:main \
--image product=./product.img \
--partition vendor:readonly:718503936:main \
--image vendor=./vendor.img \
--partition system:readonly:3864137728:main \
--image system=./system.img \
--sparse \
--output ./super_new.img

( continue doing along with Part1 )
...

...
...
7.) Flashing by Odin

Resource:​

✓Patching Dynamic Partitions in Android Super Image​

https://blog.senyuuri.info/posts/2022-04-27-patching-android-super-images/

✓Microsoft/WSL/Loop Device

✓How to install Ubuntu sub-system with WSL2 ?​

 

Attachments

  • 1665729186547.png
    1665729186547.png
    49.1 KB · Views: 15
Last edited:

tom.android

Senior Member
Jul 12, 2016
919
300

Part 1​
:Step by Step:

Create CustomAP framework file For

GSI Flashing with Odin.

by tom.android
Modified from @abg95a
Flash a GSI on the A7 Lite (without TWRP)

Update for add loop device in WSL2

( **will slow-down Win10 )

[ not recommend if you don't want to modified your system.img ]

>> Check WSL version.​

Open CMD with Administrator

C:\Windows\System32>
Code:
wsl --list --verbose
NAME STATE VERSION
Ubuntu-20.04 Stopped 1

----> you are on wsl1


>>> Howto update it to WSL2 if you have installed Ubuntu ?


C:\Windows\System32>
Code:
wsl --set-version Ubuntu-20.04 2

Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
Conversion complete.

test after converted .

C:\Windows\System32>
Code:
wsl --list --verbose
NAME STATE VERSION
Ubuntu-20.04 Stopped 2

----> Now you are on wsl2

====End Update WSL1 with WSL2 ====



✓ LINUX Installation

Ubuntu Subsystem 20.04.5 LTS


OPEN microsoft store , Select Ubuntu version and click install.

After
Find Where to Stored installation Files.
here: (open windows show hidden file)

FOR WSL1
\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_\LocalState

For WSL2 >>>you can access to home directory from windows (Windows 10 build 18342) like this :

\\wsl$

## make a shotcut to desktop (for easy copy and paste , sharing files between WIN and LINUX)

Resources: https://askubuntu.com/questions/759...t-directory-in-windows-subsystem-for-linux-an

====================================

New fresh install with WSL2 >

Ubuntu 20.04.5 LTS

>> How?

Before:
Check win10 with WSL1 or not

C:\Windows\System32>wsl --list --verbose

NAME STATE VERSION
Ubuntu-20.04 Stopped 1

----> you are on wsl1

Howto update to be "WSL2"

1.open windows10 update
setting--windows update---Advanced option = open receive update

After Download Update from Microsoft.
2. open windows system---command promp--Administrator mode
cmd> wsl --update
output

Checking for updates...
No updates are available.
Kernel version: 5.10.102.1 <----wsl2

3. RUN in CMD

Code:
wsl --set-default-version 2

Then install Ubuntu.

new20.04-2.PNG


Test: loop device.
Open Ubnutu terminal

Code:
cd /dev
Code:
ls -l | grep -v tty

[email protected]:~$ cd /dev
[email protected]:/dev$ ls -l | grep -v tty
total 0
crw-r--r-- 1 root root 10, 235 Oct 14 15:49 autofs
drwxr-xr-x 2 root root 40 Oct 14 15:49 block
drwxr-xr-x 2 root root 80 Oct 14 15:49 bsg
crw------- 1 root root 10, 234 Oct 14 15:49 btrfs-control
drwxr-xr-x 3 root root 60 Oct 14 15:49 bus
crw------- 1 root root 5, 1 Oct 14 15:49 console
crw------- 1 root root 10, 62 Oct 14 15:49 cpu_dma_latency
crw------- 1 root root 10, 203 Oct 14 15:49 cuse
lrwxrwxrwx 1 root root 13 Oct 14 15:49 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Oct 14 15:49 full
crw-rw-rw- 1 root root 10, 229 Oct 14 15:49 fuse
crw-r--r-- 1 root root 1, 11 Oct 14 15:49 kmsg
crw------- 1 root root 10, 237 Oct 14 15:49 loop-control
brw------- 1 root root 7, 0 Oct 14 15:49 loop0
brw------- 1 root root 7, 1 Oct 14 15:49 loop1
brw------- 1 root root 7, 2 Oct 14 15:49 loop2
brw------- 1 root root 7, 3 Oct 14 15:49 loop3
brw------- 1 root root 7, 4 Oct 14 15:49 loop4
brw------- 1 root root 7, 5 Oct 14 15:49 loop5
brw------- 1 root root 7, 6 Oct 14 15:49 loop6
brw------- 1 root root 7, 7 Oct 14 15:49 loop7
drwxr-xr-x 2 root root 60 Oct 14 15:49 mapper
crw------- 1 root root 1, 1 Oct 14 15:49 mem
drwxr-xr-x 2 root root 60 Oct 14 15:49 net
crw-rw-rw- 1 root root 1, 3 Oct 14 15:49 null
crw------- 1 root root 10, 144 Oct 14 15:49 nvram
crw------- 1 root root 108, 0 Oct 14 15:49 ppp
crw-rw-rw- 1 root root 5, 2 Oct 14 16:56 ptmx
drwxr-xr-x 2 root root 0 Oct 14 15:49 pts
brw------- 1 root root 1, 0 Oct 14 15:49 ram0
brw------- 1 root root 1, 1 Oct 14 15:49 ram1
brw------- 1 root root 1, 10 Oct 14 15:49 ram10
brw------- 1 root root 1, 11 Oct 14 15:49 ram11
brw------- 1 root root 1, 12 Oct 14 15:49 ram12
brw------- 1 root root 1, 13 Oct 14 15:49 ram13
brw------- 1 root root 1, 14 Oct 14 15:49 ram14
brw------- 1 root root 1, 15 Oct 14 15:49 ram15
brw------- 1 root root 1, 2 Oct 14 15:49 ram2
brw------- 1 root root 1, 3 Oct 14 15:49 ram3
brw------- 1 root root 1, 4 Oct 14 15:49 ram4
brw------- 1 root root 1, 5 Oct 14 15:49 ram5
brw------- 1 root root 1, 6 Oct 14 15:49 ram6
brw------- 1 root root 1, 7 Oct 14 15:49 ram7
brw------- 1 root root 1, 8 Oct 14 15:49 ram8
brw------- 1 root root 1, 9 Oct 14 15:49 ram9
crw-rw-rw- 1 root root 1, 8 Oct 14 15:49 random
crw------- 1 root root 251, 0 Oct 14 15:49 rtc0
brw------- 1 root root 8, 0 Oct 14 15:49 sda
brw------- 1 root root 8, 16 Oct 14 15:49 sdb
crw------- 1 root root 21, 0 Oct 14 15:49 sg0
crw------- 1 root root 21, 1 Oct 14 15:49 sg1
lrwxrwxrwx 1 root root 8 Oct 14 15:49 shm -> /run/shm
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 1, 9 Oct 14 15:49 urandom
crw------- 1 root root 7, 0 Oct 14 15:49 vcs
crw------- 1 root root 7, 1 Oct 14 15:49 vcs1
crw------- 1 root root 7, 128 Oct 14 15:49 vcsa
crw------- 1 root root 7, 129 Oct 14 15:49 vcsa1
crw------- 1 root root 7, 64 Oct 14 15:49 vcsu
crw------- 1 root root 7, 65 Oct 14 15:49 vcsu1
drwxr-xr-x 2 root root 60 Oct 14 15:49 vfio
crw------- 1 root root 10, 238 Oct 14 15:49 vhost-net
crw------- 1 root root 10, 63 Oct 14 15:49 vsock
crw-rw-rw- 1 root root 1, 5 Oct 14 15:49 zero
[email protected]:/dev$
(you will saw loop command.)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>​

GET START

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Get " super.img" from inside Stock AP File

by Extract (super.img.lz4) file by Windows or Linux.

For Windows

Download lz4 for win and extract into C:\AnyName
from https://github.com/lz4/lz4/releases

1) extract "super.img.lz4" from Stock AP Firmware file with 7zip, into lz4 folder.<AnyName>

Screenshot_20220917_233408_Gallery.jpg


2) go into folder lz4_win64_v1_9_4 and run CMD

Screenshot_20220917_233741_Gallery.jpg
Code:
lz4 -d  super.img.lz4  super.img

copy output " super.img" to uses with Ubuntu at /home/username/


>>>>>>>>>>>>≥>>>>>>>>>>>>>>>>>>>>>>

For Linux:​

launch Ubuntu terminal( console) from Start menu

2.1) Option We can uses LZ4 from linux, process same as (Step 1-2 for wins)

Ubuntu
you can install LZ4 from Ubuntu Console with

Code:
sudo apt update

sudo apt-get -y install lz4

or

sudo  apt install liblz4-tool

note
lz4 [option] input output
lz4 -d (d= decompress)
lz4 -dc ( c=concatenate )

2.2) Option Extract "super.img.lz4" from Stock AP framework file.
and paste it to /home/username/

2.3)
Code:
sudo lz4 -d super.img.lz4  super.img

Screenshot_20220917_234111_Gallery.jpg
2.4)COMPARE with using "lz4" between Ubuntu and Windows

Screenshot_20220917_235214_Gallery.jpg

CONCLUSION of Beginning step.​

WE CAN GETS " SUPER.IMG" FROM TWO WAYS , WINDOWS OR LINUX.
( windows from step 1-2 ) or. ( Linux from step 2.1 -2.3)


***We will use 'super.img' to begin our modification.

✓ unpacking super.img

3.) Turn sparse format To RAW​

Ubuntu

**First of all the super.img file might be in sparse format so we need to make it raw image. By Using "SIMG2IMG"


Code:
sudo apt-get update
sudo apt-get install simg2img

I'm
ok
Code:
sudo  apt-get install img2simg

After install execute this command.

Code:
sudo  simg2img super.img  super.raw

Screenshot_20220917_235842_Gallery.jpg


✓Extract subpartition out from "SUPER.RAW"

4) Tool for extract partition. ( very important tool for show "group schema" which used to specific parameter option for lpmake.)

4.1) Download imjtool
http://newandroidbook.com/tools/imjtool.tgz

or download from attach file belows this tutorial (imjtool.zip)

4.2) extract "imjtool" from archive imjtool.tgz to /home/username/

*note for short i renamed it to 'imjtool'

4.3) then give it permission with command

Code:
chmod +x imjtool

imjtool.PNG


5) Extract sub partition within our "SUPER.RAW"

By execute this command
Code:
./imjtool super.raw extract

It will extract sub-partitions (4 img files ) in the folder "/home/user/extracted"
- system.img
- vendor.img
- product.img
- odm.img


Screenshot_20220918_002304_Gallery.jpg

✓ Modify Stock "system.img" by Changes with GSI-"system.img"

6) Choose your favorite GSI. ( Recommend PHH Treble- GSI )
Download from :-
https://github.com/phhusson/treble_experimentations/wiki/Generic-System-Image-(GSI)-list

6.1) Extract Downloaded archive & Replace "system.img" with your GSI img
(rename it to system.img over-written the old file.)


Screenshot_20220918_002502_Gallery.jpg

6.2 )
Move all img files (6.1)
from /home/username/extracted folder into /home/username/


7.) Get each partitions file size.

we can do it by:

Code:
stat -c '%n %s' IMG_FILE.img

:- do it for all partitions files.

7.1
Code:
stat -c '%n %s' system.img
Exam output---system.img 308 951 4496

7.2
Code:
stat -c '%n %s' vendor.img
Exam ouputt----vendor.img 718 503 936

7.3
Code:
stat -c '%n %s' product.img
Exam output----product.img 118 811 8528

7.4
Code:
stat -c '%n %s' odm.img
Exam output----odm.img 434 9952

7.5 ***size of the "original super.raw"
Code:
stat -c '%n %s' super.raw
Exam output----super.raw 609 432 3712

Screenshot_20220918_002752_Gallery.jpg

✓ Repacked modified sub-partition back​

8) Repacked new super.img.

8.1 fill in "img partition size" formular (parameter) to your prepared command below

explanation:
Screenshot_20220918_074316_Gallery.jpg

explanation:
Prepared command "LPMAKE" parameter
sudo ./otatools/bin/lpmake --metadata-size 65536 \
--super-name super \
--metadata-slots 2 \
--device super:ORIGINAL_SUPER_IMG_SIZE \
--group main:SUM_OF_ALL_PARTITIONS_SIZES \
--partition odm:readonly:ODM_PARTITION_SIZE:main \
--image odm=./odm.img \
--partition product:readonly:pRODUCT_PARTITION_SIZE:main \
--image product=./product.img \
--partition system:readonly:SYSTEM_PARTITION_SIZE:main \
--image system=./system.img \
--partition vendor:readonly:VENDOR_PARTITION_SIZE:main \
--image vendor=./vendor.img \
--sparse \
--output ./super_new.img

Note:
Replace
ORIGINAL_SUPER_IMG_SIZE,
SUM_OF_ALL_PARTITIONS_SIZES
ODM_PARTITION_SIZE,
PRODUCT_PARTITION_SIZE,
SYSTEM_PARTITION_SIZE,
VENDOR_PARTITION_SIZE

with the values you obtained in step 7.
====================

8.2
Download & extract : OTATOOLS to /home/username/
here: **We only want to use "lpmake" from its.


*** If you have a problem when used command " sudo ./otatools/bin/lpmake --metadata-size 65536 \ bra bra bra
Error message: Command not found.

Do this...
Code:
 chmod +x otatools/bin/lpmake
or
Code:
chmod -R +x otatools

> exit terminal and Login Back again

home-fortuner6898.PNG
8.3) execute prepared formular (8.1) with this command

Note: Numeric are my Example only.
1. Fix partition size ( odm + product + vendor )
434 9952 + 118 811 8528 + 718 503 936 = 1,910,972,416 + (new system.img )= Sum of all 4 partition.

2. Fix All partition ( super.raw) = 609 432 3712

***DO NOT COPY!!***
explanation:


Code:
 sudo ./otatools/bin/lpmake --metadata-size 65536 \
 --super-name super \
 --metadata-slots 2 \
 --device super:6094323712 \
 --group main:5000486912\
 --partition odm:readonly:4349952:main \
 --image odm=./odm.img \
 --partition product:readonly:1188118528:main \
 --image product=./product.img \
 --partition system:readonly:3864137728:main \
 --image system=./system.img \
 --partition vendor:readonly:718503936:main \
 --image vendor=./vendor.img \
 --sparse \
 --output ./super_new.img

OUTPUT SHOW:-
lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition odm will resize from 0 bytes to 4349952 bytes
lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition product will resize from 0 bytes to 1188118528 bytes
lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition system will resize from 0 bytes to 3864137728 bytes
lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition vendor will resize from 0 bytes to 718503936 bytes
Invalid sparse file format at header magic
Invalid sparse file format at header magic
Invalid sparse file format at header magic
Invalid sparse file format at header magic

**lpmake expand partition success. Resize from 0 bytes to 9999999 bytes
**ignored Invalid sparse file format at header magic

✓Compress repacked modified new super.img​


9) Compress the repacked super_new.img

Code:
lz4 -B6 --content-size super_new.img super_new.img.lz4

10). Compress the clean vmbeta.img

Download Clean vbmeta.img from Google
https://dl.google.com/developers/android/qt/images/gsi/vbmeta.img

Code:
lz4 -B6 --content-size vbmeta.img vbmeta.img.lz4


Win10
(From Attachment download.)

11). Down& Extract "tar-md5-script-tool.zip" to C;\

11.1 extract all *.img.lz4 files (from AP Stock) to. C:/ tar-md5-script-tool folder


12) Replace
super.img.lz4 and
vbmeta.img.lz4
|
in tar-md5-script-tool dir
|
with your repacked and compressed

super_new.img.lz4 (rename it to super.img.lz4)--->output from step 9

and the clean compressed
vbmeta.img.lz4. ------> output from step 10

Screenshot_20220918_073427_Gallery.jpg


13) Run Win Batch File For Packing Custom AP file (tar.md5) for Odin

Run batch.bat in tar-md5-script-tool folder
[You will find the " AP_TAR_MD5_CUSTOM_FILE_ODIN.tar.md5"
in the temp-folder subdir]

***Don't Rename


11.PNG



14) Final Flashing with ODin
...14.1) Device must installed Stock Firmware. (No root)
* No bad critical conditions happened when you are on STOCK ROM.

... 14.2) OEM Unlock [Developer options] must gray out but
. enable on position.

... 14.3) KG State Must be "Checking state" status.
( if kg state = Broken ) = you must have goto flash Pure stock firmware
again and this time uses ONLY "CSC" factory reset
. *NO used Home_CSC
After finished odin fashing must connected internet, check "kg status"
again )

...14.4) Flashing all files at once, don't ignored any slot.( AP+BL+CP+CSC)
except USERDATA
(Odin will shrink non-slot data size automatically)

...14.5) After Device reboot
(1st) show android robot - remove old system
(2nd) Due to new vbmeta.img has changed from stock , tab will reboot to
Recovery menu , you must select its factory reset menu manually.


...14.6) Click Magisk icon app to update
" Upgrade to full Magisk to finish the setup. Download and install"OK
- Magisk app will not reboot but update itself. But if you open app
again it will asked to reboot for addition upgrade.

odin-all-sametime.PNG

>AP SLOT : AP_TAR_MD5_CUSTOM_FILE_ODIN.tar.md5
>BL Slot : BL Stock.md5
>CP SLOT: CP Stock.md5
>CSC Slot: CSC Stock.md5 ------> (Don't uses HOME_CSC)
>USERDATA Slot: magisk_boot_vbmeta_patch.tar

✓ How to create Magisk patch for boot.img + vbmeta.img
  1. extract (vbmeta.img.lz4 + boot.img.lz4) from your AP Stock
  2. create compress one file xxx .tar with 7zip
  3. move (vbmeta.img.lz4 + boot.img.lz4).tar (xxx.tar) to tab a7 lite
  4. install magisk.apk on you tab a7 lite
  5. patch the tar file. (with magisk manager)
  6. result magisk-patch file at Tab a7 :-Download folder.

Recommend: Default R/W GSI " by Nazim"

My Examples
https://forum.xda-developers.com/t/...-lite-gsi-installation.4503647/#post-87550627

If you can't booted "VNDK Lite" variant but want to uses mount Read/Write .
Part3 -Create CustomAP Tutorial.
 

Attachments

  • otatools.zip
    280.7 MB · Views: 22
  • tar-md5-script-tool.zip
    5.2 MB · Views: 23
  • vbmeta.img
    4 KB · Views: 6
  • Screenshot_20220917_233741_Gallery.jpg
    Screenshot_20220917_233741_Gallery.jpg
    263.4 KB · Views: 49
  • imjtool.zip
    138.4 KB · Views: 15
Last edited:
  • Like
Reactions: izimen and dreas74

tom.android

Senior Member
Jul 12, 2016
919
300

Draft​

Part 4

CustomAP For Mobile​

From A/B Partition TO AB Partition Device

For Low spec Computer.
1. Must install 2 Ubuntu subsystem , one with WSL1 , the other with WSL2

2. Edit Sub-partition used WSL2 Ubuntu and exit terminal then copy output file to WSL1 Another Ubuntu >> finish making CustomAP with its.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>​

what this group schema have told you?​

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Begin​

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
USE " IMJTOOL" with A/B partition device.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Code:
 ./imjtool super.raw extract

MMapped: 0x7fa605fa0000, imgMeta 0x7fa605fa1000
liblp dynamic partition (super.img) - Blocksize 0x1000, 2 slots
LP MD Header @0x3000, version 10.0, with 4 logical partitions on block device of 5812 GB, at partition super, first sector: 0x800

Partitions @0x3080 in 2 groups:
Group 0: default
Group 1: main
Name: system (read-only, Linux Ext2/3/4/? Filesystem Image, @0x100000 spanning 1 extents of 3 GB) - extracted
Name: product (read-only, Linux Ext2/3/4/? Filesystem Image, @0xe6700000 spanning 1 extents of 1 GB) - extracted
Name: vendor (read-only, Linux Ext2/3/4/? Filesystem Image, @0x12d500000 spanning 1 extents of 685 MB) - extracted
Name: odm (read-only, Linux Ext2/3/4/? Filesystem Image, @0x158300000 spanning 1 extents of 4 MB) - extracted

>>>>>>>>>>>

sudo ./otatools/bin/lpmake --metadata-size 65536 \
--super-name super \
--metadata-slots 2 \
--device super:6094323712 \

--group main:5535145984\
--partition odm:readonly:4349952:main \
--image odm=./odm.img \
--partition system:readonly:3624173568:main \
--image system=./system.img \
--partition vendor:readonly:718503936:main \
--image vendor=./vendor.img \
--partition product:readonly:1188118528:main \
--image product=./product.img \

--sparse \
--output ./super_new.img

>>>>>>>>>>
Code:
  stat -c '%n %s' *.img
Code:
  stat -c '%n %s' *.raw

odm.img 4349952
product.img 1188118528
vendor.img 718503936
super.raw 6094323712

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CustomAP

For Samsung Mobile

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
USE " LPUNPACK" with AB partition device.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Code:
 ./imjtool.ELF64 super.img extract

liblp dynamic partition (super.img) - Blocksize 0x1000, 3 slots
LP MD Header @0x3000, version 10.2, with 14 logical partitions on block device of 3584 GB, at partition super, first sector: 0x800

Partitions @0x3100 in 5 groups:
Group 0: default
Group 1: google_system_dynamic_partitions_a
Name: product_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x100000 spanning 1 extents and 290 MB) - extracted
Name: system_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x12400000 spanning 1 extents and 943 MB) - extracted
Name: system_ext_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x4ec00000 spanning 1 extents and 513 MB) - extracted

Group 2: google_system_dynamic_partitions_b
Name: product_b (read-only, empty) - extracted
Name: system_b (read-only, Linux Ext2/3/4/? Filesystem Image, @0x4d400000 spanning 1 extents and 23 MB) - extracted
Name: system_ext_b (read-only, empty) - extracted

Group 3: google_vendor_dynamic_partitions_a
Name: odm_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x6ee00000 spanning 1 extents and 772 KB) - extracted
Name: vendor_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x6ef00000 spanning 1 extents and 310 MB) - extracted
Name: vendor_dlkm_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x82600000 spanning 1 extents and 340 KB) - extracted
Name: odm_dlkm_a (read-only, Linux Ext2/3/4/? Filesystem Image, @0x82700000 spanning 1 extents and 340 KB) - extracted

Group 4: google_vendor_dynamic_partitions_b
Name: odm_b (read-only, empty) - extracted
Name: vendor_b (read-only, empty) - extracted

>>>>>>>>>>

# Get the size of all images

Code:
 stat -c '%n %s' *.img

odm_a.img 790528
odm_b.img 0

odm_dlkm_a.img 348160
odm_dlkm_b.img 0

product_a.img 304930816
product_b.img 0

super.img 7516192768

system_a.img 1018732544
system_b.img 24203264

system_ext_a.img 537972736
system_ext_b.img 0

vendor_a.img 325787648
vendor_b.img 0

vendor_dlkm_a.img 348160
vendor_dlkm_b.img 0

>>>>>>>>>>

Code:
 ./bin/lpmake --metadata-size 65536\
--device-size=4294967296\
--metadata-slots=3\

--group=google_system_dynamic_partitions_a:2222931968\
--partition=odm_a:none:700416:google_system_dynamic_partitions_a\
--partition=product_a:none:266579968:google_system_dynamic_partitions_a\
--partition=system_a:none:1363767296:google_system_dynamic_partitions_a\
--partition=system_ext_a:none:359391232:google_system_dynamic_partitions_a\
--partition=vendor_a:none:232493056:google_system_dynamic_partitions_a\
--image=odm_a=./odm_a.img\
--image=product_a=./product_a.img\
--image=system_a=./system_a.img\
--image=system_ext_a=./system_ext_a.img\
--image=vendor_a=./vendor_a.img\

--group=google_system_dynamic_partitions_b:24563712\
--partition=odm_b:none:0:google_system_dynamic_partitions_b\
--partition=product_b:none:0:google_system_dynamic_partitions_b\
--partition=system_b:none:24563712:google_system_dynamic_partitions_b\
--partition=system_ext_b:none:0:google_system_dynamic_partitions_b\
--partition=vendor_b:none:0:google_system_dynamic_partitions_b\
--image=odm_b=./odm_b.img\
--image=product_b=./product_b.img\
--image=system_b=./system_b.img\
--image=system_ext_b=./system_ext_b.img\
--image=vendor_b=./vendor_b.img\

--sparse \
--output ./super.new.img

>>>>>>>>>>>>
Most information can be obtained from the previous imjtool. Some of the flags to take note of are:

  • --metadata-slots: same as imjtool’s output
  • --device-size: for most phones, 4GB should be enough (4*1024^3 = 4294967296 bytes). It’s okay to leave some extras
  • --group: format of <name>:<size>. The size should be the sum of all sub-partitions under the group
  • --partition: format of <name>:<attributes>:<size>[:group], attrs must be ’none’ or ‘readonly’.
  • --image: for each partition, specify a corresponding image file
Code:
 stat -c '%n %s' *.img

odm_a.img 790528
odm_b.img 0
odm_dlkm_a.img 348160
odm_dlkm_b.img 0
product_a.img 304930816
product_b.img 0
super.img 7516192768
system_a.img 1018732544
system_b.img 24203264
system_ext_a.img 537972736
system_ext_b.img 0
vendor_a.img 325787648
vendor_b.img 0
vendor_dlkm_a.img 348160
vendor_dlkm_b.img 0


Code:
 ./bin/lpmake --metadata-size 65536\
--device-size=4294967296\
--metadata-slots=3\
--group=google_system_dynamic_partitions_a:2222931968\
--partition=odm_a:none:700416:google_system_dynamic_partitions_a\
--partition=product_a:none:266579968:google_system_dynamic_partitions_a\
--partition=system_a:none:1363767296:google_system_dynamic_partitions_a\
--partition=system_ext_a:none:359391232:google_system_dynamic_partitions_a\
--partition=vendor_a:none:232493056:google_system_dynamic_partitions_a\
--image=odm_a=./odm_a.img\
--image=product_a=./product_a.img\
--image=system_a=./system_a.img\
--image=system_ext_a=./system_ext_a.img\
--image=vendor_a=./vendor_a.img\
--group=google_system_dynamic_partitions_b:24563712\
--partition=odm_b:none:0:google_system_dynamic_partitions_b\
--partition=product_b:none:0:google_system_dynamic_partitions_b\
--partition=system_b:none:24563712:google_system_dynamic_partitions_b\
--partition=system_ext_b:none:0:google_system_dynamic_partitions_b\
--partition=vendor_b:none:0:google_system_dynamic_partitions_b\
--image=odm_b=./odm_b.img\
--image=product_b=./product_b.img\
--image=system_b=./system_b.img\
--image=system_ext_b=./system_ext_b.img\
--image=vendor_b=./vendor_b.img\
--sparse \
--output ./super.new.img
 
Last edited:

tom.android

Senior Member
Jul 12, 2016
919
300
Part 3
Advanced CustomAP

Step by Step for changes mount Read Only To Read/Write.
1.) Back to Stock Firmware.
It's still a good idea to flash stock firmware every now and then, because critical system components get updated and fixed, like the bootloader etc.

2.) If you used Stock A12, creates CustomAP (target GSI) and flash with Odin (include patched-Magisk of boot.img.lz4 and vbmeta.img.lz4)
odin-pe13+.PNG

BL slot: Stock BL
AP slot: CustomAP
CP slot: Stock CP
CSC Slot: Stock CSC
UserData slot: boot+vbmeta patched by Magisk.tar

After 1'st boot( Finished Flashing)
2.1 setup magisk v.24.3
(download additional some part) if not you can't uses magisk. And Reboot.

3.) If you used Stock A11
3.1 Stock A11 + TWRP
Flash GSI with TWRP' S Fastboot (with root)
* Your Computer must installed " Bootloader Driver " before. If not you
can't uses "Fastboot command"


Code:
Set of fastboot command.

adb reboot fastboot
>>>tab will auto reboot to "TWRP fastoot mode" (ignored black screen)

fastboot devices
>>>Output screen will show your tab S/n

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

fastboot erase system

fastboot flash system yourGSI.img
>>> ignored invalid spare 'system'...at header magic
>>> divided PE system image file into parts suitable for write to dynamic tab
>>> system partition.

fastboot -w
>>>This will also erase your internal storage.

fastboot reboot recovery
>>>>>>Booting to TWRP

from TWRP menu
wipe --->format data --->yes
reboot fastboot

fastboot flash boot boot.img
>>> boot.img was patched by magisk

fastboot reboot

3.2 Stock A11 + non TWRP 》 Back to (2)

4.) NOW Your tablet was running by GSI firmware.
4.1 Computer
download platform-tools and extract to C:\
4.2 Tablet
install Root File Manager. (Such as MiXplorer)
4.3 Connect your tablet with Computer
4.4 Use root file manager copy "systemrw_1.32" folder
from downloaded Archive to "/data/local/tmp"
4.5 Open CMD as Administrator and Run in folder
" C:/platform-tools"
Code:
adb shell

su
   * check magisk supersu permission--given to Shell program or not

cd /data/local/tmp/systemrw_1.32

chmod +x ./systemrw.sh

./systemrw.sh size=15

or
./systemrw.sh out=/mnt/media_rw/8644-7453/patch/super_fixed.bin size=100

**changes 8644-7453 with your

Output:
Code:
 Read only
 --------------------------------------------------
|    SystemRW v1.32 automated script by lebigmac   |
|  @xda ©2021 Big thank you to @Kolibass @Brepro1  |
|@munjeni @AndyYan @gabrielfrias @YOisuPU @bynarie |
|   without your help this would not be possible!  |
 --------------------------------------------------
systemrw: Custom output detected: /mnt/media_rw/8644-7453/patch/super_fixed.bin
systemrw: Custom size detected: 15 MB
systemrw: Initiating procedure...

systemrw: Device is in Android mode. Ignoring
systemrw: Current device: samsung
systemrw: Current Android version: 14
systemrw: Current SELinux status: Enforcing
systemrw: Current slot is: 0
systemrw: Your super partition is located at: /dev/block/mmcblk0p45
systemrw: / is read-only
systemrw: /product is already R/W capable. Ignoring
systemrw: /vendor is already R/W capable. Ignoring
systemrw: Adjusting permissions...
systemrw: Attempting to disable dm-verity and verification...
verification is already disabled.
verity is already disabled.
systemrw: Dumping super partition to: /data/local/tmp/systemrw_1.32/img/super_original.bin
systemrw: Please wait patiently...

11902976+0 records in
11902976+0 records out
6094323712 bytes (5.6 G) copied, 132.285471 s, 44 M/s

systemrw: Successfully dumped super partition to: /data/local/tmp/systemrw_1.32/img/super_original.bin
systemrw: Unpacking embedded partitions from /data/local/tmp/systemrw_1.32/img/super_original.bin
systemrw: Nested partitions were successfully extracted from super

systemrw: Current size of system.img in bytes: 3090964480
systemrw: Current size of system.img in MB: 2947
systemrw: Current size of system.img in 512-byte sectors: 6037040

systemrw: 'shared_blocks feature' detected @ system.img

systemrw: Increasing filesystem size of system.img...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/system.img to 943287 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/system.img is now 943287 (4k) blocks long.

systemrw: Removing 'shared_blocks feature' of system.img...
e2fsck 1.46.2 (28-Feb-2021)
systemrw: Read-only lock of system.img successfully removed

systemrw: Shrinking size of system.img back to minimum size...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/system.img to 887293 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/system.img is now 887293 (4k) blocks long.

systemrw: Custom size of system.img in bytes: 3650080768
systemrw: Custom size of system.img in MB: 3480
systemrw: Custom size of system.img in 512-byte sectors: 7129064

systemrw: Increasing filesystem size of system.img...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/system.img to 891133 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/system.img is now 891133 (4k) blocks long.

=================================================

systemrw: Current size of vendor.img in bytes: 641204224
systemrw: Current size of vendor.img in MB: 611
systemrw: Current size of vendor.img in 512-byte sectors: 1252352

systemrw: NO 'shared_blocks feature' detected @ vendor.img

systemrw: Shrinking size of vendor.img back to minimum size...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/vendor.img to 151299 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/vendor.img is now 151299 (4k) blocks long.

systemrw: Custom size of vendor.img in bytes: 635449344
systemrw: Custom size of vendor.img in MB: 606
systemrw: Custom size of vendor.img in 512-byte sectors: 1241112

systemrw: Increasing filesystem size of vendor.img...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/vendor.img to 155139 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/vendor.img is now 155139 (4k) blocks long.

=================================================

systemrw: Current size of product.img in bytes: 1091608576
systemrw: Current size of product.img in MB: 1041
systemrw: Current size of product.img in 512-byte sectors: 2132048

systemrw: NO 'shared_blocks feature' detected @ product.img

systemrw: Shrinking size of product.img back to minimum size...
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /data/local/tmp/systemrw_1.32/img/product.img to 262240 (4k) blocks.
The filesystem on /data/local/tmp/systemrw_1.32/img/product.img is now 262240 (4k) blocks long.
=================================================

systemrw: Joining all extracted images back into one single super image...
systemrw: Please wait and ignore the invalid sparse warnings...

Not enough space on device for partition product with size 1089863680

systemrw: Error! failed to create super_fixed.img file. Error code: 70

gta7lite:/data/local/tmp/systemrw_1.32 #

ignored " Error! failed to create super_fixed.img file. Error code: 70"

4.6
Final copy "/data/local/tmp/systemrw_1.32/img/system.img"
for making new CustomAP Or Flashing with Fastboot.


Note:

Note:1. if you want to fix not enough space Solved with changing size from 15 to 100
But I want only "new system.img" which removed shared_blocks.

Note:2. Examples.

Note:3.

TWRP FOR Android 11 Device SM-T22x

No touch supported.
Used only (TWRP 's Fastboot)Mode.

》》FIRST TIME INSTALLATION
Howto install TWRP For SM-T22x
# Patch Samsung AP Firmware via Magisk v24.0 ( patched entire AP file)
1. Install Magisk.apk on your device SM-T22x with select no update checking, and transferred AP_xxx.tar.md5 from computer to your tab.

2. Patch Samsung AP Firmware via Magisk Manager.
( Once done, the newly created magisk_patched.tar file will be present under the
Downloads folder on your device.)

3. you may now transfer this patched TAR file to the folder on your PC where other extracted firmware files (AP, BL, CP, CSC, and HOME_CSC) are present.

4. FLASH it with ODin as usual by used magisk_patched.tar file at AP slot .

5. REBOOT SYSTEM Quick SETUP < NO NEED INTERNET>

6. Power Off and press Volum up +Volumn down + USB for boot into Download mode

7. FLASH TWRP.tar from https://github.com/DevZillion/android_device_samsung_gta7lite/releases at "AP slot"
But this time set Odin option NO Auto- REBOOT, yes do it yourself with key press ( power + volumn up).

## if you can't use keypress but reboot to the system , you can use cmd " adb reboot recovery "

When had access to twrp menu
  1. Go to Advanced > Terminal and type "multidisabler" (without quotes", then data wipe.
  2. Now reboot into system, after completing first setup of the device reboot into TWRP again to see if you can see the contents of your Internal Storage, you should, if yes you have successfully disabled Samsung encryption of internal storage.
  3. NOTE: If you wish to install TWRP without rooting, there are numerous pitfalls to consider. For example, a stock device is protected by Android Verified Boot. This is implemented as a vbmeta partition that contains cryptographic digests for verifying the integrity of boot.img, recovery.img and other partitions/images. Flashing TWRP without first flashing a vbmeta image with verity disabled will render your device unable to boot.
Note:4
very important bootloader driver for fastboot of the twrp.

Android Bootloader Interface Drivers are needed for your PC to identify the device connected in Fastboot Mode and hence execute the desired Fastboot Commands.

Automatic MediaTek USB VCOM Drivers: MTK_Driver_Auto_Installer_EXE_v5.1632.00

Download:
https://androidfilehost.com/?fid=14943124697586345377

Fastboot driver_221202_113503.jpg


If not works.
Download: https://androidfilehost.com/?fid=7161016148664850715
 

Attachments

  • platform-tools_r33.0.3-windows.zip
    5.4 MB · Views: 0
  • systemrw_1.32.zip
    6.5 MB · Views: 4
  • Windows10+11+Fastboot+Drivers.zip
    8.3 MB · Views: 0
Last edited:

Difficul

Senior Member
Jul 2, 2021
260
11
I don't quite understand I just flashed twrp from odin
it's not as messy as you say and it still works
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    so do that on stock with Magisk apk?
    sorry i wrong type use only magisk v24 only
    1

    TWRP FOR Android 11 Device SM-T22x

    No touch supported.

    Used only (TWRP 's Fastboot)Mode.



    》》FIRST TIME INSTALLATION

    Howto install TWRP For SM-T225

    # Patch Samsung AP Firmware via Magisk v24.0 ( patched entire AP file)

    1. Install Magisk.apk on your device SM-T225 with select no update checking, and transferred AP_xxx.tar.md5 from computer to your tab.



    2. Patch Samsung AP Firmware via Magisk Manager.

    ( Once done, the newly created magisk_patched.tar file will be present under the

    Downloads folder on your device.)



    3. you may now transfer this patched TAR file to the folder on your PC where other extracted firmware files (AP, BL, CP, CSC, and HOME_CSC) are present.



    4. FLASH it with ODin as usual by used magisk_patched.tar file at AP slot .



    5. REBOOT SYSTEM Quick SETUP < NO NEED INTERNET>



    6. Power Off and press Volum up +Volumn down + USB for boot into Download mode



    7. FLASH TWRP.tar from https://github.com/DevZillion/android_device_samsung_gta7lite/releases at "AP slot"

    But this time set Odin option NO Auto- REBOOT, yes do it yourself with key press ( power + volumn up).



    ## if you can't use keypress but reboot to the system , you can use cmd " adb reboot recovery "



    When had access to twrp menu

    Go to Advanced > Terminal and type "multidisabler" (without quotes", then data wipe.
    Now reboot into system, after completing first setup of the device reboot into TWRP again to see if you can see the contents of your Internal Storage, you should, if yes you have successfully disabled Samsung encryption of internal storage.
    NOTE: If you wish to install TWRP without rooting, there are numerous pitfalls to consider. For example, a stock device is protected by Android Verified Boot. This is implemented as a vbmeta partition that contains cryptographic digests for verifying the integrity of boot.img, recovery.img and other partitions/images. Flashing TWRP without first flashing a vbmeta image with verity disabled will render your device unable to boot.
    》》》》》》》》》》》》》》》》》

  • 2

    Part 1​
    :Step by Step:

    Create CustomAP framework file For

    GSI Flashing with Odin.

    by tom.android
    Modified from @abg95a
    Flash a GSI on the A7 Lite (without TWRP)

    Update for add loop device in WSL2

    ( **will slow-down Win10 )

    [ not recommend if you don't want to modified your system.img ]

    >> Check WSL version.​

    Open CMD with Administrator

    C:\Windows\System32>
    Code:
    wsl --list --verbose
    NAME STATE VERSION
    Ubuntu-20.04 Stopped 1

    ----> you are on wsl1


    >>> Howto update it to WSL2 if you have installed Ubuntu ?


    C:\Windows\System32>
    Code:
    wsl --set-version Ubuntu-20.04 2

    Conversion in progress, this may take a few minutes...
    For information on key differences with WSL 2 please visit https://aka.ms/wsl2
    Conversion complete.

    test after converted .

    C:\Windows\System32>
    Code:
    wsl --list --verbose
    NAME STATE VERSION
    Ubuntu-20.04 Stopped 2

    ----> Now you are on wsl2

    ====End Update WSL1 with WSL2 ====



    ✓ LINUX Installation

    Ubuntu Subsystem 20.04.5 LTS


    OPEN microsoft store , Select Ubuntu version and click install.

    After
    Find Where to Stored installation Files.
    here: (open windows show hidden file)

    FOR WSL1
    \Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_\LocalState

    For WSL2 >>>you can access to home directory from windows (Windows 10 build 18342) like this :

    \\wsl$

    ## make a shotcut to desktop (for easy copy and paste , sharing files between WIN and LINUX)

    Resources: https://askubuntu.com/questions/759...t-directory-in-windows-subsystem-for-linux-an

    ====================================

    New fresh install with WSL2 >

    Ubuntu 20.04.5 LTS

    >> How?

    Before:
    Check win10 with WSL1 or not

    C:\Windows\System32>wsl --list --verbose

    NAME STATE VERSION
    Ubuntu-20.04 Stopped 1

    ----> you are on wsl1

    Howto update to be "WSL2"

    1.open windows10 update
    setting--windows update---Advanced option = open receive update

    After Download Update from Microsoft.
    2. open windows system---command promp--Administrator mode
    cmd> wsl --update
    output

    Checking for updates...
    No updates are available.
    Kernel version: 5.10.102.1 <----wsl2

    3. RUN in CMD

    Code:
    wsl --set-default-version 2

    Then install Ubuntu.

    new20.04-2.PNG


    Test: loop device.
    Open Ubnutu terminal

    Code:
    cd /dev
    Code:
    ls -l | grep -v tty

    [email protected]:~$ cd /dev
    [email protected]:/dev$ ls -l | grep -v tty
    total 0
    crw-r--r-- 1 root root 10, 235 Oct 14 15:49 autofs
    drwxr-xr-x 2 root root 40 Oct 14 15:49 block
    drwxr-xr-x 2 root root 80 Oct 14 15:49 bsg
    crw------- 1 root root 10, 234 Oct 14 15:49 btrfs-control
    drwxr-xr-x 3 root root 60 Oct 14 15:49 bus
    crw------- 1 root root 5, 1 Oct 14 15:49 console
    crw------- 1 root root 10, 62 Oct 14 15:49 cpu_dma_latency
    crw------- 1 root root 10, 203 Oct 14 15:49 cuse
    lrwxrwxrwx 1 root root 13 Oct 14 15:49 fd -> /proc/self/fd
    crw-rw-rw- 1 root root 1, 7 Oct 14 15:49 full
    crw-rw-rw- 1 root root 10, 229 Oct 14 15:49 fuse
    crw-r--r-- 1 root root 1, 11 Oct 14 15:49 kmsg
    crw------- 1 root root 10, 237 Oct 14 15:49 loop-control
    brw------- 1 root root 7, 0 Oct 14 15:49 loop0
    brw------- 1 root root 7, 1 Oct 14 15:49 loop1
    brw------- 1 root root 7, 2 Oct 14 15:49 loop2
    brw------- 1 root root 7, 3 Oct 14 15:49 loop3
    brw------- 1 root root 7, 4 Oct 14 15:49 loop4
    brw------- 1 root root 7, 5 Oct 14 15:49 loop5
    brw------- 1 root root 7, 6 Oct 14 15:49 loop6
    brw------- 1 root root 7, 7 Oct 14 15:49 loop7
    drwxr-xr-x 2 root root 60 Oct 14 15:49 mapper
    crw------- 1 root root 1, 1 Oct 14 15:49 mem
    drwxr-xr-x 2 root root 60 Oct 14 15:49 net
    crw-rw-rw- 1 root root 1, 3 Oct 14 15:49 null
    crw------- 1 root root 10, 144 Oct 14 15:49 nvram
    crw------- 1 root root 108, 0 Oct 14 15:49 ppp
    crw-rw-rw- 1 root root 5, 2 Oct 14 16:56 ptmx
    drwxr-xr-x 2 root root 0 Oct 14 15:49 pts
    brw------- 1 root root 1, 0 Oct 14 15:49 ram0
    brw------- 1 root root 1, 1 Oct 14 15:49 ram1
    brw------- 1 root root 1, 10 Oct 14 15:49 ram10
    brw------- 1 root root 1, 11 Oct 14 15:49 ram11
    brw------- 1 root root 1, 12 Oct 14 15:49 ram12
    brw------- 1 root root 1, 13 Oct 14 15:49 ram13
    brw------- 1 root root 1, 14 Oct 14 15:49 ram14
    brw------- 1 root root 1, 15 Oct 14 15:49 ram15
    brw------- 1 root root 1, 2 Oct 14 15:49 ram2
    brw------- 1 root root 1, 3 Oct 14 15:49 ram3
    brw------- 1 root root 1, 4 Oct 14 15:49 ram4
    brw------- 1 root root 1, 5 Oct 14 15:49 ram5
    brw------- 1 root root 1, 6 Oct 14 15:49 ram6
    brw------- 1 root root 1, 7 Oct 14 15:49 ram7
    brw------- 1 root root 1, 8 Oct 14 15:49 ram8
    brw------- 1 root root 1, 9 Oct 14 15:49 ram9
    crw-rw-rw- 1 root root 1, 8 Oct 14 15:49 random
    crw------- 1 root root 251, 0 Oct 14 15:49 rtc0
    brw------- 1 root root 8, 0 Oct 14 15:49 sda
    brw------- 1 root root 8, 16 Oct 14 15:49 sdb
    crw------- 1 root root 21, 0 Oct 14 15:49 sg0
    crw------- 1 root root 21, 1 Oct 14 15:49 sg1
    lrwxrwxrwx 1 root root 8 Oct 14 15:49 shm -> /run/shm
    lrwxrwxrwx 1 root root 15 Oct 14 15:49 stderr -> /proc/self/fd/2
    lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdin -> /proc/self/fd/0
    lrwxrwxrwx 1 root root 15 Oct 14 15:49 stdout -> /proc/self/fd/1
    crw-rw-rw- 1 root root 1, 9 Oct 14 15:49 urandom
    crw------- 1 root root 7, 0 Oct 14 15:49 vcs
    crw------- 1 root root 7, 1 Oct 14 15:49 vcs1
    crw------- 1 root root 7, 128 Oct 14 15:49 vcsa
    crw------- 1 root root 7, 129 Oct 14 15:49 vcsa1
    crw------- 1 root root 7, 64 Oct 14 15:49 vcsu
    crw------- 1 root root 7, 65 Oct 14 15:49 vcsu1
    drwxr-xr-x 2 root root 60 Oct 14 15:49 vfio
    crw------- 1 root root 10, 238 Oct 14 15:49 vhost-net
    crw------- 1 root root 10, 63 Oct 14 15:49 vsock
    crw-rw-rw- 1 root root 1, 5 Oct 14 15:49 zero
    [email protected]:/dev$
    (you will saw loop command.)
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>​

    GET START

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    Get " super.img" from inside Stock AP File

    by Extract (super.img.lz4) file by Windows or Linux.

    For Windows

    Download lz4 for win and extract into C:\AnyName
    from https://github.com/lz4/lz4/releases

    1) extract "super.img.lz4" from Stock AP Firmware file with 7zip, into lz4 folder.<AnyName>

    Screenshot_20220917_233408_Gallery.jpg


    2) go into folder lz4_win64_v1_9_4 and run CMD

    Screenshot_20220917_233741_Gallery.jpg
    Code:
    lz4 -d  super.img.lz4  super.img

    copy output " super.img" to uses with Ubuntu at /home/username/


    >>>>>>>>>>>>≥>>>>>>>>>>>>>>>>>>>>>>

    For Linux:​

    launch Ubuntu terminal( console) from Start menu

    2.1) Option We can uses LZ4 from linux, process same as (Step 1-2 for wins)

    Ubuntu
    you can install LZ4 from Ubuntu Console with

    Code:
    sudo apt update
    
    sudo apt-get -y install lz4
    
    or
    
    sudo  apt install liblz4-tool

    note
    lz4 [option] input output
    lz4 -d (d= decompress)
    lz4 -dc ( c=concatenate )

    2.2) Option Extract "super.img.lz4" from Stock AP framework file.
    and paste it to /home/username/

    2.3)
    Code:
    sudo lz4 -d super.img.lz4  super.img

    Screenshot_20220917_234111_Gallery.jpg
    2.4)COMPARE with using "lz4" between Ubuntu and Windows

    Screenshot_20220917_235214_Gallery.jpg

    CONCLUSION of Beginning step.​

    WE CAN GETS " SUPER.IMG" FROM TWO WAYS , WINDOWS OR LINUX.
    ( windows from step 1-2 ) or. ( Linux from step 2.1 -2.3)


    ***We will use 'super.img' to begin our modification.

    ✓ unpacking super.img

    3.) Turn sparse format To RAW​

    Ubuntu

    **First of all the super.img file might be in sparse format so we need to make it raw image. By Using "SIMG2IMG"


    Code:
    sudo apt-get update
    sudo apt-get install simg2img

    I'm
    ok
    Code:
    sudo  apt-get install img2simg

    After install execute this command.

    Code:
    sudo  simg2img super.img  super.raw

    Screenshot_20220917_235842_Gallery.jpg


    ✓Extract subpartition out from "SUPER.RAW"

    4) Tool for extract partition. ( very important tool for show "group schema" which used to specific parameter option for lpmake.)

    4.1) Download imjtool
    http://newandroidbook.com/tools/imjtool.tgz

    or download from attach file belows this tutorial (imjtool.zip)

    4.2) extract "imjtool" from archive imjtool.tgz to /home/username/

    *note for short i renamed it to 'imjtool'

    4.3) then give it permission with command

    Code:
    chmod +x imjtool

    imjtool.PNG


    5) Extract sub partition within our "SUPER.RAW"

    By execute this command
    Code:
    ./imjtool super.raw extract

    It will extract sub-partitions (4 img files ) in the folder "/home/user/extracted"
    - system.img
    - vendor.img
    - product.img
    - odm.img


    Screenshot_20220918_002304_Gallery.jpg

    ✓ Modify Stock "system.img" by Changes with GSI-"system.img"

    6) Choose your favorite GSI. ( Recommend PHH Treble- GSI )
    Download from :-
    https://github.com/phhusson/treble_experimentations/wiki/Generic-System-Image-(GSI)-list

    6.1) Extract Downloaded archive & Replace "system.img" with your GSI img
    (rename it to system.img over-written the old file.)


    Screenshot_20220918_002502_Gallery.jpg

    6.2 )
    Move all img files (6.1)
    from /home/username/extracted folder into /home/username/


    7.) Get each partitions file size.

    we can do it by:

    Code:
    stat -c '%n %s' IMG_FILE.img

    :- do it for all partitions files.

    7.1
    Code:
    stat -c '%n %s' system.img
    Exam output---system.img 308 951 4496

    7.2
    Code:
    stat -c '%n %s' vendor.img
    Exam ouputt----vendor.img 718 503 936

    7.3
    Code:
    stat -c '%n %s' product.img
    Exam output----product.img 118 811 8528

    7.4
    Code:
    stat -c '%n %s' odm.img
    Exam output----odm.img 434 9952

    7.5 ***size of the "original super.raw"
    Code:
    stat -c '%n %s' super.raw
    Exam output----super.raw 609 432 3712

    Screenshot_20220918_002752_Gallery.jpg

    ✓ Repacked modified sub-partition back​

    8) Repacked new super.img.

    8.1 fill in "img partition size" formular (parameter) to your prepared command below

    explanation:
    Screenshot_20220918_074316_Gallery.jpg

    explanation:
    Prepared command "LPMAKE" parameter
    sudo ./otatools/bin/lpmake --metadata-size 65536 \
    --super-name super \
    --metadata-slots 2 \
    --device super:ORIGINAL_SUPER_IMG_SIZE \
    --group main:SUM_OF_ALL_PARTITIONS_SIZES \
    --partition odm:readonly:ODM_PARTITION_SIZE:main \
    --image odm=./odm.img \
    --partition product:readonly:pRODUCT_PARTITION_SIZE:main \
    --image product=./product.img \
    --partition system:readonly:SYSTEM_PARTITION_SIZE:main \
    --image system=./system.img \
    --partition vendor:readonly:VENDOR_PARTITION_SIZE:main \
    --image vendor=./vendor.img \
    --sparse \
    --output ./super_new.img

    Note:
    Replace
    ORIGINAL_SUPER_IMG_SIZE,
    SUM_OF_ALL_PARTITIONS_SIZES
    ODM_PARTITION_SIZE,
    PRODUCT_PARTITION_SIZE,
    SYSTEM_PARTITION_SIZE,
    VENDOR_PARTITION_SIZE

    with the values you obtained in step 7.
    ====================

    8.2
    Download & extract : OTATOOLS to /home/username/
    here: **We only want to use "lpmake" from its.


    *** If you have a problem when used command " sudo ./otatools/bin/lpmake --metadata-size 65536 \ bra bra bra
    Error message: Command not found.

    Do this...
    Code:
     chmod +x otatools/bin/lpmake
    or
    Code:
    chmod -R +x otatools

    > exit terminal and Login Back again

    home-fortuner6898.PNG
    8.3) execute prepared formular (8.1) with this command

    Note: Numeric are my Example only.
    1. Fix partition size ( odm + product + vendor )
    434 9952 + 118 811 8528 + 718 503 936 = 1,910,972,416 + (new system.img )= Sum of all 4 partition.

    2. Fix All partition ( super.raw) = 609 432 3712

    ***DO NOT COPY!!***
    explanation:


    Code:
     sudo ./otatools/bin/lpmake --metadata-size 65536 \
     --super-name super \
     --metadata-slots 2 \
     --device super:6094323712 \
     --group main:5000486912\
     --partition odm:readonly:4349952:main \
     --image odm=./odm.img \
     --partition product:readonly:1188118528:main \
     --image product=./product.img \
     --partition system:readonly:3864137728:main \
     --image system=./system.img \
     --partition vendor:readonly:718503936:main \
     --image vendor=./vendor.img \
     --sparse \
     --output ./super_new.img

    OUTPUT SHOW:-
    lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition odm will resize from 0 bytes to 4349952 bytes
    lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition product will resize from 0 bytes to 1188118528 bytes
    lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition system will resize from 0 bytes to 3864137728 bytes
    lpmake I 09-11 03:32:54 36 36 builder.cpp:1012] [liblp]Partition vendor will resize from 0 bytes to 718503936 bytes
    Invalid sparse file format at header magic
    Invalid sparse file format at header magic
    Invalid sparse file format at header magic
    Invalid sparse file format at header magic

    **lpmake expand partition success. Resize from 0 bytes to 9999999 bytes
    **ignored Invalid sparse file format at header magic

    ✓Compress repacked modified new super.img​


    9) Compress the repacked super_new.img

    Code:
    lz4 -B6 --content-size super_new.img super_new.img.lz4

    10). Compress the clean vmbeta.img

    Download Clean vbmeta.img from Google
    https://dl.google.com/developers/android/qt/images/gsi/vbmeta.img

    Code:
    lz4 -B6 --content-size vbmeta.img vbmeta.img.lz4


    Win10
    (From Attachment download.)

    11). Down& Extract "tar-md5-script-tool.zip" to C;\

    11.1 extract all *.img.lz4 files (from AP Stock) to. C:/ tar-md5-script-tool folder


    12) Replace
    super.img.lz4 and
    vbmeta.img.lz4
    |
    in tar-md5-script-tool dir
    |
    with your repacked and compressed

    super_new.img.lz4 (rename it to super.img.lz4)--->output from step 9

    and the clean compressed
    vbmeta.img.lz4. ------> output from step 10

    Screenshot_20220918_073427_Gallery.jpg


    13) Run Win Batch File For Packing Custom AP file (tar.md5) for Odin

    Run batch.bat in tar-md5-script-tool folder
    [You will find the " AP_TAR_MD5_CUSTOM_FILE_ODIN.tar.md5"
    in the temp-folder subdir]

    ***Don't Rename


    11.PNG



    14) Final Flashing with ODin
    ...14.1) Device must installed Stock Firmware. (No root)
    * No bad critical conditions happened when you are on STOCK ROM.

    ... 14.2) OEM Unlock [Developer options] must gray out but
    . enable on position.

    ... 14.3) KG State Must be "Checking state" status.
    ( if kg state = Broken ) = you must have goto flash Pure stock firmware
    again and this time uses ONLY "CSC" factory reset
    . *NO used Home_CSC
    After finished odin fashing must connected internet, check "kg status"
    again )

    ...14.4) Flashing all files at once, don't ignored any slot.( AP+BL+CP+CSC)
    except USERDATA
    (Odin will shrink non-slot data size automatically)

    ...14.5) After Device reboot
    (1st) show android robot - remove old system
    (2nd) Due to new vbmeta.img has changed from stock , tab will reboot to
    Recovery menu , you must select its factory reset menu manually.


    ...14.6) Click Magisk icon app to update
    " Upgrade to full Magisk to finish the setup. Download and install"OK
    - Magisk app will not reboot but update itself. But if you open app
    again it will asked to reboot for addition upgrade.

    odin-all-sametime.PNG

    >AP SLOT : AP_TAR_MD5_CUSTOM_FILE_ODIN.tar.md5
    >BL Slot : BL Stock.md5
    >CP SLOT: CP Stock.md5
    >CSC Slot: CSC Stock.md5 ------> (Don't uses HOME_CSC)
    >USERDATA Slot: magisk_boot_vbmeta_patch.tar

    ✓ How to create Magisk patch for boot.img + vbmeta.img
    1. extract (vbmeta.img.lz4 + boot.img.lz4) from your AP Stock
    2. create compress one file xxx .tar with 7zip
    3. move (vbmeta.img.lz4 + boot.img.lz4).tar (xxx.tar) to tab a7 lite
    4. install magisk.apk on you tab a7 lite
    5. patch the tar file. (with magisk manager)
    6. result magisk-patch file at Tab a7 :-Download folder.

    Recommend: Default R/W GSI " by Nazim"

    My Examples
    https://forum.xda-developers.com/t/...-lite-gsi-installation.4503647/#post-87550627

    If you can't booted "VNDK Lite" variant but want to uses mount Read/Write .
    Part3 -Create CustomAP Tutorial.
    1
    You misunderstood my post. I am talking about the headphone jack, not Bluetooth but wired headphones.
    I never used Bluetooth with Sony. Used only wired.
    Try to setup GSI here
    -Samsung features
    Enable stereo audio mode
    Enable extra sensor
    s

    -Misc features
    Use alternate way to detect headsets
    Disable audio effects

    and reboot
    1
    So yours doesn't output sound along with the speakers? Anything specific I need to setup at the phh settings? I only know how to fully fix Bluetooth but never managed to do the same for wired audio.
    Try it ..will work . I only uses Bluetooth with Samsung buds 2 only. Sony with wired.
    1

    <<<< Note PE v.415 BUG NOT BOOT FROM MEDIATEK>>>>​

    Easy & Quick RESTORE FROM (Any GSI) BACK TO (STOCK with TWRP)

    !!! If you are already on the A11 (Pure Stock)
    !!! Bootloader unlocked.
    !!! IF CAME FROM "SOFT BRICKED"

    (Forced Restart to Download mode.)--from system failure

    Press key combo ( Power + vol up + vol down ) until blank screen then release power button but still press and hold ( Vol up + Vol down ) + connect USB cable to Computer. ( Download mode)

    0. Download the actual FW A11 with Frija or samfirm or Bifrost, and extract
    it and you will get 5 files (AP, BL, CP, CSC and HOME_CSC). All files are in tar format and can be opened by 7-Zip, WinRAR or other software.

    1. Flash the FW A11
    - BL + AP + CP + CSC ( clean data)
    - put (TWRP + vbmeta_disabler)dot tar in USERDATA slot.
    and click "Start"

    NOTE.
    • Default Odin Auto reboot to system.

    But Your device will reboot but it will not boot into system as "vbmeta signature" has changed.

    2. When Auto Boot into TWRP mode from step 1. TAB screen may be black , you must activates it by press power then volumn.

    Insert USB OTG attach mouse. wait for mouse detecting.

    In your TWRP Recovery menu.

    • Go to Advanced > Terminal, type: multidisabler. Click Enter.

    • Go back to Main menu , Wipe > Format Data > type yes.

    Option<<<Install the Magisk.apk with TWRP >>>

    3. Boot---->System
    Done

    >>>>>>>>>>>>>>>>>>

    From your Computer

    1. INSTALL "Android Bootloader interface" Driver. (Download from First page OP)

    Note: very important bootloader driver for used fastboot of the twrp.
    Android Bootloader Interface Drivers are needed for your PC to identify the device connected in Fastboot Mode and hence execute the desired Fastboot Commands.

    2. Copy & paste "Platform tools" to C:/ and copy &paste GSI.img into this folder. ( "vbmeta.img" IF NOT FOUNDED , PLEASE EXTRACTED FROM YOUR AP FILE)

    3. Run Cmd or Open cmd.bat from inside folder platform tools ,

    Code:
    adb reboot fastboot
    >>>tab will auto reboot to "TWRP fastoot mode" (ignored black screen)

    fastboot devices
    .>>>Output screen will show your tab S/n

    Code:
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

    Code:
    fastboot erase system

    Code:
    fastboot flash system yourGSI.img
    >>> ignored invalid spare 'system'...at header magic
    >>> divided PE system image file into parts suitable for write to dynamic tab
    > system partition.

    Code:
    fastboot -w
    >>>This will also erase your internal storage.

    Code:
    fastboot reboot recovery
    >>>>>>Booting to TWRP

    from TWRP menu
    wipe --->format data --->yes
    reboot System

    Now meet PE.

    ain1.PNG

    Detail: download OP: !!! Want more detail , please download Ain1.jpg https://forum.xda-developers.com/attachments/ain1-jpg.5691897/
    Update
    Pixel Experience 12.1 v415.1 ( not boot on mediatek )


    >>>>>>>Tools Resources.<<<<<

    Download: (TWRP225 + vbmeta_disabler).tar https://mega.nz/file/QTIWmTJb#jIneu-vSC-tOSzN-mFhOurCtShGuZTkyoRrQ791R24s

    PE+ PixelExperience_Plus_arm64-ab-vndklite-12.1-20220613-UNOFFICIAL.img.xz

    PE PixelExperience_arm64-ab-vndklite-12.1-20220612-UNOFFICIAL.img.xz

    A Magisk module to:
    • Hide tablet taskbar pill (Long press to hide, for Android 12.1+)
    • Fix tablet taskbar height (for PixelExperience 12.1)

    SamsungAppsPatcher:

    >>>>>>>>>>>>>>>>
    can you upload the vbmeta file that you used?
    I am doing all the steps, but it stays stuck on the TWRP (it is booting again and again to TWRP).

    Is there any other step to do?

    I am trying to install GSI PE for sm-t225n, which pixel experience version should I use?

    thx!
    1

    SUPERIOR OS - UNOFFICIAL GSI (12L)

    Screenshot_20220827-094202_Telegram.jpg


    Support: exFAT sd-card

    NO WARRANTY BIT EFFECT DURING OFFLINE CHARGING.

    No Treble GSIs Overlay for Tab A7 Lite
    - Missing battery usage stats


    CHANGELOG
    | Sync with July Source (Changelog)
    | Sync with PHH v415


    Screenshot_20220826-112228_Vivaldi Browser.jpg

    Screenshot_20220902-093312_Browser.jpg

    Screenshot_20220826-113115_Vivaldi Browser.jpg

    1.PNG

    2.PNG

    3.PNG

    Screenshot_20220828-131353_SuperiorOS Launcher.png

    Screenshot_20220902-094408_Settings.png


    No Treble Overlay GSI
    Screenshot_20220902-113603_Settings.png