AOSP linux环境配置及其编译方法

本文详细介绍了AOSP项目的Linux环境配置流程,包括依赖库安装、repo工具下载与配置、源码初始化与同步方法等,并提供了常见错误解决方案及单模块编译、镜像文件编译的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装依赖libs

sudo apt-get install openjdk-11-jdk;#安装jdk

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache;
sudo apt-get install libssl-dev libncurses5;

下载 repo 工具

sudo apt install curl

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

换源

1.修改还源文件权限

sudo chmod 777 /etc/apt/sources.list

2.备份文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

3.修改
清华源
地址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

中国科学技术大学源
地址:https://lug.ustc.edu.cn/wiki/mirrors/help/ubuntu/

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
 
# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

阿里源
地址:https://developer.aliyun.com/mirror/ubuntu

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

4.更新

sudo apt-get update
sudo apt-get upgrade

初始化与同步

操作方法

方法一:

curl -OC - https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP   # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码

方法二:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/mirror/manifest#默认最新

#选择特定版本 版本列表https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r1
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r6
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r43

repo sync	#同步(全仓下载)

#单仓下载方式
repo sync -c platform/frameworks/base
repo sync -c platform/frameworks/native
repo sync -c system/core

https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds查看版本列表,如果网站打不开可以下载附件:android版本列表以及其适用机型

常见报错

  • 如果提示无法连接到 gerrit.googlesource.com
    在这里插入图片描述

    curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
    chmod +x repo
    export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
    
  • 如果提示身份未知
    按照提示设置email和name即可
    在这里插入图片描述

  • repo脚本问题
    在初始化代码操作或者使用repo --version命令检查repo时,可能会有以下报错:

      File "/home/xxx/bin/repo", line 51
        def print(self, *args, **kwargs):
                ^
    SyntaxError: invalid syntax
    

    在这里插入图片描述
    改为使用以下引导脚本:

    curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
    

编译

全仓编译

. build/envsetup.sh
lunch sdk_phone_x86_64 #must this
make -j16#全仓编译

编译完成后,输入命令emulator运行模拟器
注:第一次编译一定要全仓编译

模拟器运行

第一次编译之后如果不想再编译直接运行模拟器,可以用以下命令

. build/envsetup.sh
lunch sdk_phone_x86_64 #must this

#以可写的形式打开模拟器,否则模拟器文件是只读状态
emulator -writable-system

如果是在android studio中打开模拟器,则需要一个模拟器名字
在你的SDK目录下找到模拟器目录emulator,运行一下命令

#查看模拟器名字
./emulator -list-avds
#以可写的形式打开模拟器,否则模拟器文件是只读状态
./emulator '@模拟器名字' -writable-system

常见的单模块编译

