Skip to content

purainity/elish_optimize_MIUI_ROM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

小米平板 5 Pro 移植小米平板 6 Max MIUI V14.0.6.0 记录

自用小米平板 5 Pro (elish) 的移植 MIUI 养老包记录。资源来源于网络,仅供交流学习,不得用作任何商业用途,不提供任何技术支持。

移植底包基于 miui_ELISH_V14.0.5.0.TKYCNXM,移植文件来源于 miui_YUDI_V14.0.6.0.TMHCNXM,Android 版本 13。

我是跟随 ymdzq 大佬做的移植包,本文很多修改内容都参考自 ymdzq 大佬的移植包。其中 port-diff-report.md 是 AI 对比原版 ymdzq 大佬的移植包中文件后生成的差异报告。

本文仅记录一下修改内容,具体修改行以及内容以实际文件对比结果为准。

首先是底包的选择,我仍然选择 5 Pro 最后一个 MIUI 14 稳定版,也就是 V14.0.5.0.TKYCNXM。因为最后一个开发版 V14.0.23.7.31.DEV 发版时间比稳定版还老,而我不想碰澎湃系统,所以对于 ymdzq 后期更新的基于 HyperOS 1.0 的版本,我选择不跟进。

然后是关于 PC 版 WPS 这一套 mslgservice。考虑到它本质就是一个 chroot 容器且只装了 WPS,专门为了它去折腾空间并不充裕的 super 分区和复杂的 SELinux 配置,每次开机后还要多跑一个容器徒增耗电,确实得不偿失,就不集成了。
真有这方面需求的,无论是自己用 Termux 安装 proot 或者 chroot 容器,还是用 Cateners/tiny_computer 这种配置好开箱即用的软件,体验都会比小米那套半残、只有 WPS 的 PC 框架好上一大截。

还有关于系统中各处针对应用包名的黑白名单,本来我想去除,但发现小米除了在各种 JSON 和 XML 配置文件中设置黑白名单外,Framework 的 jar、APK 的 DEX 内部、甚至 SO 库和可执行文件里都硬编码了一堆包名列表,改起来难度实在太大,只能作罢。如果说 APK 中的包名列表还可以通过反编译修改,最多重新签名并配合核心破解使用,但 SO 库里的是真的没法改。
有需要的可以自行查看 AI 分析的系统中硬编码应用包名黑白名单报告 port-thirdparty-packages-report.md

已知 Bug:横屏使用鼠标时,有概率会遇到屏幕右侧死区,鼠标只能在屏幕左边移动,这是 6 Max 移植包的通病。

boot 分区

集成第三方 Recovery OrangeFox-R11.3_250831_A16-Unofficial-elish,感谢 ymdzq 大佬编译的橙狐 REC。

小米平板 5 Pro 这一代小米高通机型没有单独的 recovery 分区,recovery 是合并在 boot 分区中的,所以刷第三方 REC 需要刷写 boot 分区。这里需要注意的是,正常的 boot 分区镜像大小为 192MB,而橙狐 REC 镜像大小为 128MB,不能直接刷到 boot 分区中去。需要通过 fastboot boot <img> 的方式先临时启动进入橙狐 REC,然后在橙狐 REC 的菜单里面点“更多”,选择“安装当前使用的 OrangeFox”完成固化。

Magisk 也会修改 boot 分区,所以安装顺序得是先装第三方 REC 再刷 Magisk。但是由于上一步固化第三方 REC 后 boot 镜像变了,所以要在第三方 REC 固化完成后用它自带的备份功能把新的 boot 镜像提取出来拿给 Magisk 去修补,最后刷入修补后的镜像,以实现第三方 REC 和 Magisk 的共存。

另外说一句,刷写 boot 分区要在 Fastboot(也就是 adb reboot bootloader)而不能在 Fastbootd(也就是 adb reboot fastboot)模式下进行。刷入橙狐 REC 后,小米原厂 Fastbootd 模式下的蓝色字样会被替换成橙狐的样式。

cust 分区

