文档最新更新请访问:https://github.com/feicong/re-docs/edit/master/Linux.md
推荐使用Ubuntu 24.04 LTS,主要这是安卓系统与软件开发使用的官方Linux发行版本。
官方下载地址:https://releases.ubuntu.com/24.04/
下载链接直达:https://releases.ubuntu.com/24.04/ubuntu-24.04.3-desktop-amd64.iso
国内mirror下载链接列表:
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/24.04/ubuntu-24.04.3-desktop-amd64.iso
https://mirrors.ustc.edu.cn/ubuntu-releases/24.04/ubuntu-24.04.3-desktop-amd64.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 -y
sudo add-apt-repository ppa:wireshark-dev/stable -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一些工具使用snap下载最新版本.
sudo snap install intellij-idea-community --classic
sudo snap install pycharm-community --classic
sudo snap install clion --classic
sudo snap install gh --classic
sudo snap install go --classic
sudo snap install node --classic
sudo snap install code --classic
sudo snap install protobuf --classic
sudo snap install postman --classic
sudo snap install gradle --classic
sudo snap install just --classic
sudo snap install sqlitebrowser
sudo snap install radare2 --classic
sudo snap install iaito --classic手动安装下面的工具:
wget https://github.com/balena-io/etcher/releases/download/v2.1.4/balenaEtcher-linux-x64-2.1.4.zip
unzip balenaEtcher-linux-*.zip
wget https://www.sweetscape.com/download/010EditorLinux64Installer.tar.gz
tar xvf 010EditorLinux64Installer.tar.gz
chmod +x 010EditorLinux64Installer
./010EditorLinux64Installer --prefix 010editor --mode silent
chmod a+x 010editor/010editor
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
wget https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v2.4.1/Clash.Verge_2.4.1_amd64.deb
sudo dpkg -i ./Clash.Verge_*.deb
wget https://github.com/shiftkey/desktop/releases/download/release-3.4.13-linux1/GitHubDesktop-linux-x86_64-3.4.13-linux1.AppImage
wget https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.19_250904_x86_64_01.AppImage # https://im.qq.com/linuxqq/index.shtml
wget https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage # https://linux.weixin.qq.com/
chmod a+x *.AppImageexport DISPLAY=:0
xhost +
# 运行xclock看效果sudo 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 run hello-world
docker pull ubuntu:24.04pip3 install --upgrade pip支持snapd安装方式与手动安装方式。
下载地址:https://developer.android.com/studio?hl=zh-cn
curl https://developer.android.com/studio?hl=zh-cn | grep tar.gz
wget https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2025.1.3.7/android-studio-2025.1.3.7-linux.tar.gz
sudo tar -xvzf android-studio-*.tar.gz -C /opt/
/opt/android-studio/bin/studio.sh接下来安装,Android SDK和NDK。可以在Android Studio手动安装或者命令行安装。
mkdir -p $HOME/Android/Sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O cmdline-tools.zip
unzip cmdline-tools.zip -d $HOME/Android/Sdk
mv $HOME/Android/sdk/cmdline-tools $HOME/Android/Sdk/cmdline-tools-latest
mkdir -p $HOME/Android/Sdk/cmdline-tools
mv $HOME/Android/sdk/cmdline-tools-latest $HOME/Android/Sdk/cmdline-tools/latestsudo snap install android-studio --classic选择17版本的。
sudo update-alternatives --config java添加环境变量到 ~/.bashrc:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
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-
下载并安装 IDA Pro(商业软件)或 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
code ~/.gradle/init.gradle.kts
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()
}设置代理:
code ~/.gradle/gradle.properties
# 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=7890echo "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 rebootcurl https://us-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
echo "deb https://us-apt.pkg.dev/projects/android-cuttlefish-artifacts android-cuttlefish main" \
| sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
sudo apt install -y --no-install-recommends cuttlefish-base cuttlefish-user