Android Platform Tools for Android. This is based on android-sdk-tools by @lzhiyong.
Follow the steps below to build the tools.
You need Android NDK r26 in order to build this project. Earlier versions may not work. Also, you'll need to install the following packages if you're building directly
on your local machine, instead of using the `Dockerfile`` :
sudo apt-get update
sudo apt-get install -y python3 python3-pip git golang build-essential cmake ninja-build bison flex wget nano zip unzip tarUse the get_source.py Python script to fetch the sources for required repositories :
python get_source.py --tag=platform-tools-34.0.0Please note that the get_source.py script clones only the specified tag to avoid cloning the entire repository. The cloned repositories are in a DETACHED HEAD state. This is enough for 'just building the tools'. However, in some cases, you might want to clone the entire repositories which can be done by editing the get_source.py script (you can prefer @lzhiyong's repo in this case which uses git submodules).
Most of the patches that are available in the patches directory should be compatible with git apply. You could run git apply patches/<filename>.patch for every .patch file to patch the source. If any of the patches fail, you'll have to manually apply the patches.
NOTE : Prefer applying the patches one by one over applying all of them at once.
We need to build protobuf for the host OS which will be used to generate the required sources. To do this, cd into protobuf directory :
cd src/protobufCreate a symlink to the googletest directory :
# Skip this if you do not want to build tests
ln -sf $(realpath ../googletest) third_party/googletestExecute cmake to generate the build files :
cmake -GNinja
# or if you want to skip tests
cmake -GNinja -Dprotobuf_BUILD_TESTS=OFFStart building protoc with :
ninja -j$(nproc --all)Once the build process succeeds, you should have the protoc executable in your working directory.
We need to create a symlink in the src/boringssl/src/third_party directory which should point to the googletest directory. To do this, execute the following command from THIS project's root directory :
ln -sf $(realpath ./src/googletest/googletest) ./src/boringssl/src/third_party/googletestUse the build.py script to build the tools :
# To build for aarch64
# Generated executables will be located in build/aarch64/bin
python build.py \
--ndk=/path/to/android-ndk-r26 \
--api=30 \
--abi=arm64-v8a \
--protoc=$PWD/src/protobuf/protoc \
--build=build/aarch64
# To build for arm
# Generated executables will be located in build/arm/bin
python build.py \
--ndk=/path/to/android-ndk-r26 \
--api=30 \
--abi=armeabi-v7a \
--protoc=$PWD/src/protobuf/protoc \
--build=build/arm