Skip to content

Commit

Permalink
[WIP] 2024/11/21 14:26
Browse files Browse the repository at this point in the history
  • Loading branch information
s1204IT committed Nov 21, 2024
1 parent c633335 commit 299eecd
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 26 deletions.
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
minSdk 24
//noinspection ExpiredTargetSdkVersion
targetSdk 22
versionCode 4
versionName "1.2"
versionCode 5
versionName "2.0"
proguardFiles += 'proguard-rules.pro'
multiDexEnabled false
}
Expand Down Expand Up @@ -41,7 +41,7 @@ android {
}

lintOptions {
ignore 'SdCardPath', 'deprecation'
ignore 'SdCardPath'
}
}

Expand Down
Binary file added app/src/main/assets/frp
Binary file not shown.
Binary file removed app/src/main/assets/gdisk
Binary file not shown.
Binary file added app/src/main/assets/parted
Binary file not shown.
73 changes: 51 additions & 22 deletions app/src/main/java/com/saradabar/easyblu/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,10 @@

public class MainActivity extends Activity {

private static final int DELAY_MS = 2000;
private static final int DELAY_MS = 800;
private static final String CT3 = "TAB-A04-BR3";
private static final String MMCBLK0 = "/dev/block/mmcblk0";
private static final String CTX = "TAB-A05-BD";
private static final String CTZ = "TAB-A05-BA1";
private static final String APP_PATH = "/data/data/com.saradabar.easyblu/files/";
private static final String DCHA_PACKAGE = "jp.co.benesse.dcha.dchaservice";
private static final String DCHA_SERVICE = DCHA_PACKAGE + ".DchaService";
private static final String DCHA_STATE = "dcha_state";
Expand All @@ -52,8 +51,9 @@ public class MainActivity extends Activity {
private static final String SHRINKER = "shrinker";
private static final String SHRINKER_SUCCESS = "Permissive";
private static final String MTK_SU = "mtk-su";
private static final String GDISK = "gdisk";
private static final String APP_PATH = "/data/data/com.saradabar.easyblu/files/";
private static final String PARTED = "parted";
private static final String PARTED_CMD = APP_PATH + PARTED + " -s " + MMCBLK0 + " ";
private static final String FRP = "frp";

DataOutputStream dos;
BufferedReader bufferedReader, bufferedReader1;
Expand All @@ -68,6 +68,7 @@ protected void onCreate(Bundle savedInstanceState) {
addText("Easy BLU へようこそ!");
addText("****************************");
addText("fingerprint:" + Build.FINGERPRINT);
//noinspection deprecation
init();
}

Expand All @@ -90,6 +91,7 @@ void init() {
new Handler().postDelayed(Build.PRODUCT.equals(CT3) ? this::checkFixed : this::overwriteFrp, DELAY_MS);
} else {
addText("- 通知:失敗しました。再度実行します。");
//noinspection deprecation
new Handler().postDelayed(Build.PRODUCT.equals(CT3) ? this::retryMtkSu : this::retryShrinker, DELAY_MS);
}
}, DELAY_MS);
Expand Down Expand Up @@ -141,6 +143,7 @@ void retryShrinker() {
new Handler().postDelayed(this::overwriteFrp, DELAY_MS);
} else {
addText("- 通知:失敗しました。再度実行します。");
//noinspection deprecation
new Handler().postDelayed(this::retryShrinker, DELAY_MS);
}
}
Expand All @@ -157,6 +160,7 @@ void retryMtkSu() {
new Handler().postDelayed(this::checkFixed, DELAY_MS);
} else {
addText("- 通知:失敗しました。再度実行します。");
//noinspection deprecation
new Handler().postDelayed(this::retryMtkSu, DELAY_MS);
}
}
Expand Down Expand Up @@ -239,6 +243,7 @@ public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
} catch (Exception e) {
addText("- 通知:FRP のコピーに失敗しました。");
addText(e.toString());
//noinspection deprecation
init();
return;
}
Expand Down Expand Up @@ -295,6 +300,7 @@ public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
} catch (Exception e) {
addText("- 通知:エラーが発生しました。");
addText(e.toString());
//noinspection deprecation
init();
}
}
Expand All @@ -304,43 +310,66 @@ public void onServiceDisconnected(ComponentName componentName) {
}
}, Context.BIND_AUTO_CREATE)) {
addText("- 通知:DchaService への接続に失敗しました。");
//noinspection deprecation
init();
}
}

