在wsl 2中编译自己的魔趣(mokee) ROM
1.安装wsl2
a.在windows 10 系统中启用wsl2(只能是wsl2,wsl1 会编译失败), 并商店中下载ubuntu镜像,商店默认安装位置为C:\Program Files\WindowsApps,考虑到编译需要100多G空间,需要把app移动到其他盘.
用管理员权限打开cmd
1 :: 切换到目录中
2 c:\Program Files\WindowsApps> cd /d "C:\Program Files\WindowsApps"
3 :: 查找文件夹名字
4 c:\Program Files\WindowsApps>dir | findstr Ubuntu20
5 2022/02/07 16:35 <DIR> CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.825.0_neutral_split.scale-100_79rhkp1fndgsc
6 2022/02/07 16:35 <DIR> CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.825.0_neutral_~_79rhkp1fndgsc
7 2022/02/07 16:35 <DIR> CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.825.0_x64__79rhkp1fndgsc
8
9 xcopy CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.825.0_x64__79rhkp1fndgsc e:\wsl /E/H/C/I
b.直接双击运行ubuntu2004.exe,
2.准备环境
安装环境
https://source.android.google.cn/setup/initializing?hl=zh-cn
aosp编译流程
https://source.android.google.cn/setup/building?hl=zh-cn
3.由于大部分库都在墙外,设置代理
1 #repo设置proxy
2 export http_proxy=http://192.168.1.60:8080
3 export https_proxy=https://192.168.1.60:8080
4 #Git设置proxy
5 git config --global http.proxy http://192.168.1.60:8080
6 git config --global https.proxy http://192.168.1.60:8080
7#Git 取消proxy
8 git config --global --unset http.proxy
9 git config --global --unset https.proxy
4.下载代码,时间比较长.
1 $ mkdir ~/mokee
2 $ git config --global user.email "your@email.address"
3 $ git config --global user.name “Your Name”
4 $ cd ~/mokee
5
6 $ repo init -u https://github.com/MoKee/android -b mkq-mr1 --depth 1
7 $ repo sync -j4
5.执行breakfast.
1 DESKTOP-AIAM0DF:~/mokee$ breakfast
2 You're building on Linux
3
4 Lunch menu... pick a combo:
5 1. aosp_arm-eng
6 2. aosp_arm64-eng
7 3. aosp_car_arm-userdebug
8 4. aosp_car_arm64-userdebug
9 5. aosp_car_x86-userdebug
10 6. aosp_car_x86_64-userdebug
11 7. aosp_x86-eng
12 8. aosp_x86_64-eng
13 9. car_x86_64-userdebug
14 10. m_e_arm-userdebug
15 11. mini_emulator_arm64-userdebug
16 12. mini_emulator_x86-userdebug
17 13. mini_emulator_x86_64-userdebug
18 14. mokee_arm-userdebug
19 15. mokee_arm64-userdebug
20 16. mokee_dumpling-eng
21 17. mokee_dumpling-user
22 18. mokee_dumpling-userdebug
23 19. mokee_x86-userdebug
24 20. mokee_x86_64-userdebug
25 21. qemu_trusty_arm64-userdebug
26 22. uml-userdebug
27
28 Which would you like? [aosp_arm-eng] ^C
如果列表中没有 mokee_dumpling-userdebug,
则往.repo/manifests/default.xml中添加
<project path="vendor/oneplus/dumpling" name="MoKee/android_vendor_oneplus_dumpling" clone-depth="1" />
<project path="device/oneplus/dumpling" name="MoKee/android_device_oneplus_dumpling" groups="pdk" />
怎么知道name="MoKee/android_device_oneplus_dumpling", 其实是直接在 https://github.com/MoKee 中搜索dumpling,根据xml格式自己添加的,
再次执行repo sync
6.执行 lunch mokee_dumpling-userdebug
7.执行 mka bacon
等待漫长的编译过程, 我16G内存,占用了大约12G.所以内存最好16G以上.
中间碰到几个错误,google下都解决了.
碰到的一些错误.
错误 cmd: unknown variable '$(PATH_OVERRIDE_SOONG)'
解决 breakfast
repo sync
mkbacon
编译Android时报错:error while loading shared libraries: libncurses.so.5: cannot open shared object file:
解决方式
https://blog.csdn.net/druieam/article/details/106818875
参考文档
How To Port CyanogenMod/LineageOS Android To Your Own Device
在wsl 2中编译自己的魔趣(mokee) ROM的更多相关文章
- 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)
目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ...
- Java--自定义Class并且在内存中编译,加载,实例化
本文的目的: 使用者在程序运行期间,可以动态的写Java Class,不需要生成任何.Class文件就可以完全在内存中编译,加载,实例化. 1.需要用到的组件介绍 1)JavaCompiler:用于编 ...
- 在PLSQL中编译复杂的java(转)
原文地址:在PLSQL中编译复杂的java PLSQL中可以编译运行JAVA程序. 一个简单的例子: create or replace and compile java source named x ...
- 在VS2012中编译WinXP兼容的程序
VS2012默认是不兼容Windows XP的,编译链接出来的程序只能在Windows Vista及以上版本的操作系统上运行.可是有时需要在Windows XP上运行,又不得不用VS2012(例如用了 ...
- 在CentOS 6.4中编译安装gcc 4.8.1
在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.c ...
- eclipse中编译时enum出现cannot be resolved to a type错误
eclipse中编译时enum出现cannot be resolved to a type错误 通常是因为eclise使用的jdk版本的问题...默认是使用的是jdk1.5 应该去选择成jdk1.6或 ...
- [原]在Fedora中编译Libevent测试实例
在我的昨天的博文<[原]我在Windows环境下的首个Libevent测试实例>中介绍了在Windows环境下如何编译一个echo server例子.今天我又试了一下在Linux环境中编译 ...
- Debian中编译内核
转载: http://blog.163.com/libo_5/blog/static/156968520101016102051580/ http://hi.baidu.com/wg_wang/ite ...
- 在Eclipse中编译maven项目出的问题
在Eclipse中编译Maven项目,运行 jetty:run 指令的时候会出错,在 JRE选项卡中加入: -Dorg.mortbay.util.URI.charset=GBK-Xms512m -Xm ...
- 在vs2010中编译log4cxx-0.10.0详细方法
本文一共包含了17个步骤,按照下面的步骤就可以完成vs2010中编译log4cxx的工作了. 1. 下载 log4cxx 以及 apr 和 apr-util 源码: a) http://www.apa ...
随机推荐
- JavaScript 如何验证 URL
前言 当开发者需要为不同目的以不同形式处理URL时,比如说浏览器历史导航,锚点目标,查询参数等等,我们经常会借助于JavaScript.然而,它的频繁使用促使攻击者利用其漏洞.这种被利用的风险是我们必 ...
- 一个基于 gin+ grpc + etcd 等框架开发的小栗子
一.标准的项目结构 首先我们看一个标准的项目结构是什么样子的,github 上给出的一个示例:golang-standards/project-layout 二.服务注册与发现流程 三.示例代码 项目 ...
- 3D数字孪生场景编辑器介绍
1.背景 数字孪生的建设流程涉及建模.美术.程序.仿真等多种人才的协同作业,人力要求高,实施成本高,建设周期长.如何让小型团队甚至一个人就可以完成数字孪生的开发,是数字孪生工具链要解决的重要问题.目前 ...
- CF846F - Random Query
题意:对于一个序列,每次随机选择两个数 \(l,r\),如果 \(l\gt r\) 就交换,求 \(l,r\) 中本质不同的数个数的期望. 我们发现,在所有的 \(n^2\) 个选择方案中,其实就是 ...
- Atcoder题解:Arc156_c
数据范围 \(10^5\),但是介绍一个 \(O(n\log n)\) 做法. 我们考虑观察样例,发现样例都很小,而且 \(\text{LCS}\) 的长度都是 \(1\),那么我们就猜答案最多为 \ ...
- Postgresql动态共享内存类型
一.简介 linux为多个进程通信提供了不同的IPC机制,如:System V , POSIX 和 MMAP,所以Postgresql共享内存管理也支持以上类型. 在Postgresql中可以使用dy ...
- helm在k8s上部署Elasticsearch和Kibana
前提 在win上安装docker desktop,没有网络限制,而且,打开kubernetes之后,很快就安装启动好了. 在win上安装scoop,有网络限制,需要访问github raw的文件内容, ...
- 【4】java之基础数据类型的包装类
一.认识包装类 java 在设计之初有一个基本原则:一切皆对象,一切的操作都基于对象,但是有一个矛盾,基本数据类型不是对象.为了符合于这种要求,最早使用人为的方式解决此问题,如下所示: class ...
- Spring、SpringMVC的区别
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring.简单点的话可以将SpringMVC类比于Struts ...
- 《用Python写网络爬虫》pdf高清版免费下载
<用Python写网络爬虫>pdf高清版免费下载地址: 提取码:clba 内容简介 · · · · · · 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有 ...