美文网首页
Android镜像编辑

Android镜像编辑

作者: andorid_xiao | 来源:发表于2023-01-03 17:38 被阅读0次

1.解压android_x86_64.iso

原文件android_x86_64.iso在linux平台可直接通过mount进行挂载,将其中内容复制到新建目录中

mkdir mnt    //创建用于挂载的目录
mkdir newiso   //创建用于编辑新镜像的目录
sudo mount android_x86_64.iso mnt    //挂载镜像
sudo cp -rf mnt/* newiso/      //将镜像中文件提取至新目录

镜像文件内容如下所示:


image.png

2.解压system.sfs

system.sfs文件为压缩过的系统镜像,系统相关的修改主要发生该文件中。这里需要使用unsquashfs命令对system.sfs进行解压得到system.img文件

unsquashfs system.sfs   //执行后会在当前路径创建squashfs-root目录

3.提取并编辑system.img

system.img 是Android 系统中用来存放系统文件的镜像,对system.img的提取过程同前面的iso文件一样,先挂载,再提取出来。

cd squashfs-root 
mkdir mnt    //创建用于挂载的目录
mkdir newsys   //创建用于编辑新镜像的目录
sudo mount system.img mnt    //挂载镜像
sudo cp -rf mnt/* newsys/      //将镜像中文件提取至新目录

系统镜像内容如下图所示:


image.png

3. 重打包system.img

修改完成后,需要将newsys下的内容重新打包到system.img中,这里需要参考android系统编译后的打包流程。android通过python脚本AOSP_PATH/build/make/tools/releasetools/build_image.py生成system.img文件,该脚本输入参数包括镜像输入输出路径以及配置参数文件,最终调用
$AOSP_PATH/out/host/linux-x86/bin/mkuserimg_mke2fs.sh脚本构建system.img。这里我们直接使用mkuserimg_mke2fs.sh来完成system.img重打包。(如果没进行过源码编译,可下载工具包https://download.csdn.net/download/xq7997879/87362624)

sudo mkuserimg_mke2fs.sh $YOURPATH/newsys new.img ext4 system 0 -j 0 -D newsys -L system -M 0 file_contexts.bin  //生成new.img,完成镜像构建

4. 构建system.sfs

前面通过unsquashfs对system.img进行解压,这里使用squashfs对new.img进行压缩,并将生成的system.sfs覆盖newiso目录下的system.sfs

mksquashfs new.img system.sfs -noappend -comp gzip
mv -f system.sfs $YOURPATH/newiso/system.sfs //替换system.sfs

5. 构建android_x86_64.iso

sudo mkisofs -vJURT -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -input-charset utf-8  -o android_x86_64_new.iso $YOURPATH/newiso

相关文章

网友评论

      本文标题:Android镜像编辑

      本文链接:https://www.haomeiwen.com/subject/anslcdtx.html