为arm / arm64构建android sdk工具(aapt,adb等)

时间:2019-01-19 03:23:29

标签: android android-source

我目前对构建用于ARM-v7a和ARM64-v8a体系结构的Android SDK工具(aapt,adb等)感兴趣,以便可以直接在Android设备上运行。这可能吗?

遵循该文档,我能够轻松地为x86 / x86_64构建Android SDK工具。

https://source.android.com/setup

为此,我执行了以下步骤。

  mkdir ~/WORKING_DIRECTORY
  cd ~/WORKING_DIRECTORY

  repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
  repo sync

  . build/envsetup.sh
  lunch sdk-eng
  make sdk

如上所述,这将为x86 / x86_64构建android SDK工具。我只是不确定如何为其他架构构建工具。

我知道您可以为make目标指定所需的体系结构。例如,“ make aosp_arm-eng”将为手臂环境构建图像。但是,当我尝试“ make sdk_arm-eng”时,它告诉我目标不存在。

任何帮助将不胜感激。

编辑:

Debian似乎在这里具有用于aapt和其他android工具的arm / arm64软件包。

https://packages.debian.org/buster/aapt

但是,由于依赖关系,这些将无法在实际的android设备上运行。

/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared

  Type:                              DYN (Shared object file)
 0x0000000000000001 (NEEDED)             Shared library: [libaapt.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libutils.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-aarch64.so.1]

如下所示,它需要未与android打包在一起的libgcc libstc ++。

1 个答案:

答案 0 :(得分:0)

我最终只是根据AOSP源代码构建了一个自适应的程序。这比我最初想象的要容易得多。为此,我修改了构建脚本,以为“目标”体系结构而不是“主机”体系结构构建二进制文件。

https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp

构建的二进制文件在这里,以防万一其他人需要它们。

https://github.com/thejunkjon/android-tools