From 78d2b8099cd475fc77e9b529680a9e3fdbf52684 Mon Sep 17 00:00:00 2001 From: ymdzq <233900743@qq.com> Date: Sat, 16 Dec 2023 16:37:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8C=89=E7=85=A7=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=BB=BA=E7=AB=8B=E5=88=86=E6=94=AF=20?= =?UTF-8?q?=E4=BB=85=E4=BF=9D=E7=95=99=E6=89=8B=E6=9C=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XIAOMIPAD5PRO.md | 548 ----------------------------------------------- 1 file changed, 548 deletions(-) delete mode 100644 XIAOMIPAD5PRO.md diff --git a/XIAOMIPAD5PRO.md b/XIAOMIPAD5PRO.md deleted file mode 100644 index 4f059d1..0000000 --- a/XIAOMIPAD5PRO.md +++ /dev/null @@ -1,548 +0,0 @@ -# 小米平板5 PRO 移植小米平板6 MAX MIUI 14记录 -资源来源于网络,仅供交流学习,不得用做任何商业用途,不提供任何技术支持,请在下载后24小时内删除 -基于miui_ELISH_V14.0.23.7.31,移植文件来源于miui_YUDI_V14.0.3.0 -由于是同一个安卓版本同一个MIUI大版本移植,所以需要修改的内容不多 -本文仅记录一下修改内容,具体修改行以及内容以实际文件对比结果为准,先打一个草稿,慢慢更新 - -这里有两个选择, -第一个选择是很多有的没的(像是控制中心工作台开关、设置里的平板专区、平行世界拖拽点、会议工具箱等等)是6max专属新功能,有机型验证, -如果需要解锁这些功能,要么用模块hook或者apktool反编译对应文件改判断代码,要么就全局修改机器代号,把所有代号全改成yudi, -但是相对来说,因为硬件不匹配,改代号一般都会有bug,所以如果要追求稳定,代号最好就还是用elish,用户要改代号可以用模块改。 -第二个选择就是是否集成pc版wps这一套东西, -这个玩意2.44GB,目前小米是都放在vendor分区, -因为有一个vendor服务启动项的mslgservice.rc文件,每次开机挂载镜像,解压rootfs,把linux容器放到/data/vendor/mslg/rootfs -服务启动优先级更高,所以不能普通的用面具模块代替,除非你重写一个shell脚本开机执行代替mslgservice.rc服务,而且据说不能直接用面具的losetup得用系统的,面具的权限太高了运行不了,就很麻烦。 -如果就这样直接集成,就需要扩容机器的super分区才能刷得进去,或者你就干脆做成dsu系统包,直接dsu侧载就不管包多大也不需要扩容。 -如果不集成,就不需要改vendor分区,随便在product分区里精简一点东西,就可以确保刷进机器那8.5G的super分区。 -## mi_ext分区修改,整体上照搬6max,但要注意以下部分 -build.prop修改机型代号,这里这个代号是miui ota更新服务器用来识别推送更新用的,你都刷第三方rom了这个就不重要了,除非你能用到那个服务器推送更新 -mi_ext\etc\build.prop -``` -ro.product.mod_device=elish -``` -## odm分区无修改 -这个分区是跟vendor分区配套的,目前无需修改 -## product分区修改,整体上照搬6max,但要注意以下部分 -pc版wps相关文件 -访问linux容器的rdp后端MSLgRdp和交互操作的前端WpsLauncher -如果不集成pc版wps就可以删除 -product\app\MSLgRdp -product\data-app\WpsLauncher - -product\app -删除无法使用的6max人脸识别解锁 MiuiBiometric -保留5pro人脸识别解锁 MiuiBiometric3373 - -按需精简 -快应用服务引擎 -product\app\HybridPlatform -智能服务 -product\app\MSA - -data-app可卸载的预装app,其中不少app都是可以在应用商店里重新安装的, -product\data-app\ -因为平板5pro默认的super分区只有8.5G,而且重新打包必须预留更多空间,所以可以精简这里,把super精简到7.4G以下,越小越好 -不过如果你要塞pc版wps,就一定是扩容了机器的super分区,搞不好空间还有多就没必要精简了 -我个人是觉得没必要只为了一个难用的特别版wps,就去搞极限精简,很多常用自带功能用户到时候又要想办法装回来,挺烦人的 -小米创作 -product\data-app\Creation -小米商城 -product\data-app\MiShopPad -米兔儿童 -product\data-app\Mitukid -多看阅读 -product\data-app\MIUIDuokanReaderPad -电子邮件 -product\data-app\MIUIEmail -游戏中心 -product\data-app\MIUIGameCenterPad -小米云盘 -product\data-app\MIUIMiDrive -小米社区 -product\data-app\MIUIVipAccountPad -米家 -product\data-app\SmartHome - -设备功能配置文件,本来正常代号要用elish稳定使用的话,删除yudi.xml,照搬elish.xml就好了, -但是如果你要全局改机器代号的话,这里配置文件也要改名成yudi.xml, -所以我是建议干脆把elish.xml复制两份一个叫elish.xml一个叫yudi.xml,都放进去,这样用哪个代号也不要紧 -product\etc\device_features\elish.xml -product\etc\device_features\yudi.xml - -修改屏幕亮度配置文件 -product\etc\displayconfig\display_id_4630946932993367170.xml -目前6max只有一家屏幕供应商,后续更新可能会随着增加屏幕类型,而多出其他id的文件, -而这个东西的文件名是在其他地方写死的,只能用display_id_4630946932993367170.xml,否则会出现`*** FATAL EXCEPTION IN SYSTEM PROCESS: android.display`报错无法开机 - -5pro屏幕的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屏幕亮度调节就正常了 - -build.prop修改机型代号、版本指纹,设置默认屏幕密度,关闭内存扩展 -product\etc\build.prop -``` -ro.product.product.name=elish -ro.product.build.fingerprint=Xiaomi/elish/missi:13/TKQ1.221114.001/V14.0.3.0.TMHCNXM:user/release-keys -ro.product.mod_device=elish - -ro.sf.lcd_density=360 -persist.miui.density_v2=360 - -persist.miui.extm.enable=0 - -``` -overlay保留5pro本身设备的apk -product\overlay\DevicesAndroidOverlay.apk -product\overlay\DevicesOverlay.apk -product\overlay\MiuiBiometricResOverlay.apk -product\overlay\MiuiFrameworkResOverlay.apk - -保留5pro相机,删除6max相机,否则会提示机型不匹配无法使用然后退出, -我个人是建议使用sevtinge修改相机4.7.230127.0版本,没有机型限制而且解锁更多功能 -product\priv-app\MiuiCamera -## system分区修改,整体上照搬6max,但要注意以下部分 -build.prop修改机型代号 -system\system\build.prop -``` -ro.product.mod_device=elish -``` - -## system_ext分区无需修改,直接照搬6max - -## vendor分区修改,如果选择不集成pc版wps无需修改,直接用5pro的 -如果要集成pc版wps则注意以下部分 -6max新增pc版wps相关文件,只要对比6pro(liuqin)的整个vendor分区,看孤立文件,一眼就能看出这些文件跟pc版wps有关, -其中mslgoptimg、mslgusrimg两个1G以上大文件,是导致super分区需要扩容的原因, -所以如果能以某种方法比如这里留一个到userdata的链接,然后把实际文件丢进userdata, -或者直接改sh脚本把位置就写到其他地方,就不需要占用vendor、super分区了 -另外说一句,由于有人测试了,这东西类原生也可以用,所以理论上用这个东西不一定非要移植6max的rom,如果你能把这些相关文件还有上面product分区里面的两个app放进其他安卓系统的对应位置,其他安卓系统搞不好也能运行 -``` -/vendor/bin/hw/mslgservice -/vendor/bin/losetup.sh -/vendor/bin/start-rootfs.sh -/vendor/bin/tar-rootfs.sh - -/vendor/etc/assets/md5.txt -/vendor/etc/assets/mslgoptimg -/vendor/etc/assets/mslgusrimg -/vendor/etc/assets/rootfs-23.07.28.tgz - -/vendor/etc/init/mslgservice.rc - -/vendor/lib/libext2_uuid.so - -/vendor/lib64/libext2_uuid.so -/vendor/lib64/vendor.xiaomi.mslg.keeper@1.0.so -``` -vendor/build.prop加入代码 -``` -ro.vendor.mslg.rootfs.version=rootfs-23.07.28.tgz -sys.mslg.available=1 -``` -接下来是补充selinux的上下文权限, -我也不知道补了有什么用,也不知道写的对不对,反正就是照yudi的文件抄,补了 -我看别人的移植包倒是根本就没改,直接改selinux宽容,然后mslgservice.rc把所有seclabel的mslgd改成shell,这样mslg是直接用shell的权限,就不用补mslgd的sepolicy权限了 - -修改vendor文件上下文文件 -vendor\etc\selinux\vendor_file_contexts -``` -/(vendor|system/vendor)/bin/hw/vendor.xiaomi.mslg.keeper@1.0-service u:object_r:hal_mslgkeeper_default_exec:s0 -/(vendor|system/vendor)/bin/start-rootfs.sh u:object_r:mslgd_exec:s0 -/(vendor|system/vendor)/bin/tar-rootfs.sh u:object_r:mslgd_exec:s0 -/(vendor|system/vendor)/bin/losetup.sh u:object_r:mslgd_exec:s0 -/(vendor|system/vendor)/bin/hw/mslgservice u:object_r:mslgd_exec:s0 -/(vendor|system/vendor)/etc/assets(/.*)? u:object_r:vendor_file:s0 -/(vendor|system/vendor)/etc/assets/mslgoptimg u:object_r:vendor_file:s0 -/(vendor|system/vendor)/etc/assets/mslgusrimg u:object_r:vendor_file:s0 - -/dev/msl(/.*)? u:object_r:mslg_rootfs_file:s0 - -/data/vendor/mslg(/.*)? u:object_r:mslg_rootfs_file:s0 -``` -修改vendor服务上下文文件 -vendor\etc\selinux\vendor_hwservice_contexts -``` -vendor.xiaomi.mslg.keeper::IMSLgKeeper u:object_r:hal_mslgkeeper_hwservice:s0 -``` -修改vendor属性上下文文件 -vendor\etc\selinux\vendor_property_contexts -``` -#line 1 "out/soong/.intermediates/system/sepolicy/vendor_property_contexts/android_common/gen/namespace_checked/vendor/xiaomi/proprietary/mslg/keeper/1.0/default/sepolicy/property_contexts" -persist.vendor.unzip.mslgrootfs u:object_r:vendor_mslg_prop:s0 -vendor.mslgrootfs.isready u:object_r:vendor_mslg_prop:s0 -vendor.mslgrootfs.version u:object_r:vendor_mslg_prop:s0 -vendor.setup.mslgrootfs u:object_r:vendor_mslg_prop:s0 -vendor.mslg.mslgusrimg u:object_r:vendor_mslg_prop:s0 -vendor.mslg.mslgoptimg u:object_r:vendor_mslg_prop:s0 -ro.vendor.mslg.rootfs.version u:object_r:vendor_mslg_prop:s0 -``` -修改vendor seapp上下文文件 -vendor\etc\selinux\vendor_seapp_contexts -``` -user=_app seinfo=platform name=com.xiaomi.mslgrdp domain=mslg_app type=app_data_file levelFrom=all -``` -修改se策略文件,这段需要补的权限超级多,痛苦 -vendor\etc\selinux\vendor_sepolicy.cil -``` -(typeattributeset domain (adbd_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -hal_mslgkeeper_default mslg_app mslg_init mslgd - -(typeattributeset fs_type (device_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -mslg_app_devpts - -(typeattributeset file_type (adbd_exec_30_0开头的这行到下三行,最后面的))之前,按照前面的格式加上 -mslg_rootfs_file hal_mslgkeeper_default_exec mslg_init_exec mslgd_exec - -(typeattributeset exec_type (adbd_exec_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -hal_mslgkeeper_default_exec mslg_init_exec mslgd_exec - -(typeattributeset data_file_type (incremental_control_file_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -mslg_rootfs_file - -(typeattributeset vendor_file_type (vendor_cgroup_desc_file_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -hal_mslgkeeper_default_exec mslg_init_exec mslgd_exec - -(typeattributeset property_type (apexd_prop_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -vendor_mslg_prop - -(typeattributeset vendor_property_type (rebootescrow_hal_prop_30_0开头的这行到最后面的))之前,按照前面的格式加上 -vendor_mslg_prop - -(typeattributeset vendor_public_property_type (开头的这行到最后面的))之前,按照前面的格式加上 -vendor_mslg_prop - -(typeattributeset hwservice_manager_type (default_android_hwservice_30_0开头的这行到下一行,最后面的))之前,按照前面的格式加上 -hal_mslgkeeper_hwservice - -(typeattributeset mlstrustedsubject (bufferhubd_30_0开头的这行到最后面的))之前,按照前面的格式加上 -mslg_init mslgd - -(typeattributeset mlstrustedobject (ashmem_device_30_0开头的这行到最后面的))之前,按照前面的格式加上 -mslg_rootfs_file - -(typeattributeset appdomain (开头的这行到最后面的))之前,按照前面的格式加上 -mslg_app - -(typeattributeset netdomain (dhcp_30_0(开头的这行到最后面的))之前,按照前面的格式加上 -mslg_app - -新增行 -(typeattributeset bluetoothdomain (mslg_app)) -(typeattributeset coredomain (mslg_app)) -(typeattributeset socket_between_core_and_vendor_violators (mslg_app mslgd)) - -(typeattributeset halserverdomain (mediaswcodec_30_0开头的这行到最后面的))之前,按照前面的格式加上 -hal_mslgkeeper_default - -新增行 -(typeattribute hal_mslgkeeper) -(typeattributeset hal_mslgkeeper (hal_mslgkeeper_default)) -(typeattribute hal_mslgkeeper_server) -(typeattributeset hal_mslgkeeper_server (hal_mslgkeeper_default)) -(typeattribute hal_mslgkeeper_client) - -新增行 -(type mslg_rootfs_file) -(roletype object_r mslg_rootfs_file) -(type hal_mslgkeeper_default) -(roletype object_r hal_mslgkeeper_default) -(type hal_mslgkeeper_default_exec) -(roletype object_r hal_mslgkeeper_default_exec) -(type hal_mslgkeeper_hwservice) -(roletype object_r hal_mslgkeeper_hwservice) -(type mslg_app) -(roletype object_r mslg_app) -(type mslg_app_userfaultfd) -(roletype object_r mslg_app_userfaultfd) -(type mslg_app_devpts) -(roletype object_r mslg_app_devpts) -(type mslg_init) -(roletype object_r mslg_init) -(type mslg_init_exec) -(roletype object_r mslg_init_exec) -(type mslgd) -(roletype object_r mslgd) -(type mslgd_exec) -(roletype object_r mslgd_exec) -(type vendor_mslg_prop) -(roletype object_r vendor_mslg_prop) - -新增行 -(allow hal_mslgkeeper_client hal_mslgkeeper_server (binder (call transfer))) -(allow hal_mslgkeeper_server hal_mslgkeeper_client (binder (transfer))) -(allow hal_mslgkeeper_client hal_mslgkeeper_server (fd (use))) -(allow hal_mslgkeeper_server hal_mslgkeeper_client (binder (call transfer))) -(allow hal_mslgkeeper_client hal_mslgkeeper_server (binder (transfer))) -(allow hal_mslgkeeper_server hal_mslgkeeper_client (fd (use))) -(allow hal_mslgkeeper_server hal_mslgkeeper_hwservice (hwservice_manager (add find))) -(allow hal_mslgkeeper_server hidl_base_hwservice_30_0 (hwservice_manager (add))) -(neverallow base_typeattr_724_30_0 hal_mslgkeeper_hwservice (hwservice_manager (add))) -(allow init_30_0 hal_mslgkeeper_default_exec (file (read getattr map execute open))) -(allow init_30_0 hal_mslgkeeper_default (process (transition))) -(allow hal_mslgkeeper_default hal_mslgkeeper_default_exec (file (read getattr map execute open entrypoint))) -(dontaudit init_30_0 hal_mslgkeeper_default (process (noatsecure))) -(allow init_30_0 hal_mslgkeeper_default (process (siginh rlimitinh))) -(typetransition init_30_0 hal_mslgkeeper_default_exec process hal_mslgkeeper_default) -(allow hal_mslgkeeper_default hwservicemanager_30_0 (binder (call transfer))) -(allow hwservicemanager_30_0 hal_mslgkeeper_default (binder (call transfer))) -(allow hwservicemanager_30_0 hal_mslgkeeper_default (dir (search))) -(allow hwservicemanager_30_0 hal_mslgkeeper_default (file (read map open))) -(allow hwservicemanager_30_0 hal_mslgkeeper_default (process (getattr))) -(allow hal_mslgkeeper_default vendor_mslg_prop (file (read getattr map open))) -(allow hal_mslgkeeper_default property_socket_30_0 (sock_file (write))) -(allow hal_mslgkeeper_default init_30_0 (unix_stream_socket (connectto))) -(allow hal_mslgkeeper_default vendor_mslg_prop (property_service (set))) -(allow hal_mslgkeeper_default vendor_mslg_prop (file (read getattr map open))) -(allow hal_mslgkeeper_default mslg_rootfs_file (file (read getattr open))) -(allow hal_mslgkeeper_default mslg_rootfs_file (dir (read getattr open search))) -(allow init_30_0 mslg_rootfs_file (dir (mounton))) -(allow init_30_0 mslg_rootfs_file (file (mounton))) -(allow init_30_0 fuse_30_0 (dir (mounton))) -(allow init_30_0 fuse_30_0 (file (mounton))) -(allow init_30_0 mnt_user_file_30_0 (lnk_file (read write create open))) -(allow hal_misys_default mslg_rootfs_file (file (read getattr open))) -(allow hal_misys_default mslg_rootfs_file (dir (read getattr open search))) -(typetransition mslg_app tmpfs_30_0 file appdomain_tmpfs) -(allow mslg_app mslg_app_userfaultfd (anon_inode (ioctl read create))) -(neverallow base_typeattr_725_30_0 mslg_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads))) -(neverallow mslg_app base_typeattr_726_30_0 (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads))) -(allow mslg_app appdomain_tmpfs_30_0 (file (read write getattr map execute))) -(neverallow base_typeattr_727_30_0 base_typeattr_725_30_0 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads))) -(neverallow base_typeattr_728_30_0 mslg_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads))) -(neverallow base_typeattr_729_30_0 mslg_app (process (ptrace))) -(allow mslg_app app_data_file_30_0 (dir (write add_name search))) -(allow mslg_app app_data_file_30_0 (file (create open))) -(auditallow mslg_app app_data_file_30_0 (file (execute))) -(allow mslg_app system_linker_exec_30_0 (file (execute_no_trans))) -(allow mslg_app privapp_data_file_30_0 (lnk_file (ioctl read getattr lock map open watch watch_reads))) -(allow mslg_app app_data_file_30_0 (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslg_app app_data_file_30_0 (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslg_app app_data_file_30_0 (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslg_app asec_apk_file_30_0 (file (ioctl read getattr lock map open watch watch_reads))) -(allow mslg_app asec_apk_file_30_0 (dir (ioctl read getattr lock open watch watch_reads search))) -(allow mslg_app asec_public_file_30_0 (file (execute))) -(allow mslg_app shell_data_file_30_0 (file (ioctl read getattr lock map open watch watch_reads))) -(allow mslg_app shell_data_file_30_0 (dir (ioctl read getattr lock open watch watch_reads search))) -(allow mslg_app trace_data_file_30_0 (file (read getattr))) -(allow mslg_app system_app_data_file_30_0 (file (read write getattr))) -(allow mslg_app media_rw_data_file_30_0 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir))) -(allow mslg_app media_rw_data_file_30_0 (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslg_app mnt_media_rw_file_30_0 (dir (search))) -(allow mslg_app servicemanager_30_0 (service_manager (list))) -(allow mslg_app audioserver_service_30_0 (service_manager (find))) -(allow mslg_app cameraserver_service_30_0 (service_manager (find))) -(allow mslg_app drmserver_service_30_0 (service_manager (find))) -(allow mslg_app mediaserver_service_30_0 (service_manager (find))) -(allow mslg_app mediaextractor_service_30_0 (service_manager (find))) -(allow mslg_app mediametrics_service_30_0 (service_manager (find))) -(allow mslg_app mediadrmserver_service_30_0 (service_manager (find))) -(allow mslg_app nfc_service_30_0 (service_manager (find))) -(allow mslg_app radio_service_30_0 (service_manager (find))) -(allow mslg_app app_api_service (service_manager (find))) -(allow mslg_app vr_manager_service_30_0 (service_manager (find))) -(allow mslg_app gpu_service_30_0 (service_manager (find))) -(allow mslg_app gpuservice_30_0 (binder (call transfer))) -(allow gpuservice_30_0 mslg_app (binder (transfer))) -(allow mslg_app gpuservice_30_0 (fd (use))) -(allow mslg_app self (process (ptrace))) -(allow mslg_app runas_app_30_0 (unix_stream_socket (connectto))) -(allow mslg_app mslgd (unix_stream_socket (connectto))) -(allow mslg_app runas_app_30_0 (process (sigchld))) -(allow mslg_app sysfs_hwrandom_30_0 (dir (search))) -(allow mslg_app sysfs_hwrandom_30_0 (file (ioctl read getattr lock map open watch watch_reads))) -(allow mslg_app preloads_media_file_30_0 (dir (ioctl read getattr lock open watch watch_reads search))) -(allow mslg_app preloads_media_file_30_0 (file (ioctl read getattr lock map open watch watch_reads))) -(allow mslg_app preloads_data_file_30_0 (dir (search))) -(allow mslg_app vendor_app_file_30_0 (dir (read getattr open search))) -(allow mslg_app vendor_app_file_30_0 (file (ioctl read getattr lock map execute open watch watch_reads))) -(allow mslg_app vendor_app_file_30_0 (lnk_file (read getattr open))) -(allow mslg_app traced_30_0 (fd (use))) -(allow mslg_app traced_tmpfs_30_0 (file (read write getattr map))) -(allow mslg_app traced_producer_socket_30_0 (sock_file (write))) -(allow mslg_app traced_30_0 (unix_stream_socket (connectto))) -(allow traced_30_0 mslg_app (fd (use))) -(allow traced_perf_30_0 mslg_app (file (ioctl read getattr lock map open watch watch_reads))) -(allow traced_perf_30_0 mslg_app (dir (ioctl read getattr lock open watch watch_reads search))) -(allow traced_perf_30_0 mslg_app (process (signal))) -(allow mslg_app traced_perf_socket_30_0 (sock_file (write))) -(allow mslg_app traced_perf_30_0 (unix_stream_socket (connectto))) -(allow traced_perf_30_0 mslg_app (fd (use))) -(allow mslg_app system_server_30_0 (udp_socket (read write getattr connect getopt setopt recvfrom sendto))) -(allow mslg_app rs_exec_30_0 (file (read getattr map execute open))) -(allow mslg_app rs_30_0 (process (transition))) -(allow rs_30_0 rs_exec_30_0 (file (read getattr map execute open entrypoint))) -(allow rs_30_0 mslg_app (process (sigchld))) -(dontaudit mslg_app rs_30_0 (process (noatsecure))) -(allow mslg_app rs_30_0 (process (siginh rlimitinh))) -(typetransition mslg_app rs_exec_30_0 process rs) -(dontaudit mslg_app net_dns_prop_30_0 (file (read))) -(dontaudit mslg_app proc_stat_30_0 (file (read))) -(dontaudit mslg_app proc_vmstat_30_0 (file (read))) -(dontaudit mslg_app proc_uptime_30_0 (file (read))) -(typetransition mslg_app devpts_30_0 chr_file mslg_app_devpts) -(allow mslg_app mslg_app_devpts (chr_file (ioctl read write getattr open))) -(allowx mslg_app mslg_app_devpts (ioctl chr_file (((range 0x5401 0x5404)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) ((range 0x5450 0x5451))))) -(neverallowx base_typeattr_185_30_0 mslg_app_devpts (ioctl chr_file (0x5412))) -(allow mslg_app simpleperf_30_0 (process (signal))) -(allow mslg_app system_app_service_30_0 (service_manager (find))) -(allow mslg_app vendor_hal_perf_hwservice (hwservice_manager (find))) -(allow mslg_app hal_mslgkeeper_hwservice (hwservice_manager (find))) -(allow mslg_app hal_mslgkeeper_default (binder (call transfer))) -(allow mslg_app procfs_memory (file (read))) -(allow mslg_app mslgd (unix_dgram_socket (sendto))) -(allow mslg_app procfs_memory (file (open))) -(allow mslg_app mslg_rootfs_file (sock_file (write create getattr setattr unlink rename))) -(allow mslg_app mslg_rootfs_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch))) -(allow mslg_app mslg_rootfs_file (fifo_file (read write create unlink open))) -(allow mslg_app mslg_rootfs_file (dir (read write create getattr setattr open watch add_name remove_name search rmdir))) -(allow mslg_app mslg_rootfs_file (lnk_file (read getattr))) -(allow mslg_app tmpfs_30_0 (sock_file (write create))) -(allow mslg_app tmpfs_30_0 (file (read open))) -(allow mslg_app app_api_service (service_manager (find))) -(allow mslg_app mslg_app (tcp_socket (read write))) -(allow mslg_app property_socket_30_0 (sock_file (write))) -(allow mslg_app init_30_0 (unix_stream_socket (connectto))) -(allow mslg_app system_prop_30_0 (property_service (set))) -(allow init_30_0 mslg_init_exec (file (read getattr map execute open))) -(allow init_30_0 mslg_init (process (transition))) -(allow mslg_init mslg_init_exec (file (read getattr map execute open entrypoint))) -(dontaudit init_30_0 mslg_init (process (noatsecure))) -(allow init_30_0 mslg_init (process (siginh rlimitinh))) -(typetransition init_30_0 mslg_init_exec process mslg_init) -(allow init_30_0 mslgd_exec (file (read getattr map execute open))) -(allow init_30_0 mslgd (process (transition))) -(allow mslgd mslgd_exec (file (read getattr map execute open entrypoint))) -(dontaudit init_30_0 mslgd (process (noatsecure))) -(allow init_30_0 mslgd (process (siginh rlimitinh))) -(typetransition init_30_0 mslgd_exec process mslgd) -(allow mslgd su_30_0 (unix_stream_socket (accept setopt))) -(allow mslgd mslg_rootfs_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch))) -(allow mslgd mslg_rootfs_file (fifo_file (read write create unlink open))) -(allow mslgd mslg_rootfs_file (dir (read write create getattr setattr rename open watch add_name remove_name search rmdir))) -(allow mslgd mslg_rootfs_file (lnk_file (read create getattr setattr link))) -(allow mslgd mslgd (netlink_kobject_uevent_socket (create getattr bind setopt))) -(allow mslgd devpts_30_0 (chr_file (ioctl read write getattr setattr append open))) -(allow mslgd devpts_30_0 (dir (read open))) -(allow mslgd proc_filesystems_30_0 (file (read getattr open))) -(allow mslgd proc_30_0 (file (ioctl read getattr lock map open watch watch_reads))) -(allow mslgd sysfs_30_0 (dir (read))) -(allow mslgd system_app_30_0 (process (signull))) -(allow mslgd untrusted_app_30_0 (process (signull))) -(allow mslgd priv_app_30_0 (process (signull))) -(allow mslgd mslgd (netlink_audit_socket (read write create nlmsg_relay))) -(allow mslgd mslgd (key (write search))) -(allow mslgd kernel_30_0 (key (link))) -(allow mslgd kernel_30_0 (dir (search))) -(allow mslgd kernel_30_0 (file (read open))) -(allow mslgd hal_graphics_composer_default (process (signull))) -(allow mslgd init_30_0 (dir (search))) -(allow mslgd init_30_0 (file (read getattr open))) -(allow mslgd init_30_0 (lnk_file (read))) -(allow mslgd fuse_30_0 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir))) -(allow mslgd fuse_30_0 (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslgd mslg_rootfs_file (sock_file (write create getattr setattr unlink rename))) -(allow mslgd mslgd (capability (chown fowner fsetid kill setgid setuid setpcap sys_chroot sys_admin sys_nice sys_resource audit_write))) -(allow mslgd mslgd (netlink_route_socket (read write create getattr bind setopt nlmsg_read nlmsg_readpriv))) -(allow mslgd mslgd (tcp_socket (read write create bind connect listen accept setopt name_connect))) -(allow mslgd mslgd (tcp_socket (ioctl shutdown))) -(allow mslgd port_30_0 (tcp_socket (name_bind name_connect))) -(allow mslgd node_30_0 (tcp_socket (node_bind))) -(allow mslgd mslgd (udp_socket (read write create getattr connect setopt))) -(allow mslgd untrusted_app_30 (unix_dgram_socket (sendto))) -(allow mslgd tmpfs_30_0 (chr_file (ioctl read write getattr setattr open))) -(allow mslgd tmpfs_30_0 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir))) -(allow mslgd tmpfs_30_0 (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads))) -(allow mslgd tmpfs_30_0 (lnk_file (read))) -(allow mslgd mslgd_exec (file (ioctl read getattr lock map execute open execute_no_trans entrypoint))) -(allow mslgd mslgd_exec (dir (read getattr add_name remove_name search))) -(allow mslgd mslgd_exec (lnk_file (read getattr))) -(allow mslgd mslgd (process (execmem))) -(allow mslgd mslg_app (unix_dgram_socket (sendto))) -(allow mslgd mslgd (process (setexec execmem))) -(allow mslgd kernel_30_0 (file (getattr))) -(allow mslgd kernel_30_0 (lnk_file (read))) -(allow mslgd platform_app_30_0 (process (signull))) -(allow mslgd su_30_0 (fd (use))) -(allow mslgd su_30_0 (process (transition noatsecure siginh rlimitinh))) -(allow mslgd vendor_init_30_0 (dir (search))) -(allow mslgd vendor_init_30_0 (file (read open))) -(allow mslgd vendor_toolbox_exec_30_0 (file (execute_no_trans))) -(allow mslgd vendor_file_30_0 (file (read))) -(allow mslgd block_device_30_0 (dir (ioctl read getattr lock open watch watch_reads search))) -(allow mslgd loop_device_30_0 (blk_file (ioctl read write getattr lock append map open watch watch_reads))) -(allowx mslgd loop_device_30_0 (ioctl blk_file (0x1261))) -(allowx mslgd loop_device_30_0 (ioctl blk_file (((range 0x4c00 0x4c01)) ((range 0x4c04 0x4c05)) ((range 0x4c08 0x4c0a))))) -(allow kernel_30_0 mslgd (fd (use))) -(allow mslgd vendor_mslg_prop (file (read getattr map open))) -(allow mslgd property_socket_30_0 (sock_file (write))) -(allow mslgd init_30_0 (unix_stream_socket (connectto))) -(allow mslgd vendor_mslg_prop (property_service (set))) -(allow mslgd vendor_mslg_prop (file (read getattr map open))) -(allow kernel_30_0 vendor_file_30_0 (file (read))) -(allow mslgd loop_control_device_30_0 (chr_file (ioctl read write open))) -(allow vendor_init_30_0 vendor_mslg_prop (property_service (set))) -(allow vendor_init_30_0 vendor_mslg_prop (file (read getattr map open))) -(allow vendor_init_30_0 vendor_mslg_prop (file (read getattr map open))) -(allow mslgd hwservicemanager_prop_30_0 (file (read getattr map open))) -(allow hwservicemanager_30_0 mslgd (binder (transfer))) -(allow mslgd hwservicemanager_30_0 (binder (call))) -(allow mslgd hal_mslgkeeper_default (binder (call))) -(allow mslgd hal_mslgkeeper_hwservice (hwservice_manager (find))) -(allow platform_app_30_0 hal_mslgkeeper_hwservice (hwservice_manager (find))) -(allow platform_app_30_0 hal_mslgkeeper_default (binder (call transfer))) -(allow platform_app_30_0 mslg_rootfs_file (dir (ioctl read getattr lock open watch watch_reads search))) -(allow platform_app_30_0 mslg_rootfs_file (file (ioctl read getattr lock map open watch watch_reads))) -(allow platform_app_30_0 mslg_rootfs_file (sock_file (write))) -(allow system_app_30_0 hal_mslgkeeper_hwservice (hwservice_manager (find))) -(allow system_app_30_0 hal_mslgkeeper_default (binder (call))) -(allow system_server_30_0 hal_mslgkeeper_default (binder (call))) -(allow system_server_30_0 hal_mslgkeeper_hwservice (hwservice_manager (find))) -(allow untrusted_app_30 mslg_rootfs_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search))) -(allow untrusted_app_30 mslgd (unix_dgram_socket (sendto))) -(allow untrusted_app_30 mslgd (unix_stream_socket (connectto))) -(allow untrusted_app_30 zygote_30_0 (unix_stream_socket (getopt))) -(allow untrusted_app_30 procfs_memory (file (open))) -(allow untrusted_app_30 mslg_rootfs_file (file (ioctl read write getattr lock append map open watch watch_reads))) -(allow untrusted_app_30 mslg_rootfs_file (sock_file (write create getattr setattr unlink rename))) - -新增行 -(typetransition mslg_app mslg_app anon_inode "[userfaultfd]" mslg_app_userfaultfd) - -新增行 -(typeattribute base_typeattr_729_30_0) -(typeattributeset base_typeattr_729_30_0 ((and (domain) ((not (crash_dump_30_0 runas_app_30_0 simpleperf_30_0 mslg_app)))))) -(typeattribute base_typeattr_728_30_0) -(typeattributeset base_typeattr_728_30_0 ((and (appdomain) ((not (runas_app_30_0 shell_30_0 simpleperf_30_0 mslg_app)))))) -(typeattribute base_typeattr_727_30_0) -(typeattributeset base_typeattr_727_30_0 ((and (mslg_app) ((not (runas_app_30_0 shell_30_0 simpleperf_30_0)))))) -(typeattribute base_typeattr_726_30_0) -(typeattributeset base_typeattr_726_30_0 ((not (mslg_app_userfaultfd)))) -(typeattribute base_typeattr_725_30_0) -(typeattributeset base_typeattr_725_30_0 ((and (domain) ((not (mslg_app)))))) -(typeattribute base_typeattr_724_30_0) -(typeattributeset base_typeattr_724_30_0 ((and (domain) ((not (hal_mslgkeeper_server)))))) -``` - -## 重新打包mi_ext、odm、system、system_ext、vendor、product分区 -先用make_ext4fs或者e2fsdroid+mke2fs打包为raw image, -这里的目标是打包成sparse格式的super.img,vab机器一般是线刷用fastboot刷进super分区,卡刷是在recovery里用卡刷脚本写入到super分区, -常见的情况也有使用zstd工具把super压缩成zst格式,在线刷、卡刷的时候再解压,这种用压缩解压的时间来节省刷机包占用空间大小的做法, -这种的情况就需要专门的脚本和工具了 -由于无wps版由于不需要修改odm、vendor分区,所以理论上其实你可以直接用fastbootd模式刷入mi_ext、system、system_ext、product分区 -dsu包的做法就是直接把mi_ext、system、system_ext、product分区的raw image文件打包成一个zip或者gz文件即可 -解包打包偷懒就找个安卓工具箱,米欧、dna、多幸运之类的,直接一键打包 - -## 关闭avb验证 -可选,修改fstab.qcom去除avb代码 -vendor\etc\fstab.qcom -把system那一行的flags从`,avb_keys=`开始把后面的全删除 - -可选,vendor_boot修改header在最后增加设置宽容的代码 - -刷入vbmeta、vbmeta_system时使用命令关闭avb验证或者在twrp中直接用选项关闭 -```bash -fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img -fastboot --disable-verity --disable-verification flash vbmeta_system vbmeta_system.img -``` From 449dc2f842648f891d83171324ee706155b45024 Mon Sep 17 00:00:00 2001 From: ymdzq <233900743@qq.com> Date: Sat, 24 Feb 2024 15:18:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A7=BB=E6=A4=8D?= =?UTF-8?q?=E7=BA=A2=E7=B1=B3Note11=20Pro=E6=BE=8E=E6=B9=83OS1.0.2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REDMI10XPRO.md | 454 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 328 insertions(+), 126 deletions(-) diff --git a/REDMI10XPRO.md b/REDMI10XPRO.md index 15a2175..b859099 100644 --- a/REDMI10XPRO.md +++ b/REDMI10XPRO.md @@ -1,26 +1,139 @@ -# 红米 10X PRO 移植MIUI 14记录 +# 红米 10X PRO 移植红米Note11 Pro安卓13版本HyperOS记录 资源来源于网络,仅供交流学习,不得用做任何商业用途,不提供任何技术支持,请在下载后24小时内删除 -基于miui_BOMB_V13.0.7.0,移植文件来源于miui_CEZANNE_V14.0.5.0,卡刷包解包就行了, -思路就是对比miui_CEZANNE_V13.0.5.0与miui_CEZANNE_V14.0.5.0,取出变更了的部分,未变化的文件仍然保留10x原本的文件, -由于project treble这个东西,厂商把大部分机器直接硬件相关的文件放进了单独的vendor分区,使得product和system分区在不同机器上有了很大程度的通用性, -再加上MIUI现在很多资源都是集成在一个文件里,通过检测机型代码来切换功能,移植就很方便了 -同处理器同系统版本机型非常相近,但还是有需要修改的部分 +基于miui_BOMB_V13.0.7.0,移植文件来源于miui_PISSARRO_OS1.0.2.0 本文仅记录一下修改内容,具体修改行以及内容以实际文件对比结果为准 -## product分区修改,整体上照搬k30u,但要注意以下部分 +## mi_ext分区修改,整体上照搬pissarro,但要注意以下部分 +build.prop修改机型代号,这里这个代号是miui ota更新服务器用来识别推送更新用的,你都刷第三方rom了这个就不重要了,除非你能用到那个服务器推送更新 +把这个东西改掉的好处就是可以屏蔽更新,不会收到移植的那个机型的更新,导致用户误升级变砖 +修改版本号为TJLCNXM +mi_ext\etc\build.prop +``` +ro.product.mod_device=bomb +ro.mi.os.version.incremental=OS1.0.2.0.TJLCNXM +``` +## product分区修改,整体上照搬pissarro,但要注意以下部分 +product\app +删除无法使用的人脸识别 MiuiBiometric33148 +目前没有修复办法 -保留10x特有刘海 -product\app\NotchOverlay\NotchOverlay.apk +按需精简 +快应用服务引擎 +product\app\HybridPlatform +智能服务 +product\app\MSA -增加游戏工具箱自动连招开关、动态分区列表和记录分区列表,其中第二部分记录分区为miui14新增,由于内核没有实际升级,所以这段感觉上无效 +data-app可卸载的预装app,其中不少app都是可以在应用商店里重新安装的, +product\data-app\ +百度输入法小米版 +product\data-app\BaiduIME +讯飞输入法小米版 +product\data-app\com.iflytek.inputmethod.miui +小米运动健康 +product\data-app\Health +小米云盘 +product\data-app\MIUIMiDrive +内容中心 +product\data-app\MIUINewHome_Removable +小米社区 +product\data-app\MIUIVipAccount +全球上网 +product\data-app\MIUIVirtualSim +米家 +product\data-app\SmartHome + +一堆有用没用的功能开关、剃刀计划:可卸载系统app名单 product\etc\device_features\bomb.xml ``` + true + + true + + + + com.xiaomi.pass + com.xiaomi.scanner + com.xiaomi.gamecenter + com.miui.weather2 + com.miui.notes + com.miui.compass + com.miui.calculator + com.android.email + com.miui.cleanmaster + com.mi.misupport + com.duokan.reader + com.mfashiongallery.emag + com.miui.personalassistant + com.miui.voip + com.miui.yellowpage + com.xiaomi.midrop + com.android.midrive + com.xiaomi.drivemode + com.miui.smarttravel + com.android.soundrecorder + com.miui.screenrecorder + + + + /system/data-app/XMPass/XMPass.apk + /system/data-app/MIUIScannerGlobal/MIUIScannerGlobal.apk + /system/data-app/GameCenter/GameCenter.apk + /system/data-app/MIUIWeatherGlobal/MIUIWeatherGlobal.apk + /system/data-app/MIUINotes/MIUINotes.apk + /system/data-app/MIUICompassGlobal/MIUICompassGlobal.apk + /system/data-app/MIUICalculatorGlobal/MIUICalculatorGlobal.apk + /system/data-app/Email/Email.apk + /system/data-app/CleanMaster/CleanMaster.apk + /system/data-app/MiSupport/MiSupport.apk + /system/data-app/com.duokan.reader/com.duokan.reader.apk + /system/data-app/MIGalleryLockScreenGlobal/MIGalleryLockScreenGlobal.apk + /system/data-app/PersonalAssistant/PersonalAssistant.apk + /system/data-app/MiuiVoip/MiuiVoip.apk + /system/data-app/YellowPage/YellowPage.apk + /system/data-app/MIDrop/MIDrop.apk + /system/data-app/MiDrive/MiDrive.apk + /system/data-app/MiuiDriveMode/MiuiDriveMode.apk + /system/data-app/SmartTravel/SmartTravel.apk + /system/data-app/MIUISoundRecorderTargetSdk30Global/MIUISoundRecorderTargetSdk30Global.apk + /system/data-app/MIUIScreenRecorderLiteGlobal/MIUIScreenRecorderLiteGlobal.apk + + + + com.xiaomi.scanner + com.miui.weather2 + com.miui.notes + com.miui.compass + com.miui.calculator + com.xiaomi.midrop + com.android.soundrecorder + com.miui.screenrecorder + + + + + ALL + + + true + true + + true + + + true + + true + + true + /system + /system_ext /product /vendor + /mi_ext rescue @@ -30,142 +143,104 @@ product\etc\device_features\bomb.xml crash_history expdb + /dev/block/by-name/ +``` +屏幕亮度曲线? +product\etc\displayconfig\display_id_0.xml +``` + + + + + + + + 0.003421310 + 2.0 + + + 1.0 + 500.0 + + + 3000 + 1000 + + ``` build.prop修改编译日期和指纹、版本号 product\etc\build.prop ``` -ro.product.build.date=Wed Jul 5 20:16:31 CST 2023 -ro.product.build.date.utc=1688559391 -ro.product.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.product.build.version.incremental=V14.0.5.0.SJNCNXM -``` -overlay升级以下apk -product\overlay\AospFrameworkResOverlay.apk -product\overlay\MccMncOverlay.apk +ro.product.product.name=miproduct_bomb_cn +ro.product.build.fingerprint=Xiaomi/miproduct_bomb_cn/missi:13/TP1A.220624.014/V816.0.2.0.TJLCNXM:user/release-keys +ro.product.build.version.incremental=V816.0.2.0.TJLCNXM +#支持存储卡 +ro.build.characteristics=default + +#删除ro.product.ab_ota_partitions=product这一行 +#ro.product.ab_ota_partitions=product + +ro.product.mod_device=bomb +``` overlay保留10x本身设备的apk product\overlay\DevicesAndroidOverlay.apk product\overlay\DevicesOverlay.apk -product\overlay\MiuiBiometricResOverlay.apk +product\overlay\AospFrameworkResOverlay.apk product\overlay\MiuiFrameworkResOverlay.apk -## system分区修改,整体上照搬k30u,但要注意以下部分 +修复息屏显示功能:反编译DevicesAndroidOverlay,修改资源文件strings.xml +把com.miui.aod/com.miui.aod.doze.DozeService改成com.android.systemui/com.android.systemui.doze.DozeService -system\system\app -去除k30u指纹识别 -GFDelmarSetting -保留10x指纹识别 -goodix_sz +product\pangu\system\app\ +删除无法使用的系统自带硬件检测、NFC功能 +MiuiCit +NQNfcNci +目前没有修复办法 +删除配套lib文件 +product\pangu\system\lib\libsensor_cal.so +product\pangu\system\lib\libsensor_calJNI.so +product\pangu\system\lib\vendor.xiaomi.hardware.citsensorservice@1.0.so +product\pangu\system\lib\vendor.xiaomi.hardware.citsensorservice@1.1.so -删除data-app推广应用(番茄免费小说、抖音短视频) -system\system\data-app\com.dragon.read_104 -system\system\data-app\com.ss.android.ugc.aweme_15 - -miui14新增misys服务 -system\system\etc\permissions\vendor.xiaomi.hardware.misys-V4.0-java-permission.xml - -保留10x震动设备相关文件 -system\system\etc\excluded-input-devices.xml - -新增MiSansC字体,照搬note12pro -system\system\etc\fonts.xml -``` - - MiSansC_3.005.ttf - - - - - - MiSansC_3.005.ttf - - - - - - MiSansC_3.005.ttf - - - - - - MiSansC_3.005.ttf - - - - -``` -system\system\fonts\MiSansC_3.005.ttf - -删除system分区里k30u马达、震动服务相关文件 -system\system\framework\vendor.xiaomi.hardware.motor-V1.0-java.jar -system\system\lib\vendor.xiaomi.hardware.motor@1.0.so -system\system\lib\vendor.xiaomi.hardware.vibratorfeature@1.0.so -system\system\lib64\vendor.xiaomi.hardware.motor@1.0.so -system\system\lib64\vendor.xiaomi.hardware.vibratorfeature@1.0.so - -miui14新增misys服务相关文件 -system\system\framework\vendor.xiaomi.hardware.misys-V4.0-java.jar -system\system\lib\vendor.xiaomi.hardware.misys@4.0.so -system\system\lib64\vendor.xiaomi.hardware.misys@4.0.so - -保留10x人脸识别相关lib,MiuiBiometric有通过链接使用到这三个lib -system\system\lib64\libjni_faceunlock.so -system\system\lib64\libjni_stfaceunlock_api.so -system\system\lib64\libstfaceunlockocl.so - -MIUI14默认主题、开机动画、壁纸、图标、资源文件,照搬k30u -system\system\media - -修复默认主题小米视频无分层图标功能,包名com.miui.videoplayer,这里文件夹名莫名少了一个r -system\system\media\theme\miui_mod_icons\dynamic\com.miui.videoplaye -改成 -system\system\media\theme\miui_mod_icons\dynamic\com.miui.videoplayer - -保留10x本身的收音机apk -system\system\system_ext\app\FM +product\pangu\system\lib64\libsensor_cal.so +product\pangu\system\lib64\libsensor_calJNI.so +product\pangu\system\lib64\vendor.xiaomi.hardware.citsensorservice@1.0.so +product\pangu\system\lib64\vendor.xiaomi.hardware.citsensorservice@1.1.so +## system分区修改,整体上照搬pissarro,但要注意以下部分 build.prop修改编译日期和指纹、版本号 system\system\system_ext\etc\build.prop ``` -ro.system_ext.build.date=Wed Jul 5 20:16:31 CST 2023 -ro.system_ext.build.date.utc=1688559391 -ro.system_ext.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.system_ext.build.version.incremental=V14.0.5.0.SJNCNXM +ro.system.build.fingerprint=Xiaomi/missi/missi:13/TP1A.220624.014/V816.0.2.0.TJLCNXM:user/release-keys +ro.system.build.version.incremental=V816.0.2.0.TJLCNXM +ro.build.version.incremental=V816.0.2.0.TJLCNXM +ro.build.description=missi_phoneext4_cn-user 13 TP1A.220624.014 V816.0.2.0.TJLCNXM release-keys ``` -保留10x本身的收音机lib文件 -system\system\system_ext\lib64\libfmjni.so - -键位文件由于还是安卓12整体没变 +键位文件,修复音量键无效问题 system\system\usr\keylayout -去除k30u键位文件 -ACCDET_cen.kl 保留10x键位文件 ACCDET.kl - +mtk-kpd.kl +## system_ext分区修改,整体上照搬pissarro,但要注意以下部分 build.prop修改编译日期和指纹、版本号 +可选修改 system\system\build.prop ``` -ro.system.build.date=Wed Jul 5 20:16:31 CST 2023 -ro.system.build.date.utc=1688559391 -ro.system.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.system.build.version.incremental=V14.0.5.0.SJNCNXM -ro.build.version.incremental=V14.0.5.0.SJNCNXM -ro.build.version.security_patch=2023-07-01 -ro.build.date=Wed Jul 5 20:16:31 CST 2023 -ro.build.date.utc=1688559391 -ro.build.description=bomb-user 12 SP1A.210812.016 V14.0.5.0.SJNCNXM release-keys -ro.miui.ui.version.code=14 -ro.miui.ui.version.name=V140 -ro.vendor.build.software.version=Android12_140 -ro.miui.version.code_time=1688486400 +ro.system_ext.build.fingerprint=Xiaomi/missi/missi:13/TP1A.220624.014/V816.0.2.0.TJLCNXM:user/release-keys +ro.system_ext.build.version.incremental=V816.0.2.0.TJLCNXM ``` ## vendor分区修改,整体上保留10x,但要注意以下部分 +vendor\app +删除Joyose空文件夹 miui14新增misys服务相关文件 vendor\bin\hw\vendor.xiaomi.hardware.misys@4.0-service vendor\etc\init\vendor.xiaomi.hardware.misys@4.0-service.rc +保留10x振动马达相关文件,从底包的system\system\etc\excluded-input-devices.xml复制过来 +vendor\etc\excluded-input-devices.xml + 修改权限设置文件,增加misys服务 以及之前有提到过的miui14新增的记录分区相关权限,由于内核没有实际升级,所以这段感觉上无效 vendor\etc\selinux\vendor_file_contexts @@ -203,6 +278,10 @@ cam_cal_device ebr_device expdb_device fat_device logo_device loop-control_devic (allow hal_misys_default cust_block_device (blk_file (ioctl read getattr lock map open watch watch_reads))) (allow hal_misys_default expdb_block_device (blk_file (ioctl read getattr lock map open watch watch_reads))) ``` +可改可不改,因为sepolicy的大头在找个文件里 +precompiled_sepolicy +这玩意只能从源码编译出来,不能二次编辑,所以上面其实是改了个寂寞 + miui14新增misys服务相关文件 vendor\etc\vintf\manifest\vendor.xiaomi.hardware.misys@4.0.xml vendor\lib\hw\vendor.xiaomi.hardware.misys@4.0-impl.so @@ -210,45 +289,158 @@ vendor\lib\vendor.xiaomi.hardware.misys@4.0.so vendor\lib64\hw\vendor.xiaomi.hardware.misys@4.0-impl.so vendor\lib64\vendor.xiaomi.hardware.misys@4.0.so +相机加速配置文件 +vendor\odm\etc\camera\camerabooster.json +``` +{ + "version": "1.0", + "product": "bomb", + "threshold": { + "lowerAdj_freeMem_threshold": 307200, + "update_state_delay_ms": 5000, + "skip_task":1 + }, + "support": { + "mms_camcpt_enable": true, + "adj_swap_support": true, + "perceptible_support": true + }, + "configs_6Gmem": [ + { + "name": "white_list", + "config": [ + "com.android.camera", + "com.miui.home", + "com.tencent.mm", + "com.tencent.mm:push", + "com.tencent.mobileqq:MSF", + "com.tencent.qqmusic:QQPlayerService", + "com.ss.android.lark.kami:wschannel", + "com.xiaomi.mi_connect_service", + "com.phonetest.application:CameraMemoryWatcher" + ] + } + ], + "threshold_6Gmem": { + "lowerAdj_freeMem_threshold": 307200, + "cam_boost_threshold": 2621440, + "update_state_delay_ms": 5000, + "skip_task_lower":1, + "kill_tag": 7, + "lowAdj_threshold": 0 + } +} +``` build.prop修改编译日期和指纹、版本号 vendor\odm\etc\build.prop ``` +ro.product.odm.cert=M2004J7BC + ro.odm.build.date=Wed Jul 5 20:16:31 CST 2023 ro.odm.build.date.utc=1688559391 -ro.odm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.odm.build.version.incremental=V14.0.5.0.SJNCNXM +ro.odm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJLCNXM:user/release-keys +ro.odm.build.version.incremental=V14.0.5.0.SJLCNXM ``` build.prop修改编译日期和指纹、版本号 vendor\odm_dlkm\etc\build.prop ``` ro.odm_dlkm.build.date=Wed Jul 5 20:16:31 CST 2023 ro.odm_dlkm.build.date.utc=1688559391 -ro.odm_dlkm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.odm_dlkm.build.version.incremental=V14.0.5.0.SJNCNXM +ro.odm_dlkm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJLCNXM:user/release-keys +ro.odm_dlkm.build.version.incremental=V14.0.5.0.SJLCNXM ``` build.prop修改编译日期和指纹、版本号 vendor\vendor_dlkm\etc\build.prop ``` ro.vendor_dlkm.build.date=Wed Jul 5 20:16:31 CST 2023 ro.vendor_dlkm.build.date.utc=1688559391 -ro.vendor_dlkm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.vendor_dlkm.build.version.incremental=V14.0.5.0.SJNCNXM +ro.vendor_dlkm.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJLCNXM:user/release-keys +ro.vendor_dlkm.build.version.incremental=V14.0.5.0.SJLCNXM ``` build.prop修改编译日期和指纹、版本号 vendor\build.prop ``` ro.vendor.build.date=Wed Jul 5 20:16:31 CST 2023 ro.vendor.build.date.utc=1688559391 -ro.vendor.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJNCNXM:user/release-keys -ro.vendor.build.version.incremental=V14.0.5.0.SJNCNXM +ro.vendor.build.fingerprint=Redmi/bomb/bomb:12/SP1A.210812.016/V14.0.5.0.SJLCNXM:user/release-keys +ro.vendor.build.version.incremental=V14.0.5.0.SJLCNXM + +# 机型代号 +ro.product.vendor.cert=M2004J7BC + +# 玄学代码,提高显示流畅性,分辨率调整 +#latch unsignaled buffer to improve display fluency +debug.sf.latch_unsignaled=1 +#disable backpressure to improve display fluency +debug.sf.disable_backpressure=1 +#default resolution and density +persist.sys.miui_resolution=1080,2400,440 + +# 其他属性 +ro.rom.zone=1 +ro.product.mod_device=bomb +ro.vendor.mtk_aod_support=1 + +# 游戏加载加速 +debug.game.video.support=true +debug.game.video.speed=true ``` -## 重新打包system、vendor、product分区 +删除恢复官方recovery功能的相关文件 +vendor\bin\install-recovery.sh +vendor\etc\init\vendor_flash_recovery.rc +vendor\recovery-from-boot.p + +修改fstab,添加mi_ext、system_ext分区,添加overlay相关代码 +vendor\etc\fstab.emmc +vendor\etc\fstab.mt6873 +``` +system_ext /system_ext ext4 ro wait,,logical,first_stage_mount + +mi_ext /mnt/vendor/mi_ext ext4 ro wait,,logical,first_stage_mount,nofail + +/mnt/vendor/mi_ext /mi_ext ext4 ro,bind wait,nofail +overlay /product/overlay overlay ro,lowerdir=/mnt/vendor/mi_ext/product/overlay/:/product/overlay check,nofail +overlay /product/app overlay ro,lowerdir=/mnt/vendor/mi_ext/product/app/:/product/app check,nofail +overlay /product/priv-app overlay ro,lowerdir=/mnt/vendor/mi_ext/product/priv-app/:/product/priv-app check,nofail +overlay /product/lib overlay ro,lowerdir=/mnt/vendor/mi_ext/product/lib/:/product/lib check,nofail +overlay /product/lib64 overlay ro,lowerdir=/mnt/vendor/mi_ext/product/lib64/:/product/lib64 check,nofail +overlay /product/bin overlay ro,lowerdir=/mnt/vendor/mi_ext/product/bin/:/product/bin check,nofail +overlay /product/framework overlay ro,lowerdir=/mnt/vendor/mi_ext/product/framework/:/product/framework check,nofail +overlay /product/media overlay ro,lowerdir=/mnt/vendor/mi_ext/product/media/:/product/media check,nofail +overlay /product/opcust overlay ro,lowerdir=/mnt/vendor/mi_ext/product/opcust/:/product/opcust check,nofail +overlay /product/data-app overlay ro,lowerdir=/mnt/vendor/mi_ext/product/data-app/:/product/data-app check,nofail +overlay /product/etc/sysconfig overlay ro,lowerdir=/mnt/vendor/mi_ext/product/etc/sysconfig/:/product/etc/sysconfig check,nofail +overlay /product/etc/permissions overlay ro,lowerdir=/mnt/vendor/mi_ext/product/etc/permissions/:/product/etc/permissions check,nofail +overlay /system/app overlay ro,lowerdir=/mnt/vendor/mi_ext/system/app/:/product/pangu/system/app/:/system/app check,nofail +overlay /system/priv-app overlay ro,lowerdir=/mnt/vendor/mi_ext/system/priv-app/:/product/pangu/system/priv-app/:/system/priv-app check,nofail +overlay /system/framework overlay ro,lowerdir=/product/pangu/system/framework/:/system/framework check,nofail +overlay /system/etc/sysconfig overlay ro,lowerdir=/mnt/vendor/mi_ext/system/etc/sysconfig/:/system/etc/sysconfig check,nofail +overlay /system/etc/permissions overlay ro,lowerdir=/mnt/vendor/mi_ext/system/etc/permissions/:/product/pangu/system/etc/permissions/:/system/etc/permissions check,nofail +overlay /system/lib overlay ro,lowerdir=/product/pangu/system/lib/:/system/lib check,nofail +overlay /system/lib64 overlay ro,lowerdir=/product/pangu/system/lib64/:/system/lib64 check,nofail +overlay /product/usr overlay ro,lowerdir=/mnt/vendor/mi_ext/product/usr:/product/usr check,nofail +overlay /product/etc/precust_theme overlay ro,lowerdir=/mnt/vendor/mi_ext/product/etc/precust_theme:/product/etc/precust_theme check,nofail +overlay /product/etc/preferred-apps overlay ro,lowerdir=/mnt/vendor/mi_ext/product/etc/preferred-apps:/product/etc/preferred-apps check,nofail +overlay /product/etc/security overlay ro,lowerdir=/mnt/vendor/mi_ext/product/etc/security:/product/etc/security check,nofail +overlay /system_ext/etc/permissions overlay ro,lowerdir=/mnt/vendor/mi_ext/system_ext/etc/permissions:/system_ext/etc/permissions check,nofail +``` +可选关闭avb验证,修改fstab文件去除avb代码 +vendor\etc\fstab.emmc +vendor\etc\ffstab.mt6873 +把system那一行的flags从`,avb_keys=`开始把后面的内容全删除,所有`,avb=vbmeta_system`删除,所有`,avb=vbmeta`删除,所有`,avb`删除 +## boot分区 +ramdisk\fstab.emmc +ramdisk\fstab.mt6873 +照搬vendor\etc\fstab.emmc和fstab.mt6873 + +使用https://github.com/R0rt1z2/mtk-bpf-patcher 工具,修补kernel文件,修复bpf问题导致的无法开机 +## 重新打包mi_ext、system、system_ext、vendor、product分区 先用make_ext4fs或者e2fsdroid+mke2fs打包为raw image, 使用img2simg工具把raw image转换为sparse image, 使用img2sdat把sparse image转换为dat格式, 使用brotli把dat格式转换为new.dat.br格式, 就可以替换进zip卡刷包里了 -解包打包偷懒就找个安卓工具箱,dna、多幸运之类的,直接一键打包成br +解包打包偷懒就找个安卓工具箱,米欧、dna、多幸运之类的,直接一键打包 ## 动态分区配置列表 刷入卡刷包的时候会根据这个文件调整手机里动态分区的实际分布,根据上面打包得到的raw image文件大小,修改文件里对应的rawimg字节大小 @@ -260,6 +452,16 @@ resize system rawimg字节大小 resize vendor rawimg字节大小 # Grow partition product from 0 to rawimg字节大小 resize product rawimg字节大小 + +#加上mi_ext、system_ext分区 +add mi_ext main +# Add partition system_ext to group main +add system_ext main + +# Grow partition mi_ext from 0 to rawimg字节大小 +resize mi_ext rawimg字节大小 +# Grow partition system_ext from 0 to rawimg字节大小 +resize system_ext rawimg字节大小 ``` ## avb验证文件,直接替换成关闭avb的文件 vbmeta.img