V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wyk86485481
V2EX  ›  Android

如何对 system.img 和 userdata.img 解包,再重新打包

  •  
  •   wyk86485481 · 2016-08-17 10:21:55 +08:00 · 6818 次点击
    这是一个创建于 2818 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下载代码仓储 https://android.googlesource.com/platform/system/extras:

    git clone https://android.googlesource.com/platform/system/extras
    

    选择对应的版本:

    cd extras
    git checkout android-4.1.1_r1
    

    编译 simg2img:

    cd ext4_utils
    gcc -o simg2img -lz sparse_crc32.c simg2img.c
    

    拆包 android 镜像文件:

    cd ../../
    ./extras/ext4_utils/simg2img system.img system.raw.img
    ./extras/ext4_utils/simg2img userdata.img userdata.raw.img
    

    通过 mount 挂载镜像( Mac osx 系统可以使用 Paragon's ExtFS ):

    mkdir /mnt/my_system /mnt/my_userdata
    mount -t ext4 -o loop userdata.raw.img /mnt/my_userdata
    

    编译 make_ext4fs:

    cd extras/ext4_utils
    gcc -o make_ext4fs -lz make_ext4fs_main.c make_ext4fs.c ext4fixup.c ext4_utils.c allocate.c backed_block.c output_file.c contents.c extent.c indirect.c uuid.c sha1.c sparse_crc32.c wipe.c
    

    重新打包镜像:

    cd ../../
    PATH="$PATH:$(pwd)/extras/ext4_utils/make_ext4fs" ./extras/ext4_utils/mkuserimg.sh -s /mnt/my_system_dir my_system.img ext4 /tmp 512M
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   843 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:04 · PVG 03:04 · LAX 12:04 · JFK 15:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.