KaleidoscopeOS(万花筒) 非官方构建简单指北

本文以构建OnePlus8T(Kebab)的非官方(其实和官方没差啦)KaleidoscopeOS为基础展开。

构建环境:Ubuntu Server 20.04 LTS

1. 您需要准备的

1-1 设备要求:

a. 至少16GB的运行内存,并设置至少8GB的swap交换分区。

b. 系统为Linux,当然也可以是WSL,可以是物理机,虚拟机,服务器,本文使用服务器Ubuntu20.04作为示范。

c.  至少300GB的硬盘存储空间,源码完全同步需约120GB硬盘空间,在编译过程中释放的文件可能回使硬盘占用达到270GB左右,所以300GB的硬盘大小是必须的

d. 稳定的网络环境(懂的都懂)

e.  一颗强劲的CPU(当然不强也行,就是时间久一点)。

f.  一双灵巧的双手,聪慧的大脑和谷歌使用技巧。


OnePlus8T由于有官方维护者提供DeviceTree,故无需重新制作,这里只提供大概思路。

如果你的机型恰好有LineageOS的官方支持,那么你可以根据LineageOS和KaleidoscopeOS两个项目共有的官方维护设备的tree的区别进行修改(ify)。

如果你的设备很不幸没有没有被LineageOS官方支持,也不必灰心,您也可以看看有没有其他ROM的支持,同样的,您可以让该ROM和KaleidoscopeOS两个项目共有的官方维护设备的tree的区别进行修改(ify)。

如果您非常不幸,没有任何第三方ROM支持,您可以自己尝试编写tree,当然如果您没有能力编写,也可以请教各位dalao帮忙,具体参见本文最后一部分。

以 OnePlus8T 为例,需要准备的有:/device/oneplus/kebab , /device/oneplus/sm8250-common , /kernel/oneplus/kebab ,  /vendor/oneplus/kebab , /vendor/oneplus/sm8250-common

请注意,以上各tree可以在https://github.com/Kscope-Devices 获取,请注意,最新版本源码需拉取Sunflowerleaf 分支

git clone -b sunflowerleaf <link.git>

2. 准备构建

###     2-1 配置环境

a. 安装所需软件包

apt-get update && apt-get upgrade -y

apt-get install -y openjdk-8-jdk git gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip bc imagemagick ccache schedtool libssl-dev jq patchelf

b. 配置git信息

git config --global user.name "在此处替换成你的名字"

git config --global user.email "在此处替换成你的邮箱"

c. 下载repo(二选一)

i. 官方源

mkdir ~/.bin

PATH=~/.bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo

chmod +x ~/.bin/repo

ii. 清华源

  mkdir ~/.bin

PATH=~/.bin:$PATH

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

chmod +x repo

d. 建立项目文件夹并进入。

mkdir KaleidoscopeOS && cd KaleidoscopeOS

2-2 使用KaleidoscopeOS初始化本地仓库。

repo init -u https://github.com/Project-Kaleidoscope/android_manifest.git -b sunflowerleaf

 repo sync

2-3. 坐和放宽。

此过程速度取决于您的网络,可能会会非常漫长,请耐心等待。

3. 开始构建

3-1 您需要将在1-2部分中获得的tree放入对应目录,然后执行

  . build/envsetup.sh

3-2  选择构建版本。

  lunch

  //输入要构建的版本,如28

  //熟练之后您可以使用lunch kscope_- 格式命令直接构建,如 lunch kscpoe_kebab-user

3-3 开始构建。

  mka bacon

4. 常见问题

Q1:网络连接良好但下载失败/拉取代码失败/同步失败...

A1:请检查是否连接到国际互联网。

Q2:选择构建版本时报错   frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk:19: error: _nic.PRODUCTS.[[device/oneplus/kebab/kscope_kebab.mk]]: "vendor/oneplus/addons/camera/camera-vendor.mk" does not exist.

18:03:02 dumpvars failed with: exit status 1  , 找不到对应文件 `

A2:该部分在gitlab开源 https://gitlab.com/libxzr/vendor_oneplus_addons_camera

Q3:构建时其他报错 "vendor(device)/xxx/xxx/xxx/xxx.mk" does not exist.18:03:02 dumpvars failed with: exit status 1

A3:请自行搜索相关库进行补充,比如"vendor/oneplus/addons/camera/camera-vendor.mk"需要寻找

vendor_oneplus_addons_camera 库。

Q4:做好的包到哪里找?

A4:请到项目文件夹中out/target/product/下寻找。

Q5:做好的包带root吗?

A5:不带。

Q6:一共生成两个zip(一个ota_.zip,一个unofficial_.zip),有什么区别?

A6:没有区别,md5都一样,两个都能用。

Q7:怎么刷进去

建议使用adb sideload刷入,刷前记得双清。

Q8:其他问题

提问好去处:

xda: https://www.xda-developers.com/

akr社区: https://www.akr-developers.com/

github: https://github.com/

当然你也可以到Chatroom和Channel中向大佬提问,提问前请阅读《提问的艺术》https://github.com/betaseeker/How-To-Ask-Questions

版权声明:
作者:Seimo
链接:https://www.rmvsm.cn/932.html
来源:轻洞数码
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
KaleidoscopeOS(万花筒) 非官方构建简单指北
本文以构建OnePlus8T(Kebab)的非官方(其实和官方没差啦)KaleidoscopeOS为基础展开。 构建环境:Ubuntu Server 20.04 LTS 1. 您需要准备的 1-1 设备要求: a.……
<<上一篇
下一篇>>
文章目录
关闭
目 录