簡單又強大的聯發科手機PhilZ Touch Recovery安裝器,詳細教程 - 本文出自高州吧

來源:互聯網
上載者:User

標籤:des   android   http   io   ar   color   os   使用   sp   

原文地址:http://bbs.gaozhouba.com/thread-19355-1-1.html

 

* * * * * * * * * * * * * * * * * * * * * * * * *

PhilZ Touch 6 Recovery

CWM Advanced Edition 6.x

* * * * * * * * * * * * * * * * * * * * * * * * *

 

 

喜歡刷機的朋友肯定對PhilZ Touch CWM Advanced Edition 非常熟悉了,令人興奮的是它現在已經完全支援聯發科晶片(MediaTek)的裝置了。

 

支援的聯發科裝置 - Arm11, Cortex-A9, Cortex-A7 

 

警告:

 

正常的情況下即使是刷入了錯誤的第三方recovery 也只會破壞掉recovery,但仍然是安全之上,這個需要自己承擔風險了。

 

PhilZ Touch 包含了眾多的特性,所以通常它能在recovery 分區大於6Mb 的MTK 裝置上工作,當然你也可以碰碰運氣。

 

測試已經在MT6573 & MT6577 老機器上可以正常使用。

 

首先,做一個原廠ROM 的完整備份,可以用MTK Droid Tools 來操作。

再在Google市場搜尋Flashify 並安裝來備份你當前的recovery(安全起見),boot.img 也需要備份。

解壓下載到的檔案到你的案頭,Win7或Win8[.1] 的話請禁用UAC 後重啟你的電腦,在雙擊啟動PhilZ.exe ,再按照提示操作。

 

 

MTK聯發科裝置上已知的問題

 

大多數老款中端聯發科手機的recovery 分區僅僅是6Mb 大小,如MT6589, MT6572。多數情況下不能正常使用。但是為什麼有些老裝置低端機MT6573,MT6577 能使用呢?因為它們的核心較小。已經很多網友反饋目前較新的聯發科手機的recovery 分區都有7Mb & 8Mb 大小,最新的MT6592 recovery 分區 甚至超過8Mb。

PhilZ Touch 當前不支援ubifs 檔案系統

PhilZ Touch 當前不支援帶有/custpack 分區的MTK 阿爾卡特機型

還沒有確認內建SD卡使用 /storage/usbdisk voldmanaged=usbdisk:auto 的最新voldmanaged 掛載點,所以它不會在採用了這種設計的掛載內建SD卡。

過去,有報告稱一些MTK手機上,recovery 下無法觸摸操作,可嘗試使用適用於你機型的其他不同版本核心。Recovery 是獨立存在的,所以GB(2.3.x)、ICS(4.0.x)或者JB(4.1.x)的核心下都可以正常工作!

flip screen 通過添加 Flip screen 標記(flag)後可以正常在 PhilZ Touch 上工作。但是, 它有個小毛病,就是螢幕會閃爍 & 使用虛擬鍵時會彈跳。所以,如果觸摸可以完全正常工作的話,我們可以不使用虛擬鍵或者永久禁用它。PhilZ Settings -> GUI Preferences -> Toggle Virtual Keys。

不要在鎖bootloader 的MTK機型上嘗試,已經確認會變磚。

 

這個工具會自動安裝Aroma FileManager(Aroma 檔案管理工具),一些MTK 裝置上Aroma 檔案管理工具不能啟動,出現的錯誤提示是  E:Can‘t make /tmp/update_binary -> Installation aborted . . . 

 

解決方案

 

首先使用自動模式(Auto),它會自動備份你當前的recovery。

拔掉資料線,正常使用手機狀態,從BackUp-MTK-Recovery 檔案夾複製recovery.img 到Stock 檔案夾,它會叫你插入USB 連結電腦。

現後用Notepad++ 編輯器開啟Stock/recovery/rmdisk/init.rc 並添加下面高亮的那行內容後儲存。

串連電腦,按OK,選擇你裝置解析度,它會自動執行安裝。

 

mkdir /emmc

    mkdir /system

    mkdir /data

    mkdir /cache

    mkdir /tmp <-添加這一行到 init.rc

    mount tmpfs tmpfs /tmp

 

    chown root shell /tmp

    chmod 0775 /tmp

 

現在,Aroma FileManager 應該能正常使用了。

 

個案分析,解析度為480x850的老ICS 4.04 MT6577 機型,移植的PhilZ Touch 不能啟動,然後發現是核心不能支援超過320x480解析度的PhilZ!

 

解決方案

 

執行步驟:Windows 的資源管理員 -> 顯示隱藏檔案及檔案夾 -> MTK_PhilZ -> bin -> 從res.7z 解壓出240x320_bg.png 並重新命名為stitch.png。

