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、开机音乐

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

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

最后就是代码实现片段:

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

相关推荐
阿巴斯甜6 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker7 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95278 小时前
Andorid Google 登录接入文档
android
黄林晴9 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab21 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android