aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚

Posted learnframework

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚相关的知识,希望对你有一定的参考价值。

hi,学员朋友,大家好!
前期一直有同学在问我这边,学习framework需要什么额外设备么?这里其实我一直前期也是给学员说的,如果你是个新手,刚刚开始可以不用,完全可以跟着课程一起学习(需要可以找我要优惠q群:422901085),用课程里面的模拟器。哈哈资格模拟器不要钱,也不存在变砖的可能性。当你已经学完课程入门部分了,这个时候你觉得模拟器不能满足你了,你可以考虑pixel(相对比较贵)或者其他二手android手机,比如经典小米,联想,一加,nubia等基本上很多二手(基本便宜,而且自己手里一般都有一两个不用的二手机器)。pixel刷入aosp这个我前期已经写过相关文章,可以关注我之前blog,但针对非pixel相关机器今天我这边来分享一下怎么刷入一个基于aosp魔改了的lineage os。

首先确认好自己手上机器到底是否支持,看如下地址:
https://wiki.lineageos.org/devices/

1 准备机器,oem解锁

设置中开发者选项开启oem开关

接下来需要进入fastboot模式

执行:
adb reboot bootloader

进入后需要fastboot命令对手机进行解锁,这里我这边手上刚好有nubia的z17,blog就以他为例子,(其他xiaomi解锁相对可能复杂一些,大家自己百度就行,实在不行你可以淘宝花点钱让别人帮你刷个lineageos)

进入fastboot模式后,需要用fastboot命令解锁oem:
1、fastboot device
//这里只是看看到的fastboot下面有没有设备,没有实际意义
2、fastboot oem nubia_unlock NUBIA_NX563J
//这一部非常关键,相对每个手机还有点区别,大家自己根据机型百度

2 刷入第三方的recovery,并刷入官方lineage os版本

1、解锁完成,解锁后需要刷入第三方recovery,这个recovery我们直接lineageos官网就有,一般刷几包和recovery都是配套的,这里不得不说lineageos真的是服务到位,外国友人无私奉献万岁
(参考地址https://wiki.lineageos.org/devices/nx563j/install)

具体命令:
fastboot flash recovery <recovery_filename>.img

这里的recovery的img可以直接lineage官网下载:
https://download.lineageos.org/nx563j


左边770多M的是刷机包,右边是对应的recovery.img的包
确定是否刷入成功,这里可以看命令输出,如果出现OKAY。。那就ok了,如果有fail一般可能解锁不成功
2、上面刷入recovery成功,在手机的fastboot模式上按音量上下按键,
选址 : reboot to recovery mode,再按power按键
(注意不要直接重启进入系统)
lineage官方也是这样说的:
Now reboot into recovery to verify the installation. Do not reboot into the existing OS, since it will overwrite the recovery you just installed!

这个非常关键哈
3、进入recovery后,刷入上面下载的770多m刷包系统系统
到达recovery主页

***然后选择 “Apply Update”, then “Apply from ADB”*** 

接下来就需要我们电脑端通过adb发送下载的zip过去:
adb sideload xxxx.zip
(如果提示xxx签名不一致,可以直接选择继续)

3、下载对应的lineagos代码及编译:

前面已经先把手机刷成了lineage os系统了,但是始终系统是别人的,我们自己不可以随便改变,所以我们就要进入最重要的构建我们自己的代码系统,这样再刷入我们自己编译的lineage os才算成功
参考lineage os官方链接:
https://wiki.lineageos.org/devices/nx563j/build

其实也可以通过以下链接直接点击进入:
https://wiki.lineageos.org/devices/nx563j/

点击上面的“Build for yourself”

这里因为构建部分内容较多,大家严格按照https://wiki.lineageos.org/devices/nx563j/build 链接一步步来就可以,我这里只需要提出以下几个点,也算我这边踩坑点:

1、安装库一定不要省略

安装库和我们以前aosp编译还是有一些区别,所以这里严格按照链接提供的库来


    sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsyncschedtool squashfs-tools xsltproc zip zlib1g-dev


2、ccache 这个部分大家可以根据自己情况,我这边没有配置

3、国内需要对repo下载后需要修改REPO_URL

修改方法:

vi ~/bin/repo

修改后:

  REPO_URL ='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

4、repo init后,需要对.repo的xml进行修改(非常关键)

如果repo init后直接repo sync,国内会报出很多错误,错误原因还是因为国内网络,解决方法如下
对 .repo/manifests/default.xml进行修改,修改具体点如下,用git diff给大家看:

test@test:~/nx563j/.repo/manifests$ git diff
diff --git a/default.xml b/default.xml
index 672a8c3..da6b283 100644
--- a/default.xml
+++ b/default.xml
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
 
-  <remote  name="github"
-           fetch=".."
+   <remote  name="github"
+           fetch="https://github.com/" />
+  <remote  name="lineage"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"
            review="review.lineageos.org" />
 
   <remote  name="private"
            fetch="ssh://git@github.com" />
 
   <remote  name="aosp"
-           fetch="https://android.googlesource.com"
:...skipping...
diff --git a/default.xml b/default.xml
index 672a8c3..da6b283 100644
--- a/default.xml
+++ b/default.xml
@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
 
-  <remote  name="github"
-           fetch=".."
+   <remote  name="github"
+           fetch="https://github.com/" />
+  <remote  name="lineage"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"
            review="review.lineageos.org" />
 
   <remote  name="private"
            fetch="ssh://git@github.com" />
 
   <remote  name="aosp"
-           fetch="https://android.googlesource.com"
-           review="android-review.googlesource.com"
+           fetch="https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"
            revision="refs/tags/android-12.1.0_r22" />
 
   <default revision="refs/heads/lineage-19.1"
-           remote="github"
+           remote="lineage"
            sync-c="true"
            sync-j="4" />
 

4、breakfast nx563j第一次有报错

第一次repo sync成功后,开始编译

source build/envsetup.sh
breakfast nx563j

但是发现breakfast nx563j执行非常慢,而且有报错说没有xxxx product

其实这里是正常的,因为这个时候才开来下载和563相关的git,也就是这个时候在repo设备相关的库,当然慢,而且整个系统中当然还没有nx563j这个目标

等待一会后,我们就可以把大部分nx563j的依赖下载豪,但是有一些无法下载的就需要从我们目前已经刷了lineage os手机上拉下来
这里怎么拉呢?当然是我们的adb pull 。。。。,具体拉哪些我们不需要关心,lineage已经给我们写了extract-files.sh脚本,执行它就行

cd 源码根目录/device/nubia/nx563j //这个目录有就有extract-files.sh
./extract-files.sh 

上面执行完成后再执行

croot
brunch nx563j

最后上一下我们的编译ok截图

以上是关于aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚的主要内容,如果未能解决你的问题,请参考以下文章

Oracle GoldenGate 19.1新特性

构建的Web应用界面还不够好看?DevExtreme v19.1全新主题来袭

19.1-19.6

DevExpress ASP.NET Core v19.1版本亮点:Visual Studio集成

DevExpress v19.1新版亮点——WinForms篇

VS开发框架DevExtreme v19.1全解析!全新的UI小部件