diff --git a/README.md b/README.md index e3557604f6..41b9c30493 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,11 @@ Android 11 ~ 13 的 MIUI 12.5 ~ 14 -> 不支持 修改较多的第三方 MIUI Rom、修改较多的系统软件,以及部分国外 MIUI Rom, +> 不支持 修改较多的第三方 MIUI/Xiaomi HyperOS Rom、修改较多的系统软件,以及部分国外 MIUI/Xiaomi HyperOS Rom; > -> 目前 HyperCeiler 是基于 Android 13 的 MIUI 14 的手机端设备进行适配,覆盖不是很完整,需要不断测试和改进, +> 目前 HyperCeiler 是基于 Android 13 的 MIUI 14 的手机端设备进行适配,覆盖不是很完整,需要不断测试和改进; > +> HyperCeiler 已停止维护 Android 11-12 的 MIUI Rom,如需使用请停留[此版本](https://github.com/saraSakuHj/Cemiuiler/releases/tag/1.3.130) ## 作用域包含的应用 @@ -155,7 +156,7 @@ Android 11 ~ 13 的 MIUI 12.5 ~ 14 [badge_qguild]: https://img.shields.io/badge/QQ-频道-4991D3?style=for-the-badge&logo=tencentqq -[telegram_url]: https://t.me/hyperceiler +[telegram_url]: https://t.me/cemiuiler -[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dhyperceiler +[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler diff --git a/README_en-US.md b/README_en-US.md index 0cb546a18c..dac2850e70 100644 --- a/README_en-US.md +++ b/README_en-US.md @@ -15,12 +15,11 @@ MIUI 12.5 ~ 14 for Android 11 ~ 13 -> Does not support third-party MIUI ROMs with many modifications, system software with many -> modifications, and some foreign MIUI ROMs +> Does not support heavily modified third-party MIUI/Xiaomi HyperOS Rom, heavily modified system software, and some foreign MIUI/Xiaomi HyperOS Rom; > -> At present, HyperCeiler is based on Android 13 MIUI 14 mobile phone devices for adaptation, the -> coverage is not very complete, it needs continuous testing and improvement +> Currently, HyperCeiler is adapted for mobile devices based on Android 13 and MIUI 14. The coverage is not very complete and requires continuous testing and improvement; > +> HyperCeiler has stopped maintaining MIUI Rom for Android 11-12. If you want to use it, please stay at [this version](https://github.com/saraSakuHj/Cemiuiler/releases/tag/1.3.130) ## Supported Applications @@ -158,6 +157,6 @@ You can provide translations for the HyperCeiler project [here](https://crwd.in/ [badge_qguild]: https://img.shields.io/badge/QQ-Channel-4991D3?style=for-the-badge&logo=tencentqq -[telegram_url]: https://t.me/hyperceiler +[telegram_url]: https://t.me/cemiuiler -[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dhyperceiler +[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler diff --git a/README_pt-BR.md b/README_pt-BR.md index 3e35039e27..7c9e1f66f6 100644 --- a/README_pt-BR.md +++ b/README_pt-BR.md @@ -158,6 +158,6 @@ Você pode fornecer traduções para o projeto [aqui](https://crwd.in/hyperceile [badge_qguild]: https://img.shields.io/badge/QQ-Canal-4991D3?style=for-the-badge&logo=tencentqq -[telegram_url]: https://t.me/hyperceiler +[telegram_url]: https://t.me/cemiuiler -[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dhyperceiler +[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/app/Updater.java b/app/src/main/java/com/sevtinge/hyperceiler/module/app/Updater.java index fe2ee7cb7f..61011cc9dd 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/app/Updater.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/app/Updater.java @@ -5,11 +5,14 @@ import com.sevtinge.hyperceiler.module.base.BaseModule; import com.sevtinge.hyperceiler.module.base.CloseHostDir; import com.sevtinge.hyperceiler.module.base.LoadHostDir; +import com.sevtinge.hyperceiler.module.hook.updater.AndroidVersionCode; import com.sevtinge.hyperceiler.module.hook.updater.DeviceModify; import com.sevtinge.hyperceiler.module.hook.updater.VabUpdate; import com.sevtinge.hyperceiler.module.hook.updater.VersionCodeModify; import com.sevtinge.hyperceiler.module.hook.updater.VersionCodeNew; +import java.util.Objects; + public class Updater extends BaseModule { @Override @@ -21,6 +24,7 @@ public void handleLoadPackage() { } else { initHook(new VersionCodeModify(), !TextUtils.isEmpty(mPrefsMap.getString("various_updater_miui_version", ""))); } + initHook(AndroidVersionCode.INSTANCE, !Objects.equals(mPrefsMap.getString("various_updater_android_version", "14"), "")); initHook(new VabUpdate(), mPrefsMap.getBoolean("updater_fuck_vab")); initHook(DeviceModify.INSTANCE, !TextUtils.isEmpty(mPrefsMap.getString("updater_device", ""))); // dexKit finish diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/mishare/NoAutoTurnOff.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/mishare/NoAutoTurnOff.kt index 6879e2c8dc..4f150d27e0 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/mishare/NoAutoTurnOff.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/mishare/NoAutoTurnOff.kt @@ -6,7 +6,6 @@ import com.sevtinge.hyperceiler.module.base.BaseHook import com.sevtinge.hyperceiler.utils.DexKit.addUsingStringsEquals import com.sevtinge.hyperceiler.utils.DexKit.dexKitBridge import com.sevtinge.hyperceiler.utils.api.BlurDraw.getValueByFields - import de.robv.android.xposed.XposedHelpers import java.lang.reflect.Modifier @@ -102,9 +101,10 @@ object NoAutoTurnOff : BaseHook() { } try { - logI(TAG, this.lpparam.packageName, "$nullField") - XposedHelpers.setStaticIntField(nullClass, nullField.name, 999999999) - logI(TAG, this.lpparam.packageName, "nullField hook success.") + findAndHookConstructor(nullClass, object : MethodHook() { + override fun after(param: MethodHookParam) { + XposedHelpers.setObjectField(param.thisObject, nullField.name, 999999999) + } }) } catch (t: Throwable) { logE(TAG, this.lpparam.packageName, "nullField hook failed", t) } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFrom.java b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFrom.java deleted file mode 100644 index 2855307076..0000000000 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFrom.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.sevtinge.hyperceiler.module.hook.screenrecorder; - -import com.sevtinge.hyperceiler.module.base.BaseHook; - -import de.robv.android.xposed.XposedHelpers; - -public class UnlockMoreVolumeFrom extends BaseHook { - @Override - public void init() { - Class mVolumeFrom = findClassIfExists("w0.a"); - findAndHookConstructor("w0.a", new MethodHook() { - @Override - protected void after(MethodHookParam param) throws Throwable { - XposedHelpers.setStaticBooleanField(mVolumeFrom, "h", true); - } - }); - } -} diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFromNew.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFromNew.kt index c737d415e7..3d53809248 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFromNew.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/screenrecorder/UnlockMoreVolumeFromNew.kt @@ -4,34 +4,31 @@ import com.github.kyuubiran.ezxhelper.EzXHelper import com.sevtinge.hyperceiler.module.base.BaseHook import com.sevtinge.hyperceiler.utils.DexKit.addUsingStringsEquals import com.sevtinge.hyperceiler.utils.DexKit.dexKitBridge -import com.sevtinge.hyperceiler.utils.log.XposedLogUtils import de.robv.android.xposed.XposedHelpers -import java.lang.reflect.Modifier object UnlockMoreVolumeFromNew : BaseHook() { private val getClass by lazy { dexKitBridge.findClass { matcher { - addUsingStringsEquals("ro.vendor.audio.screenrecorder.bothrecor") + addUsingStringsEquals("support_a2dp_inner_record") } }.map { it.getInstance(EzXHelper.classLoader) }.first() } - private val getObject by lazy { - dexKitBridge.findField { + override fun init() { + val fieldData = dexKitBridge.findField { matcher { - declaredClass { getClass } - modifiers = Modifier.PRIVATE + declaredClass(getClass) type = "boolean" + } }.map { it.getFieldInstance(EzXHelper.classLoader) }.toList() - } - override fun init() { - XposedLogUtils.logI("hook class $getClass") - for (i in getObject) { - XposedHelpers.setStaticBooleanField(getClass, i.name, true) - logD("hook ${i.name} true") - } + findAndHookConstructor(getClass, object : MethodHook() { + override fun after(param: MethodHookParam) { + for (i in fieldData) { + XposedHelpers.setObjectField(param.thisObject, i.name, true) + } + } }) } } diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/clock/TimeCustomization.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/clock/TimeCustomization.kt index c6056de72e..a161f25e31 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/clock/TimeCustomization.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/clock/TimeCustomization.kt @@ -55,7 +55,7 @@ object TimeCustomization : BaseHook() { // 预设模式 1 -> { var c: Context? = null - mClockClass!!.constructorFinder().first { + mClockClass.constructorFinder().first { paramCount == 3 }.createHook { after { @@ -120,7 +120,7 @@ object TimeCustomization : BaseHook() { 2 -> { var c: Context? = null - mClockClass!!.constructorFinder().first { + mClockClass.constructorFinder().first { paramCount == 3 }.createHook { after { diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/AndroidVersionCode.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/AndroidVersionCode.kt new file mode 100644 index 0000000000..fc6cbe3743 --- /dev/null +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/AndroidVersionCode.kt @@ -0,0 +1,14 @@ +package com.sevtinge.hyperceiler.module.hook.updater + +import android.os.Build +import com.sevtinge.hyperceiler.module.base.BaseHook +import de.robv.android.xposed.XposedHelpers + +object AndroidVersionCode : BaseHook() { + private val mAndroidVersionCode = + mPrefsMap.getString("various_updater_android_version", "14") + + override fun init() { + XposedHelpers.setStaticObjectField(Build.VERSION::class.java, "RELEASE", mAndroidVersionCode) + } +} diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/VersionCodeNew.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/VersionCodeNew.kt index 82558b98ee..ffdc5c79df 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/VersionCodeNew.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/updater/VersionCodeNew.kt @@ -10,6 +10,13 @@ import com.sevtinge.hyperceiler.utils.DexKit.dexKitBridge import de.robv.android.xposed.XposedHelpers object VersionCodeNew : BaseHook() { + private val mBigMethod by lazy { + dexKitBridge.findMethod { + matcher { + addUsingStringsEquals("ro.miui.ui.version.name") + } + }.map { it.getMethodInstance(EzXHelper.classLoader) }.first() + } private val mOSMethod by lazy { dexKitBridge.findMethod { matcher { @@ -48,6 +55,15 @@ object VersionCodeNew : BaseHook() { } }) + // 大版本名字修改 + mBigMethod.createHook { + before { + if (!TextUtils.isEmpty(mOldVersionCode)) { + it.result = mOldVersionCode.substringAfter("V") + } + } + } + // OS 版本名修改 mOSMethod.createHook { before { diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3da8ebad14..e4ca66de83 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1,12 +1,12 @@ - Torne a MIUI ótima novamente! + Torne o HyperOS ótimo novamente! adicionar e excluir arquivos no armazenamento interno do dispositivo ser usado para fornecer serviços como latitude e longitude Durante o uso, para fornecer mais recursos, podemos solicitar permissão Root/Su. Você pode acessar o Gerenciamento de permissões a qualquer momento para ajustar o status de autorização de todas as permissões e ir ao seu gerenciador Root/Su para obter permissões Root/Su. modificar apps do sistema - Bem-vindo ao HyperCeiler, este app é executado na estrutura Xposed, você pode usar este app para sequestrar e modificar outros apps suportados para obter melhorias na MIUI. Durante o uso, para fornecer mais recursos, podemos solicitar permissão Root/Su. Você pode ir ao seu gerenciador Root/Su para obter permissões Root/Su. + Bem-vindo ao HyperCeiler, este app é executado na estrutura Xposed, você pode usar este app para sequestrar e modificar outros apps suportados para obter melhorias no HyperOS. Durante o uso, para fornecer mais recursos, podemos solicitar permissão Root/Su. Você pode ir ao seu gerenciador Root/Su para obter permissões Root/Su. Português (Brasil) Igor @@ -584,6 +584,8 @@ Magnético Notificação Transparência do fundo do cartão + %1$s está ativado + %1$s está desativado Interruptor de rede 5G Rede 5G Modo luz solar @@ -631,6 +633,11 @@ Número de colunas no painel recolhido (Paisagem) Estilo do ícone bluetooth Mova o ícone do bluetooth para perto do ícone de rede + Menu de notificação estendido + Abra as informações do app, force a parada do app e abra em uma janela flutuante no menu de notificação (deslize a notificação para a esquerda para abri-la) + Informações do app + Janela flutuante + Forçar parada Outros Animação de carregamento Estilo da animação de carregamento @@ -702,6 +709,7 @@ Versão grande falsa Itens que precisam ser preenchidos ao disfarçar a versão Xiaomi HyperOS, o padrão é V816 Versão falsa para Atualizações + Versão falsa para Android Modifique apenas a atualização do sistema, que pode proteger a atualização do sistema até certo ponto Dispositivo falso para Atualizações Insira o código do modelo do dispositivo de destino para especificar o modelo, que pode ser usado para obter pacotes de ROM para outros modelos, o que é extremamente perigoso @@ -753,6 +761,8 @@ Launcher do sistema Gestos e Navegação Navegação + Voltar ao app anterior + Deslize pela tela começando pela borda para voltar ao app anterior Altura da área do gesto de retorno Largura da área do gesto de retorno Gestos @@ -1272,7 +1282,7 @@ Método 2 (recomendado) Adicionar gancho Selecionar modo - Puxe a barra de status para baixo para exibir os interruptores de atalho e as notificações do sistema + Puxe para baixo a barra de status para exibir as opções de atalho e notificações do sistema Reiniciar apps rapidamente Adicionar Excluir @@ -1281,9 +1291,9 @@ Dica: Você pode nos apoiar doando em \"Sobre - Patrocinadores\". Dica: Quer entrar em contato com o desenvolvedor? Telegram: @Sevtinge_PM_bot ou Bilibili: @绀漓丨Sevtinge. Dica: Quer entrar no grupo oficial? Telegram: @hyperceiler ou pesquise 247909573 no QQ. - Dica: HyperCeiler = Ceiler + MIUI, Ceiler = Ceil + er. + Dica: HyperCeiler = HyperOS + Ceiler, Ceiler = Ceil + er. Dica: Adivinhe quantas vezes mais você terá que ver essa dica novamente? - Dica: Torne a HyperCeiler ótima novamente! + Dica: Torne o HyperOS ótimo novamente! Dica: Seja bem-vindo para seguir no Github: @sevtinge ou Bilibili: @绀漓丨Sevtinge. Dica: A utopia ideal não existe na realidade. Dica: A cidade de Sanjiang tende a entrar em colapso. diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index bc2dbb401d..47ac990a67 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -755,6 +755,7 @@ 伪装大版本 伪装 Xiaomi HyperOS 版本时需要填写的项目,默认为 V816 伪装版本 + 伪装 Android 版本 仅对系统更新修改,可在一定程度上屏蔽系统更新 伪装机型 输入目标设备的机型代号以指定机型,可用于获取其他机型的 ROM 包,该功能极度危险 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index ad6a229dbe..c8a311f4ee 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -697,7 +697,8 @@ 系统更新 移除 OTA 驗證 僅支援 VAB 設備,其他非 VAB 設備請不要開啟!\n功能特點:無需內測權限即可刷入完整內測卡刷包\n注意事項:\n- 跨不同版本類型刷入後建議清除數據\n- 不支援任何非官方 ROM 使用\n- 此功能有一定危險性,請在了解 Fastboot 操作後再評估是否開啟 - 偽裝 MIUI 版本 + 偽裝版本 + 偽裝 Android 版本 僅對系统更新修改,可在一定程度上遮罩系统更新 偽裝機型 輸入目標設備代號以指定設備,可用於獲取其他機型的 ROM 包,此功能極度危險 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 43e993094a..57a4e9576c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -697,7 +697,8 @@ 系統更新 移除 OTA 驗證 僅支援 VAB 裝置,其他非 VAB 裝置請不要開啟!\n功能特點:無需內測權限即可刷入完整內測卡刷包\n注意事項:\n- 跨不同版本類型刷入後建議清除數據\n- 不支援任何非官方 ROM 使用\n- 此功能有一定危險性,請在了解 Fastboot 操作後再評估是否開啟 - 偽裝 MIUI 版本 + 偽裝版本 + 偽裝 Android 版本 僅對系統更新修改,可在一定程度上遮罩系統更新 偽裝機型 輸入目標機型代號以指定機型,可用於獲取其他機型的 ROM 包,此功能極度危險 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e4b6e65bed..e92f61130c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -739,6 +739,7 @@ Fake large version Items that need to be filled in when disguising the Xiaomi HyperOS version, the default is V816 Fake version for Updater + Fake version for Android Only modify the system update, which can shield the system update to a certain extent Fake device for Updater Enter the model code of the target device to specify the model, which can be used to obtain ROM packages for other models, which is extremely dangerous diff --git a/app/src/main/res/xml/updater.xml b/app/src/main/res/xml/updater.xml index 3833277c4f..8c476a27bb 100644 --- a/app/src/main/res/xml/updater.xml +++ b/app/src/main/res/xml/updater.xml @@ -26,6 +26,11 @@ android:summary="@string/updater_miui_version_desc" android:key="prefs_key_various_updater_miui_version" /> + +