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

MTK 配置文件梳理

文章目录

  • MTK 日常配置总结
    • 屏幕默认横竖屏显示
    • ro.build.characteristics 属性修改
      • 修改点一:build\core\product_config.mk
      • 修改点二:build\make\core\main.mk
      • 修改是否成功,adb 验证
    • 配置部分系统app handheld_product.mk
    • 配置系统属性、第三方应用、定制系统属性、初始化配置等 device.mtk
      • 配置应用
      • 配置自定义属性 system properties
      • 配置启动初始化文件
      • 配置开机动画文件
    • 输入法默认内置配置修改 config.xml defaults.xml
    • 开机动画修改
    • gms 相关
      • gms 目录 \vendor\google
      • gms 配置mk 文件
        • 配置app
        • 开机向导配置
    • init 初始化文件 init.rc
    • 修改屏幕密度


MTK 日常配置总结

当作开发笔记,常用。不同平台不同Android版本配置文件位置可能不一样,但是配置逻辑基本一致,字段可能都一致。不断更新,方便自己熟悉并实际解决项目问题。

屏幕默认横竖屏显示

修改文件
\device\mediateksample\k69v1_64_k419\ProjectConfig.mk 
\kernel-4.19\arch\arm64\configs\k69v1_64_k419_defconfig.xml 
\vendor\mediatek\proprietary\bootable\bootloader\lk\project\k69v1_64_k419.mk 具体修改:
ProjectConfig.mk
MTK_LCM_PHYSICAL_ROTATION = 0k65v1_64_bsp_defconfig
CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"k65v1_64_bsp.mk 
MTK_LCM_PHYSICAL_ROTATION = 270

可以参考之前横竖屏切换的文章 MTK横竖屏切换配置

ro.build.characteristics 属性修改

修改点一:build\core\product_config.mk

TARGET_AAPT_CHARACTERISTICS  宏定义 直接赋值 device #ifndef PRODUCT_CHARACTERISTICS
#  TARGET_AAPT_CHARACTERISTICS := default
#else
#  TARGET_AAPT_CHARACTERISTICS := $(PRODUCT_CHARACTERISTICS)
#endif
TARGET_AAPT_CHARACTERISTICS := default		

修改点二:build\make\core\main.mk

对 ro.build.characteristics 直接赋值为 device,不再使用 TARGET_AAPT_CHARACTERISTICS 宏定义

#ADDITIONAL_PRODUCT_PROPERTIES += ro.build.characteristics=$(TARGET_AAPT_CHARACTERISTICS)
ADDITIONAL_PRODUCT_PROPERTIES += ro.build.characteristics=device

修改是否成功,adb 验证

通过adb 命令来查看检查:
C:\Users\Administrator>adb shell
k65v1_64_bsp:/ $ getprop ro.build.characteristics
device修改前的属性值是default ,修改后的值为device 

配置部分系统app handheld_product.mk

路径:build\make\target\product\handheld_product.mk
需求相关:系统相关的部分app 配置编译环境

一般偏向于系统应用,应用位置:\vendor\mediatek\proprietary\packages\apps# /product packages
PRODUCT_PACKAGES += \Calendar \Camera2 \DeskClock \Gallery2 \LatinIME \Music \OneTimeInitializer \preinstalled-packages-platform-handheld-product.xml \SettingsIntelligence \frameworks-base-overlaysPRODUCT_PACKAGES_DEBUG += \frameworks-base-overlays-debug

配置系统属性、第三方应用、定制系统属性、初始化配置等 device.mtk

路径:device\mediatek\system\common\device.mtk

配置应用

PRODUCT_PACKAGES += zxappstore
PRODUCT_PACKAGES += zxlauncher
PRODUCT_PACKAGES += InoSoundRecorder
PRODUCT_PACKAGES += fisetp
PRODUCT_PACKAGES += tffwb
PRODUCT_PACKAGES += usbcamera第三方防止目录: vendor\mediatek\proprietary\packages\3rd-party

举例 某个apk 目录配置
在这里插入图片描述


Android.mk 内容配置如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := FiseOS
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
##LOCAL_PROPRIETARY_MODULE := true
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_DEX_PREOPT := false
include $(BUILD_PREBUILT)

配置自定义属性 system properties

# Add for Fise support system properties
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \persist.fise.statusbar=1 \persist.fise.g.sensors=1 \persist.fise.landscape.orientation=1 \persist.fise.opposite.orientation=0 \ro.zeasn.devicetype=fisezn01 \persist.fise.current.volume=1 \persist.fise.wallpaper.on=1 \persist.fise.version=wifi \persist.fise.show.batteryicon=1 \persist.fise.screenshot.icon=1 \persist.fise.backlight.polarity=1 \

配置启动初始化文件

# system usb rc
PRODUCT_COPY_FILES += $(LOCAL_PATH)/init.usb.rc:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/init/hw/init.usb.rc

配置开机动画文件