小米一直拿 cust 分区存放预装的定制版第三方软件,卡刷包中不包含这个分区。其实有能力的完全可以把这个分区删掉分给 userdata,多出大概 1GB 的可用空间,参考 https://mipha.vercel.app/resize-android-cust-partition/。但是需要动分区表,还是不推荐轻易尝试。

为了让系统纯净一些,我把这些预装的定制版软件都删掉了。但它们一般都比从应用商店下载的更简洁一些,有需要的可以自己装回去。
安装包我提取出来放在了 https://alist.jibukeshi.dpdns.org/公共分享/安卓软件/定制版、提取版软件

清空 cust/app/customized/cust/cust/cn/ 目录,删除 cust/etc/cust_apps_config

super 分区

mi_ext

mi_ext 分区基于 yudi 修改。

  1. mi_ext/etc/build.prop 修改机型代号,这里的代号是 MIUI OTA 更新服务器用来识别推送更新用的。
    ro.product.mod_device=elish

odm

odm 分区是跟 vendor 分区配套的,整体上沿用 elish,但要注意以下部分。

  1. odm/etc/build.prop 修改系统版本。
    ro.odm.build.fingerprint=Xiaomi/elish/elish:13/RKQ1.211001.001/V14.0.6.0.TMHCNXM:user/release-keys
    ro.odm.build.version.incremental=V14.0.6.0.TMHCNXM

    ymdzq 的移植包中,odm/etc/build.prop 里的版本号变成了 V14.0.23.7.31.DEV,疑似复制文件时出现粗心错误,把开发版 ROM 的文件复制过来了。我这里仍然用 V14.0.5.0.TKYCNXM

product

