赞
踩
将移动固态硬盘连接电脑,打开启动台->其他->磁盘工具。
打开磁盘工具,文件->新建映像->空白映像
按照图片,选择或填写存储为、位置、名称、大小和格式信息,要注意大小不能小于200GB,格式要选择Mac OS扩展(区分大小写,日志式)
点击存储后,你可以在固态硬盘中看到创建成功的映像。
此步骤若已操作请忽略。
查看本地已有SSH
ls -al ~/.ssh
新建SSH
ssh-keygen -t ed25519 -C "your github account"
先确认SSH Key文件位置,一般按照默认位置即可;
输入密码,再次确认密码。
输入以下命令(这个命令会启动ssh-agent进程并设置必要的环境变量来使用它。ssh-agent是一个在后台运行的程序,用于保存您的私钥。当您使用SSH连接到远程服务器时,ssh-agent将为服务器提供您的私钥进行身份验证。"eval"命令用于将"ssh-agent -s"命令的输出作为shell命令执行):
eval "$(ssh-agent -s)"
编辑config文件,没有则创建:
- touch ~/.ssh/config
- vim ~/.ssh/config
在config文件中写入以下内容:
- Host *
- AddKeysToAgent yes
- UseKeychain yes
- IdentityFile ~/.ssh/id_ed25519
将私钥添加到SSH身份验证代理中:
ssh-add -K ~/.ssh/id_ed25519
将创建的公钥复制到剪贴板:
ssh-add -K ~/.ssh/id_ed25519
登陆github,点击头像->Settings->SSH and GPG keys->New SSH key
创建目录并设置环境变量:
- mkdir ~/bin
- PATH=~/bin:$PATH
下载链接并修改权限:
- curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
- chmod 777 ~/bin/repo
修改REPO_URL链接,替换镜像地址为:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
vim ~/bin/repo
配置git缓冲区大小:
- git config --global http.postBuffer 1048576000
- git config --global https.postBuffer 1048576000
进入创建好的镜像目录:
cd /Volumes/AndroidSystem/
创建用于保存Android10的源码目录并进入:
- mkdir Android10
- cd Android10
设置下载分支:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
拉取指定分支代码可以查看分支列表:
- cd .repo/manifests
- git branch -a | cut -d / -f 3
例如选择android-10.0.0_r30:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r30
同步执行:
repo sync
下载完毕后查看下载的目录
编译Android10源码前,需要下载Xcode,可以直接在App Store搜索下载。
需要在github上下载android sdk,后续编译会用到,下载地址如下:Releases · phracker/MacOSX-SDKs · GitHub
下载完成后,在源码目录执行以下命令:
- source build/envsetup.sh
- make SELINUX_IGNORE_NEVERALLOWS=true -j8 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"
备注:make命令解释,SELINUX_IGNORE_NEVERALLOWS=true可以避免执行treble_sepolicy_tests命令时分段错误,-j后面跟的数字是根据电脑核心数来的。双引号的参数是指定Android SDK的版本,Android SDK下载地址为:https://github.com/phracker/MacOSX-SDKs/releases,下载后放到指定目录即可。
不指定SELINUX_IGNORE_NEVERALLOWS=true会报以下错误。
查看自己电脑的核心数:
执行编译过程中,如果出现不能找到一个支持的mac sdk错误,可以编辑以下文件,添加自己安装的sdk版本即可:
vim build/soong/cc/config/x86_darwin_host.go
再次编译出现以下错误:
可以直接打开报错的文件,将”PAGE_SIZE”先替换为10,让编译通过。
再次编译,出现以下错误:
错误原因原因是out/target/product/generic/obj/PACKAGING/vndk_intermediates/libs.txt和build/make/target/product/gsi/29.txt文件内容不一致导致,根据提示的差异内容和文本对比工具进行差异对比,将libs.txt的内容完全复制到29.txt即可。
若出现以下错误,是因为编译器认为sprintf函数不安全,按照对应语法替换为snprintf函数即可:
找不到python的文件目录
可以使用which python查看安装路径,到对应的文件修改即可。
在解决完上述问题后,依次执行以下命令:
- source build/envsetup.sh
- lunch
选择对应的系统版本:
执行完成后,继续执行编译命令:
- source build/envsetup.sh
- make SELINUX_IGNORE_NEVERALLOWS=true -j8 CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"
等待编译完成后,展示如下:
居然构建了4.5小时。
在Android Studio官网根据自己电脑型号选择对应版本下载即可。
依次执行以下命令:
- bash
- source build/envsetup.sh
- mmm development/tools/idegen/
development/tools/idegen/idegen.sh
Traversed tree也花费了22分钟。
完成后,在项目目录下会生成android.ipr文件。
给文件授权:
sudo chmod 777 android.i*
打开Android Studio,选择打开已存在的andorid项目,选择android.ipr,等待导入即可,第一次导入时间可能较长:
将示例代码Array放到android10源码的external目录下,并执行以下命令,生成compile_commands.json文件:
- #进入zsh
- bash
- source build/env_setup.sh
- #指定架构
- lunch aosp_arm64-eng
- #编译代码
- mm external/Array/
- #生成complie_commands.json文件
- du -hs -L compile_commands.json
在Array项目根目录下配置 sonar-project.properties配置文件:
sonar.projectKey=项目key,在SonarQube新建页面时获取
sonar.projectName=项目名称
sonar.projectVersion=项目版本
sonar.sources=源码地址,例如:src
sonar.cfamily.compile-commands=compile_commands.json
sonar.branch.name=代码分支,例如:master
sonar.sourceEncoding=源码编码格式,UTF-8
sonar.host.url=SonarQube地址,http://127.0.0.1:9000
sonar.login=SonarQube登陆账号,也可以使用sonar.token替换,token在SonarQube创建项目时获取
sonar.password=SonarQube登陆密码,也可以使用sonar.token替换,token在SonarQube创建项目时获取
sonar.language=指定扫描的语言,可以不填,例如:Java
使用sonar-scanner命令扫描项目。
参考文档:
MAC下载Android源码下载 Android10详解_android10镜像文件下载_JFrosty的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。