Open niphor opened 4 years ago
将cleaner-fix
中LocalizationUtils那一行替换成如下代码,可解决问题
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
@MonwF 看到您的回复,不胜欣喜,遂尝试一番,但这个替换在Mac上会报
sed: 1: "system/priv-app/Calenda ...": unterminated substitute pattern
感叹于自己sed语法不是很熟悉,单独调试这个sed替换时,又报
extra characters at the end of n command
只好先手动了...
搜索了一下 0x7f04
,可能您用的ROM版本是和我不一样,没有单独的0x7f04
,而是有2个0x7f040003
,0x7f040004
的资源ID
.method public static c(Landroid/content/Context;)Z
.registers 2
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p0
const v0, 0x7f040003
invoke-virtual {p0, v0}, Landroid/content/res/Resources;->getBoolean(I)Z
move-result p0
return p0
.end method
.method public static e(Landroid/content/Context;)Z
.registers 2
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p0
const v0, 0x7f040004
invoke-virtual {p0, v0}, Landroid/content/res/Resources;->getBoolean(I)Z
move-result p0
return p0
.end method
虽能理解您的替换的意思,但直接替换后,如下,语法都不对了,
...
move-result-object p0
const v0, {N;N;N;N;
a const/4 p0, 0x1
}0004
invoke-virtual {p0, v0}, Landroid/content/res/Resources;->getBoolean(I)Z
....
好在这个smail文件比较简单,遂手动改成这样了,应该是您这个替换的想表达意思吧?
.method public static c(Landroid/content/Context;)Z
.registers 1
const/4 p0, 0x1
return p0
.end method
.method public static e(Landroid/content/Context;)Z
.registers 1
const/4 p0, 0x1
return p0
.end method
刷入后 的确 节假日和农历都出来了,不过有点疑问的就是原先有 showsDayDiff
,showsLunarDate
,showsWidgetHoliday
,-showsWorkFreeDay
, -isMainlandChina
,-isGreaterChina
这6个方法体要改,现在就改这2个就行了么?
另外 尴尬的是,用户体验计划
,就是推广广告也出来了...
希望您能不惜赐教,谢谢。
gnu-sed
,系统自带的sed非标准。那条命令是找到0x7f04
,在其后面第4行加入const/4 p0, 0x1
好的,我回去试试看
谢谢大佬耐心解释
1. mac os 要用homebrew安装 `gnu-sed`,系统自带的sed非标准。那条命令是找到`0x7f04`,在其后面第4行加入`const/4 p0, 0x1` 2. 以前这些方法最终也是调c和e,用来判断是不是大陆和大中华区。 3. 用户体验计划可以在日历的设置里关闭
請問Windows版本需要怎樣修改? 把 if [[ "$app" == "Calendar" ]]; then $patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \ showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \ -isMainlandChina -isGreaterChina || return 1 換成 if [[ "$app" == "Calendar" ]]; then sed -i '/0x7f04/{N;N;N;N; a const/4 p0, 0x1 }' $apkdir/smali/com/miui/calendar/util/A.smali \ showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \ -isMainlandChina -isGreaterChina || return 1
不行哦。 系統會出現sed:unknown option --h,然後結束工作。
盼請指教,謝謝。
1. mac os 要用homebrew安装 `gnu-sed`,系统自带的sed非标准。那条命令是找到`0x7f04`,在其后面第4行加入`const/4 p0, 0x1` 2. 以前这些方法最终也是调c和e,用来判断是不是大陆和大中华区。 3. 用户体验计划可以在日历的设置里关闭
請問Windows版本需要怎樣修改? 把 if [[ "$app" == "Calendar" ]]; then $patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 換成 if [[ "$app" == "Calendar" ]]; then sed -i '/0x7f04/{N;N;N;N; a const/4 p0, 0x1 }' $apkdir/smali/com/miui/calendar/util/A.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1
不行哦。 系統會出現sed:unknown option --h,然後結束工作。
盼請指教,謝謝。
if [[ "$app" == "Calendar" ]]; then
$patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \
showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \
-isMainlandChina -isGreaterChina || return 1
fi
->
if [[ "$app" == "Calendar" ]]; then
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
fi
works on K20pro premium
1. mac os 要用homebrew安装 `gnu-sed`,系统自带的sed非标准。那条命令是找到`0x7f04`,在其后面第4行加入`const/4 p0, 0x1` 2. 以前这些方法最终也是调c和e,用来判断是不是大陆和大中华区。 3. 用户体验计划可以在日历的设置里关闭
請問Windows版本需要怎樣修改? 把 if [[ "$app" == "Calendar" ]]; then $patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 換成 if [[ "$app" == "Calendar" ]]; then sed -i '/0x7f04/{N;N;N;N; a const/4 p0, 0x1 }' $apkdir/smali/com/miui/calendar/util/A.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 不行哦。 系統會出現sed:unknown option --h,然後結束工作。 盼請指教,謝謝。
if [[ "$app" == "Calendar" ]]; then
$patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \
showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \
-isMainlandChina -isGreaterChina || return 1
fi
->if [[ "$app" == "Calendar" ]]; then
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
fi
works on K20pro premium
Thanks for the help. It's OK for my Mi9 @11.0.9.0
首先感谢大佬辛苦付出 今天处理K20Pro的 MIUI11 11.2 20.3.27,发现日历无法打补丁,打开目录发现都是混淆后的名字
--> decompiling Calendar... ----> Ignore patch: "LocalizationUtils.smali" not found
不知有何其它方式处理
谢谢
您好 , 我的miui欧洲版本和您的相同 , 遇到了一些问题 , 希望您可以解答一下 . 提前谢过 ~~ 在使用本项目的 mipay-extract-9.3.21 提取 mipay 的过程中没有提取成功 ( 可能我使用的国内miui版本不正确 , V11.0.2.0.QFKCNXM和 V11.0.7.0.QFKCNXM 均失败了) , 方便说一下您使用的那个国内版本吗? 期待您的回复 !
首先感谢大佬辛苦付出 今天处理K20Pro的 MIUI11 11.2 20.3.27,发现日历无法打补丁,打开目录发现都是混淆后的名字
--> decompiling Calendar... ----> Ignore patch: "LocalizationUtils.smali" not found
不知有何其它方式处理 谢谢
您好 , 我的miui欧洲版本和您的相同 , 遇到了一些问题 , 希望您可以解答一下 . 提前谢过 ~~ 在使用本项目的 mipay-extract-9.3.21 提取 mipay 的过程中没有提取成功 ( 可能我使用的国内miui版本不正确 , V11.0.2.0.QFKCNXM和 V11.0.7.0.QFKCNXM 均失败了) , 方便说一下您使用的那个国内版本吗? 期待您的回复 !
问题已解决。原因是第一次提取生成flashable zip的时间较长,误以为已经完成提取,关闭了进程,第二次提取会报错缺失文件。遇到相似问题的请耐心等待。 提取的zip文件通过twrp安装会出现error:1 (MIUI11 )。我的解决办法是root后使用文件管理器将提取后的解压文件复制到system/app,重启手机即可完成安装。
首先感谢大佬辛苦付出 今天处理K20Pro的 MIUI11 11.2 20.3.27,发现日历无法打补丁,打开目录发现都是混淆后的名字
--> decompiling Calendar... ----> Ignore patch: "LocalizationUtils.smali" not found
不知有何其它方式处理 谢谢
您好 , 我的miui欧洲版本和您的相同 , 遇到了一些问题 , 希望您可以解答一下 . 提前谢过 ~~ 在使用本项目的 mipay-extract-9.3.21 提取 mipay 的过程中没有提取成功 ( 可能我使用的国内miui版本不正确 , V11.0.2.0.QFKCNXM和 V11.0.7.0.QFKCNXM 均失败了) , 方便说一下您使用的那个国内版本吗? 期待您的回复 !
问题已解决。原因是第一次提取生成flashable zip的时间较长,误以为已经完成提取,关闭了进程,第二次提取会报错缺失文件。遇到相似问题的请耐心等待。 提取的zip文件通过twrp安装会出现error:1 (MIUI11 )。我的解决办法是root后使用文件管理器将提取后的解压文件复制到system/app,重启手机即可完成安装。
不需要解压复制 在twrp的挂载里挂载下system分区 再刷就行
1. mac os 要用homebrew安装 `gnu-sed`,系统自带的sed非标准。那条命令是找到`0x7f04`,在其后面第4行加入`const/4 p0, 0x1` 2. 以前这些方法最终也是调c和e,用来判断是不是大陆和大中华区。 3. 用户体验计划可以在日历的设置里关闭
請問Windows版本需要怎樣修改? 把 if [[ "$app" == "Calendar" ]]; then $patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 換成 if [[ "$app" == "Calendar" ]]; then sed -i '/0x7f04/{N;N;N;N; a const/4 p0, 0x1 }' $apkdir/smali/com/miui/calendar/util/A.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 不行哦。 系統會出現sed:unknown option --h,然後結束工作。 盼請指教,謝謝。
if [[ "$app" == "Calendar" ]]; then
$patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \
showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \
-isMainlandChina -isGreaterChina || return 1
fi
->if [[ "$app" == "Calendar" ]]; then
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
fi
works on K20pro premium
It's not work in MIUI12 again. 還有辦法修正嗎?謝謝。
1. mac os 要用homebrew安装 `gnu-sed`,系统自带的sed非标准。那条命令是找到`0x7f04`,在其后面第4行加入`const/4 p0, 0x1` 2. 以前这些方法最终也是调c和e,用来判断是不是大陆和大中华区。 3. 用户体验计划可以在日历的设置里关闭
請問Windows版本需要怎樣修改? 把 if [[ "$app" == "Calendar" ]]; then $patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 換成 if [[ "$app" == "Calendar" ]]; then sed -i '/0x7f04/{N;N;N;N; a const/4 p0, 0x1 }' $apkdir/smali/com/miui/calendar/util/A.smali showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay -isMainlandChina -isGreaterChina || return 1 不行哦。 系統會出現sed:unknown option --h,然後結束工作。 盼請指教,謝謝。
if [[ "$app" == "Calendar" ]]; then
$patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \
showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \
-isMainlandChina -isGreaterChina || return 1
fi
->if [[ "$app" == "Calendar" ]]; then
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
fi
works on K20pro premiumIt's not work in MIUI12 again. 還有辦法修正嗎?謝謝。
works in K20pro premium 07.16 version,not work in 08.13 我也不知道咋办了xD 召唤 @MonwF
works in K20pro premium 07.16 version,not work in 08.13 我也不知道咋办了xD 召唤 @MonwF
@QSCFTHMKO 这次是smali/com/miui/calendar/util/A.smali
的路径变了,下次不知道啥原因了。我现在是这样修改的,直接查找文件路径
lunarSmali=$(grep SIMPLIFIED_CHINESE -l $apkdir/smali/com/miui/calendar/util/*.smali)
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $lunarSmali
works in K20pro premium 07.16 version,not work in 08.13 我也不知道咋办了xD 召唤 @MonwF
@QSCFTHMKO 这次是
smali/com/miui/calendar/util/A.smali
的路径变了,下次不知道啥原因了。我现在是这样修改的,直接查找文件路径lunarSmali=$(grep SIMPLIFIED_CHINESE -l $apkdir/smali/com/miui/calendar/util/*.smali) sed -i '/0x7f0/{N;N;N;N; a const/4 p0, 0x1 }' $lunarSmali
@MonwF 大佬 用这个有效 然后弱弱的问一句,负一屏那个点设置崩溃,有没啥解决办法
works in K20pro premium 07.16 version,not work in 08.13 我也不知道咋办了xD 召唤 @MonwF
@QSCFTHMKO 这次是
smali/com/miui/calendar/util/A.smali
的路径变了,下次不知道啥原因了。我现在是这样修改的,直接查找文件路径lunarSmali=$(grep SIMPLIFIED_CHINESE -l $apkdir/smali/com/miui/calendar/util/*.smali) sed -i '/0x7f0/{N;N;N;N; a const/4 p0, 0x1 }' $lunarSmali
厲害,又可以繼續使用了。 十分感謝。
从20.8.20开始LocalizationUtils.smali的混淆名称变成了B.smail
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/B.smali
似乎日历是显示不了节假日调休情况的,各位都是这样么
似乎日历是显示不了节假日调休情况的,各位都是这样么
可以正常显示调休 9se miui 12
似乎日历是显示不了节假日调休情况的,各位都是这样么
可以正常显示调休 9se miui 12
感谢回复,看来确实是mix2s的特殊问题,其他型号应该大部分没有 已经找到workaround了,不过原理不明 https://github.com/linusyang92/mipay-extract/issues/66#issuecomment-699603489
20.11.5资源id已改为0x7f05xxx,文件改为$apkdir/smali/com/miui/calendar/util/D.smali
sed -i '/0x7f05/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/D.smali
首先感谢大佬辛苦付出 今天处理K20Pro的 MIUI11 11.2 20.3.27,发现日历无法打补丁,打开目录发现都是混淆后的名字
不知有何其它方式处理
谢谢