惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - Colin_Ye

Mac OS X 中 emacs 24.x+clojure+lein2.x+slime简单编程环境的搭建 JDK中并发状态管理注意事项 JDK中可扩展性和线程安全的注意事项 并发中状态的处理 并发的任务分工 语言分类,我接触和我想学习的 CPU的内部物理结构介绍【转】自己留着看看 提高编程技巧的十大方法 关于大型机的入门介绍【转】 什么是S-OFF【转】 Android 常识【转·】 关于Bootloader、Recovery 比较全的Linux目录存放内容 tomcat 内存问题 部分银行核心系统的资料 【转】 一些软件设计的原则【转】——本来想自己总结,结果发现个更全的, 公私钥与加密、签名 SOA复习与总结——企业应用系统集成的总结(1)——基本原则和术语介绍 重读模式与架构(2)——层次划分的依据和角色职责
关于APK、ROM、SPL、Superuser、ROOT、recovery【转】此文有很多不当之处,但还可以看看
Colin_Ye · 2011-06-10 · via 博客园 - Colin_Ye

 注:Bootloader、固件等术语可以参考嵌入式开发的书籍,或者linux内核方面的书

关于APK、ROM、SPL、Superuser、ROOT、recovery
真正的智能手机系统是以电脑为参照物的,所以它应该有操作系统(我们一般称呼它为ROM。注:应该说操作系统的镜像文件)、硬件驱动(信号模块,我们一般称呼它为Radio)、初启动用的CMOS、BIOS(我们一般叫它SPL、HBOOT、Bootloader,调试工程模式)、恢复和操作系统用的字符命令窗口(比如DOS那种命令执行系统,我们一般在手机叫它超级终端或者Superuser)、系统管理员的权限(不是破解硬件,不是IP所谓的解锁,而是类似Win7 中管理员的权限,我们一般叫它root权限)、执行底层操作的界面(进行Ghost操作的工程模式,我们一般叫它recovery)

一、 recovery

什么是recovery?
recovery 就是你用 home键+开机键开机后能进入的一个界面(工程模式),在这个界面你可以直接用sd 卡上的zip的rom升级或者备份你的系统.
此外,一般刷rom之前最好wipe一下(wipe只是抹除rom 以外的个人数据,不会影响rom 本身),也就是返回出厂设置一下比较好,但是这样就会丢失你的所有软件,短信彩信,联系人(备份在google上没有关系)和设置等等,备份或者不wipe 都可以

recovery的界面介绍
1、Reboot system now——重启

2、Backup/Restore——备份和还原
可以完整的将系统备份至SD卡中,适合经常刷机的朋友。备份还原中还包含以下选项
Nand backup——Nand 备份
Nand + ext backup——Nand 备份(系统和ext 分区一同备份)
Nand restore——还原(就是还原3-1、3-2 的最后一次备份)
BART backup——BART 备份 (包括系统和ext 分区)
BART restore——还原最后一次的BART备份

3、Flash zip from sdcard——从sd卡根目录的.zip ROM 刷机包刷机
这项算是常见的了,现在的新版本的recovery,一般都不需要把刷机包重命名为UPDATE.ZIP了,可以直接刷机。

4、Wipe——清除数据
这一项一般是在刷机前需要做的,清空个人数据,一般这个大项还包括以下的小项。
Wipe data/factory reset——清除内存数据和缓存数据
Wipe Dalvik-cache——清除缓存数据 + ext 分区内数据
Wipe SD:ext partition——只清除ext 分区内数据
Wipe battery stats——清除电池数据
Wipe rotate settings——清除传感器内设置的数据

5、Partition sdcard——分区sd 卡
这个选项主要是用来做APP 2 SD的,需要将卡分为LINUX下的格式ext,一般有以下选项。
Partition SD——自动为sd 卡分区
Repair SD:ext——修复ext 分区
SD:ext2 to ext3——将ext2 分区转换为ext3 分区(推荐)
6-4、SD:ext3 to ext4——将ext3 分区转换为ext4 分区(C4 卡不推荐,C6 卡推荐)

二、 foastboot
从字面上来看是【快速启动】的意思,也算是一个刷机界面,不过比recovery更加底层.这个底层是更加接近硬件层的意思.
两个都很重要,不过fastboot更为主要.当你不能进入recovery的时候,不要紧张,你还能进fastboot挽救,不过当你连fastboot都不能进入的时候,那可真就是砖了.
通俗的说 recovery就好比外套,fastboot就好比内裤.当你的外套没了的时候,你还有内裤,这个时候顶多被人说成是臭流氓.不过当你内裤都没了的时候,那可就是耍流氓了,到时会有警察叔叔请你喝茶的.
为了使用Fastboot功能.您必须root您的设备.并获得S-OFF的SPL.你的电脑还必须装有ADB驱动.
进入Fastboot的方式是关机状态下按返回+开机.