product 分区基于 yudi 修改。

  1. 删除 PC 版 WPS 相关文件。

    • 访问 Linux 容器的 RDP 后端(com.xiaomi.mslgrdp),删除 product/app/MSLgRdp/
    • 交互操作的前端 WpsLauncher(com.xiaomi.wpslauncher),删除 product/data-app/WpsLauncher/
  2. 删除无法使用的 6 Max 人脸识别解锁 product/app/MiuiBiometric/,保留 5 Pro 的人脸识别解锁 product/app/MiuiBiometric3373/

  3. 删除会导致有线鼠标操作失灵的 6 Max 手写笔和键盘设置 product/app/MiuiInputSettings_M80/,保留 5 Pro 的手写笔和键盘设置 product/app/MiuiInputSettings/。同时,overlay 需要对应替换为 5 Pro 的 product/overlay/MiuiInputSettingsOverlay.apk

  4. 删除由于骁龙 870 算力不够导致离线字幕识别功能闪退的 6 Max 的小爱翻译,替换为最后一个支持在线字幕识别的 3.3.3 版本 product/app/AiAsstVision/AiAsstVision.apk

  5. 删除 6 Max 的音质音效 product/app/MiSound_T/,保留 5 Pro 原版支持场景选择的音质音效 product/app/MiSound/

  6. 删除 6 Max 会提示机型不匹配无法使用然后退出的相机,保留 5 Pro 的相机 product/priv-app/MiuiCamera/

  7. overlay 保留 5 Pro 本身设备的 APK:

    • product/overlay/DevicesAndroidOverlay.apk:主要影响圆角弧率、状态栏高度,以及 AOD 服务(LCD 屏幕没有)
    • product/overlay/DevicesOverlay.apk:主要影响导航栏(小白条)布局、圆角和充电动画
    • product/overlay/MiuiBiometricResOverlay.apk:人脸识别资源文件空包
    • product/overlay/MiuiFrameworkResOverlay.apk:主要影响屏幕 HBM 背光、HBM 亮度曲线,以及一些网络制式的属性
    • product/overlay/MiuiInputSettingsOverlay.apk:手写笔和键盘设置
    • product/overlay/SettingsRroDeviceTypeOverlay.apk:修复“我的设备”里的认证信息
  8. 保留 5 Pro 分辨率匹配屏幕的开机动画 product/media/bootanimation.zip

  9. product/etc/build.prop 修改机型代号、版本指纹,设置默认屏幕密度,启用杜比视界 OMX 解码,关闭内存扩展,关闭 cust 分区 EROFS 标志,并关闭应用预加载。

    # 修改机型代号、版本指纹
    ro.product.product.name=elish
    ro.product.build.fingerprint=Xiaomi/elish/missi:13/TKQ1.221114.001/V14.0.6.0.TMHCNXM:user/release-keys
    ro.product.mod_device=elish
    # 设置默认屏幕密度
    ro.sf.lcd_density=360
    persist.miui.density_v2=360
    # 启用杜比视界 OMX 解码
    ro.video.dolby_vision_omx=true
    # 关闭内存扩展
    persist.miui.extm.enable=0
    # 关闭 cust 分区 EROFS 标志,删除下面这行
    # ro.miui.cust_erofs=1
    # 关闭应用预加载,删除下面几行
    # persist.sys.preload.enable=true
    # persist.sys.precache.enable=true
    # persist.sys.precache.appstrs1=com.sina.weibo,com.ss.android.article.news,com.taobao.taobao,com.smile.gifmaker
    # persist.sys.precache.appstrs2=com.ss.android.ugc.aweme,com.tencent.mm,tv.danmaku.bili

    5 Pro 的官方包中 ro.product.product.name=miproduct_elish_cn,但是 6 Max 写的只有机型代号 yudi,疑似官方出错,我这里仍然用 elish

  10. 修改屏幕亮度配置文件 product/etc/displayconfig/display_id_4630946932993367170.xml
    目前 6 Max 只有一家屏幕供应商,后续更新可能会随着增加屏幕类型而多出其他 ID 的文件。而这个配置的文件名是在其他地方写死的,只能用 display_id_4630946932993367170.xml,否则会出现 *** FATAL EXCEPTION IN SYSTEM PROCESS: android.display 报错无法开机。
    5 Pro 屏幕的 XML 文件为:

    • product/etc/displayconfig/display_id_19260527152667265.xml
    • product/etc/displayconfig/display_id_4630946481717202305.xml
    • product/etc/displayconfig/display_id_4630946545580055169.xml

    这三个文件的内容是完全一样的,但是里面屏幕亮度配置只有两个点,直接复制进去仍然不开机。需要再复制一个替换 display_id_4630946932993367170.xml,把屏幕亮度曲线改成三个点,保留这四个 XML 文件,屏幕亮度调节就正常了。

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    
    <displayConfiguration>
        <!-- Global Brightness-Nit mapping -->
        <screenBrightnessMap>
            <point>
                <value>0.001709819</value>
                <nits>2.0</nits>
            </point>
            <point>
                <value>0.49975574</value>
                <nits>400.0</nits>
            </point>
            <point>
                <value>1.0</value>
                <nits>500</nits>
            </point>
        </screenBrightnessMap>
        <ambientLightHorizonLong>3000</ambientLightHorizonLong>
        <ambientLightHorizonShort>1000</ambientLightHorizonShort>
    </displayConfiguration>
    

    这里需要注意 overlay 里面的 product/overlay/AospFrameworkResOverlay.apk 要换成 5 Pro 的,否则会遇到自动亮度导致系统软重启的问题。

  11. 修改设备功能配置文件,将 elish.xml 复制并重命名两份,一份命名为 elish.xml,另一份命名为 yudi.xml 并都放进去,这样用哪个代号也不要紧。

    • product/etc/device_features/elish.xml
    • product/etc/device_features/yudi.xml

    为了开启 6 Max 的一些系统功能,可以增加以下内容:

    <!-- whether support screen compat -->
    <bool name="screen_compat_supported">true</bool>
    <!-- device support screen enhance engine -->
    <bool name="support_screen_enhance_engine">true</bool>
    <!-- whether support AI Display-->
    <bool name="support_AI_display">true</bool>
    <!-- whether support true color -->
    <bool name="support_true_color">true</bool>
    <!-- whether support notify dark mode to displayfeature -->
    <bool name="support_dark_mode_notify">true</bool>
    <!-- whether support stylus quick note-->
    <bool name="stylus_quick_note">true</bool>
    <!-- Whether support dolby version brighten -->
    <bool name="support_dolby_version_brighten">true</bool>
    <!-- whether support nature mode-->
    <bool name="support_nature_mode">true</bool>
    
    <!-- 支持语音通话工具箱 -->
    <!--whether the device supports conversation_tool_box voip record -->
    <bool name="support_conversation_toolbox_voiprecord">true</bool>
    
    <!-- 支持游戏 HDR -->
    <!-- whether support displayfeature gamemode HDR -->
    <bool name="support_displayfeature_gamemode_HDR">true</bool>
    
    <!-- 新版屏幕刷新率设置 UI -->
    <!-- whether support fps change -->
    <bool name="support_smart_fps">true</bool>
    <!-- smart fps value-->
    <integer name="smart_fps_value">120</integer>
    <integer-array name="fpsList">
        <item>120</item>
        <item>60</item>
    </integer-array>
    
    <!--  gallery setting  -->
    <bool name="gallery_support_media_feature">true</bool>
    <bool name="gallery_support_video_compress">true</bool>
    <bool name="gallery_support_analytic_face_and_scene">true</bool>
    <string name="gallery_cpu_series">8350</string>
    <bool name="gallery_support_time_burst_video">true</bool>
    <integer name="gallery_device_series">1</integer>
    <bool name="support_local_ocr">true</bool>
    <bool name="gallery_support_dolby">true</bool>
    <bool name="support_hdr_enhance">true</bool>
  12. 精简预装应用:

    • Analytics(com.miui.analytics),删除 product/app/AnalyticsCore/
    • 自动连招(com.xiaomi.macro),删除 product/app/com.xiaomi.macro/
    • 快应用服务框架(com.miui.hybrid),删除 product/app/HybridPlatform/
    • 游戏高能时刻(com.xiaomi.migameservice),删除 product/app/MiGameService_8450/
    • 家人守护(com.miui.greenguard),删除 product/app/MIUIgreenguard/
    • MIUI 安全组件(com.miui.guardprovider),删除 product/app/MIUIGuardProvider/
    • 智能服务(com.miui.systemAdSolution),删除 product/app/MSA/
    • 米币支付(com.xiaomi.payment),删除 product/app/PaymentService/
    • 游戏服务,删除 product/priv-app/MiGameCenterSDKService/
  13. 精简可卸载 data-app 应用列表。这些应用本来就在系统中支持卸载,卸载后可从应用商店-“我的”-“系统应用”下自行安装。除了删除 APK 文件外,还需要删除对应配置。

    • 钱包(com.mipay.wallet),删除 product/data-app/MIpayPad/
    • 服务与反馈(com.miui.miservice),删除 product/data-app/MIServicePad/
    • 小米商城(com.xiaomi.shop),删除 product/data-app/MiShopPad/
    • 米兔儿童(com.xiaomi.mitukid),删除 product/data-app/Mitukid/
    • 多看(com.duokan.reader),删除 product/data-app/MIUIDuokanReaderPad/
    • 电子邮件(com.android.email),删除 product/data-app/MIUIEmail/
    • 游戏中心(com.xiaomi.gamecenter),删除 product/data-app/MIUIGameCenterPad/
    • 小米换机(com.miui.huanji),删除 product/data-app/MIUIHuanji/
    • 小米云盘(com.miui.newmidrive),删除 product/data-app/MIUIMiDrive/
    • 小米社区(com.xiaomi.vipaccount),删除 product/data-app/MIUIVipAccountPad/
    • 米家(com.xiaomi.smarthome),删除 product/data-app/SmartHome/

    修改 product/etc/removable_apk_info.xml,删除以下几行:

    <item>com.android.email</item>
    <item>com.duokan.reader</item>
    <item>com.mipay.wallet</item>
    <item>com.miui.huanji</item>
    <item>com.miui.miservice</item>
    <item>com.miui.newmidrive</item>
    <item>com.xiaomi.gamecenter</item>
    <item>com.xiaomi.mitukid</item>
    <item>com.xiaomi.shop</item>
    <item>com.xiaomi.smarthome</item>
    <item>com.xiaomi.vipaccount</item>
    <item>com.xiaomi.wpslauncher</item>
    <item>/product/data-app/MIUIEmail/MIUIEmail.apk</item>
    <item>/product/data-app/MIUIDuokanReaderPad/MIUIDuokanReaderPad.apk</item>
    <item>/product/data-app/MIpayPad/MIpayPad.apk</item>
    <item>/product/data-app/MIUIHuanji/MIUIHuanji.apk</item>
    <item>/product/data-app/MIServicePad/MIServicePad.apk</item>
    <item>/product/data-app/MIUIMiDrive/MIUIMiDrive.apk</item>
    <item>/product/data-app/MIUIGameCenterPad/MIUIGameCenterPad.apk</item>
    <item>/product/data-app/Mitukid/Mitukid.apk</item>
    <item>/product/data-app/MiShopPad/MiShopPad.apk</item>
    <item>/product/data-app/SmartHome/SmartHome.apk</item>
    <item>/product/data-app/MIUIVipAccountPad/MIUIVipAccountPad.apk</item>
    <item>/product/data-app/WpsLauncher/WpsLauncher.apk</item>
  14. 去除 Joyose 云控。Joyose 在开机之后会挂载到 /system/app/Joyose/,但它实际上是在 product 分区的,直接删除 product/pangu/system/app/Joyose/

  15. 采用旧版小米互传。小米互传自从 2.15.0 版本开始强制“开启 10 分钟后自动关闭”,替换为最后一个不会自动关闭的 2.14.0 版本。替换 product/priv-app/MIShare/MIShare.apk 时,注意删除预编译的 OAT 文件。

  16. 更新 Android System WebView 版本为 144.0.7559.111(755911133)。
    本来我想换成更新的版本,但是我看系统自带的是纯 32 位 WebView + 纯 64 位 Trichrome Library 的拆分包组合。而更新的 WebView 似乎都是整合包了(即一个 WebView APK 里面整合了 32 位和 64 位的库),APKMirror 上面找不到版本号匹配的 WebView 和 Trichrome Library。那就只能先这样了。替换:

    • product/app/TrichromeLibrary64/TrichromeLibrary64.apk
    • product/app/WebviewGoogle64/WebViewGoogle64.apk
  17. 加回小米平板 5 系列自带的三张默认壁纸,但不删除 6 Max 移植过来的壁纸,增加:

    • product/media/wallpaper/wallpaper1.jpg
    • product/media/wallpaper/wallpaper2.jpg
    • product/media/wallpaper/wallpaper3.jpg
  18. 集成 MIUI 完美图标模块 探·界主题。
    本来我想用更新的版本,结果发现它用于生成图标配置文件的 APP 于 2025 年 8 月 31 日停止服务了。虽然 GitHub 上的图标资源仓库还在更新,但是手动合并非常麻烦,就继续沿用我本地的 2025 年 6 月 13 日的版本。替换:

    • product/media/theme/default/dynamicicons
    • product/media/theme/default/icons
    • product/media/theme/miui_mod_icons
  19. 添加指南针(可卸载)、悬浮球、传送门。

    • 指南针(com.miui.compass),增加 product/data-app/MIUICompass/MIUICompass.apk,修改 product/etc/removable_apk_info.xml,增加
      <item>com.miui.compass</item>
      <item>/product/data-app/MIUICompass/MIUICompass.apk</item>
    • 悬浮球(com.miui.touchassistant),增加 product/app/MIUITouchAssistant/MIUITouchAssistant.apk
    • 传送门(com.miui.contentextension),增加 product/priv-app/MIUIContentExtension/MIUIContentExtension.apk,添加传送门所需权限,修改 product/etc/permissions/privapp-permissions-product.xml,增加
      <privapp-permissions package="com.miui.contentextension">
          <permission name="android.permission.WRITE_SECURE_SETTINGS" />
          <permission name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" />
      </privapp-permissions>

    虽然悬浮球增加了,但是在设置中的入口可能不会显示,需要使用模块开启。另外实测传送门的双指长按触发用不了,只能用单指长按触发。

