通过aosp-latest下载Android源码

本文介绍了在编译Android源码时遇到的两个问题及解决方案。首先,由于repo与Python版本不匹配,通过修改系统默认的python链接指向python3解决了问题。其次,针对服务器证书验证失败的问题,通过设置git的全局配置禁用了SSL验证。此外,还提供了切换Android源码分支的方法。
摘要由CSDN通过智能技术生成
  • 步骤

    #下载初始化包,同浏览器下载好一些,可以断点下载
    wget -c 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代码
    
  • 报错一
    .repo/repo/main.py, line 79

    这是因为repo与python不匹配导致的。

    1、可以通过修改python版本试试

    #我系统的本地python版本
    lang@lang-110:$ /usr/bin/env python
    Python 2.7.15+ (default, Oct  7 2019, 17:39:04) 
    [GCC 7.4.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    #我系统的本地python3版本
    lang@lang-110:$ /usr/bin/env python3
    Python 3.6.8 (default, Oct  7 2019, 12:59:55) 
    [GCC 8.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    #临时切换版本
    alias python=python3
    
    #查看默认python的版本
    python --version
    
    

    本以为通过alias python=python3切换到3就可以了,试了下发现没效果,查看main.py,line 79发现里面使用的就是#!/usr/bin/env python3。所以先放弃了。

    2022/04/07更新:切换不成功的原因知道了。
    repo文件中#!/usr/bin/env python 使用的是/usr/bin/python,可以查看下其连接的是2还是3。

    lang@lang-110:$  whereis python
    python: /usr/bin/python
    
    lang@lang-110:$  which python
    /usr/bin/python
    
    lang@lang-110:$ ls -al /usr/bin/python
    lrwxrwxrwx 1 root root 9 4月  16  2018 /usr/bin/python -> python3.10
    

    由上可知,repo使用的是python3,所以我们可以删除python的老连接,重新创建新连接:

    lang@lang-110:$ rm /usr/bin/python
    lang@lang-110:$ ln -s /usr/local/python2.7.15/bin/python2.7   /usr/bin/python 
    

    PS: /usr/local/python2.7.15/bin/python2.7python2.7的执行文件位置,可能为/usr/bin/python2.7,是具体安装路径为准。

     lang@lang-110:$ ls -al /usr/bin/python
     lrwxrwxrwx 1 root root 9 4月  16  2018 /usr/bin/python -> python2.7
    

    2、若还不行,则可以重下载repo版本试试

    我这边有一个现成的可以试试 repo.zip

  • 报错二

    fatal: unable to access 'https://aosp.tuna.tsinghua.edu.cn/platform/manifest/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

    CA证书的问题,解决方式:git config --global http.sslverify false

  • 切换分支:

    #源码目录下
    cd .repo/manifests
    git branch -a | cut -d / -f 3  #查看分支
    repo init -b android-9.0.0_r3  #Android 9
    repo sync
    

下一节:【模拟器】Android Studio模拟器运行自己的编译的Android源码镜像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值