I successfully ported TWRP for my OT-6012X with almost all functions working but i have one problem. TWRP need /emmc (internal memory to store settings, etc) but I am unable to find method to mount internal memory because my device have no dedicated partition for internal memory but uses folder on of mmcblk0p8 (/data/media/) instead.
My NAND is EMMC and here are device emulators from android:
dev_mount sdcard /storage/sdcard0 [email protected] /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host
But in recovery all I could mount is here, you will spot there is no any emulated drives
Code:
drwxr-xr-x 3 root root 280 Mar 19 19:40 .
drwxr-xr-x 4 root root 80 Mar 19 19:40 ..
drwxr-xr-x 2 root root 200 Mar 19 19:40 by-num
lrwxrwxrwx 1 root root 18 Mar 19 19:40 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx 1 root root 23 Mar 19 19:40 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx 1 root root 23 Mar 19 19:40 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p7 -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root 20 Mar 19 19:40 mmcblk0p8 -> /dev/block/mmcblk0p8
Here is an idea: How about to create some script which will mount /data and create symlink /emmc -> /data/media/ just to get rid of error messages from TWRP which appears each time TWRP start (while trying to load/save config, etc...)
Question: How can i create script which will start automatic as TWRP load to mount and create that symbolic link? Is there any trick like init.d or so? Can i put my code in init.rc? Any suggestions?
Solved with injecting code in init.rc (mount /data, symlink /data/media)
I see a lot of users asking for pit file for T210/R 8GB after bricking their partition table due to a bad flash, i see here to share it.
This pit file is extracted from rooted Tab 3 T210/R 8GB .
Unzip attached zip and flash pit file along with stock firmware in odin.
...Do not flash it if there is no need to...
Flash it if Odin says: "there is no pit partition" or "Re-Partition operation failed", in this case "Re-Partition" must be marked.
!Flash it at your own risk and responsibility!
THX to @Greaper88
T210 8GB partition table
List of blocks by number:
Code:
adb shell
cat /proc/partitions
major minor #blocks name
179 0 7634944 mmcblk0
179 1 1024 mmcblk0p1
179 2 1024 mmcblk0p2
179 3 4096 mmcblk0p3
179 4 4096 mmcblk0p4
179 5 4096 mmcblk0p5
179 6 12288 mmcblk0p6
179 7 8192 mmcblk0p7
179 8 12288 mmcblk0p8
179 9 12288 mmcblk0p9
179 10 12288 mmcblk0p10
179 11 10240 mmcblk0p11
179 12 16384 mmcblk0p12
179 13 4096 mmcblk0p13
179 14 1472512 mmcblk0p14
179 15 204800 mmcblk0p15
179 16 204800 mmcblk0p16
179 17 5640192 mmcblk0p17
179 48 2048 mmcblk0boot1
179 24 2048 mmcblk0boot0
179 72 1927168 mmcblk1
179 73 1926144 mmcblk1p1
List of blocks by name:
Code:
adb shell
ls -al /dev/block/platform/sdhci-pxav3.2/by-name
lrwxrwxrwx root root 2014-04-24 19:30 BOTA0 -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 2014-04-24 19:30 CACHE -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 2014-04-24 19:30 EFS -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 2014-04-24 19:30 HIDDEN -> /dev/block/mmcblk0p16
lrwxrwxrwx root root 2014-04-24 19:30 KERNEL -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 2014-04-24 19:30 MEP -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 2014-04-24 19:30 MISC -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 2014-04-24 19:30 MODEM -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 2014-04-24 19:30 MRD -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 2014-04-24 19:30 NVM -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 2014-04-24 19:30 PARAM -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 2014-04-24 19:30 RECOVERY -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 2014-04-24 19:30 SBL -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 2014-04-24 19:30 SBL2 -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 2014-04-24 19:30 SYSTEM -> /dev/block/mmcblk0p14
lrwxrwxrwx root root 2014-04-24 19:30 USER -> /dev/block/mmcblk0p17
thanks for the info.
Samsung Galaxy Tab3 SM-T210R Pit file
Hi do you also have the pit file for samsung galaxy tab 3 sm-t210r? or do you know where to get it? thank you
Do they use the same partition table since they're both 8GB?
edit: And if your PIT is messed up already, you can't hurt anything by trying it. As long as it provides enough space for everything that needs to be installed, I would expect it to be fine.
PIT info from SM-T210R
Blocks list by number:
major minor #blocks name
179 0 7634944 mmcblk0
179 1 1024 mmcblk0p1
179 2 1024 mmcblk0p2
179 3 4096 mmcblk0p3
179 4 4096 mmcblk0p4
179 5 4096 mmcblk0p5
179 6 12288 mmcblk0p6
179 7 8192 mmcblk0p7
179 8 12288 mmcblk0p8
179 9 12288 mmcblk0p9
179 10 12288 mmcblk0p10
179 11 10240 mmcblk0p11
179 12 16384 mmcblk0p12
179 13 4096 mmcblk0p13
179 14 1472512 mmcblk0p14
179 15 204800 mmcblk0p15
179 16 204800 mmcblk0p16
179 17 5640192 mmcblk0p17
179 48 2048 mmcblk0boot1
179 24 2048 mmcblk0boot0
179 72 31166976 mmcblk1
179 73 22163085 mmcblk1p1
179 74 8003906 mmcblk1p2
179 75 999983 mmcblk1p3
Click to expand...
Click to collapse
Blocks list by Name:
lrwxrwxrwx root root 2014-11-11 04:22 BOTA0 -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 2014-11-11 04:22 CACHE -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 2014-11-11 04:22 EFS -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 2014-11-11 04:22 HIDDEN -> /dev/block/mmcblk0p16
lrwxrwxrwx root root 2014-11-11 04:22 KERNEL -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 2014-11-11 04:22 MEP -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 2014-11-11 04:22 MISC -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 2014-11-11 04:22 MODEM -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 2014-11-11 04:22 MRD -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 2014-11-11 04:22 MRD_BK -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 2014-11-11 04:22 NVM -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 2014-11-11 04:22 PARAM -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 2014-11-11 04:22 RECOVERY -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 2014-11-11 04:22 SBL -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 2014-11-11 04:22 SBL2 -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 2014-11-11 04:22 SYSTEM -> /dev/block/mmcblk0p14
lrwxrwxrwx root root 2014-11-11 04:22 USER -> /dev/block/mmcblk0p17
Click to expand...
Click to collapse
From what I can tell, the PITs are exactly the same. "dev/block/mmcblk1" and "mmcblk1p*" (the "p*" refers to the partition #)are the external microSD card. Mine has 3 partitions: Link2sd and swap.
So, based on these findings, I would try this PIT file if I needed to for my T210R. But again, flash at your own risk
SG Tab 3 Pit File
Thank you Greaper88, i'll try that but can you teach me how to use that pit file on odin? Thank you
ljgrn_cnmi12 said:
Thank you Greaper88, i'll try that but can you teach me how to use that pit file on odin? Thank you
Click to expand...
Click to collapse
Using a PIT file assumes you also have a ROM to flash.
In the attached pic, Box 1 should show "COM: ##" when your device is connected and in download mode.
Box 2 is highlighting the "Re-partition" box. It needs to be checked, otherwise Odin won't rewrite the PIT.
Box 3 is clicking "PIT" and selecting the PIT file downloaded from this forum.
Box 4 is selecting your ROM for your device: http://forum.xda-developers.com/galaxy-tab-3/general/tab-3-7-0-sm-t210-r-stock-4-4-2-kitkat-t2930075
Since the ROM referenced in that link is stock all the way, I would try flashing it first without using the PIT, then using the PIT if it fails.
Box 5 is clicking the "Start" button and waiting.
Good luck to you
@Greaper88
thank you for sharing
please can you share pit partition of your 210R (i guess it is the same as 210, but to be sure)
use this command to extract it (in adb shell or terminal emulator):
Code:
dd if=/dev/block/mmcblk0 of=/sdcard/out.pit bs=8 count=481 skip=2176
zip the output and attached to a post
samersh72 said:
@Greaper88
please can you share pit partition of your 210R (i guess it is the same as 210, but to be sure)
use this command to extract it (in adb shell or terminal emulator):
Code:
dd if=/dev/block/mmcblk0 of=/sdcard/out.pit bs=8 count=481 skip=2176
zip the output and attached to a post
Click to expand...
Click to collapse
Cool. Thanks. Learn something new evry day
pit file for tab 3 p5210
Hi...pls i nid help on pit file for tab 3 p5210...i'd appreciate any link...fanx
I have tried my best to follow this tutorial but it hasn't fixed my Galaxy Tab 3 - SM-T210. This is the error message I'm getting. Can anyone spot what I'm doing wrong?
Hi,
i have problem to reflash the lates ROM for P3100.
first i install the lates rom with success, after few days i have error "Can't load native library. CPU arch invalid for this build" then my tab restart. i tried to re flash thr ROM and its success but still same problem then i flash other version ROM its success but when its booting still on the same ROM. i also try to flash stock rom using odin, its success but same problem, booting and still using SlimROM. i have no idea with this problem please help
ROM SlimKAT
Recovery : TWRP
[email protected]:/ $ ls -l /dev/block/platform/omap/omap_hsmmc.1/by-name/
ls -l /dev/block/platform/omap/omap_hsmmc.1/by-name/
lrwxrwxrwx root root 2014-05-16 23:08 CACHE -> /dev/block/mmcbl
k0p7
lrwxrwxrwx root root 2014-05-16 23:08 DATAFS -> /dev/block/mmcb
lk0p10
lrwxrwxrwx root root 2014-05-16 23:08 EFS -> /dev/block/mmcblk0
p1
lrwxrwxrwx root root 2014-05-16 23:08 FACTORYFS -> /dev/block/m
mcblk0p9
lrwxrwxrwx root root 2014-05-16 23:08 HIDDEN -> /dev/block/mmcb
lk0p11
lrwxrwxrwx root root 2014-05-16 23:08 KERNEL -> /dev/block/mmcb
lk0p5
lrwxrwxrwx root root 2014-05-16 23:08 MODEM -> /dev/block/mmcbl
k0p8
lrwxrwxrwx root root 2014-05-16 23:08 PARAM -> /dev/block/mmcbl
k0p4
lrwxrwxrwx root root 2014-05-16 23:08 RECOVERY -> /dev/block/mm
cblk0p6
lrwxrwxrwx root root 2014-05-16 23:08 SBL1 -> /dev/block/mmcblk
0p2
lrwxrwxrwx root root 2014-05-16 23:08 SBL2 -> /dev/block/mmcblk
0p3
[email protected]:/ $ cat /proc/partitions
cat /proc/partitions
major minor #blocks name
179 0 15388672 mmcblk0
179 1 20480 mmcblk0p1
179 2 2048 mmcblk0p2
179 3 2048 mmcblk0p3
179 4 8192 mmcblk0p4
179 5 8192 mmcblk0p5
179 6 8192 mmcblk0p6
179 7 716800 mmcblk0p7
259 0 20480 mmcblk0p8
259 1 1433600 mmcblk0p9
259 2 12640239 mmcblk0p10
259 3 524288 mmcblk0p11
179 16 2048 mmcblk0boot1
179 8 2048 mmcblk0boot0
179 24 15724544 mmcblk1
179 25 15723520 mmcblk1p1
any idea ? seems every i install apk its success but after restart the phone the program gone, same with when i uninstall apk, when reboot the phone the program still there. whatever im done all coming back
attach recovery log
anyone?
Hi, I had a working rooted ZTE Nubia Z5 NX501 with TWRP.
The userdata space is 2860MB while sdcard space is 25.4GB so i deciced to merge them using some adb commands in Windows
The memory details are as follow
fdisk -l /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 31.2 GB, 31268536320 bytes
256 heads, 63 sectors/track, 3786 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 266306 2147483647+ ee EFI GPT
cat /proc/partitions
major minor #blocks name
179 0 30535680 mmcblk0
179 1 87536 mmcblk0p1
179 2 128 mmcblk0p2
179 3 256 mmcblk0p3
179 4 512 mmcblk0p4
179 5 2048 mmcblk0p5
179 6 512 mmcblk0p6
179 7 15360 mmcblk0p7
179 8 512 mmcblk0p8
179 9 1 mmcblk0p9
179 10 3072 mmcblk0p10
179 11 3072 mmcblk0p11
179 12 1024 mmcblk0p12
179 13 10240 mmcblk0p13
179 14 15360 mmcblk0p14
179 15 2097152 mmcblk0p15
179 16 2792912 mmcblk0p16
179 17 8192 mmcblk0p17
179 18 122880 mmcblk0p18
179 19 153600 mmcblk0p19
179 20 780 mmcblk0p20
179 21 780 mmcblk0p21
179 22 780 mmcblk0p22
179 23 8 mmcblk0p23
179 24 1 mmcblk0p24
179 25 24768494 mmcblk0p25
ls -al /dev/block/platform/msm_sdcc.1/by-name
lrwxrwxrwx root root 1970-02-03 18:28 DDR -> /dev/block/mmcblk0p23
lrwxrwxrwx root root 1970-02-03 18:28 aboot -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 1970-02-03 18:28 boot -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 1970-02-03 18:28 cache -> /dev/block/mmcblk0p18
lrwxrwxrwx root root 1970-02-03 18:28 customfs -> /dev/block/mmcblk0p19
lrwxrwxrwx root root 1970-02-03 18:28 grow -> /dev/block/mmcblk0p25
lrwxrwxrwx root root 1970-02-03 18:28 m9kefs1 -> /dev/block/mmcblk0p20
lrwxrwxrwx root root 1970-02-03 18:28 m9kefs2 -> /dev/block/mmcblk0p21
lrwxrwxrwx root root 1970-02-03 18:28 m9kefs3 -> /dev/block/mmcblk0p22
lrwxrwxrwx root root 1970-02-03 18:28 m9kefsc -> /dev/block/mmcblk0p24
lrwxrwxrwx root root 1970-02-03 18:28 misc -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 1970-02-03 18:28 modem -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 1970-02-03 18:28 modemst1 -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 1970-02-03 18:28 modemst2 -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 1970-02-03 18:28 pad -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 1970-02-03 18:28 persist -> /dev/block/mmcblk0p17
lrwxrwxrwx root root 1970-02-03 18:28 recovery -> /dev/block/mmcblk0p14
lrwxrwxrwx root root 1970-02-03 18:28 rpm -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 1970-02-03 18:28 sbl1 -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 1970-02-03 18:28 sbl2 -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 1970-02-03 18:28 sbl3 -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 1970-02-03 18:28 splash -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 1970-02-03 18:28 system -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 1970-02-03 18:28 tz -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 1970-02-03 18:28 userdata -> /dev/block/mmcblk0p16
parted /dev/block/mmcblk0 print
Model: MMC MBG8FB (sd/mmc)
Disk /dev/block/mmcblk0: 31.3GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 67.1MB 157MB 89.6MB fat16 modem
2 201MB 201MB 131kB sbl1
3 201MB 202MB 262kB sbl2
4 202MB 202MB 524kB sbl3
5 202MB 204MB 2097kB aboot
6 204MB 205MB 524kB rpm
7 268MB 284MB 15.7MB boot
8 336MB 336MB 524kB tz
9 336MB 336MB 1024B pad
10 336MB 339MB 3146kB modemst1
11 339MB 342MB 3146kB modemst2
12 342MB 343MB 1049kB misc
13 343MB 354MB 10.5MB splash
14 403MB 418MB 15.7MB recovery
15 418MB 2566MB 2147MB ext4 system
16 2566MB 5426MB 2860MB ext4 userdata
17 5426MB 5434MB 8389kB ext4 persist
18 5434MB 5560MB 126MB ext4 cache
19 5560MB 5717MB 157MB ext4 customfs
20 5771MB 5772MB 799kB m9kefs1
21 5772MB 5773MB 799kB m9kefs2
22 5838MB 5839MB 799kB m9kefs3
23 5839MB 5839MB 8192B DDR
24 5906MB 5906MB 1024B m9kefsc
25 5906MB 31.3GB 25.4GB fat32 grow
As you can see in order to all the space in the "grow" partition for the "userdata" partition i figured i had to delete partitions 16-25 and create them again with different calculations in size, so before i did that i dump images for all the partitions to be deleted (I did not backup the other partitions, maybe i was lazy).
I don't know how i messed up so now all i have is a QHSUSB_DLOAD device that i'm not able to get the drivers for.
The hardware id is USB\VID_19D2&PID_FFAE&REV_0000&MI_00 but i cannot find it, nor do i know what other driver i can use to put that string inside and get it to work and maybe try to unbrick my device. But on the other side i have a QHSUSB_DLOAD usb device with 5 units from F to J and the Disk Management shows a 30GB disk with around 15 partitions.
My device comes with Snapdragon 600 quad-core a 1.5GHz processor, 2GB of RAM y 32GB of internal storage.
Can anyone help me?
Hi,
This is my first project that I'm currently working on.
I recently bought a android dashcam which UI I would like to change based on my personal preferences. Unfortunately I'm struggling to setup an environment where I can test the changes I make before replacing the original UI on the device itself. I identified the SystemUI.apk to be the place where the manufacturer made customization. I will be using the SystemUI.apk built from AOSP and making my changes based on that. I had no luck trying to decompile the SystemUI.apk in a way that I could build it again.
I was thinking that I could use an android emulator to use the same ROM as the device itself. The manufacturer did not provide any support in providing stock firmware images in any way. So I used the following steps to 'export' the firmware.
1. Unlocking the bootloader using the Identifier Token so I can flash images using fastboot. TWRP was not an option here because I could not find any images for my device nor could I port an TWRP image myself.
2. Enable ADB debugging over usb
3. Enable ADB root privileges using the password: 2846 (if i remember correctly)
4. Use ADB remount and ADB root to gain privileges over the partitions
5. Gain information on partition data
6. Use ADB pull to export images based on partitions
After following the above steps the next thing was to import the images into an emulator. I used the following steps to do this:
1. Create a new device within Android Studio that has the same screen size and os.
2. Replace the system.img, ramdisk.img with the exported variants in ~/Android/Sdk/../arm64-v8a
3. Turn off EncryptUserData inside advancedFeatures.ini to prevent errors like partitions that are unable to encrypt
4. Use the command below to start the emulator
Code:
~/Android/Sdk/emulator/emulator -avd Junsun_A104_API_27 -verbose -show-kernel
5. After running the emulator I receive the error below and the screen of the emulator stays black.
Code:
Please append a correct "root=" boot option; here are the available partitions:
fe00 2867200 vda driver: virtio_blk
fe10 67584 vdb driver: virtio_blk
fe20 819200 vdc driver: virtio_blk
fe30 409600 vdd driver: virtio_blk
fe40 524288 vde driver: virtio_blk
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
My assumption is that the emulator does not contain the same partition model used on the device. I could try to export each partition but I wouldn't know how to let the emulator know how to use these partitions. I tried to export the kernel and import it inside the emulator without luck. I did not receive any errors that way.
So my main question is:
- Is there any way I can import the device's rom inside an android emulator
Spoiler: Emulator Config
AvdId=Junsun_A104_API_27
PlayStore.enabled=false
abi.type=arm64-v8a
avd.ini.displayname=Junsun A104 API 27
avd.ini.encoding=UTF-8
disk.dataPartition.size=800M
fastboot.chosenSnapshotFile=
fastboot.forceChosenSnapshotBoot=no
fastboot.forceColdBoot=no
fastboot.forceFastBoot=yes
hw.accelerometer=yes
hw.arc=false
hw.audioInput=yes
hw.battery=yes
hw.camera.back=virtualscene
hw.camera.front=emulated
hw.cpu.arch=arm64
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=MD5:7834f5e80eb849ceb46ce01cd4c704f7
hw.device.manufacturer=User
hw.device.name=Junsun A104
hw.gps=yes
hw.gpu.enabled=no
hw.gpu.mode=off
hw.initialOrientation=landscape
hw.keyboard=yes
hw.lcd.density=120
hw.lcd.height=320
hw.lcd.width=1480
hw.mainKeys=no
hw.ramSize=2560
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images/android-27/default/arm64-v8a/
runtime.network.latency=none
runtime.network.speed=full
sdcard.size=512M
showDeviceFrame=no
skin.dynamic=yes
skin.name=1480x320
skin.path=_no_skin
skin.path.backup=/home/dangelo/Android/Sdk/skins/tv_1080p
tag.display=Default Android System Image
tag.id=default
vm.heapSize=48
Spoiler: Partition data
$ cat /proc/partitions
major minor #blocks name
1 0 8192 ram0
1 1 8192 ram1
1 2 8192 ram2
1 3 8192 ram3
1 4 8192 ram4
1 5 8192 ram5
1 6 8192 ram6
1 7 8192 ram7
1 8 8192 ram8
1 9 8192 ram9
1 10 8192 ram10
1 11 8192 ram11
1 12 8192 ram12
1 13 8192 ram13
1 14 8192 ram14
1 15 8192 ram15
254 0 1572864 zram0
179 0 30670848 mmcblk0
179 1 5120 mmcblk0p1
179 2 1024 mmcblk0p2
179 3 35840 mmcblk0p3
179 4 1024 mmcblk0p4
179 5 6144 mmcblk0p5
179 6 6144 mmcblk0p6
179 7 1024 mmcblk0p7
259 0 1024 mmcblk0p8
259 1 1024 mmcblk0p9
259 2 1024 mmcblk0p10
259 3 4096 mmcblk0p11
259 4 1024 mmcblk0p12
259 5 1024 mmcblk0p13
259 6 1024 mmcblk0p14
259 7 1024 mmcblk0p15
259 8 1024 mmcblk0p16
259 9 1024 mmcblk0p17
259 10 1024 mmcblk0p18
259 11 1024 mmcblk0p19
259 12 10240 mmcblk0p20
259 13 2048 mmcblk0p21
259 14 25600 mmcblk0p22
259 15 1024 mmcblk0p23
259 16 10240 mmcblk0p24
259 17 20480 mmcblk0p25
259 18 1024 mmcblk0p26
259 19 35840 mmcblk0p27
259 20 2867200 mmcblk0p28
259 21 153600 mmcblk0p29
259 22 409600 mmcblk0p30
259 23 1024 mmcblk0p31
259 24 1024 mmcblk0p32
259 25 27059183 mmcblk0p33
179 24 4096 mmcblk0rpmb
179 16 4096 mmcblk0boot1
179 8 4096 mmcblk0boot0
253 0 27059167 dm-0
output using the ls command with arguments that I forgot
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 boot -> /dev/block/mmcblk0p27
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 cache -> /dev/block/mmcblk0p29
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 fbootlogo -> /dev/block/mmcblk0p13
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 gpsbd -> /dev/block/mmcblk0p19
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 gpsgl -> /dev/block/mmcblk0p18
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_deltanv -> /dev/block/mmcblk0p23
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_fixnv1 -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_fixnv2 -> /dev/block/mmcblk0p15
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_gdsp -> /dev/block/mmcblk0p24
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_ldsp -> /dev/block/mmcblk0p25
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_modem -> /dev/block/mmcblk0p22
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_runtimenv1 -> /dev/block/mmcblk0p16
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_runtimenv2 -> /dev/block/mmcblk0p17
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 logo -> /dev/block/mmcblk0p12
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 misc -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 miscdata -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 persist -> /dev/block/mmcblk0p21
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 pm_sys -> /dev/block/mmcblk0p26
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 prodnv -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 recovery -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 sml -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 sml_bak -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 system -> /dev/block/mmcblk0p28
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 trustos -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 trustos_bak -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 uboot -> /dev/block/mmcblk0p9
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 uboot_bak -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 uboot_log -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 userdata -> /dev/block/mmcblk0p33
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vbmeta -> /dev/block/mmcblk0p31
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vbmeta_bak -> /dev/block/mmcblk0p32
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vendor -> /dev/block/mmcblk0p30
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 wcnmodem -> /dev/block/mmcblk0p20
Spoiler: Device information
Device name: Junsun A104
Android: 8.1. Oreo API level 27
CPU:
64bit
ARM64-V8A
Spreadtrum SC9832e
Memory: 2GB
Kernel architecture: aarch64
Kernel version: 4.4.83-00001-g213b4e3
dangelob said:
Hi,
This is my first project that I'm currently working on.
I recently bought a android dashcam which UI I would like to change based on my personal preferences. Unfortunately I'm struggling to setup an environment where I can test the changes I make before replacing the original UI on the device itself. I identified the SystemUI.apk to be the place where the manufacturer made customization. I will be using the SystemUI.apk built from AOSP and making my changes based on that. I had no luck trying to decompile the SystemUI.apk in a way that I could build it again.
I was thinking that I could use an android emulator to use the same ROM as the device itself. The manufacturer did not provide any support in providing stock firmware images in any way. So I used the following steps to 'export' the firmware.
1. Unlocking the bootloader using the Identifier Token so I can flash images using fastboot. TWRP was not an option here because I could not find any images for my device nor could I port an TWRP image myself.
2. Enable ADB debugging over usb
3. Enable ADB root privileges using the password: 2846 (if i remember correctly)
4. Use ADB remount and ADB root to gain privileges over the partitions
5. Gain information on partition data
6. Use ADB pull to export images based on partitions
After following the above steps the next thing was to import the images into an emulator. I used the following steps to do this:
1. Create a new device within Android Studio that has the same screen size and os.
2. Replace the system.img, ramdisk.img with the exported variants in ~/Android/Sdk/../arm64-v8a
3. Turn off EncryptUserData inside advancedFeatures.ini to prevent errors like partitions that are unable to encrypt
4. Use the command below to start the emulator
Code:
~/Android/Sdk/emulator/emulator -avd Junsun_A104_API_27 -verbose -show-kernel
5. After running the emulator I receive the error below and the screen of the emulator stays black.
Code:
Please append a correct "root=" boot option; here are the available partitions:
fe00 2867200 vda driver: virtio_blk
fe10 67584 vdb driver: virtio_blk
fe20 819200 vdc driver: virtio_blk
fe30 409600 vdd driver: virtio_blk
fe40 524288 vde driver: virtio_blk
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
My assumption is that the emulator does not contain the same partition model used on the device. I could try to export each partition but I wouldn't know how to let the emulator know how to use these partitions. I tried to export the kernel and import it inside the emulator without luck. I did not receive any errors that way.
So my main question is:
- Is there any way I can import the device's rom inside an android emulator
Spoiler: Emulator Config
AvdId=Junsun_A104_API_27
PlayStore.enabled=false
abi.type=arm64-v8a
avd.ini.displayname=Junsun A104 API 27
avd.ini.encoding=UTF-8
disk.dataPartition.size=800M
fastboot.chosenSnapshotFile=
fastboot.forceChosenSnapshotBoot=no
fastboot.forceColdBoot=no
fastboot.forceFastBoot=yes
hw.accelerometer=yes
hw.arc=false
hw.audioInput=yes
hw.battery=yes
hw.camera.back=virtualscene
hw.camera.front=emulated
hw.cpu.arch=arm64
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=MD5:7834f5e80eb849ceb46ce01cd4c704f7
hw.device.manufacturer=User
hw.device.name=Junsun A104
hw.gps=yes
hw.gpu.enabled=no
hw.gpu.mode=off
hw.initialOrientation=landscape
hw.keyboard=yes
hw.lcd.density=120
hw.lcd.height=320
hw.lcd.width=1480
hw.mainKeys=no
hw.ramSize=2560
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images/android-27/default/arm64-v8a/
runtime.network.latency=none
runtime.network.speed=full
sdcard.size=512M
showDeviceFrame=no
skin.dynamic=yes
skin.name=1480x320
skin.path=_no_skin
skin.path.backup=/home/dangelo/Android/Sdk/skins/tv_1080p
tag.display=Default Android System Image
tag.id=default
vm.heapSize=48
Spoiler: Partition data
$ cat /proc/partitions
major minor #blocks name
1 0 8192 ram0
1 1 8192 ram1
1 2 8192 ram2
1 3 8192 ram3
1 4 8192 ram4
1 5 8192 ram5
1 6 8192 ram6
1 7 8192 ram7
1 8 8192 ram8
1 9 8192 ram9
1 10 8192 ram10
1 11 8192 ram11
1 12 8192 ram12
1 13 8192 ram13
1 14 8192 ram14
1 15 8192 ram15
254 0 1572864 zram0
179 0 30670848 mmcblk0
179 1 5120 mmcblk0p1
179 2 1024 mmcblk0p2
179 3 35840 mmcblk0p3
179 4 1024 mmcblk0p4
179 5 6144 mmcblk0p5
179 6 6144 mmcblk0p6
179 7 1024 mmcblk0p7
259 0 1024 mmcblk0p8
259 1 1024 mmcblk0p9
259 2 1024 mmcblk0p10
259 3 4096 mmcblk0p11
259 4 1024 mmcblk0p12
259 5 1024 mmcblk0p13
259 6 1024 mmcblk0p14
259 7 1024 mmcblk0p15
259 8 1024 mmcblk0p16
259 9 1024 mmcblk0p17
259 10 1024 mmcblk0p18
259 11 1024 mmcblk0p19
259 12 10240 mmcblk0p20
259 13 2048 mmcblk0p21
259 14 25600 mmcblk0p22
259 15 1024 mmcblk0p23
259 16 10240 mmcblk0p24
259 17 20480 mmcblk0p25
259 18 1024 mmcblk0p26
259 19 35840 mmcblk0p27
259 20 2867200 mmcblk0p28
259 21 153600 mmcblk0p29
259 22 409600 mmcblk0p30
259 23 1024 mmcblk0p31
259 24 1024 mmcblk0p32
259 25 27059183 mmcblk0p33
179 24 4096 mmcblk0rpmb
179 16 4096 mmcblk0boot1
179 8 4096 mmcblk0boot0
253 0 27059167 dm-0
output using the ls command with arguments that I forgot
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 boot -> /dev/block/mmcblk0p27
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 cache -> /dev/block/mmcblk0p29
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 fbootlogo -> /dev/block/mmcblk0p13
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 gpsbd -> /dev/block/mmcblk0p19
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 gpsgl -> /dev/block/mmcblk0p18
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_deltanv -> /dev/block/mmcblk0p23
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_fixnv1 -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_fixnv2 -> /dev/block/mmcblk0p15
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_gdsp -> /dev/block/mmcblk0p24
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_ldsp -> /dev/block/mmcblk0p25
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_modem -> /dev/block/mmcblk0p22
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_runtimenv1 -> /dev/block/mmcblk0p16
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 l_runtimenv2 -> /dev/block/mmcblk0p17
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 logo -> /dev/block/mmcblk0p12
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 misc -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 miscdata -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 persist -> /dev/block/mmcblk0p21
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 pm_sys -> /dev/block/mmcblk0p26
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 prodnv -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 recovery -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 sml -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 sml_bak -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 system -> /dev/block/mmcblk0p28
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 trustos -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 trustos_bak -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root 20 2022-04-29 14:35 uboot -> /dev/block/mmcblk0p9
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 uboot_bak -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 uboot_log -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 userdata -> /dev/block/mmcblk0p33
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vbmeta -> /dev/block/mmcblk0p31
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vbmeta_bak -> /dev/block/mmcblk0p32
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 vendor -> /dev/block/mmcblk0p30
lrwxrwxrwx 1 root root 21 2022-04-29 14:35 wcnmodem -> /dev/block/mmcblk0p20
Spoiler: Device information
Device name: Junsun A104
Android: 8.1. Oreo API level 27
CPU:
64bit
ARM64-V8A
Spreadtrum SC9832e
Memory: 2GB
Kernel architecture: aarch64
Kernel version: 4.4.83-00001-g213b4e3
Click to expand...
Click to collapse
All you should need is the system.img and the kernel, then extract the system.img untill you find the /system/app and/or the /system/priv-app(whichever folder contains your UI.apk), extract a copy of the UI.apk. Then use APKtool to remove the signature on the apk file then decompile the apk file then make your modifications then recompile and re-sign the apk file. Then place the newly modified UI.apk in the system folder where you extracted it from(overwrite/delete the old version of the apk). Then compress all the files back into the system.img like it was originally and then try to use your newly modified system.img in your emulator.
Try using Bluestacks or one of the other leading android emulators instead of using Android Studio.