MTK平台创建Vendor方法-v1.4

MTK6757 9.0 APK预置vendor/operator/app 无法正常工作 最近在MTK6757 9.0上实现APK预置时发现,当APK中使用so时预置后无法正常使用.错误信息 04-09 13:33:42.933 3373 3373 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/frame... 阅读详情

需求分析:

实际项目中,我们往往需要在同一个git分支支持多个项目,为此我们需要为不同的项目创建各自的vendor,把项目的差异进行隔离的同时,也能最大化复用代码,保证项目的共性问题可以及时同步到其他的项目中。下面是详细的实现方法:

创建vendor:

./vendor/mediatek/libs/spm8666p1_64_car

./vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/spm8666p1_64_car

./vendor/mediatek/proprietary/custom/spm8666p1_64_car

./vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/spm8666p1_64_car

./vendor/mediatek/proprietary/bootable/bootloader/lk/target/spm8666p1_64_car

./device/mediateksample/spm8666p1_64_car

1、preloader

e3fcf90344c46467d60f0ce53b5bf4f78b2e7ed0

1)ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom 下新建项目 spm8666+项目名+_64_car

2)修改文件名spm8666s203_64_car.mk -> spm8666+项目名+_64_car

2、lk

8ec65a2808f0201824ac0a4e836ff8a65bffa75c

对应目录:ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/bootable/bootloader/lk/

1)新建lk项目mk配置文件

project/spm8666s203_64_car.mk

2)新建项目文件夹,如下

lk/target/spm8666s203_64_car/

4、kernel

a0551d354948fec49b76cb8952c7086a765c8feb

1)新建dts

A       arch/arm64/boot/dts/mediatek/spm8666s203_64_car.dts

A       arch/arm64/boot/dts/mediatek/spm8666s203_64_car/cs199.dtsi

2)新建defconfig

A       arch/arm64/configs/spm8666s203_64_car_debug_defconfig

A       arch/arm64/configs/spm8666s203_64_car_defconfig

3)新建dws文件

A       drivers/misc/mediatek/dws/mt6771/spm8666s203_64_car.dws

备注:

系统如何制定用哪个dws文件?答案:spm8666s203_64_car.dts定义了

+#include <spm8666s203_64_car/cust.dtsi>

+#include "spm8666s203_64_car/cs199.dtsi"

粗体字部分必现跟项目名一致,编译阶段会自动解析并匹配spm8666s203_64_car.dws。

编译过程:spm8666s203_64_car.dws -> cust.dtsi -> merge其余dts文件,最终生成spm8666s203_64_car.dtbo

另外,defconfig的配置必现跟项目名一致。

CONFIG_BUILD_ARM64_DTB_OVERLAY_IMAGE_NAMES="mediatek/spm8666s203_64_car"

CONFIG_ARCH_MTK_PROJECT="spm8666s203_64_car"

5、device

a351fb2c5d3fbb69ee22e2d1a5ebaa8c20161169

1)device/mediateksample/目录新建项目:spm8666+项目名+_64_car

2)cd device/mediateksample/spm8666+项目名+_64_car,并修改各个文件的项目名为新项目名

3)修改文件名:full_spm8666s203_64_car.mk 为spm8666+项目名+_64_car

6、vendor

75b314654041b2d2316c4e6e73fca15838c4be85

1)ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/custom 下新建项目 spm8666+项目名+_64_car,并替换文件中的项目名

2)vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/ 下新建项目spm8666+项目名+_64_car

3)vendor/mediatek/libs/ 下新建项目spm8666+项目名+_64_car

替换文本内容工具

首先搜索关键字,找到需要替换的文件。然后VIM打开,在VIM中用下面的方法替换:

:%s/被替换字符/新字符/g

例如:

:%s/spm8666s203_64_car/spm8666s311_64_car/g

实战解析:如何通过Vendor Tag与setprop动态控制MTK平台相机拍照/录像的镜像效果 本文详细解析了如何在MTK平台上通过Vendor Tag与setprop动态控制相机拍照/录像的镜像效果。文章从核心机制、实现步骤到调试方法,全面介绍了上层灵活控制镜像的技术方案,特别适合移动设备相机开发工程师参考。 阅读详情

相关推荐

MTK平台Camera移植避坑指南:从驱动添加到DWS配置的完整流程(基于Kernel 4.19)

