编译属于你自己的 Sultanized MoKee

编译属于你自己的 Sultanized MoKee

一切的一切源于一块非原装屏……

起因

上学期在课堂上把等于四的屏摔碎了,将就着用了大半年,最后禁不住诱惑去广埠屯把屏幕换了。

换屏之前用的是 MoKee,虽然刚到手是正常使用,但是升级版本之后会出现花屏现象,而且会有接电时长按变多个位置同时被点的现象,我猜是屏没装好,毕竟不是官方售后……自己也暂时没办法拆机,只能试试其他 ROM 了。

经过多次实验,Sultanized ROM 和官方的氢和氧都可以正常使用,但是 Sultanized RR 和 Sultan 维护的 LOS 都不是我的菜。在家网络环境不好,也就只能官方先用着了。来学校以后,又有了折腾的心,于是开始编译属于我自己的 Sultanized MoKee

准备

首先搭建我们的编译环境,我使用的是 ArchLinux,与 Ubuntu 等 Debian 系发行版有部分所需包的包名不相同,所以我在这里接绍一下准备过程

首先,你的设备得有 Sultanxda 维护的 Unofficial LOS(不然怎么叫 Sultanized 呢)

然后,安装以下包(现在可以直接安装 AUR 中的 Meta Package lineageos-devel

1
$ yay -S gcc-multilib git gnupg flex bison gperf sdl wxgtk2 squashfs-tools curl ncurses zlib schedtool perl-switch zip unzip libxslt python2-virtualenv bc rsync ncurses5-compat-libsAUR lib32-zlib lib32-ncurses lib32-readline lib32-ncurses5-compat-libs xml2 lzop pngcrush imagemagick python2 python3 jdk8-openjdk repo python2-virtualenv

如果你之前安装了其他版本的 openjdk,使用这个指令来切换

1
# archlinux-java set java-8-openjdk

然后我们来同步源码

1
2
3
4
5
6
$ mkdir ~/mokee
$ git config --global user.email "your@email.address"
$ git config --global user.name “Your Name”
$ cd ~/mokee
$ repo init -u https://github.com/MoKee/android -b mkn-mr1
$ repo sync -j4 -f --no-clone-bundle

额,由于编译的时候会自动设置 CCACHE(我记得是这样)就先不管它了

修改与编译

我的设备是等于四,那我当然选择编译等于四啦

1
2
3
$ cd ~/mokee
$ source build/envsetup.sh
$ breakfast oneplus3

这样以后,我们就可以开始修改,让 Sultanxda 的内核源码和 MoKee 融♂合了

首先我们把 ~/home/mokee/.repo/local_manifests/roomservice.xml 修改成下面的样子

roomservice.png

然后再同步一下

1
2
$ cd ~/mokee
$ repo sync

好,我们再来修改会出问题的地方,首先删除 ~/mokee/packages/apps/Dialer/tests 文件夹(在我这里会导致编译报错),然后重命名 ~/mokee/device/oneplus/oneplus3/lineage.mkmokee.mk,文件内容中的 vendor/cm/config 改为 vendor/mk/configlineage_oneplus3 改为 mk_oneplus3lineage.dependencies 重命名为 mk.dependencies~/mokee/device/oneplus/oneplus3/pocketmode~/mokee/device/oneplus/oneplus3/doze 目录下 Android.mk 中的 org.cyanogenmod 改为 org.mokee (可能还有修改,但是不太记得了),~/mokee/device/oneplus/oneplus3/cmhw 文件夹里面的内容也要进行类似的修改

接下来同步一下 Sultanxda 的 patch

1
2
3
$ cd ~/mokee
$ git clone https://github.com/sultanxda/patcher.git
$ ./patch/patcher.sh

然后就可以开始搞事情啦

1
2
3
4
5
$ cd ~/mokee
$ virtualenv2 venv
$ source venv/bin/activate
$ lunch mk_oneplus3-userdebug
$ mka bacon

静静等待结束,就可以在 ~/mokee/out/target/product/oneplus3 里面找到你的卡刷包啦,赶紧备份然后刷入体验吧!

问题和截图

编译出来的 ROM 确实不会再花屏了,MoKee 用着就是舒服。再加上 Sultanxda 的优化,美滋滋。但是还是有些许问题存在

  • LED 灯控制中,只能改变呼吸灯的长短和频率,不能改变颜色
  • 每次重启以后 pocketmode 会 fc
  • 有快充但是不会显示DASH
  • 系统语言为 zh_CN 的情况下运营商会显示 CMCC ─ 中国移动 ─ CHN-UNICOM,看起来像三卡三待……(这个似乎和我的号码段有关?)

附上我的截图

plasma.png

跑到崩溃的 KDE

sultan.png

Sultan 内核

cmcc.jpg

三卡三待(滑稽)

PS: 感谢 U 大对我问题的一系列解答,@updateing

如果本文过程中有不妥当的地方,欢迎大家指出,受教了

编译属于你自己的 Sultanized MoKee

http://blog.sinkpad.tech/2017/09/13/Compile-your-own-ROM/

作者

Luke

发布于

2017-09-13

更新于

2023-05-29

许可协议

评论