Fastboot使用方式: fastboot [ <选项> ] <命令>
解释:
[]括起来表示这个是可选的.
<>括起来表示这个是必须的.

可用命令:
update <文件名> 从官方update.zip升级系统.该update.zip必须是官方的
flashall ‘flash boot’ + ‘flash system’
flash <分区名> [ <文件名> ] 将文件写入分区.文件必须正确的格式.分区名有但不限于system,recovery,boot,splash1,hboot,radio,userdata,cache
erase <分区名> 清空一个分区.
getvar <参数名> 显示一个启动参数
boot <内核文件> [ ] 将电脑上的内核下载到手机并用该内核启动系统.
flash:raw boot <内核文件> [ ] 创建boot.img并下载到手机启动系统.
devices 列出所有与电脑连接的设备.
reboot 正常启动系统
reboot-bootloader 启动系统到hboot

选项:
-w 清空用户数据分区和缓存分区.相当于recvery中的”wipe data/factory reset”
-s <串口号> 置顶要操作的设备的串口号
-p <产品名> 指定要操作的设备的产品名.比如hero,bravo,dream…
-c <命令行> 用命令行替换系统的启动命令行.

分区解释:
system:系统分区.我们刷机器一般就是刷的这个分区.
userdata:数据分区.
cache:缓存分区
recovery:Recovery分区.
boot:存放内核和ramdisk的分区.
hboot:这个是SPL所在的分区.很重要哦.也是fastboot所在的分区.刷错就真的变砖了.
splash1:这个就是开机第一屏幕了.
radio:这个是无线所在的分区.
misc:其他分区.放的是htc的一些东西.

比如你的机器是G3.那么您的机器需要具备的条件是:SPL版本1.76.2007 S-OFF
现在您需要刷recovery.那么您需要找对recovery版本.推荐RA-hero-1.6.2.img
将您的RA-hero-1.6.2.img和fastboot.exe放入系统的某一目录.比如D:\
点击开始–>运行–>输入cmd–>回车.
在黑色的窗口中输入.
D: <回车>
fastboot.exe flash recovery d:\RA-hero-1.6.2.img <回车>

三、SPL HBOOT Bootloader

什么是SPL?在HTC的Android 系统的系列手机中,HBOOT就是SPL
SPL英文全称是SecondProgramLoader,“第二次装系统”,就是负责装载操作系统到RAM中。另外SPL还包括许多系统命令,如mtty中使用的命令等。SPL损坏了还可以用烧录器重写。

SPL一般提供这几部分功能:检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连接,并接受和执行相应命令。它里面包含许多命令,像r2sd,l,doctest(危险命令,他会擦除gsmdata)等。我们常说的三色屏就是由SPL驱动的。检测SD卡,当你把一些特殊制作的SD卡插入后,SPL可以在启动时校验并根据SD卡内容刷机或执行一些命令。这有点类似于PC 的从软驱启动。简单点说,SPL就相当于PC的BIOS。

SPL有什么用?
SPL主要作用就是引导系统启动。

四、RADIO

什么是RADIO?
这个Radio指代的是通讯模块,就是手机里面负责信号部分的模块,PDA类型的手机,基本都强调这么个概念。一个是PDA,一个是手机(貌似是句废话- -),举个很简单的例子,以三星的PPC手机为例,比如i718.比如i908,他们在刷机的时候(所谓刷机就是重装系统)一般都是分两部分,第一部分刷手机部分,第二部分刷PDA部分,而且两部分基本不相干。 大家也可以这么去理解G1,Radio负责信号部分,固件包呢,是负责电话(包括电话功能跟PDA功能)。

最简单的你可以把它理解为无线(包括蓝牙 通话 WIFI)的驱动程序。

RADIO有什么用?
刷新版的RADIO可以解决通话或者WIFI以及蓝牙的一些问题,比如正在听音乐,来电话了,接完电话歌曲不播放了,这种常见问题。