本文详细介绍了MTK平台Camera移植的全流程,从驱动添加到DWS配置的完整指南(基于Kernel 4.19)。重点解析了环境准备、内核驱动集成、设备树配置、Vendor层适配等关键环节,并提供常见问题排查技巧,帮助开发者高效完成Camera模组的集成与调试。

weixin_28684825的博客 347

Android 10.0 根文件系统和编译系统

1, 讲解android根文件系统结构和组成2, 讲解android系统镜像的概念和拆包3, 讲解Android系统源码结构4, 讲解Android系统编译规则5, 讲解Android系统ADB使用和Log日志调试方法6, 讲解Android系统Android.mk和Android.bp是各种规则 

手把手教你用Vendor Tag和setprop调试MTK Camera镜像效果(支持拍照与录像)

本文详细介绍了如何利用Vendor Tag和setprop在MTK平台上调试Camera镜像效果,涵盖拍照与录像场景。通过实战案例解析镜像处理流程、Vendor Tag配置方法及动态调试技巧,帮助开发者快速实现水平/垂直翻转等效果,提升相机功能开发效率。

weixin_26886855的博客 410

MTK编译笔记

1. uboot路径 mediatek\custom\common\uboot\logo\hvga\hvga_kernel.bmp mediatek\custom\common\uboot\logo\hvga\hvga_uboot.bmp 2. android上层动画路径 vendor\mediatek\project\artifacts\out\target\product\projec...

weixin_30674525的博客 296

MTK Android 9.0投影项目实战:如何手动定制OTA包,精准跳过vendor分区升级

本文详细介绍了在MTK Android 9.0投影项目中如何手动定制OTA包,精准跳过vendor分区升级的技术方案。通过分析MTK平台OTA升级的核心痛点,提供从解包、修改updater-script脚本到重新打包与签名的完整流程,帮助开发者保留用户个性化配置,降低升级风险。

weixin_30675247的博客 196

MTK Android 11 摄像头移植

mtk Android 11添加前摄

qq_43482161的博客 2152

MTK平台创建Vendor方法(最大化复用代码)

需求分析: 实际项目中,我们往往需要在同一个git分支支持多个项目,为此我们需要为不同的项目创建各自的vendor,把项目的差异进行隔离的同时,也能最大化复用代码,保证项目的共性问题可以及时同步到其他的项目中。下面是详细的实现方法: 创建vendor: 1. ./vendor/mediatek/libs/spm8666p1_64_car 2../vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/spm86

u010783226的专栏 1943

【Mtk Camera开发学习】01 MTK 平台Camera BringUp

MTK Camera bring up。MTK Camera开发学习~

1754

MTK平台DTBO如何生成的以及DWS生成DTS

一、MTK平台最初就是使用DWS来配置GPIO,非常方便、直观;但随着kernel版本升级使用设备树之后,硬件信息都由DTS来描述,但MTK仍然保留了DWS,下面看看MTK如何将DWS转换为DTSI的。 kernel使用的DWS路径:drivers/misc/mediatek/dws/mt6752/mt6752_64.dws 虽然vendor\mediatek\proprietary\custom\mt6752_64\kernel\dct\dct\codegen.dws也存在但默认不用这个 DWS转换为

u013463707的专栏 5280

拷贝预置资源到vendor分区-/vendor/lib目录/vendor/lib/hw目录-vendor/etc目录-拷贝可执行文件配置

集成一个遥控器语音方案到系统,实现语音控制大屏设备的功能。其中设计到把.so和.xml分别内置拷贝到 机器的目录下。先看看需求和实际效果吧:借助一个需求来总结 拷贝资源到目录下的知识点。所以,系统要做的事情,就是内置资源到指定的目录下。MTK平台中的mediateksample目录是设备配置和项目特定文件的存储位置,主要用于定制和配置基于联发科(MTK)芯片组的特定设备项目。这个目录是Android开源项目(AOSP)中device目录下的一个重要组成部分。组成部分描述示例/备注项目特定目录。

十年饮冰,难凉热血 1417

MTK-实现系统集成思必驰语音功能-采用Usb相机Mic作为音频输入-资源内置到vendor/lib - vendor/etc 目录

客户mic输入采用的USB自带mic客户需要集成语音功能,采用思必驰家的大多数在工控行业大多数都是RK、全志平台产品中用到语音场景都是硬件严格按照语音公司声学要求来实现其结构、硬件和对应配套,来达到语音效果。拷贝资源是最基本的系统体系知识点集成思必驰系统Hal层适配:修改音频策略知识点要会USB作为音频输入入口在大屏中使用较多,在会议讲话中场景也很多的,需要理解并掌握。

