Android 11源码下载和编译_android11源码下载-程序员宅基地

技术标签: Android Framework  android  

Android 11源码下载和编译

最近摸了快好久的鱼了,感觉人都快废了。刚好这两天固态降价了,买了个sn550当移动硬盘跑Android 11源码,毕竟8.1的还是太老了,现在手机厂商都是基于Android 11或是升级到Android11的。用的环境还是Ubuntu18.04,环境配置请看上篇文章:从零开始学习Android Framework.

一、源码下载

下载方式非常简单,下面是我使用的命令:

#下载repo
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
#创建并初始化android-11.0.0_r3仓库目录
mkdir android-11.0.0_r3
cd android-11.0.0_r3
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r3 --repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
#同步代码
repo sync -c --no-tags

我使用的是清华的源,提几个要注意的点,避免大家踩同样的坑:

  1. 使用他们提供的repo,不要用自己apt-get下载的,不然会报如下错误,这个错让我蒙逼了好久
    在这里插入图片描述

  2. 记得加上**–repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo**,否则就会报如下错误,

    fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
    fatal: error [Errno 110] Connection timed out
    

    不过使用清华的源,repo-url应该用https://mirrors.tuna.tsinghua.edu.cn/git/git-repo,但是这样也没报错,能正常使用
    原因: repo 每次执行的时候都会去检查更新自己,但是网站被墙了.
    报错截图如下:
    在这里插入图片描述
    下面就是正常初始化仓库的截图: 在这里插入图片描述
    后面就是漫长的同步过程了。

    同步时空间不足,报错no space,我一想我特地怕空间不够买了个1t固态,把整个虚拟机移动到固态里了,还把之前分配的250G改成了500G,咋还空间不足呢,df -h查看果然总空间只有250G,占用100%,我以为是不是新分配的空间要重启才会生效,直接重启虚拟机结果尬在了开机阶段,百度了下解决方法:Ubuntu无法进入图形化界面(报错/dev/sda1:clean的解决).
    能够进入桌面了,但空间还是不足,百度了下怎么给sda1扩容:虚拟机里ubuntu扩容主分区/dev/sda1.
    我用gparted打开只有个/dev/sda1分区,把他扩容到500G,其他的分区没管。重新启动后df -h产看果然有500G了,继续同步代码。
    然后又报错了,不过按照提示加上-j1 --fail-fast参数,出错时快速停止。因为同步代码时出错基本都是由于网络原因导致,所以出错了马上再repo sync就行了,我这里repo sync一下就好了。 在这里插入图片描述

当然如果上述内容无法解决你的问题,您可以访问国内源对应的网址,自己研究下,按照他们提供的方法下载源码即可:

  1. 清华大学 AOSP 镜像: https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/.
  2. 中国科技大学 AOSP 镜像: https://mirrors.ustc.edu.cn/help/aosp.html.

二、源码编译

编译还是和android 8一样,使用命令如下:

# 初始化编译环境( .可以用source代替,如 source build/envsetup.sh )
. build/envsetup.sh
# 执行
lunch
# 我这里使用模拟器所以选择 31 (即aosp_x86_64-eng)
Which would you like? [aosp_arm-eng] 31
# 开始编译(这里怕我电脑扛不住用的-j1,电脑好的可加大力度)
make -j1

这里lunch选择的时候我看别人推荐的都是

lunch sdk_phone_x86_64

我只知道lunch的选择不同使编译时make的模块会稍有不同,目前我lunch 31没啥问题所以就不改了
Google官网的AVD使用https://source.android.google.cn/setup/create/avd
结果:编译成功,编了17个半小时,j1太慢了下次试试j2。截图如下
在这里插入图片描述
打开虚拟机执行下面命令成功运行模拟器:

. build/envsetup.sh
lunch 31
emulator

截图如下:
在这里插入图片描述
这里只出过一个问题,就是out of memory,无论我是直接make还是make -j2都会报错,没办法只能把虚拟机内存调到12G,然后用make -j1编译.
在这里插入图片描述
哎,希望以后我这小笔记本还带的动Android源码。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lhg1714538808/article/details/118061100

智能推荐

hdu-畅通工程续_hdu畅通工程续-程序员宅基地

文章浏览阅读233次。某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M&l..._hdu畅通工程续

快速上手react 推荐蚂蚁金服的antd_蚂蚁金服react demon-程序员宅基地

文章浏览阅读953次。https://mobile.ant.design/docs/react/introduce-cn_蚂蚁金服react demon

Xcode7 beta 网络请求出错:The resource could not be loaded because the App Transport_for sm2,decode administror cert failed-程序员宅基地

