最近闲下来了一会,除了休息了一会,另外还学习了下如何编译一个完整的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全流程记录相关推荐

  1. unreal ue4 PixelStreaming 局域网及公有云部署全流程记录

    PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 |  更新于: 2020-04-20 |  分类于 Unreal Engine |  717 写在前面 本篇是 ...

  2. 小米max刷原生android,小米max标准版 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...

    刷机包说明: 刷机之前请实现解锁BootLoader,并刷入TWRP专用版 本ROM也适用于小米红米以及魅族手机账户锁手机 如果你是账户锁手机,刷入魔趣ROM后将不再有锁 基于魔趣OS刷机包制作,纯净 ...

  3. 从零开始自制实现正则引擎 全流程记录

    文章目录 前引 Regex_Engine 1.0 1.全流程实现博客链接 2.源码仓库链接 前引 笔者在完成 正则引擎初版 如果算上有效时间的话 大概是花了一周的时间就完成 只包括了 最基础的正则引擎 ...

  4. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置

    Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了.  准备文件 从 http://archive.cloudera.com/cdh5/parcels ...

  5. WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)

    技术分享 记录踩过的坑和别的大佬没有叽歪的点 开始做蓝牙打印看到网上很多做混合开发 和安卓开发,ios开发的例子,插件等等版本大同小异,并不是像其他博客上所说的那么简单,[下载插件,无需改动,连接打印 ...

  6. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录

    利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...

  7. 《操作系统真象还原》从零开始自制操作系统 全流程记录

    文章目录 前引 章节博客链接 实现源码链接 前引 这本<操作系统真象还原>里面一共有十五个章节 大约760页 这些系列博客也是我在做完哈工大操作系统Lab之后 觉得还是有些朦朦胧胧 毅然决 ...

  8. 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 ...

  9. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置...

    主节点安装cloudera manager 准备工作:下载CM和mysql连接驱动包: CM各版本下载地址:http://archive.cloudera.com/cm5/cm/5/ 从里面选择:ht ...

最新文章

  1. 最全的Centos6.10详细安装Oracle 11G R2图文教程
  2. UVa10526 - Intellectual Property(后缀数组的应用)
  3. C++——赫夫曼编码-译码器(Huffman Coding)
  4. SAP CRM中间件下载equipment时遇到的一个错误
  5. Angular 个人深究(四)【生命周期钩子】
  6. 图片切换效果2(定时+左右按钮)
  7. Java基础学习总结(173)——Java 8到Java 15新功能总结
  8. sql max同一行_SQL 打印矩阵(三)
  9. import关键字的使用
  10. 使用JSON作为函数的参数(转载)
  11. 【专家访谈】测试专家 - 陈林钧 访谈记录整理汇总
  12. html如何转换成中文,html中文乱码怎么解决怎么造成如何避免中文乱码
  13. 原创 | 混沌工程(Chaos Engineering)初识
  14. 【STM32H7的DSP教程】第14章 DSP统计函数-最大值,最小值,平均值和功率
  15. 各大浏览器内核Blink chromium
  16. 阿里巴巴、腾讯投资Barefoot,助力C轮融资8000万美元
  17. 大学英语B116-阅读理解
  18. 客户成功 | 数据解码技能提升,Smartbi助力长沙烟草找到“新路子”
  19. minimax算法及α-β剪枝算法
  20. 硬盘数据丢失怎么恢复?分享固态硬盘恢复数据的4个方法

热门文章

  1. SRAM 和 DRAM 的区别
  2. 2.开启aria2c多线程加速下载
  3. 什么软件可以把照片变成漫画?试试这几款图片处理工具
  4. java实现的本地文件管理器——仿Windows文件资源管理器
  5. 降调软件测试自学,普通话测试及变调.ppt
  6. DELMIA软件:文本信息提示框功能介绍与使用方法
  7. 磁盘阵列raid LVM创建
  8. 市场调研报告-全球与中国施肥机市场现状及未来发展趋势
  9. fw150rm刷openwrt固件_Openwrt官方适配RM2100(snapshot),刷机教程及配置方法
  10. Android地图应用闪退,android 第二次打开场景闪退