Compare commits

...
Message SHA1
feat(func)!: remove github action workflow
i don't need this, as i build locally

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:46:58 +07:00
40f150e343
fix: prefs.xml: wrong link
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:44:58 +07:00
72326e5b16
feat: bump v1.5-mbcp
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:41:09 +07:00
296dec622e
feat: modify links & minor changes
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:40:29 +07:00
fbe6bd14cc
feat: strings.xml: new strings
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:26:53 +07:00
2b62431bd7
feat: add disabling exact signature check (#134)
Typically, installing a split APK enforces that the same signature is
present across all of the splits. This adds the option to disable that
check to allow installing splits with differing signatures.

rushii   authored and   Cuynu   commited 2025-09-08 02:26:09 +07:00
2988c0f618
feat: strings.xml: new strings
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2025-09-08 02:20:04 +07:00
977ae12af2
7 changed files with 33 additions and 49 deletions

View file

@ -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

View file

@ -16,8 +16,8 @@ android {
applicationId = "com.mbcp.helper"
minSdk = 28
targetSdk = 36
versionCode = 2030
versionName = "1.4-mbcp"
versionCode = 2031
versionName = "1.5-mbcp"
}
signingConfigs {

View file

@ -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);
}
});
}
}

View file

@ -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));
@ -406,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);
}

View file

@ -21,5 +21,7 @@
<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 tìm các cách riêng, gợi ý : Vá service.jar cho HyperOS để bỏ xác minh chữ ký APK. Chúng tôi không thể hỗ trợ thêm.</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>

View file

@ -23,4 +23,6 @@
<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>

View file

@ -8,14 +8,14 @@
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>
@ -31,7 +31,7 @@
android:summary="@string/hyperos_summary">
<intent
android:action="android.intent.action.VIEW"
android:data="https://t.me/miuistuff" />
android:data="https://git.disroot.org/mbcp/info/wiki/mbcpinstall_hyperos" />
</Preference>
<Preference
android:key="downgrade"
@ -41,6 +41,10 @@
android:key="digestCreak"
android:enabled="false"
android:defaultValue="true" />
<Preference
android:key="exactSigCheck"
android:enabled="false"
android:defaultValue="false"/>
<Preference
android:key="bypassBlock"