system

system 分区基于 yudi 修改。

  1. system/system/build.prop 修改机型代号,关闭高通 ramdump。

    # 修改机型代号
    ro.product.mod_device=elish
    #disable ramdump
    persist.vendor.ssr.enable_ramdumps=0
  2. 精简小米数字钥匙框架(com.xiaomi.digitalkey),删除 system/system/app/digitalkey/

system_ext

system_ext 分区基于 yudi 修改。

  1. system_ext/etc/build.prop 修改(疑似是高通 DPM 模块,改回 elish 原来的 11),关闭内存扩展。
    persist.vendor.dpm.feature=11
    # 关闭内存扩展
    persist.miui.extm.enable=0

vendor

vendor 分区直接沿用 elish,但要注意以下部分。

  1. vendor/etc/fstab.qcom 去除 AVB 验证。把挂载 system 那一行的 flags 从 ,avb_keys= 开始把后面的内容全删除,所有 ,avb=vbmeta_system,avb=vbmeta,avb 删除。

  2. vendor/build.prop 修改系统版本,关闭高通 ramdump。

    # 修改系统版本
    ro.vendor.build.fingerprint=Xiaomi/elish/elish:13/RKQ1.211001.001/V14.0.6.0.TMHCNXM:user/release-keys
    ro.vendor.build.version.incremental=V14.0.6.0.TMHCNXM
    ro.bootimage.build.fingerprint=Xiaomi/elish/elish:13/RKQ1.211001.001/V14.0.6.0.TMHCNXM:user/release-keys
    #disable ramdump
    persist.vendor.ssr.enable_ramdumps=0
  3. 集成@Sc素菜 的 MiPad 5 Pro 音频增强模块,替换

    • vendor/etc/a2dp_audio_policy_configuration.xml
    • vendor/etc/audio/audio_policy_configuration.xml
    • vendor/etc/audio_cloud_control_white_list.xml
    • vendor/etc/audio_configs.xml
    • vendor/etc/audio_configs_stock.xml
    • vendor/etc/audio_diag.cfg
    • vendor/etc/audio_effects.conf
    • vendor/etc/audio_effects.xml
    • vendor/etc/audio_io_policy.conf
    • vendor/etc/audio_karaoke_list.xml
    • vendor/etc/audio_platform_info.xml
    • vendor/etc/audio_platform_info_intcodec.xml
    • vendor/etc/audio_platform_info_qrd.xml
    • vendor/etc/audio_policy_configuration.xml
    • vendor/etc/audio_policy_engine_configuration.xml
    • vendor/etc/audio_policy_engine_configuration_mi.xml
    • vendor/etc/audio_policy_engine_default_stream_volumes.xml
    • vendor/etc/audio_policy_engine_default_stream_volumes_mi.xml
    • vendor/etc/audio_policy_engine_product_strategies.xml
    • vendor/etc/audio_policy_engine_product_strategies_mi.xml
    • vendor/etc/audio_policy_engine_stream_volumes.xml
    • vendor/etc/audio_policy_engine_stream_volumes_mi.xml
    • vendor/etc/audio_policy_volumes.xml
    • vendor/etc/audio_tuning_mixer.txt
    • vendor/etc/bluetooth_qti_audio_policy_configuration.xml
    • vendor/etc/bluetooth_qti_hearing_aid_audio_policy_configuration.xml
    • vendor/etc/default_volume_tables.xml
    • vendor/etc/dolby/dax-default.xml
    • vendor/etc/permissions/android.hardware.audio.low_latency.xml
    • vendor/etc/permissions/android.hardware.audio.pro.xml
    • vendor/etc/r_submix_audio_policy_configuration.xml
    • vendor/etc/sound_trigger_mixer_paths.xml
    • vendor/etc/sound_trigger_mixer_paths_cdp.xml
    • vendor/etc/sound_trigger_mixer_paths_qrd.xml
    • vendor/etc/sound_trigger_platform_info.xml
    • vendor/etc/usb_audio_policy_configuration.xml

    修改 vendor/build.prop,增加

    #Low Power process
    vendor.audio.lowpower=false
    ro.vendor.audio.soundtrigger.lowpower=false
    persist.vendor.audio.misoundasc=false
    
    # Low latency configuration
    aaudio.mmap_policy=2
    aaudio.mmap_exclusive_policy=3
    vendor.audio_hal.period_multiplier=4
    vendor.audio.adm.buffering.ms=6
    
    #Harman Kardon switch shit
    ro.vendor.audio.sfx.harmankardon=true
    
    # Improve Qualcomm process
    audio.playback.mch.downsample=true
    persist.vendor.audio.bcl.enabled=false
    persist.vendor.audio.ras.enabled=false
    vendor.audio.feature.hifi_audio.enable=true
    vendor.audio.feature.ras.enable=false
    vendor.audio.feature.src_trkn.enable=true
    vendor.audio.tunnel.encode=true
    vendor.audio.tunnel.decode=true
    vendor.audio.spkr_prot.tx.sampling_rate=96000
    vendor.audio.hal.output.suspend.supported=true
    persist.dev.pm.dyn_samplingrate=1
    ro.vendor.audio.surround.headphone.only=false
    
    # Hardware offload configuration
    vendor.audio.offload.gapless.enabled=true
    vendor.audio.offload.track.enable=true
    vendor.audio.offload.multiple.enabled=true
    vendor.audio.offload.passthrough=true
    audio.offload.pcm.enable=true
    audio.offload.pcm.16bit.enable=true
    audio.offload.pcm.24bit.enable=true
    audio.offload.pcm.32bit.enable=true
    audio.offload.pcm.float.enable=true
    persist.audio.format.24bit=true
    persist.audio.format.32bit=true
    persist.audio.format.float=true
    persist.vendor.audio.format.24bit=true
    persist.vendor.audio.format.32bit=true
    persist.vendor.audio.format.float=true

