標籤: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安裝器,詳細教程 - 本文出自高州吧