修改device

由于不同的机型情况不一样这里只列举一些常见的修改,启动到rootfs应该是没什么问题的。
准备好一个可以用的git平台账号,fork目标机型的lineage os 16适配就可以开始弄了。

去掉脚本删除不掉的JAR包

Halium 从9开始提供了处理jar和apk内容的工具脚本会自动清除掉vendor里BoardConfigVendor.mk和device里proprietary-files.txt的jar和apk,但是device里的device.mk里仍然存在一些没有处理掉的jar包。得注释掉,特征是以PRODUCT_BOOT_JARS开头

#PRODUCT_BOOT_JARS += \
#   telephony-ext

加入ubuntu touch特有的包

为了ubuntu touch的图形界面能够正确利用libhybris,安卓容器必须编译上特定的包。
在device.mk尾部加入以下内容

MINIMEDIA_SENSORSERVER_DISABLE := 1PRODUCT_PACKAGES += \libmedia_omx \android.frameworks.displayservice@1.0PRODUCT_PACKAGES += \libion \libmedia_compat_layer \libsf_compat_layer \libui_compat_layer# SalifishOS droidmedia
PRODUCT_PACKAGES += \libdroidmedia \minimediaservice \minisfservice \miniafservice# Ubuntu
PRODUCT_PACKAGES += \libbiometry_fp_api \libubuntu_application_api

修改内核cmdline

在device的BoardConfig.mk里Ubuntu Touch的启动依赖于以下两个内核参数.

# CMDLINES for Halium
BOARD_KERNEL_CMDLINE += console=tty0
BOARD_KERNEL_CMDLINE += apparmor=1 security=apparmor

在BOARD_KERNEL_CMDLINE集中的地方加入这个就行

修改内核的defconfig (可选)

如果想和原来的内核defconfig区分开来可以把适用于Halium的内核defconfig单独命名。修改BoardConfig.mk里TARGET_KERNEL_CONFIG的值,使得编译时采用适用于Halium的内核配置

TARGET_KERNEL_CONFIG := clover_halium_defconfig

去掉hostapd的闭源库

高通的闭源hostapd库和ubuntu rootfs里的有冲突,得去掉。注释掉BoardConfig.mk里的这两行

#BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
#BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)

修改fstab

fstab里不能存在分f2fs和context=这两个内容,需要在fstab里去掉,如果使用了f2fs注意在twrp中把它格式化成ext4格式,Halium不支持f2fs。
以下只是一个例子
修改 rootdir/etc/fstab.qcom

/dev/block/bootdevice/by-name/modem      /vendor/firmware_mnt          vfat   ro,shortname=lower,uid=0,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait

/dev/block/bootdevice/by-name/modem      /vendor/firmware_mnt          vfat   ro,shortname=lower,uid=0,gid=1000,dmask=227,fmask=337 wait

收集设备的UDEV规则

这时需要一个能够正常工作的twrp,最好是刷了lineage os 16以后的twrp,还需要电脑有adb。
adb shell以后执行如下指令

cat /s/ueventd*.rc /vendor/ueventd*.rc | grep ^/dev | sed -e 's/^\/dev\///' | awk '{printf "ACTION==\"add\", KERNEL==\"%s\", OWNER=\"%s\", GROUP=\"%s\", MODE=\"%s\"\n",$1,$3,$4,$2}' | sed -e 's/\r//' > /data/70-机型的codename.rules;

然后取回来

adb pull /data/70-机型的codename.rules

在device项目里新建ubports文件夹
放入收集回的udev规则和新建scaling.conf
scaling.conf 内容如下

# Empty config file used by the bind mount (logic in the initrd)
GRID_UNIT_PX=24
QTWEBKIT_DPR=2.0
FORM_FACTOR=handset

在device.mk之中加入拷贝这些文件的语句

PRODUCT_COPY_FILES += \$(LOCAL_PATH)/ubports/70-clover.rules:system/halium/lib/udev/rules.d/70-android.rules \$(LOCAL_PATH)/ubports/scaling.conf:system/ubuntu/etc/ubuntu-touch-session.d/android.conf

加入halium.mk

在lineage_机型名.mk中注释掉带full和telephony的.mk文件之后再加入halium.mk

#$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)# Halium
$(call inherit-product, $(SRC_TARGET_DIR)/product/halium.mk)# Inherit some common Lineage stuff
#$(call inherit-product, vendor/lineage/config/common_full_tablet_wifionly.mk)
#$(call inherit-product, vendor/lineage/config/telephony.mk)

编译android-rootfs.img而不是system.img

在BoardConfig.mk中加入以下内容

# To enable system image
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

device 项目的修改就告一段落了!

