美文网首页
MacOS环境下载、编译Android源码以及Root

MacOS环境下载、编译Android源码以及Root

作者: 再好一点点 | 来源:发表于2020-05-03 08:36 被阅读0次
    第一:环境准备:

    OS系统版本:macOS 10.15
    xcode版本:Version 11.4
    Jdk版本:1.8.0_221
    Python版本:3.6/2.7
    AOSP源码版本:android-9.0.0_r40

    第二:源码下载注意事项:

    1.首先建立一个区分大小写的磁盘映像,避免后面Git 相关命令的不知别等等(最好使用移动ssd,直接使用mac磁盘工具格式化支持大小写格式就可以了),如果不新建,后面我们就需要去修改一些配置文件了,新建的流程可以参考官网的文档:
    https://source.android.google.cn/setup/initializing.html

    2.下载AOSP代码,可以使用清华的镜像源:

    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://mirrors.tuna.tsinghua.edu.cn/git-repo-downloads/repo  > ~/bin/repo
    chmod a+x ~/bin/repo
    
    第二:下载源码

    在google官网上https://source.android.com/setup/start/build-numbers找到对应的android版本标记
    我需要的是pixelXL,找到标记为android-9.0.0_r40,

    安装好repo之后本人使用的是下载指定版本的命令:
    进入外置ssd,

    mkdir android-9.0.0_r40_kernel-pixelXL
    cd android-9.0.0_r40_kernel-pixelXL
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r40
    repo sync 
    

    漫长的等待,需要几个小时

    第三:下载对应版本的Binary Drive

    下载地址:https://developers.google.com/android/drivers#walleye

    下载Binary Drive需要知道对应的细分版本号,这里得到版本号的方法有两种

    1)根据前面查找到的细分版本--- PQ3A.190605.003 找到对应的Binary Drive

    1. cat build/core/build_id.mk,可以看到当前源码的版本号为 PQ3A.190605.003

    点击Link进行下载,最终会下载到两个tar.gz压缩包,解压后是两个.sh脚本

    extract-google_devices-marlin.sh
    
    extract-qcom-marlin.sh
    

    将上面的两个脚本放到源代码根目录下,执行该两个脚本,不停回车直到输入:I ACCEPT,最终binary都会自动下载到vendor目录下,最终所有的AOSP代码算是下载完成了,接下来开始编译代码。

    优先看最底下的错误信息,可以节约时间

    第四:AOSP编译:

    1,配置jdk
    2,安装xcode最新版(xcode含有编译需要的工具)
    3, sudo port install gmake git gnupg
    4, sudo port install bison

    编译代码
    进入代码根目录

    source build/envsetup.sh
    lunch( 选择 43. aosp_marlin-userdebug )
    m (m 命令系统会根据cpu性能自动选取需要使用的线程,你也可以根据cpu多少使用 make -jN, N表示cpu个数x2)
    

    下面是碰到的坑:

    问题一:找不到对应的MacOSX.sdk

    Could not find a supported mac sdk: [“10.10” “10.11” “10.12” “10.13”]
    
    解决方式一:

    有人说需要去源码的文件/Volumes/android/build/soong/cc/config/x86_darwin_host.go:添加上当前电脑的MacOS sdk版本增加10.15

    darwinSupportedSdkVersions = []string{
            "10.10",
            "10.11",
            "10.12",
            "10.15",
    
    

    这种方式对于我来说还是会出现错误,报错说是

    ld: symbol(s) not found for architecture i386
    clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
    

    所以我使用了下面的解决方式二

    解决方式二:

    我的系统版本是10.15
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs 目录内只有MacOSX10.15.sdk,你需要到 https://github.com/phracker/MacOSX-SDKs/releases 下载需要的版本
    我这里下载的是MacOSX10.12.sdk,解压复制到如下目录:

    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
    
    

    问题二:出现以下错误


    这里官方都有提示可以这样修改,找到文件:源文件根目录/system/sepolicy/tests/Android.bp,删除掉一行代码:

    最后刷机烧录镜像

    google解锁指导:https://source.android.com/setup/build/running#unlocking-the-bootloader

    刷机之前如果已经关闭了终端需要先进入到代码根目录然后执行:

    source build/envsetup.sh 
    lunch 43(自己需要的编号)
    

    然后在执行以下命令

    adb reboot bootloader
    
    解锁手机:fastboot flashing unlock
    
    刷入镜像前我们首先双清一下:
    
    fastboot erase cache
    
    fastboot erase userdata
    
    刷入编译的所有镜像:fastboot flashall -w
    
    

    单独刷入某个img:

    cd out/target/product/marlin
    fastboot flash boot_a boot.img
    fastboot flash boot_b boot.img
    fastboot flash system system.img
    fastboot flash system_b system_other.img
    fastboot flash vendor vendor.img
    fastboot flash userdata userdata.img
    

    刷入完后执行 fastboot reboot 重启手机即可。

    这部分介绍如何root Pixel XL

    1,首先需要下载三方recovery以及magisk
    twrp:https://twrp.me
    magisk:https://github.com/topjohnwu/Magisk/releases

    下载twrp的时候需要区分手机型号,该手机有美版,以及欧版(国际版)。可以再关于手机->监管标签查看,美版(4100,2100)欧版(4200,2200),根据型号下载对应型号的twrp。
    1,将下载的magisk.zip以及twrp.zip push 到手机根目录即可
    2,使用 adb reboot bootloader进入临时twrp,看到recovery时输入fastboot boot twrp.img,twrp.img前面需要加上路径。
    3,点击install,选择twrp.zip滑动滑块安装,返回继续选择magisk.zip安装,完成以后重启。
    4,查看是否安装了Magisk Manager app,如果没有手动下载安装。安装以后使用梯子,然后打开该app,查看是否安装成功。

    碰到的坑:

    我的pixel xl(2100)按照查询显示的是美版,但是下载美版的twrp,进入临时twrp点击install的时候根本找不到push进来的zip。下载最新的欧版3.3.1刷入永久twrp以及magisk显示成功,但是实际是失败的。最终使用的是欧版3.2.2版本的img以及zip,此时也可以成功刷入magisk.zip了。

    相关文章

      网友评论

          本文标题:MacOS环境下载、编译Android源码以及Root

          本文链接:https://www.haomeiwen.com/subject/gfckghtx.html