使用mmmmm命令或者make命令编译模块代码

  • mmmmm命令编译模块代码
    mm(make module)命令用于编译当前目录下的模块。当你使用mm时,它会找到当前目录对应的Android.mk文件,并且只编译这个目录下定义的模块。
    例如:进入到frameworks\base\services\目录,直接运行mm命令编译模块

    mmm(make module matches)命令与mm类似,也是用于编译特定的模块,但它允许你指定一个路径。这意味着你可以从任何地方执行mmm命令,并提供要编译模块的路径作为参数。
    例如,你可以在源码的根目录下运行mmm frameworks\base\services\来编译位于frameworks\base\services\目录下的模块。

  • make命令编译模块代码
    在源码根目录下运行命令

    模块:make Launcher3
    代码路径: packages/apps/Launcher3
    生成包目录:out/target/product/emulator_x86_64/system_ext/priv-app/Launcher3
    adb install -t -d Launcher3.apk

    模块:make Launcher3QuickStep
    代码路径: packages/apps/Launcher3/quickstep
    生成包目录:out/target/product/emulator_x86_64/system_ext/priv-app/Launcher3QuickStep
    adb install -t -d Launcher3QuickStep.apk

    模块:make SystemUI
    代码路径:frameworks\base\packages\SystemUI
    生成包目录:out/target/product/emulator_x86_64/system_ext/priv-app/SystemUI
    adb push SystemUI.apk /system_ext/priv-app/SystemUI
    注:有的公司SystemUI在 packages/apps/目录下集成,生成apk的位置也会不同,需要看对应目录下是否有Android.bp或者mk之类的文件。比如原生代码在frameworks\base\packages\SystemUI目录有Android.bp文件,说明SystemUI就是在这个目录下集成。

    模块:make services
    代码路径:frameworks\base\services
    生成包目录:out/target/product/emulator_x86_64/system/framework/services.jar
    adb push services.jar /system/framework/

    模块:make framework (android 11之前的代码使用)
    模块:make framework-minus-apex(android 11及其之后的代码使用)
    代码路径:frameworks\base\
    生成包目录:out/target/product/emulator_x86_64/system/framework/framework.jar
    adb push framework.jar /system/framework/

    模块:make framework-res
    代码路径:frameworks\base\core\res
    生成包目录:out/target/product/emulator_x86_64/system/framework/framework-res.apk
    adb push framework-res.jar /system/framework/
    :建议先make framework在编译该模块,因为framework-res依赖framework

    模块:make inputflinger
    代码路径:frameworks/native/services/inputflinger
    生成包目录:
    out/target/product/emulator_x86_64/system/lib/libinputflinger.so
    out/target/product/emulator_x86_64/system/lib64/libinputflinger.so
    adb push libinputflinger.so system/lib
    adb push libinputflinger.so system/lib64

:单仓编译后记得push到对应得文件目录中,重启生效

image镜像文件编译

生成手机镜像
命令格式:make 需要生成的镜像模块image
快速生成手机镜像
命令格式:make 需要生成的镜像模块image-nodeps

生成系统镜像
make systemimage
快速生成系统镜像
make systemimage-nodeps
生成镜像目录:out/target/product/emulator_x86_64

从Makefile中可以看出出了会生成基本system.image镜像文件而且还会生成system-qeme.image镜像文件,system-qeme.image是适用于模拟器的镜像文件
在这里插入图片描述
关于其他镜像的的生成Makefile中也有写,文件路径在
AOSP源码根目录/build/core/MakefileAOSP源码根目录/build/core/main.mk

make systemimage本质是拷贝已经生成的文件打包成system.img文件。如果代码有修改,则需先编译修改代码的模块,再去生成镜像文件

其他编译命令

init 
make init 
mmm system/core/init

zygote 
make app_process 
mmm frameworks/base/cmds/app_process

system_server 
make services 
mmm frameworks/base/services

java framework 
make framework 
mmm frameworks/base

framework资源
make framework-res 
mmm frameworks/base/core/res

jni framework 
make libandroid_runtime
mmm frameworks/base/core/jni
 
binder
make libbinder
mmm frameworks/native/libs/binder

