当前位置: 首页 > news >正文

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

先看看系统拷贝开机音乐资源的流程:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

下面就是把所需的资源从存放的位置拷贝到相应的地方:
在这里插入图片描述
在这里插入图片描述
最后就是代码实现片段:
在这里插入图片描述

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

http://www.lryc.cn/news/343128.html

相关文章:

  • 一觉醒来 AI科技圈发生的大小事儿 05月07日
  • 使用图网络和视频嵌入预测物理场
  • 将java项目上传到GitHub步骤
  • Electron项目中将CommonJS改成使用ES 模块(ESM)语法preload.js加载报错
  • Stable Diffusion 模型分享:Counterfeit-V3.0(动漫)
  • 软件开发者如何保护自己的知识产权?
  • Promise魔鬼面试题
  • Vue3+Nuxt3 从0到1搭建官网项目(SEO搜索、中英文切换、图片懒加载)
  • 面试经典150题——三数之和
  • go动态创建/增加channel并处理数据
  • asp.net成绩查询系统
  • Express路由
  • 在做题中学习(53): 寻找旋转数组中的最小值
  • C#语言进阶(三) 元组
  • 实用的Chrome 浏览器命令
  • IDEA远程连接docker服务,windows版docker desktop
  • Rust 和 Go 哪个更好?
  • 【免费Java系列】大家好 ,今天是学习面向对象高级的第八天点赞收藏关注,持续更新作品 !
  • RPC 失败。curl 16 Error in the HTTP2 framing layer
  • (图论)最短路问题合集(包含C,C++,Java,Python,Go)
  • 电脑文件批量重命名不求人:快速操作,高效技巧让你轻松搞定
  • 基于springboot的网上点餐系统源码数据库
  • mysql cluster数据库集群介绍、部署及配置
  • uniapp的app端软件更新弹框
  • win11 Terminal 部分窗口美化
  • 开源go实现的iot物联网新基建平台
  • 24深圳杯ABCD成品论文47页+各小问代码+图表
  • doris经典bug
  • 贪心算法应用例题
  • 亚信科技精彩亮相2024中国移动算力网络大会,数智创新共筑“新质生产力”