小米8(Dipper)编译魔趣MK100全流程记录
最近闲下来了一会,除了休息了一会,另外还学习了下如何编译一个完整的AOSP(Android 10)项目,并添加人脸解锁功能~耗时一周,网上几乎没啥资料,自己摸索后总结一下呜呜呜…
以Mokee (MK100)为例,Dipper(小米8)为开发机进行说明
下载源代码
1.下载repo可执行文件
安卓使用repo工具组织项目,并提供并行fetch、checkout功能。
此处引用Mokee Github的Git-repo仓库:repo文件
下载后导入任意一个可执行文件路径(/usr/bin
、/bin
等)
2.下载各源代码仓库
repo会在当前路径下生成.repo
文件夹,里面存放着所有索引到的仓库名。
注:如果有自己导入的包,可以在
.repo/manifests/xxx.xml
中进行导入
以魔趣为例:
repo init -u https://github.com/MoKee/android -b mkq-mr1 --depth 1
repo sync
- 作为一个编译用户来说,
--depth=1
只会获取最近一次提交,大大减小本地占用大小 mkq-mr1
为mokee/android仓库定义的Android 10
分支repo sync
较为耗时,完成后会把整个仓库拉出来,需要100GB空间左右
添加人脸解锁功能
注:多翻各大AOSP项目的Gerrit!会有很大收获!
1.依赖人脸解锁插件
安卓10官方阉割了支持的人脸解锁,取而代之的是motorola开发的faceunlock插件,插件仓库使用pixel experience中提供的
先在.repo/manifessts/snippets/mokee.xml
定义远程源:
<remote name="pixel"fetch="https://github.com/PixelExperience"revision="ten"review="gerrit.pixelexperience.org" />
在下方定义project
源:
<project path="external/motorola/faceunlock" name="external_motorola_faceunlock" remote="pixel" />
path
为本地路径name
为远程仓库名- 若要指定具体分支,使用
revision
参数指定
2.修改部分人脸相关系统文件
此处不建议直接手改代码,而是查阅各大项目的代码审查网站下载patch文件,如下图:
下载后使用
base64 --decode xxx.base64 > xxx
将其进行base64解码
当然使用Cherry Pick这些也行
总共需要两处:
- 在设置中添加人脸解锁入口:Port face unlock feature-1
framework/base
修改FaceManager
等:Port face unlock feature-2
可以使用git apply/am
进行打补丁,但建议使用git am
指令进行合并,am
可以在合并完成个自动创建commit
。
若合并后有文件冲突,am
会自动暂停并告知冲突文件,解决冲突后,可使用git am --continue
继续合并。若不想改了,则执行git am --abort
放弃本次合并
编译魔趣AOSP
编译的话,加上上面的源码,总共至少需要200G空间
1.lunch配置机型文件
以dipper(小米8)为例,生成一个类似于MIUI开发版的ROM指令为:
lunch mokee_dipper-userdebug
若本地还
小米8(Dipper)编译魔趣MK100全流程记录相关推荐
- unreal ue4 PixelStreaming 局域网及公有云部署全流程记录
PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 | 更新于: 2020-04-20 | 分类于 Unreal Engine | 717 写在前面 本篇是 ...
- 小米max刷原生android,小米max标准版 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
刷机包说明: 刷机之前请实现解锁BootLoader,并刷入TWRP专用版 本ROM也适用于小米红米以及魅族手机账户锁手机 如果你是账户锁手机,刷入魔趣ROM后将不再有锁 基于魔趣OS刷机包制作,纯净 ...
- 从零开始自制实现正则引擎 全流程记录
文章目录 前引 Regex_Engine 1.0 1.全流程实现博客链接 2.源码仓库链接 前引 笔者在完成 正则引擎初版 如果算上有效时间的话 大概是花了一周的时间就完成 只包括了 最基础的正则引擎 ...
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了. 准备文件 从 http://archive.cloudera.com/cdh5/parcels ...
- WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)
技术分享 记录踩过的坑和别的大佬没有叽歪的点 开始做蓝牙打印看到网上很多做混合开发 和安卓开发,ios开发的例子,插件等等版本大同小异,并不是像其他博客上所说的那么简单,[下载插件,无需改动,连接打印 ...
- 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录
利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...
- 《操作系统真象还原》从零开始自制操作系统 全流程记录
文章目录 前引 章节博客链接 实现源码链接 前引 这本<操作系统真象还原>里面一共有十五个章节 大约760页 这些系列博客也是我在做完哈工大操作系统Lab之后 觉得还是有些朦朦胧胧 毅然决 ...
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-1虚拟机安装及环境初始化
1.软件准备: VMware-workstation-full-14.1.2-8497320.exe CentOS-7-x86_64-DVD-1804.iso 2.VMare激活码: AU5WA-0E ...
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置...
主节点安装cloudera manager 准备工作:下载CM和mysql连接驱动包: CM各版本下载地址:http://archive.cloudera.com/cm5/cm/5/ 从里面选择:ht ...
最新文章
- 最全的Centos6.10详细安装Oracle 11G R2图文教程
- UVa10526 - Intellectual Property(后缀数组的应用)
- C++——赫夫曼编码-译码器(Huffman Coding)
- SAP CRM中间件下载equipment时遇到的一个错误
- Angular 个人深究(四)【生命周期钩子】
- 图片切换效果2(定时+左右按钮)
- Java基础学习总结(173)——Java 8到Java 15新功能总结
- sql max同一行_SQL 打印矩阵(三)
- import关键字的使用
- 使用JSON作为函数的参数(转载)
- 【专家访谈】测试专家 - 陈林钧 访谈记录整理汇总
- html如何转换成中文,html中文乱码怎么解决怎么造成如何避免中文乱码
- 原创 | 混沌工程(Chaos Engineering)初识
- 【STM32H7的DSP教程】第14章 DSP统计函数-最大值,最小值,平均值和功率
- 各大浏览器内核Blink chromium
- 阿里巴巴、腾讯投资Barefoot,助力C轮融资8000万美元
- 大学英语B116-阅读理解
- 客户成功 | 数据解码技能提升,Smartbi助力长沙烟草找到“新路子”
- minimax算法及α-β剪枝算法
- 硬盘数据丢失怎么恢复?分享固态硬盘恢复数据的4个方法
热门文章
- SRAM 和 DRAM 的区别
- 2.开启aria2c多线程加速下载
- 什么软件可以把照片变成漫画?试试这几款图片处理工具
- java实现的本地文件管理器——仿Windows文件资源管理器
- 降调软件测试自学,普通话测试及变调.ppt
- DELMIA软件:文本信息提示框功能介绍与使用方法
- 磁盘阵列raid LVM创建
- 市场调研报告-全球与中国施肥机市场现状及未来发展趋势
- fw150rm刷openwrt固件_Openwrt官方适配RM2100(snapshot),刷机教程及配置方法
- Android地图应用闪退,android 第二次打开场景闪退