Android4.4真机移植过程笔记(一)

1、RK源码编译

获取内核源码:

git clone git@172.28.1.172:rk3188_kernel -b xtc_ok1000

内核编译环境:

从172.28.1.132编译服务器的/data1/ZouZhiPing目录下拷贝toolchain.tar.gz(交叉编译工具链)并解压到与rk3188_kernel同级目录下

内核编译:

make rk3188_OK1000_ssd2828_defconfig

make kernel.img -j32

获取android源码:

git clone git@172.28.1.172:rk3188_android4.4.1 -b xtc_ok1000

android编译:

lunch rk3188-eng(Android原生系统)

make -j32

./mkimage ota

2、建立自己的产品分支[OK1000]

相关知识:

/

在Android编译系统中,产品编译项相关配置文件都在device/<厂商名>/目录下。厂商的产品列表由AndroidProducts.mk文件定义,目标产品信息由<产品名>.mk定义,目标设备信息由BoardConfig.mk和AndroidBoard.mk定义。创建新产品的编译项就是创建上述几个mk文件的过程。

1、创建厂商目录

不同的手机厂商对应device/下不同目录,在厂商目录下放置该厂商的产品相关信息,我们厂商名定义为mycompany。

$ cd ~/android/android_source

$ mkdir device/mycompany

2、在厂商目录下创建设备目录

定义设备名为mytable。

$ mkdir device/mycompany/mytable

3、添加新产品编译项配置文件,该配置文件在执行source build/envsetup.sh时,被加载执行$ vim device/mycompany/mytable/vendorsetup.sh在vendorsetup.sh文件时添加下面一条命令,用于向编译系统添加编译项,新添加的产品名为:myproduct,编译类型为eng。add_lunch_combo myproduct-eng

注:add_lunch_combo命令是build/envsetup.sh脚本中定义的函数,表示将一个新产品编译项添加到lunch菜单里。

4、创建产品列表配置文件AndroidProducts.mk

AndroidProducts.mk文件用于定义当前厂商所拥有的所有产品列表,每个产品都对应一个配置文件:

$ vim device/mycompany/mytable/AndroidProducts.mk

在产品列表配置文件中添加如下内容:

PRODUCT_MAKEFILES :=
( L O C A L D I R ) / f u l l p r o d u c t . m k 注: P R O D U C T M A K E F I L E S 变量用于保存所有产品配置信息列表, (LOCAL_DIR)/full_product.mk 注:PRODUCT_MAKEFILES变量用于保存所有产品配置信息列表, (LOCALDIR)/fullproduct.mk注:PRODUCTMAKEFILES变量用于保存所有产品配置信息列表,(LOCAL_DIR)表示当前目录,full_product.mk表示某一款产品的配置

文件。

/

主要遇到两个问题:

A、编译烧录运行重启,主要问题是,有两个.so库没有拷贝到:system/lib

只要把上面两个参数设置对:rk3188和OK1000;只要这个搞对了,机器就能正常重启了。

B、显示效果整体效果很小,很多的机器默认的配置没有配置好;解决办法就是把原生RK的system.prop【请查找:build.prop生成过程分析 一文分析】拷贝过来【第二页标注所示】,重新编译,达到了预想的效果。

3、开机动画

A、

编写脚本,把相应的资源拷贝到相应的位置即可:

B、修改代码:

说明:具体的开机动画有相应的说明文档;如有需求请查阅...

4、开机音乐

先看看系统拷贝开机音乐资源的流程:

下面就是把所需的资源从存放的位置拷贝到相应的地方:

最后就是代码实现片段:

觉得本文对你有用,麻烦点赞或关注或收藏,你的肯定是我创作的无限动力,谢谢!!!

相关推荐
2501_9159184141 分钟前
iOS混淆与IPA文件加固深度解析,从反编译风险到苹果应用安全工程实践
android·macos·ios·小程序·uni-app·cocoa·iphone
muyouking1110 小时前
Tauri Android 开发踩坑实录:从 Gradle 版本冲突到离线构建成功
android·rust
Jerry11 小时前
Compose 为元素赋予动画特效
android
Jeled12 小时前
协程工具类
android·android studio
阿兰哥15 小时前
【调试篇5】TransactionTooLargeException 原理解析
android·性能优化·源码
爱吃水蜜桃的奥特曼16 小时前
玩Android Flutter版本,通过项目了解Flutter项目快速搭建开发
android·flutter
太过平凡的小蚂蚁16 小时前
Android 版本特性完全解析:从6.0到16.0的实用指南
android
杨筱毅17 小时前
【底层机制】【Android】深入理解UI体系与绘制机制
android·底层机制
介一安全17 小时前
【Frida Android】基础篇8:Java层Hook基础——调用带对象参数的方法
android·网络安全·逆向·安全性测试·frida
puyaCheer17 小时前
Android 13 启动的时候会显示一下logo,很不友好
android·gitee