文档最新更新请访问:https://github.com/feicong/re-docs/edit/master/Linux-arm64.md
推荐使用Ubuntu 24.04 LTS,主要这是安卓系统与软件开发使用的官方Linux发行版本。
官方下载地址:https://cdimage.ubuntu.com/releases/24.04/release/
下载链接直达:https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-desktop-arm64.iso
国内mirror下载链接列表:
https://mirrors.ustc.edu.cn/ubuntu-cdimage/releases/24.04/release/ubuntu-24.04.3-desktop-arm64.iso
首先配置系统的密码免输入与apt源加速:
export DEBIAN_FRONTEND=noninteractive
export TZ="Asia/Shanghai"
ARCH="$(uname -m)"
# 检查当前系统版本是否为 noble
OS_VERSION=$(lsb_release -cs)
if [ "$OS_VERSION" != "noble" ]; then
echo "This script is designed for Ubuntu Noble. Exiting."
exit 1
fi
echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)
sudo visudo -cf /etc/sudoers.d/$(whoami)
# Update apt sources list based on architecture
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "i686" ] || [ "$ARCH" = "x86" ]; then
sudo tee /etc/apt/sources.list.d/ubuntu.sources <<EOF
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
# Types: deb-src
# URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
# Suites: noble noble-updates noble-backports
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# Types: deb-src
# URIs: http://security.ubuntu.com/ubuntu/
# Suites: noble-security
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 预发布软件源,不建议启用
# Types: deb
# URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
# Suites: noble-proposed
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# # Types: deb-src
# # URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
# # Suites: noble-proposed
# # Components: main restricted universe multiverse
# # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
else
sudo mv -f /etc/apt/sources.list /etc/apt/sources.list.bak || true
sudo tee /etc/apt/sources.list.d/ubuntu.sources <<EOF
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
# Types: deb-src
# URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
# Suites: noble noble-updates noble-backports
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# Types: deb-src
# URIs: http://ports.ubuntu.com/ubuntu-ports/
# Suites: noble-security
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 预发布软件源,不建议启用
# Types: deb
# URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
# Suites: noble-proposed
# Components: main restricted universe multiverse
# Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# # Types: deb-src
# # URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports
# # Suites: noble-proposed
# # Components: main restricted universe multiverse
# # Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
fisudo apt update && sudo apt upgrade -ysudo apt update && sudo apt install -y snapd git git-lfs curl wget axel unzip zip build-essential cmake \
python3 python3-pip libpython3-dev upx bison make tree net-tools \
ninja-build meson pkg-config libtool autoconf automake help2man llvm ruby vim \
graphviz grep plantuml aria2 bash bash-completion bc binutils imagemagick brotli \
jq repo reprepro coreutils libarchive-dev httpie lz4 shared-mime-info dbus lzip \
android-sdk-libsparse-utils libelf-dev libevent-dev ffmpeg libffi-dev file flac tcpdump flex \
fontconfig libncurses-dev texinfo libusbmuxd-dev gawk ca-certificates libmagic-dev \
gettext unifdef libpcap-dev sed libplist-dev gnupg openssl z3 libslirp-dev zstd \
lsb-release software-properties-common apt-file libdwarf-dev x11-apps patchelf \
libsqlite3-dev libunwind-dev gcc gdb tzdata socat strace libtool-bin p7zip-full libc6-dev \
gnome-tweaks net-tools openssh-server neofetch dnsutils cloud-image-utils pahole \
gh glab apt-transport-https libguestfs-tools witr一些工具使用snap下载最新版本.
sudo snap install intellij-idea-community --classic
sudo snap install clion --classic
sudo snap install go --classic
sudo snap install node --classic
sudo snap install protobuf --classic
sudo snap install postman --classic
sudo snap install just --classic
sudo snap install radare2 --classic
sudo snap install iaito --classic
sudo snap install gradle --classic上一步的go也可以换deb方式安装最新版本:
参考:https://launchpad.net/~longsleep/+archive/ubuntu/golang-backports
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang -y
手动安装下面的工具:
# https://code.visualstudio.com/docs/setup/linux
echo "code code/add-microsoft-repo boolean true" | sudo debconf-set-selections
sudo apt-get install wget gpg apt-transport-https -y
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -D -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/microsoft.gpg
rm -f microsoft.gpg
echo '
Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Architectures: amd64,arm64,armhf
Signed-By: /usr/share/keyrings/microsoft.gpg
' | sudo tee -a /etc/apt/sources.list.d/vscode.sources
sudo apt update && sudo apt install code -y
wget https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v2.4.1/Clash.Verge_2.4.1_arm64.deb
sudo dpkg -i ./Clash.Verge_*.deb
wget https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.19_250904_arm64_01.AppImage # https://im.qq.com/linuxqq/index.shtml
wget https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage # https://linux.weixin.qq.com/
chmod a+x *.AppImagesudo usermod -aG docker $USER
newgrp docker
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me",
"https://dockerhub.timeweb.cloud",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://docker.m.daocloud.io"
]
}运行测试
sudo systemctl restart docker
docker pull ubuntu:24.04pip3 install --upgrade pip选择Java版本。
sudo update-alternatives --config java添加环境变量到 ~/.bashrc:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-arm64
export PATH=$PATH:$JAVA_HOME/bin
export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export NDK_ROOT=$ANDROID_HOME/ndk/28.2.13676358
export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/28.2.13676358
export ANDROID_NDK=$ANDROID_HOME/ndk/28.2.13676358
export PATH=$PATH:$ANDROID_NDK_ROOT
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator生效:
source ~/.bashrcpip3 install frida-tools --break-system-packages-
下载并安装 Ghidra(开源)
-
Ghidra 安装:
wget https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.4.2_build/ghidra_11.4.2_PUBLIC_20250826.zip
unzip ghidra_*.zip -d $HOME/tools一些软件需要配置登陆与设置代理。
这个是github官方的命令行工具,管理仓库贼方便。登陆后就可以使用了。
gh auth logingo env -w GOPROXY=https://goproxy.cn,direct设置pip的mirror。
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install -U pip --break-system-packages设置npm的mirror。
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
npm config set registry https://registry.npmmirror.com安装一些js工具。
npm install -g @anthropic-ai/claude-code @google/gemini-cli typescriptmkdir -p ~/.m2
echo '<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="settings.xsd">
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>nexus-163</id>
<mirrorOf>*</mirrorOf>
<name>Nexus 163</name>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
</mirror>
<mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>' > ~/.m2/settings.xmlmaven项目中,执行mvn install命令即可看到效果。
依赖mirror:
mkdir -p ~/.gradle
echo 'fun RepositoryHandler.enableMirror() {
all {
if (this is MavenArtifactRepository) {
val originalUrl = this.url.toString().removeSuffix("/")
urlMappings[originalUrl]?.let {
logger.lifecycle("Repository[$url] is mirrored to $it")
this.setUrl(it)
}
}
}
}
val urlMappings = mapOf(
"https://repo.maven.apache.org/maven2" to "https://mirrors.tencent.com/nexus/repository/maven-public/",
"https://dl.google.com/dl/android/maven2" to "https://mirrors.tencent.com/nexus/repository/maven-public/",
"https://plugins.gradle.org/m2" to "https://mirrors.tencent.com/nexus/repository/gradle-plugins/"
)
gradle.allprojects {
buildscript {
repositories.enableMirror()
}
repositories.enableMirror()
}
gradle.beforeSettings {
pluginManagement.repositories.enableMirror()
dependencyResolutionManagement.repositories.enableMirror()
}' > ~/.gradle/init.gradle.kts设置代理:
echo '
# https://docs.gradle.org/current/userguide/networking.html
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=7890
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890
' ~/.gradle/gradle.propertiesecho "fs.file-max = 100000" | sudo tee -a /etc/sysctl.conf
ulimit -n 100000echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USERsudo add-apt-repository ppa:cappelikan/ppa -y
sudo apt update && sudo apt install mainline -y
sudo mainline install 6.6tar xf debs.tar
sudo dpkg -i ./cuttlefish-common_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-integration_*_*64.deb || sudo apt-get install -f
sudo usermod -aG kvm,cvdnetwork,render $USER
sudo reboot