五、APP TO SDGoogle 手机的软件为了安全性和稳定性都是默认安装到手机内存里,但是手机内存有限,所以我们会做app2sd 操作,来让我们安装的软件放到sd卡上,而Google 的android 系统是基于Linux 的,所以存储卡上本身的Fat 格式是不会被识别的,所以我们要分区(第二分区)出来,格式成Linux 认识的ext2 或3 或4 格式,在用链接命令,把这个分区映射成一个系统文件夹system/sd(大概这个意思),把所有的软件装到这个“文件夹”下,这就是app2sd 的操作。需要ROM 支持并开启app2sd 功能。
app2sd 的操作其实是牺牲了一部分软件的速度和稳定性来换取更多的手机内存安装更多的软件。另外,app2sd只是把软件放到了sd卡上,运行软件还是需要占用手机的内存的,所以,你装了软件之后,一般手机内存还是会减少一些。你如果安装的软件在70个以内,个人觉得没有必要,呵呵,如果很多游戏软件除外。此外,使用app2sd 最大的好处就是,刷一个带app2sd 的rom 之后,以后升级这个rom(依然带app2sd)的时候,你的软件都会完整保存(个别除外,比如htc input chinese需要重新添加几个文件到system/lib下),不过很多ROM 是需要Wipe ext 分区的,也就不能保留了。
目前来看我们现在所使用的Android 各种软件暂时还没有进行app2sd 的必要

如何开启APP2SD
前面提到了”一键ROOT”,APP2SD也不不甘示弱,有网友开创了傻瓜化APP2SD.
详细教程点这里

六、金卡
一般来说,官方刷机包通常加入了对手机地区的校对,比如非港版手机一般无法直接刷针对港版手机发布的升级包(刷机包),这时候,需要制作一个特殊的金卡来使刷机包跳过对手机地区的检测,直接进行刷机,从而达到强刷的效果。实际上,金卡只是一张普通的SD卡,通过一些简单的操作,来使普通SD卡有金卡的功效,同时,SD卡里的数据并不会消失,SD卡仍可正常使用。
通俗的说,就像地铁里乞讨卖艺的,他并不是瞎子,但是他装成瞎子,是为了博得你的同情.你看他可怜就会给他钱,那他的目的就达到了.金卡就跟这个意思

GPHONE金卡制作

七.ROOT干什么用的?
root 就是你手机的boss,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的人不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些hacker 有机会入侵你的手机(貌似还没有出来这类黑客)。
既然root 这么危险,我们为什么还要去获取它?其实用root 的权限主要是因为我们生在天朝,我们很多东西是受限制的,我们只能利用这些权限来做我们被限制的去做的事情,比如Google 禁止我们看到市场里很多免费或付费软件,我们可以用marketenabler 来进去看;再比如国庆以来GFW 把我们的市场干掉了,很多朋友只能看不能下,不能绑定gmail,我们可以修改hosts 来搞定他们,但这些都需要root权限。

比如目前所有在hero 上截屏的软件都需要root 权限,没有root 权限,像Drocap、Shootme、Picme等等这类截屏软件就不能使用(当然,我们可以连线电脑,使用 91助手 在电脑上截取自己想要的hero 屏图).

关于APK、ROM、SPL、Superuser、ROOT、recovery
真正的智能手机系统是以电脑为参照物的,所以它应该有操作系统(我们一般称呼它为ROM)、硬件驱动(信号模块,我们一般称呼它为Radio)、初启动用的CMOS、BIOS(我们一般叫它SPL,调试工程模式)、恢复和操作系统用的字符命令窗口(比如DOS那种命令执行系统,我们一般在手机叫它超级终端或者Superuser)、系统管理员的权限(不是破解硬件,不是IP所谓的解锁,而是类似Win7 中管理员的权限,我们一般叫它root权限)、执行底层操作的界面(进行Ghost操作的工程模式,我们一般叫它recovery)

一、 recovery

什么是recovery?
recovery 就是你用 home键+开机键开机后能进入的一个界面(工程模式),在这个界面你可以直接用sd 卡上的zip的rom升级或者备份你的系统.
此外,一般刷rom之前最好wipe一下(wipe只是抹除rom 以外的个人数据,不会影响rom 本身),也就是返回出厂设置一下比较好,但是这样就会丢失你的所有软件,短信彩信,联系人(备份在google上没有关系)和设置等等,备份或者不wipe 都可以

recovery的界面介绍
1、Reboot system now——重启

2、Backup/Restore——备份和还原
可以完整的将系统备份至SD卡中,适合经常刷机的朋友。备份还原中还包含以下选项
Nand backup——Nand 备份
Nand + ext backup——Nand 备份(系统和ext 分区一同备份)
Nand restore——还原(就是还原3-1、3-2 的最后一次备份)
BART backup——BART 备份 (包括系统和ext 分区)
BART restore——还原最后一次的BART备份

