メインコンテンツへスキップ

8eBLUに使った日本語化バッチファイル

    @echo off
    chcp 65001 >nul
    setlocal enabledelayedexpansion
    
    cd /d "%~dp0"
    
    for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
    set "RED=%ESC%[31m"
    set "GRN=%ESC%[32m"
    set "YEL=%ESC%[33m"
    set "CYN=%ESC%[36m"
    set "RST=%ESC%[0m"
    
    echo %CYN%=================================================================%RST%
    echo  作者:酷安 @Kernix
    echo  Github:https://github.com/Linuxoid-cn
    echo  フィードバックメール:jehsianbenites@gmail.com
    echo  Telegram: @C_Valmont
    echo.
    echo %RED%[免責声明] 本スクリプトは技術交流目的のみです。%RST%
    echo %RED%BLアンロックによりデータ全消去・保証無効になります。%RST%
    echo %RED%本スクリプトによるいかなる損害も作者は一切責任を負いません。%RST%
    echo %CYN%=================================================================%RST%
    
    set /p confirm="リスクを理解した上で続行しますか?(Y で続行、それ以外は終了): "
    if /i "%confirm%" neq "Y" (
        echo ユーザーがキャンセルしました。
        pause
        exit /B 1
    )
    
    :menu
    set "factoryImages="
    set "unlockGPT="
    set "ifFlash="
    
    echo %CYN%==========================================%RST%
    echo       %GRN%解鎖する機種を選択してください%RST%
    echo %CYN%==========================================%RST%
    echo  1. Redmi K80 Pro
    echo  2. Redmi K90
    echo  3. Xiaomi 15
    echo  4. Xiaomi 15 Pro
    echo  5. Xiaomi 15 Ultra
    echo  6. Xiaomi Pad 8 Pro
    echo  %RED%0. 終了%RST%
    echo %CYN%==========================================%RST%
    
    set /p choice=番号を入力して Enter: 
    if "%choice%"=="1" (
        set factoryImages=Redmik80pro
        set unlockGPT=else
        set ifFlash=0
    )
    if "%choice%"=="2" (
        set factoryImages=Redmik90
        set unlockGPT=else
        set ifFlash=0
    )
    if "%choice%"=="3" (
        set factoryImages=Xiaomi15
        set unlockGPT=else
        set ifFlash=1
    )
    if "%choice%"=="4" (
        set factoryImages=Xiaomi15pro
        set unlockGPT=else
        set ifFlash=1
    )
    if "%choice%"=="5" (
        set factoryImages=Xiaomi15ultra
        set unlockGPT=else
        set ifFlash=0
    )
    if "%choice%"=="6" (
        set factoryImages=Xiaomipad8pro
        set unlockGPT=Xiaomipad8pro
        set ifFlash=0
    )
    if "%choice%"=="0" exit /B
    if "%factoryImages%"=="" goto menu
    
    set abl_path=%~dp0unlockFolder\factoryImages\%factoryImages%\images\abl.elf
    
    :warning_confirm
    echo %RED%=================================================================%RST%
    echo                      !!! 最終警告 !!! 
    echo %RED%=================================================================%RST%
    echo  %RED%BLアンロックを行うと【全データが消去】され、【保証が無効】になります!%RST%
    echo  %RED%Yを入力すると操作は取り消せません。%RST%
    echo %RED%=================================================================%RST%
    echo.
    echo %CYN%------------------------------------------%RST%
    echo ファイルパス確認:
    echo %YEL%%abl_path%%RST%
    echo %YEL%%~dp0unlockFolder\unlockGPT\%unlockGPT%\unlockgpt_both4.bin%RST%
    echo %CYN%------------------------------------------%RST%
    echo.
    
    set /p final_confirm="本当に続行しますか?(Y で実行): "
    if /i "%final_confirm%" neq "Y" (
        echo %YEL%[安全終了] スクリプトを終了します%RST%
        pause
        exit /B 1
    )
    
    echo %CYN%==========================================%RST%
    echo  %GRN%ADB接続を確認中...%RST%
    echo %CYN%==========================================%RST%
    
    :check_adb
    set count=0
    
    :wait_adb
    adb devices 2>nul | findstr /v /i "List" | findstr /i "device" >nul
    if %errorlevel% equ 0 goto adb_reboot
    set /a count+=1
    timeout /t 2 /nobreak >nul
    echo adb接続試行中 [%count%/10]
    if %count% lss 10 goto wait_adb
    echo.
    echo %RED%[!] デバイスが検出されません。%RST%
    echo %RED%    USBデバッグが有効か、ドライバが正しくインストールされているか確認してください。%RST%
    echo.
    echo 接続後にEnterを押してください...
    set /p "="
    goto check_adb
    
    :adb_reboot
    adb reboot bootloader
    timeout /t 1 /nobreak >nul
    
    echo %CYN%==========================================%RST%
    echo  %GRN%Fastboot接続を確認中...%RST%
    echo %CYN%==========================================%RST%
    
    :check_fastboot
    set "count=0"
    
    :loop_check
    fastboot devices 2>nul | findstr /i "." >nul
    if %errorlevel% equ 0 goto selinux_permissive
    set /a count+=1
    timeout /t 1 /nobreak >nul
    echo fastboot接続試行中 [%count%/10]...
    if %count% lss 10 goto loop_check
    echo.
    echo %RED%[!] Fastbootモードのデバイスが検出されません!%RST%
    echo %RED%    1. 電話がFastbootモードになっているか確認%RST%
    echo %RED%    2. Fastbootドライバがインストールされているか確認%RST%
    echo.
    echo 接続後にEnterを押してください...
    set /p "="
    goto check_fastboot
    
    :selinux_permissive
    fastboot oem set-gpu-preemption 0 androidboot.selinux=permissive
    fastboot continue || fastboot reboot
    timeout /t 1 /nobreak >nul
    
    :check_adb_2
    set count=0
    
    :wait_adb_2
    adb devices 2>nul | findstr /v /i "List" | findstr /i "device" >nul
    if %errorlevel% equ 0 goto check_selinux
    set /a count+=1
    timeout /t 2 /nobreak >nul
    echo adb接続試行中 [%count%/10]
    if %count% lss 10 goto wait_adb_2
    echo.
    echo データ線またはポートを確認してください
    echo Enterを押して再接続...
    set /p "="
    goto check_adb_2
    
    :check_selinux
    adb shell getenforce | findstr /i "Permissive" >nul || (
        echo %RED%[!] SELinuxがPermissiveになっていません。%RST%
        pause
        exit /B 1
    )
    
    :flash_abl
    if "%unlockGPT%"=="else" (
        adb push "%abl_path%" /data/local/tmp/abl && (
            adb shell service call miui.mqsas.IMQSNative 21 i32 1 s16 "dd" i32 1 s16 'if=/data/local/tmp/abl of=/dev/block/by-name/abl_a' s16 '/data/mqsas/log.txt' i32 60
            timeout /t 1 /nobreak >nul
            adb shell service call miui.mqsas.IMQSNative 21 i32 1 s16 "dd" i32 1 s16 'if=/data/local/tmp/abl of=/dev/block/by-name/abl_b' s16 '/data/mqsas/log.txt' i32 60
            timeout /t 1 /nobreak >nul
            ) || (
            echo %YEL%ABLの書き込みに失敗しました。通信を安定させてEnterで再試行%RST%
            set /p "="
            goto flash_abl
            )
    ) else (
        if "%unlockGPT%"=="Xiaomipad8pro" (
        adb push "%abl_path%" /data/local/tmp/abl/abl.elf && (
            adb shell service call miui.mqsas.IMQSNative 21 i32 1 s16 "dd" i32 1 s16 'if=/data/local/tmp/abl/abl.elf of=/dev/block/by-name/abl_a' s16 '/data/mqsas/log.txt' i32 60
            timeout /t 1 /nobreak >nul
            adb shell service call miui.mqsas.IMQSNative 21 i32 1 s16 "dd" i32 1 s16 'if=/data/local/tmp/abl/abl.elf of=/dev/block/by-name/abl_b' s16 '/data/mqsas/log.txt' i32 60
            timeout /t 1 /nobreak >nul
            ) || (
            echo %YEL%ABLの書き込みに失敗しました。通信を安定させてEnterで再試行%RST%
            set /p "="
            goto flash_abl
            )
        )
    )
    adb reboot bootloader
    timeout /t 1 /nobreak >nul
    
    :check_fastboot_1
    set "count=0"
    
    :loop_check_1
    fastboot devices 2>nul | findstr /i "." >nul
    if %errorlevel% equ 0 goto check_ifFlash
    set /a count+=1
    timeout /t 1 /nobreak >nul
    echo fastboot接続試行中 [%count%/10]...
    if %count% lss 10 goto loop_check_1
    echo.
    echo %YEL%手動でFastbootモードに入ってEnterを押してください%RST%
    set /p "="
    goto check_fastboot_1
    
    :check_ifFlash
    if "%ifFlash%"=="0" goto flash_gpt
    if "%ifFlash%"=="1" goto run_flashall
    
    :run_flashall
    cmd /c "%~dp0unlockFolder\factoryImages\%factoryImages%\flash_all.bat"
    timeout /t 1 /nobreak >nul
    
    :check_fastboot_2
    set "count=0"
    
    :loop_check_2
    fastboot devices 2>nul | findstr /i "." >nul
    if %errorlevel% equ 0 goto flash_gpt
    set /a count+=1
    timeout /t 1 /nobreak >nul
    echo fastboot接続試行中 [%count%/10]...
    if %count% lss 10 goto loop_check_2
    echo.
    echo %YEL%手動でFastbootモードに入ってEnterを押してください%RST%
    set /p "="
    goto check_fastboot_2
    
    :flash_gpt
    fastboot flash partition:4 "%~dp0unlockFolder\unlockGPT\%unlockGPT%\unlockgpt_both4.bin"
    timeout /t 1 /nobreak >nul
    fastboot boot "%~dp08750-Ennea.img"
    timeout /t 1 /nobreak >nul
    fastboot reboot bootloader
    timeout /t 1 /nobreak >nul
    
    :check_fastboot_3
    set "count=0"
    
    :loop_check_3
    fastboot devices 2>nul | findstr /i "." >nul
    if %errorlevel% equ 0 goto restore_gpt
    set /a count+=1
    timeout /t 1 /nobreak >nul
    echo fastboot接続試行中 [%count%/10]...
    if %count% lss 10 goto loop_check_3
    echo.
    echo %YEL%手動でFastbootモードに入ってEnterを押してください%RST%
    set /p "="
    goto check_fastboot_3
    
    :restore_gpt
    fastboot flash partition:4 "%~dp0unlockFolder\factoryImages\%factoryImages%\images\gpt_both4.bin"
    
    :check_bl
    set "bl_status=0"
    fastboot oem device-info > temp_bl.txt 2>&1
    type temp_bl.txt
    findstr /ic:"Device unlocked: true" temp_bl.txt >nul
    if !errorlevel! equ 0 (
        set "bl_status=1"
        echo %GRN%[成功] BLは既にアンロックされています%RST%
    ) else (
        set "bl_status=0"
        echo %YEL%[情報] BLはまだアンロックされていません%RST%
    )
    del temp_bl.txt
    echo.
    
    :check_abl
    set "frp_success=0"
    fastboot erase frp > temp_frp.txt 2>&1
    type temp_frp.txt
    findstr /ic:"FAILED" temp_frp.txt >nul
    if !errorlevel! neq 0 (
        set "frp_success=1"
        echo %GRN%[成功] Google FRPロックを解除しました%RST%
    ) else (
        set "frp_success=0"
    )
    del temp_frp.txt
    
    :check_status
    if "!bl_status!"=="1" if "!frp_success!"=="1" (
        echo %GRN%解鎖成功!%RST%
        goto flash_official
    )
    if "!bl_status!"=="0" if "!frp_success!"=="1" (
        echo %YEL%[警告] 工程ABLが正しく書き込まれていない可能性があります。%RST%
        echo 酷安 @Kernix に連絡して再実行してください。
        pause
        goto check_fastboot_1
    )
    if "!bl_status!"=="0" if "!frp_success!"=="0" (
        echo %RED%[危険] BLアンロック失敗かつABLが書き換わっています。%RST%
        echo 直ちに小米售后へ連絡してください。
        pause
        exit /B 1
    )
    if "!bl_status!"=="1" if "!frp_success!"=="0" (
        echo %RED%[エラー] 状態を確認しています...%RST%
        set /p "=" >nul
        goto check_bl
    )
    
    :flash_official
    echo.
    echo %CYN%-----------------------------------------------------------------%RST%
    echo %YEL%  [次の手順]%RST%
    echo    xiaomirom.com から公式線刷パッケージをダウンロード
    echo    公式パッケージ内の %GRN%flash_all.bat%RST% をこのウィンドウにドラッグ&ドロップして実行
    echo    または「刷机匣」などのツールで公式ROMをインストールしてください
    echo %CYN%-----------------------------------------------------------------%RST%
    echo %CYN%  スクリプトはここで終了しました。コマンドラインは継続中です...%RST%
    echo.
    
    if not defined IN_LOG_MODE cmd /k

    これを8e-unlock.batという名前で上書き保存して、実行してください。

    元


    あなたへのおすすめ