正常模式下插入資料線,選擇你的裝置解析度,它會問你是否擁有flipped screen。

複製粘貼解壓出來的240x320 stitch.png 到Stock/recovery/rmdisk/res/images 檔案夾下覆蓋,然後確認剛才的flipped screen 問題。

然後執行步驟:PhilZ Settings -> GUI Preferences -> Change Background -> Reset Koush Background。

 

關於掛載USB storage 的故障探測

 

對於MTK 裝置,fstab v2 也就是標準的fstab( unified fstab) 已經不再神秘了,現在在PhilZ Touch裡可已經完美掛載內外sdcard 啦。

 

我沒有聯發科的機子,由於不同的voldmanaged 路徑,所以在recovery裡很有可能不能掛載內外儲存空間。下面將去確認並解決這個問題。

 

開啟編輯器建立新文本(推薦Notepad++),複製下的內容並儲存到MTK_PhilZ 檔案夾作為解壓/打包移植的PhilZ Touch recovery.img 檔案。

 

MKT_unpack.bat

 

 

@echo off

cd %~dp0

chcp 1251

if (%1)==() (

        echo Select image

                goto end

)

 

setlocal enabledelayedexpansion

COLOR 0A

mode con:cols=65 lines=31

bin\sfk166.exe hexfind %1 -pat -bin /88168858/ -case >bin\offset.txt

bin\sfk166.exe hexfind %1 -pat -bin /FFFFFFFF1F8B08/ -case >>bin\offset.txt 

bin\sfk166.exe find bin\offset.txt -pat offset>bin\off2.txt

bin\sfk166.exe replace bin\off2.txt -binary /20/0A/ -yes

 

if exist %~N1 rd /s /q %~N1 >nul

 

set /A N=0

:loop

FOR /F %%G IN (bin\off2.txt) DO (

        if !N!==1 (

                set /A ofs1=%%G

                set /A N+=1

        )

        if !N!==3 (

                set /A ofs2=%%G

                set /A N+=1

        )

        if !N!==5 (

                set /A ofs3=%%G+4

                set /A N+=1

        )        

        if `%%G` EQU `offset` (

                set /A N+=1

        )

)

FOR %%i IN (%1) DO ( set /A boot_size=%%~Zi )

echo.

echo - size of %1 %boot_size% byte

echo - kernel offset     - %ofs1%

echo - ram_header offset - %ofs2%

echo - ram_disk offset   - %ofs3%

echo.

 

del bin\offset.txt

del bin\off2.txt

md %~N1

echo - extracting kernel_header...

bin\sfk166.exe partcopy %1 -fromto 0x0 %ofs1% %~N1\kernel_header -yes

echo - extracting kernel...

bin\sfk166.exe partcopy %1 -fromto %ofs1% %ofs2% %~N1\kernel -yes

echo - extracting ram_header...

bin\sfk166.exe partcopy %1 -fromto %ofs2% %ofs3% %~N1\ram_header -yes

echo - extracting ram_disk...

bin\sfk166.exe partcopy %1 -fromto %ofs3% %boot_size% %~N1\ram_disk.gz -yes

 

echo - unpack ram_disk.gz...

 

bin\7za.exe -tgzip x -y %~N1\ram_disk.gz -o%~N1 >nul

echo - unpack ram_disk.cpio...

 

md %~N1\rmdisk

cd %~N1

cd rmdisk

%~dp0bin\cpio.exe -i <../ram_disk

cd ..

cd ..

 

copy %1 %~N1 

echo.

echo - Done ^^!

echo.

pause

:end

 

 

MTK_pack.bat

 

 

@echo off

cd %~dp0

chcp 1251

if (%1)==() (

        echo Select folder

        goto end

)

setlocal enabledelayedexpansion

COLOR 0A

mode con:cols=60 lines=39

set pt=%~N1%~X1

echo %pt%

copy %pt%\ram_header %~N1\new_ram_with_header >nul

cd %pt%

%~dp0bin\chmod og=xr rmdisk

cd rmdisk

 

echo - pack rmdisk to cpio...

%~dp0bin\find . | %~dp0bin\cpio.exe -o -H newc -F ../new_ram_disk.cpio >nul

move ..\ram_disk ..\ram_disk_old >nul

copy ..\new_ram_disk.cpio ..\ram_disk

echo - pack rmdisk to gzip...

%~dp0bin\gzip -n -f ../ram_disk

echo - add header...

%~dp0bin\dd if=../ram_disk.gz >> ../new_ram_with_header

FOR %%i IN (../ram_disk.gz) DO ( set /A size=%%~Zi )

echo - new ramdisk %size% byte

%~dp0bin\sfk166 hex %size% -digits=8 >../../size.txt

FOR %%i IN (../../size.txt) DO ( set /A size=%%~Zi )

%~dp0bin\sfk166 split 1 ../../size.txt ../../1 >nul

