UBPort

Ubuntu Touch在小米note3上的移植记录一



前言

三年前买的小米note3光荣退役,但是除了屏幕有道裂缝外其他的还能用,不忍心放家里吃灰,所以拿来搞一些有意思的东西。
最近想玩玩android下的linux,先尝试了LinuxDeploy和Terminal,效果都不咋好,有听说有能够直接运行linux的方法,研究了一下并没有适配我的老爷机。遂打算自己动手,丰衣足食。


一、准备工作

1、环境搭建

在虚拟机中安装用到的包

sudo apt install android-tools-mkbootimg bc bison build-essential \
ca-certificates cpio curl flex git kmod libssl-dev libtinfo5 python2 \
sudo unzip wget xz-utils img2simg jq

具体搭建方法请参考此链接

2、准备内核源码

环境搭建完成后去lineageos的github仓库寻找适配你自己设备的仓库
LineageOS官方git仓库
xiaomi note3
在仓库里搜索你设备的代号,然后选择android_kernel_xxxx_xxxx,fork到自己的仓库里(不fork也可以,自己修改deviceinfo里面的链接信息即可)。

3、获取boot.img启动参数

完成了上面几步,还剩下boot参数就可以开始编译了。去lineageos官网下载对应机型的16.0版本的适配刷机包。
现在官网已经下载不到老版本的刷机包,只有最新的18.0可以下载,为了保证不出问题,我们需要下载16.0版本。这里推荐一个网站可以搜索到各个历史版本的刷机包下载速度慢的自备梯子点我搜索下载
下载好后解压刷机包,找到里面的boot.img,复制到ubuntu里面,然后用大神的脚本获取boot参数,脚本在此,用法:

<path-to-unpack_bootimg.py> --boot_img <path-to-boot.img>

保存获取的参数。
在这里插入图片描述
准备工作到此结束。

二、编译

1.获取官方推荐的repo

采用官方推荐Xiaomi-violet的repo
新建工作目录

mkdir WorkSpace 
cd WorkSpace

克隆到虚拟机

git clone https://gitlab.com/ubports/community-ports/android9/xiaomi-redmi-note-7-pro/xiaomi-violet.git

2.修改deviceinfo适配自己的机型

deviceinfo

其中要注意几点
deviceinfo_name机型自己填
deviceinfo_kernel_source为lineageos16.0官方适配分支的linux kernel,最好是分支到自己的仓库,当然也可以直接使用,自己修改git仓库链接即可。
deviceinfo_kernel_source_branch版本要选对,lineageos16.0,对应安卓9.0.
deviceinfo_kernel_defconfig要换成对应的配置文件,在内核仓库的arch/arm64/configs/下面找到适合你的配置文件
我的配置文件小米note3
deviceinfo_kernel_cmdline这个是内核启动命令,复制刚刚获取的kernel启动参数到这里,再在后面加上一句console=tty0,有疑问见上图笔者的deviceinfo

deviceinfo_kernel_clang_compile这个是选择编译内核的编译工具,等与true使用clang,等于false使用gcc,两者主要是对c语法支持不一样,当遇到的函数嵌套定义时,使用gcc可以编过,但是clang不能。如果你发现编译函数嵌套定义出错,那么切换到gcc试一下吧。
deviceinfo到这里就差不多了。动手开始编译吧!

后续待发布…


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了ubuntu touch的移植方法,如果有问题可以联系作者qq:2391627307,可以一起交流移植经验。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值