# Add for Fise bootanimation
PRODUCT_COPY_FILES += $(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip

输入法默认内置配置修改 config.xml defaults.xml

   路径:frameworks\base\core\res\res\values\config.xml<string-array name="config_disabledUntilUsedPreinstalledImes" translatable="false"><item>com.iflytek.inputmethod</item></string-array>Android 5.1设置默认输入法 参考文档:https://blog.csdn.net/man_embedded/article/details/78541210路径:\vendor\mediatek\proprietary\packages\apps\SettingsProvider\res\values\defaults.xml<!-- Default com.sohu.inputmethod.sogou/.SogouIME com.android.inputmethod.latin/.LatinIME --><string name="sogou_input_method">com.iflytek.inputmethod/.FlyIME</string><string name="enable_sogou_input_method">com.iflytek.inputmethod/.FlyIME</string>

开机动画修改

 修改路径:vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\fhddevice\mediatek\system\common\bootanimation.zip

替换fhd文件里面的 Uboot 和 Kernel logo,fhd目录
fhd_kernel.bmp fhd_uboot.bmp

参考资料: MTK 更换Uboot Logo Kernel Logo 开机动画:

gms 相关

gms 目录 \vendor\google

在这里插入图片描述

  • apps apps_go :两个版本的软件包
  • etc 配置文件目录
  • overlay overlay 目录,涉及到覆盖,就需要在这里修改了。

gms 配置mk 文件

路径:\vendor\google\products\gms.mk  

附件地址,gms.mk 源文件可查看

配置app
 这里可以发现 开机向导 SetupWizard 就是配置在这里的,其它都是谷歌相关的软件包
 # GMS mandatory core packages
GMS_PRODUCT_PACKAGES += \AndroidPlatformServices \ConfigUpdater \FamilyLinkParentalControls \GoogleExtShared \GoogleFeedback \GoogleLocationHistory \GoogleOneTimeInitializer \GooglePackageInstaller \GooglePartnerSetup \GooglePrintRecommendationService \GoogleRestore \GoogleServicesFramework \GoogleCalendarSyncAdapter \SpeechServicesByGoogle \GmsCore \Phonesky \SetupWizard \WebViewGoogle \Wellbeing	
开机向导配置
PRODUCT_PRODUCT_PROPERTIES += \ro.setupwizard.rotation_locked=false \setupwizard.theme=glif_v3_light \ro.opa.eligible_device=true \ro.com.google.gmsversion=$(GMS_PACKAGE_VERSION_ID)ro.setupwizard.rotation_locked开机向导是否固定锁死屏幕,默认竖屏方向。 true:锁死,开机向导永远竖屏   false:不锁死,开机向导随重力感应方向。

init 初始化文件 init.rc

路径:system/core/rootdir/init.rc on property:sys.connect.adb.wiress=1setprop service.adb.tcp.port 5555stop adbdstart adbd 如果需要网线进行adb 直连 ,那么就不要判断条件,直接配置打开端口即可:setprop service.adb.tcp.port 5555

免USB,WIFI adb 直连

修改屏幕密度

 路径:device\mediateksample\k69v1_64_k419\device.mk

参考 修改系统显示大小修改系统屏幕密度

device\mediateksample\k69v1_64_k419\device.mk
修改属性值:
PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=240 	
http://www.lryc.cn/news/502367.html

相关文章:

  • 论文笔记:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
  • 软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护
  • 2024美赛数学建模C题:网球比赛中的动量,用马尔可夫链求解!详细分析
  • 23种设计模式之状态模式
  • Elasticsearch Serverless 中的数据流自动分片
  • YOLOv10改进,YOLOv10添加U-Netv2分割网络中SDI信息融合模块+GSConv卷积,助力小目标
  • xshell连接虚拟机,更换网络模式:NAT->桥接模式
  • sql的where条件中使用case when
  • MacOS 上以源码形式安装 MySQL 5.7
  • MySQL 事务隔离级别详解
  • C语言——高精度问题
  • aippt:AI 智能生成 PPT 的开源项目
  • 【Qt之·类QSettings·参数保存】
  • location重定向和nginx代理
  • iptables详解
  • Edge SCDN深度解析,边缘安全加速的创新实践
  • solidworks常见问题已解决
  • vCenter开启HA报错
  • 在 Ubuntu 中 make 是否是系统自带的?怎么样查看Linux系统中是否有make?
  • js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写
  • 前端使用 Cursor 的最佳助手 - PromptCoder
  • 深入了解 Spring IOC,AOP 两大核心思想
  • QT从入门到精通——Qlabel介绍与使用
  • 华为HarmonyOS NEXT 原生应用开发:鸿蒙中组件的组件状态管理、组件通信 组件状态管理小案例(好友录)!
  • node.js 环境配置
  • 高并发数据采集场景下Nginx代理Netty服务的优化配置
  • 【C++算法】40.模拟_N 字形变换
  • 【云计算】虚拟化技术
  • 手机租赁系统开发指南一站式服务流程解析
  • 【机器学习】—时序数据分析:机器学习与深度学习在预测、金融、气象等领域的应用