3、Flash zip from sdcard——从sd卡根目录的.zip ROM 刷机包刷机
这项算是常见的了,现在的新版本的recovery,一般都不需要把刷机包重命名为UPDATE.ZIP了,可以直接刷机。

4、Wipe——清除数据
这一项一般是在刷机前需要做的,清空个人数据,一般这个大项还包括以下的小项。
Wipe data/factory reset——清除内存数据和缓存数据
Wipe Dalvik-cache——清除缓存数据 + ext 分区内数据
Wipe SD:ext partition——只清除ext 分区内数据
Wipe battery stats——清除电池数据
Wipe rotate settings——清除传感器内设置的数据

5、Partition sdcard——分区sd 卡
这个选项主要是用来做APP 2 SD的,需要将卡分为LINUX下的格式ext,一般有以下选项。
Partition SD——自动为sd 卡分区
Repair SD:ext——修复ext 分区
SD:ext2 to ext3——将ext2 分区转换为ext3 分区(推荐)
6-4、SD:ext3 to ext4——将ext3 分区转换为ext4 分区(C4 卡不推荐,C6 卡推荐)

二、 foastboot
从字面上来看是【快速启动】的意思,也算是一个刷机界面,不过比recovery更加底层.这个底层是更加接近硬件层的意思.
两个都很重要,不过fastboot更为主要.当你不能进入recovery的时候,不要紧张,你还能进fastboot挽救,不过当你连fastboot都不能进入的时候,那可真就是砖了.
通俗的说 recovery就好比外套,fastboot就好比内裤.当你的外套没了的时候,你还有内裤,这个时候顶多被人说成是臭流氓.不过当你内裤都没了的时候,那可就是耍流氓了,到时会有警察叔叔请你喝茶的.
为了使用Fastboot功能.您必须root您的设备.并获得S-OFF的SPL.你的电脑还必须装有ADB驱动.
进入Fastboot的方式是关机状态下按返回+开机.

Fastboot使用方式: fastboot [ <选项> ] <命令>
解释:
[]括起来表示这个是可选的.
<>括起来表示这个是必须的.

可用命令:
update <文件名> 从官方update.zip升级系统.该update.zip必须是官方的
flashall ‘flash boot’ + ‘flash system’
flash <分区名> [ <文件名> ] 将文件写入分区.文件必须正确的格式.分区名有但不限于system,recovery,boot,splash1,hboot,radio,userdata,cache
erase <分区名> 清空一个分区.
getvar <参数名> 显示一个启动参数
boot <内核文件> [ ] 将电脑上的内核下载到手机并用该内核启动系统.
flash:raw boot <内核文件> [ ] 创建boot.img并下载到手机启动系统.
devices 列出所有与电脑连接的设备.
reboot 正常启动系统
reboot-bootloader 启动系统到hboot

选项:
-w 清空用户数据分区和缓存分区.相当于recvery中的”wipe data/factory reset”
-s <串口号> 置顶要操作的设备的串口号
-p <产品名> 指定要操作的设备的产品名.比如hero,bravo,dream…
-c <命令行> 用命令行替换系统的启动命令行.

分区解释:
system:系统分区.我们刷机器一般就是刷的这个分区.
userdata:数据分区.
cache:缓存分区
recovery:Recovery分区.
boot:存放内核和ramdisk的分区.
hboot:这个是SPL所在的分区.很重要哦.也是fastboot所在的分区.刷错就真的变砖了.
splash1:这个就是开机第一屏幕了.
radio:这个是无线所在的分区.
misc:其他分区.放的是htc的一些东西.

比如你的机器是G3.那么您的机器需要具备的条件是:SPL版本1.76.2007 S-OFF
现在您需要刷recovery.那么您需要找对recovery版本.推荐RA-hero-1.6.2.img
将您的RA-hero-1.6.2.img和fastboot.exe放入系统的某一目录.比如D:\
点击开始–>运行–>输入cmd–>回车.
在黑色的窗口中输入.
D: <回车>
fastboot.exe flash recovery d:\RA-hero-1.6.2.img <回车>

三、SPL HBOOT Bootloader

什么是SPL?在HTC的Android 系统的系列手机中,HBOOT就是SPL
SPL英文全称是SecondProgramLoader,“第二次装系统”,就是负责装载操作系统到RAM中。另外SPL还包括许多系统命令,如mtty中使用的命令等。SPL损坏了还可以用烧录器重写。

