MTK 项目工程客制化流程

本文详细介绍了一种在MTK平台上克隆并创建新工程的方法,包括预加载器、LK、内核及Android系统的克隆步骤,适用于嵌入式开发人员理解和实践。

前言

参考 MTK 相关文档

步骤

增加工程

BASE_PROJECT: gr6750_66_a_n
NEW_PROJECT: wind
PLATFORM:
COMPANY: ginreen

一:cloen preloader:

cd vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/
cp -r gr6750_66_a_n/ wind/
mv wind/gr6750_66_a_n.mk wind/wind.mk
sed -i s/gr6750_66_a_n/wind/g wind/wind.mk

二:clone lk:

cd vendor/mediatek/proprietary/bootable/bootloader/lk/
cp project/gr6750_66_a_n.mk project/wind.mk
cp -r target/gr6750_66_a_n/ target/wind/
sed -i s/gr6750_66_a_n/wind/g project/wind.mk 

三: clone kernel:

cd kernel-3.18/
// 有一步没做
cp arch/arm64/configs/gr6750_66_a_n_defconfig arch/arm64/configs/wind_defconfig
cp arch/arm64/configs/gr6750_66_a_n_debug_defconfig arch/arm64/configs/wind_debug_defconfig
sed -i s/gr6750_66_a_n/wind/g arch/arm64/configs/wind_defconfig
sed -i s/gr6750_66_a_n/wind/g arch/arm64/configs/wind_debug_defconfig
cp arch/arm64/boot/dts/gr6750_66_a_n.dts arch/arm64/boot/dts/wind.dts

cp drivers/misc/mediatek/dws/mt6755/gr6750_66_a_n.dws drivers/misc/mediatek/dws/mt6755/wind.dws

四:clone android:

cp -r device/ginreen/gr6750_66_a_n/ device/ginreen/wind
mv device/ginreen/wind/full_gr6750_66_a_n.mk device/ginreen/wind/full_wind.mk
cp -r vendor/mediatek/proprietary/custom/gr6750_66_a_n/ vendor/mediatek/proprietary/custom/wind
cp vendor/mediatek/proprietary/trustzone/custom/build/project/gr6750_66_a_n.mk vendor/mediatek/proprietary/trustzone/custom/build/project/wind.mk
cp -r vendor/ginreen/libs/gr6750_66_a_n/ vendor/ginreen/libs/wind
sed -i s/gr6750_66_a_n/wind/g device/ginreen/wind/AndroidProducts.mk
sed -i s/gr6750_66_a_n/wind/g device/ginreen/wind/BoardConfig.mk
sed -i s/gr6750_66_a_n/wind/g device/ginreen/wind/device.mk
sed -i s/gr6750_66_a_n/wind/g device/ginreen/wind/full_wind.mk
sed -i s/gr6750_66_a_n/wind/g device/ginreen/wind/vendorsetup.sh
sed -i s/gr6750_66_a_n/wind/g vendor/mediatek/proprietary/custom/wind/security/efuse/input.xml 
sed -i s/gr6750_66_a_n/wind/g vendor/mediatek/proprietary/custom/wind/Android.mk
MTK平台项目中自定义Google开机向导(Setup Wizard),通常涉及到对Android系统框架层的定与配置。由于Google开机向导是基于系统应用实现的,因此需要对其源码结构、资源文件以及启动流程有一定的了解。 ### 1. 理解 Setup Wizard 的基本结构 Google原生的Setup Wizard是一个系统级应用,其代码通常位于如下路径: ``` packages/apps/SetupWizard ``` 该目录下包含Java源码、资源文件(如布局、字符串等)和AndroidManifest.xml文件。通过修改这些内容,可以实现界面定、新增页面、跳过某些步骤等功能。 ### 2. 在 MTK 平台上集成与定 MTK平台通常会在其Android版本中预置一个厂商定的Setup Wizard应用,位于: ``` vendor/mediatek/proprietary/packages/apps/MtkSetupWizard ``` 如果户希望在此基础上进行,例如添加新的引导页、调整UI样式或跳过部分流程,则可以通过以下方式进行: - **复并替换资源文件**:将定的XML布局文件、图片资源放入`res/layout`、`res/drawable`等目录。 - **修改Java逻辑**:如需控页面流程或增加条件判断,可修改`SetupWizardActivity.java`或其他相关类文件。 - **配置AndroidManifest.xml**:确保正确的权限声明、activity声明以及intent-filter设置[^1]。 ### 3. 使用 Overlay 技术进行资源覆盖 为了不直接修改原厂代码,推荐使用 Android RRO(Resource Runtime Overlay)机进行资源定。具体操作如下: - 创建一个新的模块,例如 `MySetupWizardOverlay`,并在其 `AndroidManifest.xml` 中声明 overlay 配置: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.setupwizard.overlay"> <overlay android:targetPackage="com.google.android.setupwizard" android:priority="1" /> </manifest> ``` - 将需要替换的资源放在 `res/values` 或 `res/layout` 下,系统会在运行时优先加载这些资源。 - 编译并将此模块打包进系统镜像中,即可实现对 Setup Wizard 的无侵入式定。 ### 4. 处理开机动画与黑屏问题 在定过程中,可能会遇到首次进入Launcher前出现短暂黑屏的问题。这种情况通常与`FallbackHome.java`中的逻辑有关,可通过如下方式优: - 修改 `FallbackHome.java` 中关于壁纸设置的调用时机,确保开机动画的最后一帧作为背景显示[^2]。 - 检查是否在Setup Wizard结束后有延迟启动Launcher的行为,并适当调整。 ### 5. 调试与验证 - 使用 `adb logcat` 查看开机过程中的日志输出,重点关注 `SetupWizard` 和 `SystemUI` 相关的日志。 - 确保新加入的页面或资源不会导致崩溃或ANR。 - 测试不同语言环境下的兼容性,尤其是涉及多语言支持的字符串和布局方向。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值