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

devtools/2024/10/21 13:42:59/

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.ppmy.cn/devtools/31025.html

相关文章

C# 字段(Field)与属性(Property)的区别

字段和属性&#xff0c;都是成员变量&#xff0c;都用于存取数据。字段读写无限制&#xff0c;属性通过get和set方法可以控制读写&#xff08;比如可以在年龄Age属性的set方法中限制&#xff0c;当赋值的value大于200时&#xff0c;则赋值默认值100&#xff0c;从而确保数据准确…

【数学 排列组合】1643. 第 K 条最小指令

本文涉及知识点 数学 排列组合 LeetCode1643. 第 K 条最小指令 Bob 站在单元格 (0, 0) &#xff0c;想要前往目的地 destination &#xff1a;(row, column) 。他只能向 右 或向 下 走。你可以为 Bob 提供导航 指令 来帮助他到达目的地 destination 。 指令 用字符串表示&am…

LeetCode 102.对称二叉树

题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节点数…

基于缓存注解的时间戳令牌防重复提交设计

文章目录 一&#xff0c;概述二&#xff0c;实现过程1、引入pom依赖2、定义缓存管理3、时间戳服务类4、模拟测试接口 三&#xff0c;测试过程1&#xff0c; 模拟批量获取2&#xff0c; 消费令牌 四&#xff0c;源码放送五&#xff0c;优化方向 一&#xff0c;概述 API接口由于…

数据结构和算法

目录 数据结构 算法 数据结构是计算机存储、组织数据的方式&#xff0c;指相互之间存在一种或多种特定关系的数据元素的集合。这种“结构”可以理解为数据元素之间的逻辑关系&#xff0c;包括数据的逻辑结构和物理结构。精心选择的数据结构往往可以带来更高的运行或者存储效率…

Ftrans文件外发系统 构建安全可控文件外发流程

文件外发系统是企业数据安全管理中的关键组成部分&#xff0c;它主要用于处理企业内部文件向外部传输的流程&#xff0c;确保数据在合法、安全、可控的前提下进行外发。 文件外发系统的主要作用包括&#xff1a; 1、防止数据泄露&#xff1a;通过严格的审批流程和安全策略&…

[XYCTF新生赛]-PWN:fmt解析(scanf格式化字符串漏洞,任意地址写)

查看保护 查看ida 这里没什么好说的 完整exp&#xff1a; from pwn import* context(log_leveldebug) #pprocess(./fmt) premote(gz.imxbt.cn,20975) backdoor0x4012BEp.recvuntil(bgift: ) printf_addrint(p.recv(14),16) print(hex(printf_addr)) libcELF(./libc-2.31.so) …

SQL LPAD函数使用

Oracle SQL 中的 LPAD 函数是一个用于格式化字符串的函数&#xff0c;它会在给定字符串的左侧填充指定的字符&#xff0c;直到字符串达到指定的长度。这个函数在数据库查询中非常有用&#xff0c;尤其是在需要对输出进行格式化时&#xff0c;比如在报表中。 LPAD 函数的语法 …