void checkFixed() {
if (getExpdbSize().contains("124MB 134MB")) { // expdb
addText("- 通知:expdb は修正されていません。");
new Handler().postDelayed(this::fixExpdb, DELAY_MS);
} else {
addText("- 通知:expdb は既に修正済みです。");
new Handler().postDelayed(this::callBootloader, DELAY_MS);
}
}

String getExpdbSize() {
stringBuilder = new StringBuilder();
copyAssetsFile(this, GDISK);
sh(APP_PATH + MTK_SU);
execute(APP_PATH + GDISK + " -l " + MMCBLK0);
copyAssetsFile(this, PARTED);
execute(PARTED_CMD + "print");
String text = getText().toString();
addText("- 結果:");
addText(text);
return text;
}


void createFrp() {
addText("- 通知:expdb を削除します。");
sh(APP_PATH + MTK_SU);
execute("echo -e p\\nq | " + APP_PATH + GDISK + " " + MMCBLK0);
void fixExpdb() {
stringBuilder = new StringBuilder();
addText("- 通知:expdb を 9MB にリサイズします。");
execute(PARTED_CMD + "resizepart 13 133MB");
String text = getText().toString();
addText("- 結果:");
addText(text);
new Handler().postDelayed(this::createFrp, DELAY_MS);
}

void checkFixed() {
if (getExpdbSize().contains("262143")) { // expdb の終了セクタ
addText("- 通知:expdb は修正されていません。");
createFrp();
} else {
addText("- expdb は既に修正済みです。");
callBootloader();
}
void createFrp() {
stringBuilder = new StringBuilder();
addText("- 通知:frp を 1MB で生成します。");
execute(PARTED_CMD + "mkpart frp 133MB 134MB");
addText("- 通知:frp のラベルを設定します。");
execute(PARTED_CMD + "name 24 frp");
addText("- 通知:frp のフラグを修正します。");
execute(PARTED_CMD + "toggle 24 msftdata");
addText("- 通知:frp を修正します。");
copyAssetsFile(this, FRP);
execute("dd if=" + FRP + " of=" + MMCBLK0 + "p24");
String text = getText().toString();
addText("- 結果:");
addText(text);
new Handler().postDelayed(this::callBootloader, DELAY_MS);
}

void callBootloader() {

new AlertDialog.Builder(this)
.setCancelable(false)
.setTitle("再起動")
.setMessage("bootloader に再起動しますか?\n\n再起動後は、fastboot flashing unlock を実行してください。")
.setPositiveButton("再起動", (dialog, which) -> execute("reboot bootloader"))
.setNegativeButton("キャンセル", (dialog, which) -> dialog.dismiss())
.show();
}

void addText(String str) {
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,5 @@ fastboot flashing unlock
[SmileTabLabo/CVE-2022-38181: CVE-2022-38181 PoC for CTX(TAB-A05-BD) and CTZ(TAB-A05-BA1)](https://github.com/SmileTabLabo/CVE-2022-38181)
- **mtk-su**
[Amazing Temp Root for MediaTek ARMv8 \[2020-08-24\] | XDA Forums](https://xdaforums.com/t/3922213/)
- **gdisk**
- **parted**
[\[HOW TO\] BOOT FROM SD CARD \[SUCCESSFULLY\] on QMobile Z8 with BRICKED/DEAD eMMC | XDA Forums](https://xdaforums.com/t/3712171/)

0 comments on commit 299eecd

Please sign in to comment.