十年饮冰,难凉热血 953

手把手调试MTK Camera镜像问题:用ADB Setprop和Vendor Tag快速定位Flip失效根因

本文详细介绍了MTK Camera镜像问题的全链路调试方法,从ADB属性到Vendor Tag的精准定位。通过分层验证传感器层、Framework层和JPEG编码层的镜像处理,结合ADB命令和Vendor Tag的高级应用技巧,帮助开发者快速解决Flip失效问题。文章还提供了实战案例和调试工具,提升Camera模块的开发效率。

weixin_33694620的博客 353

UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析

摘要:UniAppX开发中处理JSON数据时,UTS强类型特性要求开发者改变JS习惯。本文对比两种主流方案:1)UTSJSONObject通过keypath访问数据,兼容JS但缺乏类型提示;2)type+泛型方案,通过定义数据类型实现强类型校验和智能提示,推荐用于固定数据结构。文章详细演示了两种方式的具体实现、转换方法及实战案例,并提供了类型定义技巧和注意事项,帮助开发者编写更稳定高效的跨平台应用。

归梦工作室 2788

MTK驱动开发

本文主要介绍了MTK驱动开发中的编译、驱动函数、驱动配置等内容。在编译部分,详细说明了如何查看编译版本、Android 14平台的编译脚本命令、烧录路径以及.mk文件的调用方式。驱动函数部分涵盖了模块加载、中断唤醒、模块外可调用声明等内容,并对比了不同初始化函数的优缺点。驱动配置部分则介绍了如何关闭控制台服务、内核层log打印、user版打开串口log、屏蔽开机log、camera、LCM、TP、Audio、兼容字库调试以及GPIO的dws配置工具。这些内容为MTK驱动开发提供了实用的技术指导和操作步骤。

glvtony的博客 1548

Allegro PCB设计小技巧:如何用Shift键快速平移复制走线和过孔?

本文深入解析了Allegro PCB设计中利用Shift键进行平移复制的核心技巧。通过对比传统复制粘贴流程,详细演示了如何高效、精准地批量复制走线和过孔,尤其适用于创建等间距电源总线、过孔阵列等场景,能显著提升PCB设计效率与准确性。

pz89012345的博客 553

海康视觉平台VisionMaster通讯实战:三种触发方式深度解析

本文深度解析海康视觉平台VisionMaster的三种通讯触发方式:字符串触发、接收字符串事件触发和轮询D地址触发。通过实际案例和配置技巧,帮助工程师在工业场景中实现高效、稳定的设备通讯,提升视觉系统的集成效率和可靠性。

weixin_42665255的博客 280

mtk调试日记1-camera

替换文件名字指令find13870*替换文件内容指令#替换单个文件下的内容,比如将文件中的"alidata"替换为"data".#替换某个目录下所有文件中的内容,比如将root目录下所有文件中的"wwwroot"替换为"www".读取sensor id方法:法一、adb shell后su切换超级权限使用cat /proc/drivers/camera_info查看法二、使用手机里mtk自带log工具抓开机log,搜索关键字进行查找。

qq_58703058的博客 2728

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

android8.1新建分区并挂载,Android8.1 MTK Vendor分区大小调整无效分析

最近想修改一下MTK Vendor分区大小,结果被 坑。只能说MTK真的太laji。查找资料,正规的流程是:1.device/mediatek/build/build/tools/ptgen/MT6763/partition_table_MT6763.xls修改里面对应的分区大小。2. 重编译make, 但是发现一个很鬼的问题, 编译log显示vendor根本没变Partition_Name:...

weixin_35715490的博客 1239

Win10本地账户密码遗忘?巧用指纹/PIN快速重置(家庭版/专业版通用指南)

本文提供了一份详细的Win10本地账户密码遗忘自救指南,适用于家庭版和专业版用户。核心方法是利用已登录的指纹或PIN码权限,通过创建新的管理员账户或使用系统工具,安全重置遗忘的本地账户密码,无需第三方工具或重装系统,有效保护个人数据。

e6f7g8h9i的博客 576

CAPL编程规范与最佳实践

通过本文的学习,读者应该对CAPL编程规范与最佳实践有了初步的了解,并能够编写高质量的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1747
上一篇: 向linux kernel中添加cmdline的四种方式
下一篇: 正确使用和保存deconfig的流程:
fight for survive
博客等级 码龄15年 25粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值