FOR /F  %%i IN (../../1.part7) DO (set a1=%%i)

FOR /F  %%i IN (../../1.part8) DO (set a2=%%i)

 

FOR /F  %%i IN (../../1.part5) DO (set a3=%%i)

FOR /F  %%i IN (../../1.part6) DO (set a4=%%i)

 

FOR /F  %%i IN (../../1.part3) DO (set a5=%%i)

FOR /F  %%i IN (../../1.part4) DO (set a6=%%i)

 

FOR /F  %%i IN (../../1.part1) DO (set a7=%%i)

FOR /F  %%i IN (../../1.part2) DO (set a8=%%i)

echo %a7%%a8%>size.txt

echo %a5%%a6%>>size.txt

echo %a3%%a4%>>size.txt

echo %a1%%a2%>>size.txt

echo - add new size in header 0x%a1%%a2% 0x%a3%%a4% 0x%a5%%a6% 0x%a7%%a8%

%~dp0bin\sfk166.exe echo %a1%%a2% %a3%%a4% %a5%%a6% %a7%%a8% +hextobin ../../tmp1.dat

%~dp0bin\sfk166.exe partcopy ../../tmp1.dat 0 4 ../new_ram_with_header 4 -yes>nul

 

echo - make image...

%~dp0bin\mkbootimg.exe --kernel ../kernel --ramdisk ../new_ram_with_header -o ../new_image.img 

del size.txt >nul

copy ..\new_image.img %~dp0\new_image.img

move ..\ram_disk_old ..\ram_disk >nul

cd ..

cd ..

del size.txt >nul

del tmp1.dat>nul

del 1.part*>nul

 

echo.

echo - Done ^^!

echo.

pause

:end

 

僅需要拖動並放開移植的PhilZ Touch recovery.img 這個檔案到MTK_unpack.bat 去執行解壓,然後拖動並放開解壓出來的recovery 檔案夾到MTK_pack.bat 上。首先要關掉UAC哦。

 

或者你也可以下載Windows 的 Boot/Recovery repack utils 去解壓/打包移植的PhilZ Touch recovery。基本上,它的操作是完全一樣的,除了這個移植工具。它使用單獨的7za.exe 去操作 而不是依賴7z.dll 的7z.exe。

 

MT65xx 的recovery.fstab

 

# Android fstab file.

# The filesystem that contains the filesystem checker binary (typically /system) cannot

# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

 

#                              

/dev/bootimg    /bootimg      emmc     defaults                               defaults

/dev/recovery   /recovery     emmc     defaults                               defaults

/dev/uboot      /uboot        emmc     defaults                               defaults

/[email protected]   /system       ext4     ro,noatime                             wait

/[email protected]     /cache        ext4     noatime,nosuid,nodev,noauto_da_alloc   wait

/[email protected]   /data         ext4     noatime,nosuid,nodev,noauto_da_alloc   wait,encryptable=footer

 

# For MT6577

/devices/platform/mtk-sd.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:6 

/devices/platform/mtk-sd.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto

 

# For MT65xx

/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:6 

/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto

 

確認你MTK 裝置sdcard 的voldmanaged  路徑 -> adb shell find /sys -name mmc0。你不必要包含這個首要路徑/sys,那麼它會在/devices 開始搜尋。

 

確認你的內建sdcard 分區號(internal sdcard partition no.) -> adb shell cat /proc/dumchar_info 查看fat 分區 block 資訊 /dev/block/mmcblk0p6,作相應更新。。。

 

同時也需要更新到fstab.${ro.hardware} 。

 

正確檢查${ro.hardware} 的方法 -> adb shell getprop ro.hardware -> mt6577 那麼應該重新命名為 fstab.mt6577。

 

一些MTK機型不用fat 作為內建sdcard的掛載點,那麼這個工具將無法確認它,並且一直PhilZ Touch 將導致手機不能啟動或者無限重啟。。。

 

/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:    <- 空的

/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto

 

解決方案 - 添加 # 到這行的開始或者僅需刪除它,這樣就可以了

 

#/devices/platform/mtk-msdc.0/mmc_host/mmc0 auto auto defaults voldmanaged=sdcard0:    <- 空的

/devices/platform/mtk-msdc.1/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto

 

如何確認內建SD 的USB voldmanaged  掛載點? -> adb shell su -c "ls -R" > c:\users\你電腦的使用者名稱\desktop\usb.txt 

 

在裡面尋找任何usb 關鍵字,嘗試更新至 fstab.${ro.hardware} 及recovery.fstab 。兩個都需要,否則無法工作。

 

如果你的裝置是這樣的: /data/media 。那麼就無效了。

 

簡單又強大的聯發科手機PhilZ Touch Recovery安裝器,詳細教程 - 本文出自高州吧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.