在debian 202405中编译android tools

因为当前使用的仓库快照中没有android platform tools,如果使用archlinux riscv的包会由于库的版本不对应提示找不到,所以尝试自己编译。

1.源码与构建需求

  • android tools:使用的版本是35.0.1。
  • golang:为了新的兼容性,使用go.dev提供的go1.22.3.linux-riscv64
  • gcc与其它依赖:使用仓库提供的版本。使用如下命令安装。
sudo apt install build-essential ninja-build libusb-1.0-0-dev libprotobuf-dev libbrotli-dev

2.构建

似乎是gcc在riscv 64下的bug,需要手动设置-latomic

构建命令参考archlinux关于android-tools包的PKGBUILD文件

export CFLAGS="-latomic"
export CFFFLAGS="${CFLAGS}"

export CC=gcc

cmake \
    -DCMAKE_INSTALL_PREFIX="/usr" \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
    -DCMAKE_C_FLAGS="$CFLAGS" \
    -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
    -Dprotobuf_MODULE_COMPATIBLE=ON \
    -G Ninja -S . -B build

cmake --build build -j4

3.安装

  • 安装程序本体
ninja -C build install
  • 安装udev规则,可以使用archlinux提供的udev规则
    下载完成后解压至根目录
sudo tar xf android-udev-*.pkg.tar.zst -C /

重启之后就可以正常使用。