文章浏览阅读852次。Xcode7 beta 网络请求出错:The resource could not be loaded because the App Transport本文收集于网络,只用于方便查找方案,感谢源作者,如果侵权请联系删除Xcode7 beta 网络请求报错:The resource could not be loaded beca_for sm2,decode administror cert failed

实用英语400百句-程序员宅基地

文章浏览阅读853次。1. I see. 我明白了。2. I quit! 我不干了! 3. Let go! 放手! 4. Me too. 我也是。5. My god! 天哪! 6. No way! 不行! 7. Come on. 来吧(赶快) 8. Hold on. 等一等。9. I agree. 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up! 闭嘴! 14. So long. 再见。15. Why not? 好呀! (为什么不呢?) 16. A_实用英语400

Vue3.0再不学就out了!跟我入门第一天,含集成ts、router、vuex等使用方法_ts jsencrypt依赖vuex吗-程序员宅基地

文章浏览阅读870次,点赞6次,收藏7次。1. 如何在vue中集成tsvue-cli 创建项目时选择ts依赖yarn add typescript 进行安装vite 安装tsvite—>vue/vue-ts就可以直接写ts代码了可以学习下typescript—》点击蓝色字体跟我一起快速入门ts哦学了typescript之后再用ts的写法来写vue组件代码2. composition API 中 使用vue-router由于在setup中不能使用this, 因为setup在初始化之前执行的,所以setu_ts jsencrypt依赖vuex吗

day07_LC学习计划:数据结构入门_struct hashtable *find()-程序员宅基地

文章浏览阅读192次。141.环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释..._struct hashtable *find()

随便推点

Nginx限制访问方式,禁用OPTIONS TRACE不安全方法_nginx 禁用trace方法-程序员宅基地

文章浏览阅读4.6k次。一、背景场景:jar包已经打包部署,项目源码不能修改,解决 curl -v -X TRACE 时200 漏洞解决方法, 从Nginx下手二、360安全要求,尽量用get和post的api的应用,禁用OPTIONS ,即对put,delete,tract等最不要使用,他们认为不安全。三、nginx中的配置: server {undefined listen 80; server_name localhost; #chars_nginx 禁用trace方法

cmd判断操作系统及创建快捷方式,安装包使用_cmd 判断 windows 环境-程序员宅基地

文章浏览阅读1.7k次。@echo offcopy config.xml "%USERPROFILE%\桌面\"rem 创建快捷方式Windows7 判断操作系统if "%OS%" == "Windows_NT" goto sys7if exist "%USERPROFILE%\「开始」菜单\程序\系统" goto okStartDIRmd "%USERPROFILE%\「开始」_cmd 判断 windows 环境

Linux下进程管理与控制_declared here extern __pid_t waitpid (__pid_t __pi-程序员宅基地

文章浏览阅读748次。1.创建进程:  extern __pid_t fork(void);  成功则在父进程中返回子进程的PID;在子进程中则返回0,以区别父子进程。  失败则在父进程中返回-1;  说明:子进程从创建后和父进程「同时」执行;竞争系统资源,子进程的执行位置为fork的返回位置。  extern __pid_t vfork(void);  成功则在父进程中返回子进程的PI_declared here extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __

深圳市有关事假、病假、婚假、丧假、产假、哺乳假、生育看护假的规定_深圳事假最多可以请多久-程序员宅基地

文章浏览阅读4.9k次。http://www.szyc3z.com/xwa.asp?id=109335深圳市有关事假、病假、婚假、丧假、产假、哺乳假、生育看护假的规定作者:  发布时间:2013-5-22 10:03:00  阅读 1001 次打印本页 一、_深圳事假最多可以请多久

微信小程序Canvas 2D自定义生成转发图片_createcanvascontext 2d-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏9次。前言小程序原先转发给别人,要不是一张图片,要不是就是截屏,不是很自定义化。我们要每个用户在不同的页面,转发的内容都不一样,这当然可以直接从服务端实时生成这样 5:4 的图片做转发,毕竟好处是避免了兼容性问题本示例将会用另外一种思路,从客户端实时生成分享图片,并进行转发。技术调查微信小程序中 以 wx.createCanvasContext 为代表的 CanvasContext (v1)都从基础库 2.9.0 开始,停止维护了所以我们就使用更加贴近 mdn 上 Canvas 来代替 (v2)这_createcanvascontext 2d

Element-ui关于对话框中表单自动获取焦点的实现_el-dialog,open,焦点-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏2次。this.$nextTick()在页面交互,尤其是从后台获取数据后重新生成dom对象之后的操作有很大的优势,是解决这次问题的关键。_el-dialog,open,焦点

推荐文章

热门文章

相关标签