UnPack / rePack android img与Ubuntu simg2img / make_ext4fs

时间:2014-10-27 13:52:46

标签: android python linux ubuntu rom

我在ubuntu 14.04.1上玩这两个工具:

  • simg2img
  • make_ext4fs

第一个工具很棒。 但是当我尝试使用第二个工具编译更改的图像时,我输出了这个错误:

can't set android permissions - built without android support

我已经使用ubuntu的官方软件包安装了这两个工具,并且还使用了似乎更新的debian软件包。

任何人都可以帮助我吗? 我怎么能编译这两个工具?

谢谢,

更新

我已编写此脚本以编译此工具,但错误仍然存​​在:

sudo apt-get install git zlib1g-dev gcc make libpcre3-dev

URL="https://android.googlesource.com/platform/system/core"
git clone --depth 1 "$URL" "$(basename $URL)"
URL="https://android.googlesource.com/platform/system/extras"
git clone --depth 1 "$URL" "$(basename $URL)"
URL="https://android.googlesource.com/platform/external/libselinux"
git clone --depth 1 "$URL" "$(basename $URL)"


git clone "extras" "extras-build"

DIR=$(pwd)

cd "extras-build/ext4_utils"


gcc  -Wall \
    -o make_ext4fs \
    -DHAVE_ANDROID_OS -DHOST \
    -I$DIR/core/libsparse/include \
    -I$DIR/libselinux/include \
    make_ext4fs_main.c \
    make_ext4fs.c \
    ext4fixup.c \
    ext4_utils.c \
    allocate.c \
    contents.c \
    extent.c \
    indirect.c \
    uuid.c \
    sha1.c \
    wipe.c \
    crc16.c \
    ext4_sb.c \
    $DIR/core/libsparse/backed_block.c \
    $DIR/core/libsparse/output_file.c \
    $DIR/core/libsparse/sparse.c \
    $DIR/core/libsparse/sparse_crc32.c \
    $DIR/core/libsparse/sparse_err.c \
    $DIR/core/libsparse/sparse_read.c \
    $DIR/libselinux/src/callbacks.c \
    $DIR/libselinux/src/check_context.c \
    $DIR/libselinux/src/freecon.c \
    $DIR/libselinux/src/init.c \
    $DIR/libselinux/src/label.c \
    $DIR/libselinux/src/label_android_property.c \
    $DIR/libselinux/src/label_file.c\
    -lz \
    -lpcre

更新2: 这是最终的代码:

sudo apt-get install git zlib1g-dev gcc make libpcre3-dev

URL="https://android.googlesource.com/platform/system/core"
git clone --depth 1 "$URL" "$(basename $URL)"
URL="https://android.googlesource.com/platform/system/extras"
git clone --depth 1 "$URL" "$(basename $URL)"
URL="https://android.googlesource.com/platform/external/libselinux"
git clone --depth 1 "$URL" "$(basename $URL)"


git clone "extras" "extras-build"


cd "extras-build/ext4_utils"


gcc  -Wall \
    -o make_ext4fs \
    -I$DIR/core/include -DANDROID \
    -DHAVE_ANDROID_OS -DHOST \
    -I$DIR/core/libsparse/include \
    -I$DIR/libselinux/include \
    make_ext4fs_main.c \
    make_ext4fs.c \
    ext4fixup.c \
    ext4_utils.c \
    allocate.c \
    contents.c \
    extent.c \
    indirect.c \
    uuid.c \
    sha1.c \
    wipe.c \
    crc16.c \
    ext4_sb.c \
    $DIR/core/libsparse/backed_block.c \
    $DIR/core/libsparse/output_file.c \
    $DIR/core/libsparse/sparse.c \
    $DIR/core/libsparse/sparse_crc32.c \
    $DIR/core/libsparse/sparse_err.c \
    $DIR/core/libsparse/sparse_read.c \
    $DIR/libselinux/src/callbacks.c \
    $DIR/libselinux/src/check_context.c \
    $DIR/libselinux/src/freecon.c \
    $DIR/libselinux/src/init.c \
    $DIR/libselinux/src/label.c \
    $DIR/libselinux/src/label_android_property.c \
    $DIR/libselinux/src/label_file.c\
    -lz \
    -lpcre

1 个答案:

答案 0 :(得分:0)

我花了好几个小时来构建make_ext4fs,然后终于找到了可以在我的Debian系统上运行的预编译二进制文件:http://blog.djodjo.org/?p=98

重新包装我的system.img,这一点很完美。