Halium 9 尝鲜 -- 在小米平板4上的移植 (三)相关推荐

  1. Halium 9 尝鲜 -- 在小米平板4上的移植 (一)

    废话 最近Apple出了一个基于arm的笔记本,arm的低功耗.高续航的特点的确香到我了,但是学生党太穷买不太起,只有一个安卓系统的小米平板4在吃灰.在UOS和菊花厂的推动下,好多国产软件都有了arm ...

  2. Halium 9 尝鲜 -- 在小米平板4上的移植 (七)

    嗯,好像距离上次研究Halium已经过了很久了.虽然一直没时间弄这个,但是没全部驱动心里一直不太服气,最近还是抽出时间来把它弄好了(好了,但没完全好).小米平板4终于有机会可以摆脱"大手机& ...

  3. Halium 9 尝鲜 -- 在小米平板4上的移植 (五)

    编译 Halium 9 在完成上述修改后,终于可以开始编译了-- 写一个xml并同步你的适配包 在halium/devices/manifests目录下创建你的机型的xml 命名格式 (厂商)_(co ...

  4. Halium 9 尝鲜 -- 在小米平板4上的移植 (四)

    修改kernel 检查并修改内核选项 Halium提供了一个脚本检查defconfig的有些选项是否已经打开.找到内核项目里的defconfig,就可以开搞了. 脚本 ./check-kernelco ...

  5. Halium 9 尝鲜 -- 在小米平板4上的移植 (二)

    配置环境 Halium 9 是基于lineage os 16修改而来,所以基本上对环境的要求与其一致,推荐使用内存8gb以上的台式机和梯子进行编译.Ubuntu 20.04亲测是可以通过的. 安装依赖 ...

  6. Halium 9 尝鲜 -- 在小米平板4上的移植 (六)

    烧写 生成了三个需要的镜像后,需要用twrp把vendor.img和halium-boot.img分别烧写到vendor分区和boot分区(在烧写前建议格式化system vendor cache d ...

  7. 发布:世界上第一个小米平板4上的Debian Linux 刷机包

    经过一段时间的研究,没搞过任何安卓刷机包适配的我还是把halium 9成功在米板4上跑起来啦.并移植上了最新的Debian GNU/Linux(Droidian).尽管还不是很完美,对文件系统的修改没 ...

  8. 小米平板5系列将有三个版本:搭载全新骁龙860芯片

    受去年来的疫情影响,近年来一度发展遇到瓶颈的平板电脑品类面对网课和在线办公的需求而迎来了新的机遇.而作为该领域的"老牌"厂商之一,小米仍然没有放弃平板电脑市场,在离开大家视野许久后 ...

  9. 小米平板4上的Debian Linux(Droidian)方便日常使用的一些设置

    这篇文章是我为日常使用Droidian做的一些记录,可能有些不太准确,仅供参考! 通过usb线进行调试 droidian在devtools那个包中默认开启了usb网络,刷入devtool那个包后可以通 ...

最新文章

  1. ListView控件的基本使用(方式一:使用ArrayAdapter适配器实现)
  2. deepin--解决QQ时间与系统时间不一致
  3. Maximal Rectangle leetcode java
  4. java输入流的控制_Java-Android-IO流-控制台输入输出
  5. MySQL系列:数据类型、运算符及函数(5)
  6. 9结构型模式之代理模式
  7. STM32F103C8T6 红外测距模块测量距离(SHARP GP2Y0A21YK0F)使用CubeMx生成HAL库(ADC)
  8. USB 打印机 模拟 LPT 接口
  9. keil5兼容keil4操作
  10. AUTOSAR CDD 模块解析 --- 设计建议
  11. 计算机绘图员技师证怎么考,地图制图员》与 《摄影测量员》中级高级工程测量职业标准-如何考-考什么内容...
  12. win7连接xp共享打印机方法
  13. Python分析薛之谦与李雨桐互撕微博
  14. 缓存插件 EHCache
  15. mysql 公历变农历_经过完整测试的农历-公历相互转换
  16. 11g Rac 配置 Linux
  17. C学习笔记——(4)数组和字符串说明,以及冒泡排序法
  18. 编码原理详解(五)---熵编码(CAVAL)
  19. 水质监测系统解决方案
  20. 相关性热图绘制教程(origin绘制,无须R语言)

热门文章

  1. 列表属性中的复合属性list-style 以及list-style-type的经验
  2. SpringSecurity的简单使用
  3. IDA官网发布的每周技巧1----IDA中较少知道的快捷键
  4. 如何实现DB2表空间扩容
  5. Win10搜索/Windows search卡顿解决办法
  6. vs2019与SQL server2008连接以及基本操作
  7. html图片环绕怎么设置,word中如何设置让图片环绕文字的效果
  8. chrome.exe版本不对selenium进行爬虫时无法启动谷歌浏览器
  9. 实现按钮边框动画+摩天轮旋转动画+水印实现
  10. linux系统从哪获取tlb信息,关于linux:TLB缓存是个神马鬼如何查看TLB-miss