Skip to content

Instantly share code, notes, and snippets.

@scribetw
Last active February 8, 2017 12:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scribetw/ba5f7f729049101ce955a58a75fdb94f to your computer and use it in GitHub Desktop.
Save scribetw/ba5f7f729049101ce955a58a75fdb94f to your computer and use it in GitHub Desktop.
https://www.kocpc.com.tw/archives/4209 Android 6.0 還原碰到 Failure [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE] 解法
@echo off
rem adb -d backup -noapk com.android.providers.settings -f setting.ab
rem "C:\Program Files (x86)\Java\jre7\bin\java" -jar abe.jar unpack setting.ab setting.tar >> e.log
rem echo "test"
SETLOCAL ENABLEDELAYEDEXPANSION
rem Find Java
rem set JAVA_HOME=
rem for /f %%a in ('find_java.exe -s') do set JAVA_HOME=%%a
rem if not defined JAVA_HOME goto ERROR_NOJAVA
cls
rem 重新啟動adb
echo adb重新啟動中...
adb -d kill-server
IF ERRORLEVEL 1 goto ERROR_ADBSTARTUP
adb -d start-server
IF ERRORLEVEL 1 goto ERROR_ADBSTARTUP
echo 偵測手機連線...
echo 請開啟手機解鎖畫面同意使用adb偵錯
adb -d wait-for-device
IF ERRORLEVEL 1 goto ERROR_WAIT_DEVICE
FOR /F "tokens=1" %%i IN ('adb -d shell getprop ro.product.manufacturer') DO (
set manufacturer=%%i
)
FOR /F "delims=/" %%a IN ('adb -d shell getprop ro.product.model') DO (
set model=%%a
)
FOR /F "tokens=1" %%x IN ('adb -d shell getprop ro.build.version.release') DO (
set version=%%x
)
echo 已偵測到手機...
echo 手機型號: %manufacturer% %model%
echo Android 版本:%version%
if %version% LSS 4 goto ERROR_VERSION
echo ======================================
echo 正在還原請觸控螢幕還原
adb -d restore backup.ab
IF ERRORLEVEL 1 goto ERROR_RESTORE
echo 正在還原,請等帶手機螢幕出現還原完成....按下任意按鍵關閉此視窗
echo ======================================
echo 正再將備份的LINE升級安裝到手機內
adb -d install -r LINE_OLD.apk
IF ERRORLEVEL 1 goto ERROR_BACKUP_LINE_INSTALL
echo 還原完成...按下任意按鍵關閉此視窗
pause
exit
:ERROR_RESTORE
echo ========================================
echo 發生錯誤:你的adb restore和手機端發生問題
echo 請檢查電腦是否有安裝手機的USB偵錯驅動
echo 也請確定電腦只連接了一隻手機
pause
exit
:ERROR_BACKUP_LINE_INSTALL
echo ========================================
echo 發生錯誤:安裝備份的LINE失敗
pause
exit
:ERROR_VERSION
echo ===================================================
echo 發生錯誤:Android版本需要4.0以上...才可以使用本程式
pause
exit
:ERROR_WAIT_DEVICE
echo ===================================================
echo 發生錯誤:等待裝置上同意使用adb偵錯模式
pause
exit
:ERROR_ADBSTARTUP
cls
echo adb重新啟動失敗
pause
exit
@echo off
rem adb -d backup -noapk com.android.providers.settings -f setting.ab
rem "C:\Program Files (x86)\Java\jre7\bin\java" -jar abe.jar unpack setting.ab setting.tar >> e.log
rem echo "test"
SETLOCAL ENABLEDELAYEDEXPANSION
rem Find Java
set JAVA_HOME=
for /f %%a in ('find_java.exe -s') do set JAVA_HOME=%%a
if not defined JAVA_HOME goto ERROR_NOJAVA
cls
rem 重新啟動adb
echo adb重新啟動中...
adb -d kill-server
IF ERRORLEVEL 1 goto ERROR_ADBSTARTUP
adb -d start-server
IF ERRORLEVEL 1 goto ERROR_ADBSTARTUP
echo 偵測手機連線...
echo 請開啟手機解鎖畫面同意使用adb偵錯
adb -d wait-for-device
IF ERRORLEVEL 1 goto ERROR_WAIT_DEVICE
FOR /F "tokens=1" %%i IN ('adb -d shell getprop ro.product.manufacturer') DO (
set manufacturer=%%i
)
FOR /F "delims=/" %%a IN ('adb -d shell getprop ro.product.model') DO (
set model=%%a
)
FOR /F "tokens=1" %%x IN ('adb -d shell getprop ro.build.version.release') DO (
set version=%%x
)
echo 已偵測到手機...
echo 手機型號: %manufacturer% %model%
echo Android 版本:%version%
if %version% LSS 4 goto ERROR_VERSION
echo ======================================
echo 請到手機端螢幕點選備份我的資料,密碼請不要輸入
adb -d backup -noapk jp.naver.line.android -f db.ab
IF ERRORLEVEL 1 goto ERROR_BACKUP
echo 正在取得資料庫的...
%JAVA_HOME% -jar abe.jar unpack db.ab db.tar >> e.log
IF ERRORLEVEL 1 goto ERROR_ABE_UNPACK
:next1
tar -xvf db.tar >> e.log
tar -tf db.tar > db.list
IF ERRORLEVEL 1 goto ERROR_7Z_ERROR
sqlite3.exe -separator "" -batch apps\jp.naver.line.android\db\naver_line "DELETE FROM setting WHERE key like '%%';"
IF ERRORLEVEL 1 goto ERROR_SQLLITE3
del apps\jp.naver.line.android\sp\jp.naver.line.android.settings.xml
cat db.list | pax -wd > new_db.tar
%JAVA_HOME% -jar abe.jar pack new_db.tar new_db.ab
IF ERRORLEVEL 1 goto ERROR_PACK
:next2
echo 正在準備還原,請點選螢幕的還原
adb -d restore new_db.ab
IF ERRORLEVEL 1 goto ERROR_RESTORE
echo 執行成功!你可以開啟LINE進行重登
echo 請記得到Play商店升級最新版LINE
del db.ab
del db.list
del db.tar
del e.log
del new_db.ab
del new_db.tar
rmdir /s/q apps
pause
exit
:ERROR_ADBSTARTUP
cls
echo adb重新啟動失敗
pause
exit
:ERROR_WAIT_DEVICE
cls
echo adb無法等待裝置
pause
exit
:ERROR_VERSION
echo ===================================================
echo 發生錯誤:Android版本需要4.0以上...才可以使用本程式
pause
exit
:ERROR_SHELL
echo ===================================================
echo 發生錯誤:連接手機失敗
pause
exit
:ERROR_ANDROID_ID
echo ====================================================
echo Android ID不能為空白
pause
exit
:ERROR_RESTORE
echo ========================================
echo 還原失敗...
pause
exit
:ERROR_NOJAVA
echo =========================================
echo 請先安裝Java 7(JRE 7)
echo 安裝網址:http://www.java.com/zh_TW/download/
pause
exit
:ERROR_ABE_UNPACK
echo =========================================
echo abe unpack 錯誤
echo ab檔案 unpack tar錯誤
pause
exit
:ERROR_OLD_LINE_INSTALL
echo =========================================
echo LINE降版錯誤,可能同目錄下找不到LINE_OLD.apk
pause
exit
:ERROR_LINEBACKUP
echo ===================================================
echo 發生錯誤:備份APK檔失敗
pause
exit
:ERROR_INSTALL_BACKUP_APK
echo 發生錯誤:安裝升級備份的APK檔失敗
pause
exit
:ERROR_JAVA_32
echo ==========================================
echo 找不到Java 7 (JRE 7)路徑
echo 尋找Java 7 (JRE 7) (x86)路徑
goto JAVA_64
:ERROR_JAVA_64
echo ========================================
echo 找不到Java 7 (JRE 7) (x86)路徑
echo 請先安裝Java 7(JRE 7)
echo 安裝網址:http://www.java.com/zh_TW/download/
pause
exit
:JAVA_64
"C:\Program Files (x86)\Java\jre7\bin\java" -jar abe.jar unpack db.ab db.tar >> e.log
IF ERRORLEVEL 1 goto ERROR_NOJAVA
goto next1
:abeerror
echo ==============================
echo 錯誤!無法取得備份檔案
pause
exit
:ERROR_7Z_ERROR
echo ==============================
echo 解壓執行檔不存在
pause
exit
:extracterror
echo ==============================
echo 解壓縮出來的資料庫錯誤
pause
exit
:ERROR_SQLLITE3
echo ==============================
echo 資料庫執行檔不存在
pause
exit
:DATA_ERROR
echo ==============================
echo 取得AuthKey失敗
pause
exit
:ERROR_WAIT_DEVICE
echo ===================================================
echo 發生錯誤:等待裝置上同意使用adb偵錯模式
pause
exit
:ERROR_PACK
echo ==============================
echo abe pack 錯誤
echo abe pack to ab檔案錯誤
pause
exit
:PACK64
"C:\Program Files (x86)\Java\jre7\bin\java" -jar abe.jar pack new_db.tar new_db.ab
IF ERRORLEVEL 1 goto ERROR_NOJAVA
goto next2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment