在 Armbian 和 LibreELEC 换用主线内核之后就不能识别到 Android 分区了。可以解包 dtb 或用 ampart
查看 Android 各分区的 offset,然后根据 offset 用 losetup
映射成块设备,再挂载这个块设备。
先用 ampart 查看分区表:
LibreELEC:~
EPT report: 13 partitions in the table: =================================================================================== ID| name | offset|( human)| size|( human)| masks ----------------------------------------------------------------------------------- 0: bootloader 0 ( 0.00B) 400000 ( 4.00M) 0 (GAP) 2000000 ( 32.00M) 1: reserved 2400000 ( 36.00M) 4000000 ( 64.00M) 0 (GAP) 800000 ( 8.00M) 2: cache 6c00000 ( 108.00M) 20000000 ( 512.00M) 2 (GAP) 800000 ( 8.00M) 3: env 27400000 ( 628.00M) 800000 ( 8.00M) 0 (GAP) 800000 ( 8.00M) 4: logo 28400000 ( 644.00M) 2000000 ( 32.00M) 1 (GAP) 800000 ( 8.00M) 5: recovery 2ac00000 ( 684.00M) 2000000 ( 32.00M) 1 (GAP) 800000 ( 8.00M) 6: rsv 2d400000 ( 724.00M) 800000 ( 8.00M) 1 (GAP) 800000 ( 8.00M) 7: tee 2e400000 ( 740.00M) 800000 ( 8.00M) 1 (GAP) 800000 ( 8.00M) 8: crypt 2f400000 ( 756.00M) 2000000 ( 32.00M) 1 (GAP) 800000 ( 8.00M) 9: misc 31c00000 ( 796.00M) 2000000 ( 32.00M) 1 (GAP) 800000 ( 8.00M) 10: boot 34400000 ( 836.00M) 2000000 ( 32.00M) 1 (GAP) 800000 ( 8.00M) 11: system 36c00000 ( 876.00M) 40000000 (1024.00M) 1 (GAP) 800000 ( 8.00M) 12: data 77400000 ( 1.86G) 32ca00000 ( 12.70G) 4 ===================================================================================
|
可以看到 data
分区的 offset 为 77400000
,然后执行:
挂载 /dev/loop1
:
system
分区也是同理:
LibreELEC:~ /dev/loop2 LibreELEC:~
|
开机挂载脚本:
/storage/.config/autostart.sh#!/bin/sh
EMMCDEV="/dev/mmcblk1"
SYSTEMLOOP="$(losetup --find --show --offset 0x36c00000 $EMMCDEV)" mount -o ro $SYSTEMLOOP /system
DATALOOP="$(losetup --find --show --offset 0x77400000 $EMMCDEV)" mount -o rw,suid,acl,noatime,nodiratime $DATALOOP /data
|
PS:按理说下面这两条命令应该就行了,但是我的会报错:mount: mounting /dev/mmcblk1 on /data failed: Invalid argument
LibreELEC:~ mount: mounting /dev/mmcblk1 on /system failed: Invalid argument LibreELEC:~ mount: mounting /dev/mmcblk1 on /data failed: Invalid argument
|
PS2:LibreELEC 的 /
下没有 data
system
opt
目录,需要用 unsquashfs
解包优盘的 SYSTEM
后创建,再用 mksquashfs -comp zstd squashfs-root/ SYSTEM
打包回去。(压缩方式可以用 file SYSTEM
查看。)改完就可以用 Entware 和 Termux 啦。
PS3:Android 9 以后此方法就挂载不上 data 了,system 没有问题。