Android-设置-设备型号-Android版本-系统版本自定义-默认修改

提示: 偏向于对系统设置进行定制的默认修改

这里以MTK平台 Android13 版本为例说明

文章目录

  • 前言-需求
  • 一、参考资料
  • 二、修改文件
  • 三、功能实现
    • [1、设置-关于-型号:修改为 客需值 - KS-320MKS](#1、设置-关于-型号:修改为 客需值 - KS-320MKS)
      • 实现方案
      • 修改思路
        • 关于设备页面-MyDeviceInfoFragment
        • [通过布局文件my_device_info 找到 型号控制器-HardwareInfoPreferenceController](#通过布局文件my_device_info 找到 型号控制器-HardwareInfoPreferenceController)
        • [在控制器HardwareInfoPreferenceController 中 修改 getSummary 值-实现自定义型号值](#在控制器HardwareInfoPreferenceController 中 修改 getSummary 值-实现自定义型号值)
    • [2、设置-关于-"Android版本-12"改为"系统版本-OpenHarmony 3.1"](#2、设置-关于-“Android版本-12”改为“系统版本-OpenHarmony 3.1”)
  • 总结

前言-需求

在Android ROM 定制化过程中,有对设置-关于 部分内容做定制化显示,比如如下:

  • 设置-关于-型号:修改为 KS-320MKS
  • 设置-关于- Android版本-12改为系统版本-OpenHarmony 3.1

这个需求就是非常非常常见的普通需求,这里最核心的知识点是 知道方法,说直接点如何查看源码-定位修改位置-进行修改源码从而需求实现

一、参考资料

这里给出设置中常见需求,方便有实现需求的一个思路

Android 系统设置中去掉备份菜单
MTK-删除设置首页菜单项
Framework 层屏蔽自动调节亮度
WIFI密码默认显示
无障碍服务屏蔽_关闭无障碍服务快捷方式

给出这些参考资料 仅仅提供解决解决需求思路,下面会具体讲解实现方案。

二、修改文件

java 复制代码
\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\deviceinfo\HardwareInfoPreferenceController.java

\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\deviceinfo\firmwareversion\FirmwareVersionPreferenceController.java 

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values-zh-rCN\strings.xml

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values\strings.xml

三、功能实现

1、设置-关于-型号:修改为 客需值 - KS-320MKS

实现方案

修改文件:\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\deviceinfo\HardwareInfoPreferenceController.java

修改内容:在 getSummary() 方法中,return 客需值

java 复制代码
   @Override
    public CharSequence getSummary() {
        /// M: Add for operator customization.
       // return mExt.customeModelInfo(getDeviceModel());
        return  "KS-320MKS";
    }

修改思路

关于设备页面-MyDeviceInfoFragment

进入界面,查看日志打印:Switching to fragment com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment

通过布局文件my_device_info 找到 型号控制器-HardwareInfoPreferenceController

找到对应的布局文件:my_device_info

根据布局文件my_device_info 找对应控制器 HardwareInfoPreferenceController

在控制器HardwareInfoPreferenceController 中 修改 getSummary 值-实现自定义型号值
java 复制代码
 @Override
    public CharSequence getSummary() {
        /// M: Add for operator customization.
       // return mExt.customeModelInfo(getDeviceModel());
        return  "KS-320MKS";
    }

2、设置-关于-"Android版本-12"改为"系统版本-OpenHarmony 3.1"

实现方案

文件路径:\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\deviceinfo\firmwareversion\FirmwareVersionPreferenceController.java

  • 修改点一:在 getSummary 方法中,直接返回 客需修改值
java 复制代码
 @Override
    public CharSequence getSummary() {
        // return Build.VERSION.RELEASE_OR_CODENAME;
        return "OpenHarmony 3.1";
    }
	
  • 修改点二:在 配置字符串文件中,直接修改firmware_version 字符串值为客需修改值
    路径:\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values-zh-rCN\strings.xml\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values\strings.xml
java 复制代码
<string name="firmware_version" msgid="1606901586501447275">"系统版本"</string>

修改思路

通过布局文件my_device_info 找到 Android版本-系统版本 -FirmwareVersionPreferenceController

如上已经分析了思路,这里直接在相同的布局 my_device_info 中查找控制器

Android版本改为系统版本

继续回到布局文件 my_device_info.xml

java 复制代码
   <!-- Android version -->
        <Preference
            android:key="firmware_version"
            android:order="42"
            android:title="@string/firmware_version"
            android:summary="@string/summary_placeholder"
            android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
           settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
 

那么更改标题不就直接去更改 android:title="@string/firmware_version" 值 不就行了嘛。

所以,找到资源文件 根据语言需要,修改即可:

路径:\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values-zh-rCN\strings.xml\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values\strings.xml

java 复制代码
<string name="firmware_version" msgid="1606901586501447275">"系统版本"</string>

总结

  • 这些是常见的客需需求,一定要掌握,这里做一个笔记
  • 对于 解决设置相关问题:新增、修改、删除 记录、值、标题等,需要掌握基本方法,定位哪个类,是怎么实现的
  • 强烈建议多从源码角度去查看源码,跟踪源码。实际开发中经常借鉴别人的修改方法,发现无法实现,可能某个细节没注意或者并不能够在你的平台、Android版本上面实现,那么就查阅一下源码,针对性解决。