Android固件img文件的解包打包
To Unpack-Modify-Pach the system.img, I have followed the following procedure:
a) Unpacking
Run file system.img and make sure that system.img is Android Sparse Image.
Rename system.img to system.img.ext4. // Not required if you will use other name for raw image in below steps.
simg2img system.img.ext4 system.img
you will get a raw image file named system.img
mkdir system
create directory to mount system.img
sudo mount -t ext4 -o loop system.img system/
you will get all files of system.img in system folder
b) Modifying
ls -l system/init.rc
note permissions: 750
sudo chmod 777 system/init.rc
give write permissions
sudo echo "#MODIFICATION " >> system/init.rc
done some modification in init.rc
sudo chmod 750 init.rc
reset init.rc to the noted permissions
c) Calculate system sector size
tune2fs -l system.img | grep "Block size\|Block count"
you will get block size and count
echo $((1553064 * 4096))
multiply both results. I got 6361350144
d) Packing
sudo make_ext4fs -s -l 6361350144 -a system system_new.img sys/
you will get system_new.img “Android Sparse Image” that has all changes
Amlogic固件的解包修改和打包
需要两个工具, 一个是linux下的工具
https://github.com/natinusala/linux-amlogic-toolkit
另一个是windows下的解包和打包工具 Amlogic CustomizationTool
因为前者的打包存在bug, 所以只用于对system.img进行修改, 后者用于最外层的解包和打包工作.
# Mount system RW:
mount -o rw,remount /system
# Mount system RO:
mount -o ro,remount /system
/init.rc 内, 找到 service console 之后添加
service daemonsu /system/xbin/daemonsu --auto-daemon &
class main
oneshot