编译报错

  • 提示:ninja failed with: exit status 137

    查看文件gedit build/soong/java/config/config.go
    在这里插入图片描述
    javacheap的值太小会被系统直接killed掉
    export MAVEN_OPTS="-Xms8192m -Xmx8192m"
    一般配置自身电脑内存值的一半

    修改后,记得清空out目录再编译,且是必须清空 :rm -rf out

    编译后要查看配置是否有生效,可以查看此文件:out/soong/build.ninja ,在此文件内搜索JavacHeapSize,看此值是否为你设置的值

  • 提示:ninja: no work to do.
    当编译结束后,却提示ninja: no work to do. ,且编译out目录没有编译产物,则可以执行make clean后再重新编译

  • 编译时,命令提示框突然闪退
    可能是由于电脑内存不足导致,可以尝试清理系统内存的缓存在编译试试

    sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
    
  • 模拟器运行报错

    ERROR   | Running multiple emulators with the same AVD 
    ERROR   | is an experimental feature.
    ERROR   | Please use -read-only flag to enable this feature
    

    在这里插入图片描述在源码目录下android-13.0.0_r43/out/target/product/emulator_x86_64找到cache.img和cache.img.qcow2,删除即可。
    在这里插入图片描述或者直接杀死对应进程
    在这里插入图片描述

  • 直接make全仓编译报错

    Out of space? Out of inodes? The tree size of out/target/product/emulator_x86_64/data is 1145001984 bytes (1091 M B), with reserved space of 0 bytes (0 MB). The max image size for filesystem files is 576716800 bytes (550 MB), out of a total partition size

    我们需要在boardconfig.mk修改这个BOARD_SYSTEMIMAGE_PARTITION_SIZE参数的数值。
    因此在 项目根目录中的device目录下运行命令find . -iname "boardconfig.mk"

    在这里插入图片描述

    这里有很多我们要找到我们需要修改的那个文件
    运行 你的编译初始化命令,例如:

    . build/envsetup.sh
    lunch sdk_phone_x86_64
    

    在这里插入图片描述
    发现device/generic/goldfish目录对应的就是上面我们查找的boardconfig.mk中所存放的目录,由于我们编译的是使用模拟器且为x86_64,因此选择generic/goldfish/emulator64_x86_64/BoardConfig.mk
    在文件中把数值调整为较大的值即可
    在这里插入图片描述
    如果没有BOARD_SYSTEMIMAGE_PARTITION_SIZE参数,则需要添加一句BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648,之后重新编译。
    如果还有报错,可以先make clean之后再编译。

导入源码至android studio

可以不看1-5步,直接解压文件【idegen生成的工程文件
】,放至源码根目录下使用

  1. 进入源码根目录,初始化系统环境
    source build/envsetup.sh

  2. 源码根目录执行如下命令 ,生成idegen.jar
    mmm development/tools/idegen/

  3. 源码根目录下执行
    sudo development/tools/idegen/idegen.sh

  4. 修改权限
    sudo chmod 777 android.iml
    sudo chmod 777 android.ipr

  5. 过滤模块
    使用文本编辑器打开android.iml文件,搜索关键字"excludeFolder ",把不需要加载的模块添加到此处
    我这里保留了fraweworks、vender、packages、system、sdk模块,其他过滤掉,参考如下:

    <excludeFolder url="file://$MODULE_DIR$/./external/emma"/>
    <excludeFolder url="file://$MODULE_DIR$/./external/jdiff"/>
    <excludeFolder url="file://$MODULE_DIR$/out/eclipse"/>
    <excludeFolder url="file://$MODULE_DIR$/.repo"/>
    <excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
    <excludeFolder url="file://$MODULE_DIR$/external/chromium"/>
    <excludeFolder url="file://$MODULE_DIR$/external/icu4c"/>
    <excludeFolder url="file://$MODULE_DIR$/external/webkit"/>
    <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
    <excludeFolder url="file://$MODULE_DIR$/out/host"/>
    <excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/>
    <excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/>
    <excludeFolder url="file://$MODULE_DIR$/out/target/product"/>
    <excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
    <excludeFolder url="file://$MODULE_DIR$/art" />
    <excludeFolder url="file://$MODULE_DIR$/bionic" />
    <excludeFolder url="file://$MODULE_DIR$/bootable" />
    <excludeFolder url="file://$MODULE_DIR$/build" />
    <excludeFolder url="file://$MODULE_DIR$/compatibility" />
    <excludeFolder url="file://$MODULE_DIR$/dalvik" />
    <excludeFolder url="file://$MODULE_DIR$/cts" />
    <excludeFolder url="file://$MODULE_DIR$/developers" />
    <excludeFolder url="file://$MODULE_DIR$/developers/samples" />
    <excludeFolder url="file://$MODULE_DIR$/development" />
    <excludeFolder url="file://$MODULE_DIR$/device" />
    <excludeFolder url="file://$MODULE_DIR$/devices" />
    <excludeFolder url="file://$MODULE_DIR$/docs" />
    <excludeFolder url="file://$MODULE_DIR$/external" />
    <excludeFolder url="file://$MODULE_DIR$/flashing-files" />
    <excludeFolder url="file://$MODULE_DIR$/hardware" />
    <excludeFolder url="file://$MODULE_DIR$/kernel" />
    <excludeFolder url="file://$MODULE_DIR$/libcore" />
    <excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
    <excludeFolder url="file://$MODULE_DIR$/out" />
    <excludeFolder url="file://$MODULE_DIR$/pdk" />
    <excludeFolder url="file://$MODULE_DIR$/platform_testing" />
    <excludeFolder url="file://$MODULE_DIR$/prebuilt" />
    <excludeFolder url="file://$MODULE_DIR$/prebuilts" />
    <excludeFolder url="file://$MODULE_DIR$/shortcut-fe" />
    <excludeFolder url="file://$MODULE_DIR$/test" />
    <excludeFolder url="file://$MODULE_DIR$/toolchain" />
    <excludeFolder url="file://$MODULE_DIR$/tools" />
    
  6. 导入源码
    Android Studio 打开工程源码下的 android.ipr 文件,此时就开始加载代码
    如果导入有异常,需要删除根目录下的缓存文件android.iws,直接重新加载android.ipr 文件,或者按上面的步骤重新生成android.ipr 文件加载即可。

  7. 调整Modules
    打开源码跳转时可能会出现加载异常的情况
    在这里插入图片描述我们打开File->Project Structure
    List item选中Module source,按住Alt+↑,使其到最顶部

