• android 刷机 root 相关


    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #原理 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1.使用 adb 连接设备成功后,我们对设备的系统具有了 root 权限,而设备系统自身并没有 root 权限。例如您在 market 看到 need rooted device 字样,那就是意味着您的设备系统也具有 root 权限。通常来说,root 指设备自身可以执行 su 并获得 root 权限。 2.使用 adb 得到root权限的原理 adb ( android debug bridge ) 链接设备,并使用具有 root 权限的 adb 修改/替换设备 su 文件,从而具有 root 权限。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #使用adb得到root权限的操作 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 插入 usb 数据线,然后打开终端,进入 adb/tools 目录,执行 adb devices 此时显示为: List of devices attached 0123456789ABCDEF    device 成功列出已连接的设备后,执行 (Android adb devices显示 ????????????    no permissions怎么办? Windows:运行adb root Linux: adb kill-server sudo adb root) adb shell mv /system/xbin/su /system/xbin/osu # 备份原 su 文件 adb push su /system/xbin # 把 adb/tools 的 su 文件 推送到 android设备 /system/xbin adb shell rm /system/bin/su # 移除其他的 su 文件 adb shell ln -s /system/xbin/su /system/bin/su # 软链 su adb shell chmod 6755 /system/xbin/su # 变更权限 adb shell sync # 同步所有缓存中的文件 adb shell reboot # 重启 android 设备 等待设备重启完成后,可以在 adb shell 模式输入:su(回车),会出现su: access granted, courtesy of www.magicandroidapps.com #等提示,代表成功了 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #关键词 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Bootloader Bootloader是一个启动加载程序,负责系统硬件的初始化工作,也是刷机工作的第一道坎。大部分厂商采用了锁Bootloader的方式来阻止用户刷机,用户如果想要刷第三方固件就必须对Bootloader进行解锁,由于Bootloader加密算法较为复杂,所以解锁就变成了一件困难事,部分厂商因用户不满最终妥协,提供了官方的解锁途径,比如HTC和索尼爱立信,用户需要到官方网站进行申请然后解锁,但解锁后会失去保修,而另外一部分厂商则不提供解锁,那么解锁Bootloader就变成了一件很复杂的事,虽然有些黑客通过内外相勾结的方式破解了Bootloader算法,但没有破解是绝对完美的,也有很多朋友的手机在解锁时变成了转头。 如何判断Bootloader解锁呢?当Bootloader解锁后,启动手机会出现开锁图标,或者再次进入Bootloader界面有Unlock标志,就证明Bootloader顺利解锁。 Recovery Recovery是手机的工程模式,主要用来执行手机的复位和升级工作,大部分厂商都在手机中提供了进入Recovery的方法,所以用户可以在官方下载Update.zip升级包在Recovery下进行升级,这种方式也是我们俗称的卡刷,当然也有部分厂商不提供,比如中兴。官方提供的Recovery一般来讲功能有限,而且尽可以进行Update升级包升级的操作,所以对于刷机的用户来讲官方的Recovery是没太大用的,大家一般都会选择使用第三方的Recovery来代替官方的。对于Recovery的操作,每家厂商的机型都有所不同,但是都大同小异,手机上的物理按键仅有几颗,所以Recovery的操作一般都是集中在开关机键、音量键或者确定键上。 root 在类UNIX系统中,root为超级用户,拥有系统的最高权限,如果我们把玩和使用分开算的话,那么玩Android手机的第一步就是获取root权限,只有有了系统的最高权限,我们才能在Android系统中释放最大的能量,干一些用户权限完不成的事。关于刷机方面,root主要是为了获取权限后让手机能够顺利的刷入第三方的Recovery,各个手机也都提供了各种不同的root方法,大体上可以分为两种,一种是临时root,而另一种是永久root,临时root会在系统重启后超级用户权限消失,而永久root不会。 Wipe Wipe是主清除、复位的意思,这个字眼也是刷机的朋友经常听到的,很多朋友都是按照刷机教程去做了,但并不知道做的目的,Wipe存在于手机的Recovery之中,默认系统提供了两个Wipe方式,第三方的Recovery可能提供了三个,其中一个为执行两个Wipe(用户数据和虚拟机缓存),Wipe只是为了清除干净手机的用户数据以及虚拟机缓存,如果没有Wipe,可能会造成手机刷机后无法正常启动,在启动界面出现死循环等状况,所以刷机的朋友应该养成双Wipe的好习惯。 卡刷 就是recovery刷机,把刷机包(一般是update.zip)放到内存卡里,然后刷上recovery 运行刷机就好,现在都有一键recovery 所以这种方法速度快,简单,成功率几乎100% 。 线刷 就是FTM模式刷机,一般都是官方出的刷机软件然后你用他软件在线更新。 HBOOT 在HTC的Android 系统的系列手机中,HBOOT就是SPL。 SPL SPL英文全称是Second Program Loader,“第二次装系统”,就是负责装载操作系统到ROM中。另外SPL还包括许多系统命令,如mtty中使用的命令等。SPL损坏了还可以用烧录器重写。 SPL一般提供这几部分功能:检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连 接,并接受和执行相应命令。 SPL主要作用就是引导系统启动。 解释一下Android的SPL的大致含义,希望对您有所帮助。 SPL除了包含手机的bootloader启动android外,还包含其他一些功能,如刷nbh,支持fastboot等等。 HBOOT的作用 手机是由hboot来负责引导启动的,这里简单讲一下流程,hboot启动后,会检查安全锁的状态: 如果检查后发现是S-ON,说明安全锁是打开的,那么hboot在完成引导启动的同时,会将system和recovery分区做写保护。 如果检查后发现是S-OFF,说明安全锁是关闭的,那么hboot在完成引导启动的同时,会将system和recovery分区的写保护打开。 修改后的hboot在这里起到什么作用呢? 当手机通过hboot启动,hboot在检查安全锁是什么状态的时候,无论检查结果是什么,这个修改过的hboot都会认为安全锁是关闭的,即让hboot自己欺骗自己,认为安全锁处于S-OFF状态。实际上此时的安全锁还是S-ON,只不过显示出来是S-OFF罢了。 这也就为下面这种情况找到了合理的解释: 机器状态为ENG S-OFF的朋友刷了官方包,然后ENG变回SHIP,S-OFF变回S-ON。但机器状态为SHIP S-OFF的朋友进行同样的操作,却不会失去S-OFF。 因为官方包是一个完整的刷机包,在更新过程中,会把hboot覆盖掉,那么,当这个被修改的hboot被替换成官方原版的hboot后,我们的机器也就回复到了原始的SHIP状态。此时,因为ENG S-OFF是一种假象,所以,S-OFF就变回了S-ON,但是因为SHIP S-OFF是真的把安全锁关了,所以,S-OFF还是保持不变。 既然你刷了ENG的hboot,那么他就会一直都显示S-OFF,所以不会有ENG S-ON的情况出现。 S-OFF S代表 Security Lock,是安全锁,保护锁的意思。S-OFF就是安全保护关,S-ON就是安全保护开。 Secure Lock 就是安全锁。是硬件设计厂商用于保护固件不被刷写而设计的安全锁。如果这个安全锁是关闭的,那么对手机内的闪存芯片的刷写保护就关闭了,言外之意也就是可 以随便刷ROM了;反之,S-ON就是安全锁打开了,手机被写保护了。HTC的机器在用RUU刷机的时RUU会将安全锁暂时关闭,然后就可以刷HTC自己 的ROM。而HTC的HBOOT还有签名验证,所以没有HTC前面的ROM在刷机的时候是无法通过验证的。 ENG S-OFF ENG代表 Engineer,也就是工程的意思。是HTC的手机在工程阶段测试时候使用的SPL,这种SPL是最不稳定的,一般只有HTC的ENG版本的RUU里面带这种SPL,也就是工程版RUU里面才带这种。    SHIP S-OFF SHIP代表 SHIPPMENT,也就是出货的意思。当HTC交货给各大运营商的时候,ROM都是SHIP S-ON的,这些ROM都是经过了很多测试的,同样也是非常稳定的,也是零售版本采用的系统。
  • 相关阅读:
    UI进阶--控制器View的创建流程以及生命周期方法
    UI进阶--程序启动原理和UIApplication
    UI进阶--常见的项目文件介绍
    浅析 KVO 内部实现
    浅析 Get 和 Post 的区别
    C++实现进制转换
    UIBlurEffect 毛玻璃特效实现
    UITableView左滑显示选择
    排序算法(OC实现)
    valid Palindrome -- leetcode
  • 原文地址:https://www.cnblogs.com/fengidri/p/2757496.html
Copyright © 2020-2023  润新知