简单又强大的联发科手机PhilZ Touch Recovery安装器,详细教程 - 本文出自高州吧
原文地址: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 来操作。
再在谷歌市场搜索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
/emmc@android /system ext4 ro,noatime wait
/emmc@cache /cache ext4 noatime,nosuid,nodev,noauto_da_alloc wait
/emmc@usrdata /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安装器,详细教程 - 本文出自高州吧的更多相关文章
- centos7安装puppet详细教程(简单易懂,小白也可以看懂的教程)
简介: Puppet是一种linux.unix平台的集中配置管理系统,使用ruby语言,可配置文件.用户.cron任务.软件包.系统服务等.Puppet把这些系统实体称之为资源,它的设计目标是简化对这 ...
- 安卓手机安装虚拟定位的方法Xposed安装器+模拟位置(Xposed模块)
原文:https://www.52pojie.cn/thread-571328-1-1.html 未测试,据说只支持某些手机,小米和华为很难安装,建议买其他品牌. Xposed安装器步骤:·ROOT你 ...
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- (译文)12个简单(但强大)的JavaScript技巧(二)
原文链接: 12 Simple (Yet Powerful) JavaScript Tips 其他链接: (译文)12个简单(但强大)的JavaScript技巧(一) 强大的立即调用函数表达式 (什么 ...
- (译文)12个简单(但强大)的JavaScript技巧(一)
原文连接: 12 Simple (Yet Powerful) JavaScript Tips 我将会介绍和解析12个简单但是强大的JavaScript技巧. 这些技巧所有的JavaScript程序员都 ...
- 简单而强大的bitset
简单而强大的bitset 介绍 有些程序需要处理二进制有序集,标准库提供了bitset 类型,事实上,bitset 是一个二进制容器,容器中每一个元素都是一位二进制码,或为 0,或为 1. 基础 bi ...
- 让AI简单且强大:深度学习引擎OneFlow技术实践
本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...
- TYAttributedLabel——简单,强大的iOS属性文本控件
本文转载至 http://www.mobile-open.com/2015/86578.html TYAttributedLabel 简单,强大的属性文本的控件(无需了解CoreText),支持图文混 ...
- Spring 简单而强大的事务管理功能
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...
随机推荐
- getting start with storm 翻译 第八章 part-2
转载请注明出处:http://blog.csdn.net/lonelytrooper/article/details/12435641 The Bolts 首先我们看一下该topology中的标准bo ...
- C语言学习_从VC++6.0开始
前言: C语言是一门博大精深的语言,C语言往往是程序员以及所有软件行业从业者的第一门编程语言. 编程环境: 对于初学者来说,我一开始学习C语言,其实是用的turboc 2.0版本,这个很有历史感,但是 ...
- Mybatis+SpringMVC实现分页查询(附源码)
Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码) 一.项目搭建 关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQ ...
- android使用bintray发布aar到jcenter
前言 这两天心血来潮突然想把自己的android library的aar放到jcenter里面,这样一来自己便可以在任何时间任何地点通过internet得到自己的library的引用了,况且现在and ...
- nginx的upstream目前支持5种方式的分配
Nginx nginx的upstream目前支持5种方式的分配 FROM: 转载 1 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器, 如果后端服务器down掉, 能自动剔除. 2 w ...
- iOS开发系列之远程控制事件
在今天的文章中还剩下最后一类事件:远程控制,远程控制事件这里主要说的就是耳机线控操作.在前面的事件列表中,大家可以看到在iOS中和远程控制事件有关的只有一个- (void)remoteControlR ...
- 成为VR开发者的六个基本问题
2016-05-31 小小CTO 未来CTO 我常被问起能否提供更多的建议,帮助其他人进入这个行业,或是做VR开发人员该怎么赚钱.我很难具体回答,因为每个人的情况都很不一样.不过还是有一些建议适用于想 ...
- javabean、DTO、VO
一.javabean 一. javabean 是什么? Bean的中文含义是“豆子”,顾名思义,JavaBean是指一段特殊的Java类, 就是有默然构造方法,只有get,set的方法的java类的对 ...
- javascript实现Map
function Map() { this.elements = new Array(); // 获取MAP元素个数 this.size = function() { return this.elem ...
- HTML5之canvas
canvas的创建,canvas图片的绘制及图片的封装,矩形,矩形边框,圆,线的绘制. JavaScript代码如下:main.js /** * Created by zengkm on 15-9-1 ...