repo 切换分支

  1. 查看可切换的分支
    例如查看android14相关分支

    cd .repo/manifests
    git branch -a |cut -d / -f 3 | grep android14
    

    效果如图
    在这里插入图片描述

  2. 选择切换的版本
    例如选择android-14.0.0_r7

    #切换版本
    repo init -b android-14.0.0_r7
    # 本地是最新代码可以不用同步repo sync 
    repo start android-14.0.0_r7 --all
    # 如果上面命令有报错就直接repo sync
    repo sync
    # 查看当前的分支   
    repo branches
    

交换空间swap配置(可选)

编译过程中可能会有FAILED: out/soong/build.ninja这类报错,可以配置swap之后编译

1.创建要作为swap分区的文件:增加count大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
dd if=/dev/zero of=/var/swapfile bs=1024 count=16777216
这里count的值一般和自身电脑内存一致,我这里是1024 x 1024 x 16 = 16G

2.格式化为交换分区文件:
mkswap /var/swapfile
建立swap的文件系统

3.修改权限
chmod -R 0600 /var/swapfile

4.启用交换分区文件:
swapon /var/swapfile
启用swap文件

如果启用swap文件报错时,提示:swapon 失败:设备或资源忙
可以先关闭swap文件swapoff /var/swapfile,之后在用swapon开启

5.使系统开机时自启用,在文件/etc/fstab中添加一行:
vi /etc/fstab
进入文件
/var/swapfile swap swap defaults 0 0
在这里插入图片描述
注:
1.权限不足记得在命令前面加上sudo
2.其中 /var/swapfile为自定义交换分区路径,可以按照自己喜好命名

VPN(可选)

IKUUU VPN
在这里插入图片描述注册后进入,右上角签到领流量,使用教程见左边【下载和教程】

其中教程的第三步
在这里插入图片描述
可能出现如下保报错
在这里插入图片描述
这是网络原因导致无法下载Country.mmdb文件
可以下载离线文件ikuuu vpn相关资源 包含Country.mmdb

第四步测速选择任意节点
在这里插入图片描述
点击这个【Clash Dashboard 】即可访问。

在这里插入图片描述
第五步需要配置设备的代理
在这里插入图片描述
这里http和https都需要写
在这里插入图片描述

其他

1.截图

截图工具安装sudo apt install flameshot ,运行flameshot gui 截图

2.解决apt-get安装中的E: Sub-process /usr/bin/dpkg returned an error code (1)问题