SPL一般提供这几部分功能:检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连接,并接受和执行相应命令。它里面包含许多命令,像r2sd,l,doctest(危险命令,他会擦除gsmdata)等。我们常说的三色屏就是由SPL驱动的。检测SD卡,当你把一些特殊制作的SD卡插入后,SPL可以在启动时校验并根据SD卡内容刷机或执行一些命令。这有点类似于PC 的从软驱启动。简单点说,SPL就相当于PC的BIOS。

SPL有什么用?
SPL主要作用就是引导系统启动。

四、RADIO

什么是RADIO?
这个Radio指代的是通讯模块,就是手机里面负责信号部分的模块,PDA类型的手机,基本都强调这么个概念。一个是PDA,一个是手机(貌似是句废话- -),举个很简单的例子,以三星的PPC手机为例,比如i718.比如i908,他们在刷机的时候(所谓刷机就是重装系统)一般都是分两部分,第一部分刷手机部分,第二部分刷PDA部分,而且两部分基本不相干。 大家也可以这么去理解G1,Radio负责信号部分,固件包呢,是负责电话(包括电话功能跟PDA功能)。

最简单的你可以把它理解为无线(包括蓝牙 通话 WIFI)的驱动程序。

RADIO有什么用?
刷新版的RADIO可以解决通话或者WIFI以及蓝牙的一些问题,比如正在听音乐,来电话了,接完电话歌曲不播放了,这种常见问题。

五、APP TO SDGoogle 手机的软件为了安全性和稳定性都是默认安装到手机内存里,但是手机内存有限,所以我们会做app2sd 操作,来让我们安装的软件放到sd卡上,而Google 的android 系统是基于Linux 的,所以存储卡上本身的Fat 格式是不会被识别的,所以我们要分区(第二分区)出来,格式成Linux 认识的ext2 或3 或4 格式,在用链接命令,把这个分区映射成一个系统文件夹system/sd(大概这个意思),把所有的软件装到这个“文件夹”下,这就是app2sd 的操作。需要ROM 支持并开启app2sd 功能。
app2sd 的操作其实是牺牲了一部分软件的速度和稳定性来换取更多的手机内存安装更多的软件。另外,app2sd只是把软件放到了sd卡上,运行软件还是需要占用手机的内存的,所以,你装了软件之后,一般手机内存还是会减少一些。你如果安装的软件在70个以内,个人觉得没有必要,呵呵,如果很多游戏软件除外。此外,使用app2sd 最大的好处就是,刷一个带app2sd 的rom 之后,以后升级这个rom(依然带app2sd)的时候,你的软件都会完整保存(个别除外,比如htc input chinese需要重新添加几个文件到system/lib下),不过很多ROM 是需要Wipe ext 分区的,也就不能保留了。
目前来看我们现在所使用的Android 各种软件暂时还没有进行app2sd 的必要

如何开启APP2SD
前面提到了”一键ROOT”,APP2SD也不不甘示弱,有网友开创了傻瓜化APP2SD.
详细教程点这里

六、金卡
一般来说,官方刷机包通常加入了对手机地区的校对,比如非港版手机一般无法直接刷针对港版手机发布的升级包(刷机包),这时候,需要制作一个特殊的金卡来使刷机包跳过对手机地区的检测,直接进行刷机,从而达到强刷的效果。实际上,金卡只是一张普通的SD卡,通过一些简单的操作,来使普通SD卡有金卡的功效,同时,SD卡里的数据并不会消失,SD卡仍可正常使用。
通俗的说,就像地铁里乞讨卖艺的,他并不是瞎子,但是他装成瞎子,是为了博得你的同情.你看他可怜就会给他钱,那他的目的就达到了.金卡就跟这个意思

GPHONE金卡制作

七.ROOT干什么用的?
root 就是你手机的boss,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的人不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些hacker 有机会入侵你的手机(貌似还没有出来这类黑客)。
既然root 这么危险,我们为什么还要去获取它?其实用root 的权限主要是因为我们生在天朝,我们很多东西是受限制的,我们只能利用这些权限来做我们被限制的去做的事情,比如Google 禁止我们看到市场里很多免费或付费软件,我们可以用marketenabler 来进去看;再比如国庆以来GFW 把我们的市场干掉了,很多朋友只能看不能下,不能绑定gmail,我们可以修改hosts 来搞定他们,但这些都需要root权限。
比如目前所有在hero 上截屏的软件都需要root 权限,没有root 权限,像Drocap、Shootme、Picme等等这类截屏软件就不能使用(当然,我们可以连线电脑,使用 91助手 在电脑上截取自己想要的hero 屏图).