重新打包

所有的解包打包操作都使用 MIO-KITCHEN 工具进行。

5 Pro 的官方 4.19 内核不支持 EROFS,所以必须用 EXT4 打包。先用 mke2fs+e2fsdroid 打包单独的动态分区为 Raw Image。在打包的过程中可能会遇到一些问题,解决方法如下:

  1. mi_ext 分区用自动读取大小打包可能会失败并报错空间不够,需要手动指定大小。一般比实际大小稍稍大一些就行,我这里指定的是 2621440
  2. 如果要添加新的文件,一定要去 config 目录下补充对应的 SELinux 上下文(不知道怎么加的可以直接复制其他文件的改个文件名),否则会打包失败。

打包 super.img,分区类型选择 Virtual-A/B,属性选择 None,簇名保持 qti_dynamic_partitions 默认,勾选 mi_extodmproductsystemsystem_extvendor 这六个分区。elishsuper 分区大小是 9126805504 (8.5G),建议开启 Sparse 压缩以减小镜像体积。

修改 vbmeta.imgvbmeta_system.img,关闭 AVB 验证。
这个需要十六进制编辑器或者打包工具修改。原理就是把十六进制偏移地址 0x0000007B00 改成 02,这个改法与下面两条命令是同样的效果。
另一个办法是用户刷入 vbmetavbmeta_system 时,使用命令关闭 AVB 验证,或者在第三方 REC 卡刷时直接用选项关闭:

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
fastboot --disable-verity --disable-verification flash vbmeta_system vbmeta_system.img

为了方便用户从其他系统刷入,可以去官方卡刷包内提取 ablaopbluetoothcmnlibcmnlib64devcfgdspdtbofeatenablerhypimagefvkeymastermodemqupfwtzuefisecappvendor_bootxblxbl_config 这些分区,打包成卡线刷一体包。

About

自用小米平板 5 Pro 安卓13 MIUI V14.0.6.0 移植养老包,资源来源于网络,仅供交流学习,不得用做任何商业用途,不提供任何技术支持。

Topics

Resources

Stars

Watchers

Forks

Contributors