cd /var/lib/dpkg/
sudo mv info/ info_bak          # 现将info文件夹更名
sudo mkdir info                 # 再新建一个新的info文件夹
sudo apt-get update             # 更新
sudo apt-get -f install         # 修复
sudo mv info/* info_bak/        # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_bak文件夹下
sudo rm -rf info                # 把自己新建的info文件夹删掉
sudo mv info_bak info           # 把以前的info文件夹重新改回名

3.安装SQLite3

sudo apt-get install sqlite3 #安装数据库系统Sqlite3
sudo apt-get install libsqlite3-dev #安装Sqlite3数据库开发支持库
sudo apt-get install sqlitebrowser #安装Sqlite3图形化管理界面DB Browser for SQLite
sqlite3 --version #检查是否安装成功,如果成功,输入以下命令可显示SQLite3版本信息

4.关于Android Studio中的模拟器

想要把文件push到模拟器中,但是设备无法remount

  • 检查环境变量是否配置
sudo vi /etc/profile
ANDROID_HOME="/Users/Android/sdk"
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/cmdline-tools/latest:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"
 
source /etc/profile
echo $ANDROID_HOME
  • 运行模拟器
# 进入到到模拟器的目录
cd /Users/Android/sdk/emulator/
# 查看模拟器名字
./emulator -list-avds
./emulator '@模拟器名字' -writable-system

5.VMware Workstation下载地址

VMware Workstation 17.0.0 Pro for Windows

百度网盘链接:https://pan.baidu.com/s/1gS2wjMPdZP1ISlhRL6-GTA?pwd=28ip
Name: VMware-workstation-full-17.0.0-20800274.exe
File size: 607.88 MB
Release Date: 2022-11-17
SHA256SUM: 977e44df8ad7ea6f80ca14a1f817a65a38bb1660d1b776d4ad80577d9d52c2c7
VMware Workstation 17.0.0 Pro for Linux

百度网盘链接:https://pan.baidu.com/s/1VI7TgLldpTxChrG8Wk_iPw?pwd=p69b
Name: VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
File size: 513.88 MB
Release Date: 2022-11-17
SHA256SUM: 9014e87066f5b60e62f9dbd698e68f7cf507c6b59c5fcfe86de2aa44647e9910
VMware Workstation 17.0.2 Pro for Windows

百度网盘链接:https://pan.baidu.com/s/1b03c0kEr9eOUMD3xp1Y7Og?pwd=fhhc
File size: 607.7 MB
Name: VMware-workstation-full-17.0.2-21581411.exe
Release Date: 2023-04-25
SHA256SUM: ab925cf5b7424b8f28bf65a5c388ce6f680dfeb157612ee6d6c3dd0a63100a40
VMware Workstation 17.0.2 Pro for Linux

百度网盘链接:https://pan.baidu.com/s/1FGcnsyebNGUhhkyxa1BBvQ?pwd=khis
File size: 513.94 MB
Name: VMware-Workstation-Full-17.0.2-21581411.x86_64.bundle
Release Date: 2023-04-25
SHA256SUM: f4e361faebcbe1818d1b16e93d7d6658ef0fe2828f529c334ec28a0493711cc7
VMware Workstation 17.5.0 Pro for Linux
VMware Workstation 17.5.0 Pro for Windows

VMware Workstation 17.5.0 Player for Linux 64-bit
VMware Workstation 17.5.0 Player for Windows 64-bit Operating Systems

VMware Workstation 17.5.1 Pro for Linux
VMware Workstation 17.5.1 Pro for Windows

VMware Workstation 17.5.2 Pro for Linux - for Personal Use (Free)
Filename: VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle

VMware Workstation 17.5.2 Pro for Windows - for Personal Use (Free)
Filename: VMware-workstation-full-17.5.2-23775571.exe

百度网盘链接:https://pan.baidu.com/s/1OdQrHZHkuvJ9epozw8tnZA?pwd=99c1

参考

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值