Compare commits
| SHA1 | |
|---|---|
| 40f150e343 | |
| 72326e5b16 | |
| 296dec622e | |
| fbe6bd14cc | |
| 2b62431bd7 | |
| 2988c0f618 | |
| 977ae12af2 | |
| 29187942d8 | |
| a95e2bc7a3 |
7 changed files with 67 additions and 65 deletions
43
.github/workflows/android.yml
vendored
43
.github/workflows/android.yml
vendored
|
|
@ -1,43 +0,0 @@
|
|||
name: Android CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 21
|
||||
distribution: 'temurin'
|
||||
cache: 'gradle'
|
||||
|
||||
- name: Write key
|
||||
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
|
||||
run: |
|
||||
if [ ! -z "${{ secrets.SIGNING_KEY }}" ]; then
|
||||
echo releaseStorePassword='${{ secrets.KEY_STORE_PASSWORD }}' >> gradle.properties
|
||||
echo releaseKeyAlias='${{ secrets.ALIAS }}' >> gradle.properties
|
||||
echo releaseKeyPassword='${{ secrets.KEY_PASSWORD }}' >> gradle.properties
|
||||
echo releaseStoreFile='key.jks' >> gradle.properties
|
||||
echo ${{ secrets.SIGNING_KEY }} | base64 --decode > key.jks
|
||||
fi
|
||||
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew assembleRelease assembleDebug
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Signed app bundle
|
||||
path: app/build/outputs/apk
|
||||
|
|
@ -14,10 +14,10 @@ android {
|
|||
buildToolsVersion = "36.0.0"
|
||||
defaultConfig {
|
||||
applicationId = "com.mbcp.helper"
|
||||
minSdk = 31
|
||||
minSdk = 28
|
||||
targetSdk = 36
|
||||
versionCode = 2030
|
||||
versionName = "1.3-mbcp"
|
||||
versionCode = 2031
|
||||
versionName = "1.5-mbcp"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
|
|
|||
|
|
@ -149,5 +149,14 @@ public class CorePatchForQ extends XposedHelper implements IXposedHookLoadPackag
|
|||
"isVerificationEnabled",
|
||||
new ReturnConstant(prefs, "disableVerificationAgent", false)
|
||||
);
|
||||
|
||||
// Allow apk splits with different signatures to be installed together
|
||||
hookAllMethods(signingDetails, "signaturesMatchExactly", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
if (prefs.getBoolean("exactSigCheck", false))
|
||||
param.setResult(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ public class CorePatchForR extends XposedHelper implements IXposedHookLoadPackag
|
|||
XposedBridge.log("D/" + MainHook.TAG + " downgrade=" + prefs.getBoolean("downgrade", true));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " authcreak=" + prefs.getBoolean("authcreak", false));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " digestCreak=" + prefs.getBoolean("digestCreak", true));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " exactSigCheck=" + prefs.getBoolean("exactSigCheck", false));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " UsePreSig=" + prefs.getBoolean("UsePreSig", false));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " bypassBlock=" + prefs.getBoolean("bypassBlock", true));
|
||||
XposedBridge.log("D/" + MainHook.TAG + " sharedUser=" + prefs.getBoolean("sharedUser", false));
|
||||
|
|
@ -262,7 +263,19 @@ public class CorePatchForR extends XposedHelper implements IXposedHookLoadPackag
|
|||
hookAllMethods(keySetManagerClass, "shouldCheckUpgradeKeySetLocked", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) {
|
||||
if (prefs.getBoolean("digestCreak", true) && Arrays.stream(Thread.currentThread().getStackTrace()).anyMatch((o) -> "preparePackageLI".equals(o.getMethodName()))) {
|
||||
// 检查权限定义的签名的时候,如果定义包名相同,会使用 KeySetManagerService ,
|
||||
// 我们利用这一点让它通过检查,也就是同包不同签名权限可覆盖
|
||||
// R-Sv2: PackageManagerService#preparePackageLI
|
||||
// https://cs.android.com/android/platform/superproject/+/android-11.0.0_r21:frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java;l=17188;drc=960ffca13a519b0fb9e0942665577c62f97d0eea
|
||||
// T-V: InstallPackageHelper#preparePackageLI
|
||||
// https://cs.android.com/android/platform/superproject/+/android-14.0.0_r2:frameworks/base/services/core/java/com/android/server/pm/InstallPackageHelper.java;l=1097;drc=5ea7e53c3a787e25af86b0f31933ddd68ae3514e
|
||||
// 16: InstallPackageHelper#preparePackage
|
||||
// https://cs.android.com/android/platform/superproject/+/android-16.0.0_r2:frameworks/base/services/core/java/com/android/server/pm/InstallPackageHelper.java;l=1459;drc=d14620262929e39a409b55d11cb542c1d1c4d2f6
|
||||
if (prefs.getBoolean("digestCreak", true) &&
|
||||
Arrays.stream(Thread.currentThread().getStackTrace())
|
||||
.anyMatch((o) -> o.getMethodName().startsWith("preparePackage")
|
||||
)
|
||||
) {
|
||||
shouldBypass.set(true);
|
||||
param.setResult(true);
|
||||
} else {
|
||||
|
|
@ -394,6 +407,15 @@ public class CorePatchForR extends XposedHelper implements IXposedHookLoadPackag
|
|||
|
||||
hookAllMethods(getIsVerificationEnabledClass(loadPackageParam.classLoader), "isVerificationEnabled", new ReturnConstant(prefs, "disableVerificationAgent", false));
|
||||
|
||||
// Allow apk splits with different signatures to be installed together
|
||||
hookAllMethods(signingDetails, "signaturesMatchExactly", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
if (prefs.getBoolean("exactSigCheck", false))
|
||||
param.setResult(true);
|
||||
}
|
||||
});
|
||||
|
||||
if (BuildConfig.DEBUG) initializeDebugHook(loadPackageParam);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<string name="src_summary">Xem mã nguồn của trình hỗ trợ MBCP - dựa trên CorePatch.</string>
|
||||
<string name="options">Tùy chọn</string>
|
||||
<string name="module_description">Vô hiệu hóa xác minh chữ ký và cho phép cài đặt MBCP.</string>
|
||||
<string name="corepatch">MBCP và trình hỗ trợ hiện chỉ khả dụng cho Android 12 trở lên.\nMBCP Helper được dựa trên CorePatch.</string>
|
||||
<string name="corepatch">MBCP và trình hỗ trợ hiện khả dụng cho Android 9 ~ 16 trở lên.\nMBCP Helper được dựa trên CorePatch.</string>
|
||||
<string name="downgr">Cho phép hạ cấp</string>
|
||||
<string name="downgr_summary">Cho phép hạ cấp MBCP và các ứng dụng khác về phiên bản cũ hơn.</string>
|
||||
<string name="authcreak">Vô hiệu hóa xác minh tính toàn vẹn</string>
|
||||
|
|
@ -20,4 +20,8 @@
|
|||
<string name="usepresig_warn">!! Any apk can override the installed one !!\nBe carefully when installing unknown apk</string>
|
||||
<string name="disable_verification_agent_title">Bỏ qua tác nhân xác minh APK</string>
|
||||
<string name="disable_verification_agent_summary">ví dụ như trình bảo vệ app của Google Play.</string>
|
||||
<string name="hyperos_title">Thông báo cho HyperOS</string>
|
||||
<string name="hyperos_summary">Trình hỗ trợ này không thể sử dụng nếu bạn có HyperOS 1+. Vui lòng nhấn vào đây để xem cách cài app MBCP cho HyperOS.</string>
|
||||
<string name="exactSigCheck">Disable exact signature match</string>
|
||||
<string name="exactSigCheck_summary">Disables exact signature match between apks, allowing installs with each apk split having a different signature.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<string name="options">Options</string>
|
||||
|
||||
<string name="module_description">Disable signature verification and allows install MBCP</string>
|
||||
<string name="corepatch">MBCP and Helper only available for Android 12 and newer.\nIts based on CorePatch.</string>
|
||||
<string name="corepatch">MBCP and Helper are available for Android 9 and newer.\nIts based on CorePatch.</string>
|
||||
<string name="downgr">Allow downgrade</string>
|
||||
<string name="downgr_summary">Allow downgrade MBCP and other applications to older version.</string>
|
||||
<string name="authcreak">Disable digest verify</string>
|
||||
|
|
@ -21,4 +21,8 @@
|
|||
<string name="usepresig_warn">!! Any apk can override the installed one !!\nBe carefully when installing unknown apk</string>
|
||||
<string name="disable_verification_agent_title">Disable Package Verification Agent</string>
|
||||
<string name="disable_verification_agent_summary">e.g. Google Play Protection</string>
|
||||
<string name="hyperos_title">HyperOS attention</string>
|
||||
<string name="hyperos_summary">This helper cant be used for HyperOS 1+. If you have HyperOS 1+, downgrade to MIUI, or ask somewhere for manually patching service.jar !!!</string>
|
||||
<string name="exactSigCheck">Disable exact signature match</string>
|
||||
<string name="exactSigCheck_summary">Disables exact signature match between apks, allowing installs with each apk split having a different signature. Only enable when really needed!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -8,46 +8,52 @@
|
|||
android:summary="@string/dlmbcp_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://t.me/mbbpatch"/>
|
||||
android:data="https://t.me/mbbpatch_eng"/>
|
||||
</Preference>
|
||||
<Preference
|
||||
android:title="@string/src"
|
||||
android:summary="@string/src_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://gitlab.com/cuynu/mbcp-helper"/>
|
||||
android:data="https://git.disroot.org/mbcp/mbcp-helper"/>
|
||||
</Preference>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/options">
|
||||
<SwitchPreference
|
||||
android:key="downgrade"
|
||||
android:title="@string/downgr"
|
||||
android:summary="@string/downgr_summary"
|
||||
android:defaultValue="true" />
|
||||
<SwitchPreference
|
||||
android:key="authcreak"
|
||||
android:title="@string/authcreak"
|
||||
android:summary="@string/authcreak_summary"
|
||||
android:defaultValue="false" />
|
||||
<SwitchPreference
|
||||
<Preference
|
||||
android:title="@string/hyperos_title"
|
||||
android:summary="@string/hyperos_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://git.disroot.org/mbcp/info/wiki/mbcpinstall_hyperos" />
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="downgrade"
|
||||
android:enabled="false"
|
||||
android:defaultValue="true" />
|
||||
<Preference
|
||||
android:key="digestCreak"
|
||||
android:enabled="false"
|
||||
android:title="@string/digestCreak"
|
||||
android:summary="@string/digestCreak_summary"
|
||||
android:defaultValue="true" />
|
||||
<Preference
|
||||
android:key="exactSigCheck"
|
||||
android:enabled="false"
|
||||
android:defaultValue="false"/>
|
||||
|
||||
<SwitchPreference
|
||||
<Preference
|
||||
android:key="bypassBlock"
|
||||
android:title="@string/bypassBlock"
|
||||
android:summary="@string/bypassBlock_summary"
|
||||
android:enabled="false"
|
||||
android:defaultValue="true" />
|
||||
|
||||
<SwitchPreference
|
||||
<Preference
|
||||
android:key="disableVerificationAgent"
|
||||
android:title="@string/disable_verification_agent_title"
|
||||
android:summary="@string/disable_verification_agent_summary"
|
||||
android:enabled="false"
|
||||
android:defaultValue="true" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
|
|
|||
Reference in a new issue