给女王大人刷机,第一次刷机,很遗憾,遇到了三星的“锁三键”问题,没有搞成。记录一下这个过程所涉猎的一些刷机基本知识,不妨当作一次学习过程。

1 刷机过程

Step1 查看手机基本信息

step1.1 手机: 设置>关于手机
品牌: Samsung Galaxy A6s
手机型号: SM-G6200
序列号(SN): xxxxxx
IMEI(卡槽1): yyyyyy1
IMEI(卡槽2): yyyyyy2
硬件版本: REV0.5 软件信息:
Android版本: 8.1.0
基带版本: G6200ZCU0ARK1
内核版本: 4.4.78-perf+ (gcc version 4.9.x 20150123(prerelease)(GCC)) cibuild@cibuild #1 Mon Nov 5 23:15:15 CST 2018
编译编号: OPM1.171019.026.G6200ZCU0ARK1
Android安全补丁级别: 2018年10月1日

Step2 下载刷机包,安装刷机所需软件

Step3 刷机

Step3.1 手机进入开发者模式,并开启USB调试功能

  • 进入开发者模式
手机: 设置>关于手机>软件信息>(手指 连续点击多次,即可开启【开发者模式】)内部版本号

  • 开启USB调试功能

通过设置界面进入开发者选项界面

手机: 设置>开发者选项>(勾选)USB调试


2 刷机知识科普

2.1 工具篇

2.1.1 ADB

  • 定义
Android Debug Bridge(安卓调试桥) tools.
它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 ADB是一个C/S架构的应用程序,由3部分组成:
+ 运行在pc端的【adb client】
命令行程序”adb”用于从shell或脚本中运行adb命令。
首先,“adb”程序尝试定位主机上的ADB服务器。
如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。
接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求; + 运行在pc端的【adb server】
ADB Server是运行在主机上的一个后台进程。
它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止。
ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上; + 运行在设备端的常驻进程【adb demon (adbd)】:
程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。
它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
  • 如何通过 adb进入 手机设备的 Recovery模式、刷机模式、安装/卸载APK、...?
  step1 开启【开发者模式】,启用【USB调试】
step2 【手机】连接【数据线】,数据线连接 【ADB工具】所在的【PC电脑】
step3 ADB 操作
例如: cmd: adb devices 查看手机设备是否成功连接到ADB?

  • 安装ADB

参考: adb下载安装及使用 - CSDN

方法1: 最简单的方法,只下载adb压缩包去解压即可.
链接:https://pan.baidu.com/s/1SKu24yyShwg16lyIupO5VA 提取码:ih0i 方法2: 安装 Android Studio IDE
其内自带`ADB`工具。Studio的 SDK 管理器(File>Project Structure>SDK Location>Android SDK Location)会将其安装在 android_sdk/platform-tools/

参见: Android studio安装与配置 - 博客园

  • 常用的ADB CMD 命令

更多命令,参见: adb下载安装及使用 - CSDN

更多命令,参见: Android adb - CSDN

adb install + 包名
adb安装apk (覆盖安装是使用 -r 选项)
adb uninstall + 包名
adb卸载apk adb connect + 设备IP
网络连接Android设备 adb reboot
重启Android设备
adb reboot download adb devices
获取连接的设备列表及设备状态
adb devices -l
获取连接的设备列表详细信息 adb get-state
获取设备的状态 (设备的状态有 3 种,device:设备正常连接 , offline:连接出现异常,设备无响应 , unknown:没有连接设备) adb shell ps | findstr adbd
查看运行在 Android 设备上的 adb 后台进程

  • adb shell

adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下

更多命令,参见: adb下载安装及使用 - CSDN

更多命令,参见: Android adb - CSDN

cmd: adb shell dumpsys > D:\bugreport.log
打印dumpsys、dumpstate、logcat的输出,并重定向到一个文件 【pm:Package Manager】可以获取到一些安装在 Android 设备上的应用信息
cmd: adb shell pm list package
列出所有的应用的包名 (-s:列出系统应用 -3:列出第三方应用 -f:列出应用包名及对应的apk名及存放位置 -i:列出应用包名及其安装来源)
cmd: adb shell pm path + 包名
列出对应包名.apk 位置
cmd: adb shell pm install + apk存放路径
安装应用(目标apk 存放于PC端,用 adb install 安装;目标apk 存放于Android设备上,用 pm install 安装)
cmd: adb shell pm clear com.google.android.inputmethod.pinyin
清除应用数据 【am: Activity Manager】
cmd: adb shell am start + 包名/.Activity (要启动的Activity) 
启动一个 Activity (-s先停止目标应用,再启动  -w 等待应用完成启动  -a 启动默认浏览器打开一个网页例:adb shell am start -a android.intent.action.VIEW -d http://testerhome.com)
cmd: adb shell am startservice
启动一个服务
cmd: adb shell am force-stop 包名
后跟对应的包名,结束应用 【input】
cmd: adb shell input text + 具体内容
发送文本内容,不能发送中文
cmd: adb shell input keyevent + 按键事件
发送按键事件
adb shell input keyevent KEYCODE_HOME
模拟按下Home键
cmd: adb shell input swipe 滑动事件
例如:从右往左滑动屏幕: adb shell input swipe 800 600 100 600

2.1.2 QPST: 高通(线刷)刷机工具

QPST
:= 高通QPST(线刷)刷机工具
:= Qualcomm Product Support Tool
:= 高通产品支工具
:= 一个针对高通芯片开发的传输软件

2.1.3 Odin : 三星官方(线刷)刷机工具

2.1.3 KingRoot(获取Root权限的工具)

2.2 方法篇

刷机的实现方式,总的分为:卡刷线刷

2.2.1 卡刷法 : zip安装包(rom包)

  • 定义
卡刷法
在SD card 中进行。
一般是在recovery模式里进行的。
  • 卡刷法用的卡刷包是什么?

刷机包就两种:不是卡刷包,就是线刷包。

卡刷包
即 rom 包,一般是一个 zip 压缩文件,里面有 system 文件夹和其他一两个文件夹。
卡刷包一般是指代ota格式的更新包,它需要拥有差分更新的能力(在某些场合,卡刷包只包含新旧文件的差别以节省空间。如果不使用这个特性,ota格式的包也可以接近成为完整的刷机包)。
因此,需要一个能操作单个文件的平台上才能执行,这个平台就是recovery。
刷机包的格式:卡刷包肯定是*.zip压缩格式。
卡刷包:
卡刷包只有一个格式,那就是.zip,有些卡刷包的命名更加简单粗暴,就叫做:update.zip;
线刷包:
而线刷包的格式有很多种,比如.tgz、.pac、.tar、.qsb等等(线刷宝可以解析以上种种格式)。
所以,如果您的刷机包不是.zip的格式,那么肯定是线刷包;
不过.zip的不一定是卡刷包,有些线刷包也会压缩成这个格式。
刷机包的目录:
卡刷包:
打开卡刷包后里面肯定会有 system 和 META-INF 文件夹
一般来说,卡刷包体积较小,解压缩之后,里面的文件也较少,而且主要文件都在system的文件夹中。
线刷包:
而线刷包解压缩后,文件较多,而且有很多的img文件 注意: 真正刷机的时候不需要解压缩。卡刷法:直接将.zip的文件放到内存卡,线刷直接使用刷机工具解析即可!

2.2.2 线刷法 : 非zip安装包(系统底包)

  • 定义
线刷法
依赖于: 数据线、PC电脑、线刷的PC端刷机工具(Odin、QPST、MiFlash等)
线刷是指使用USB线连接个人计算机,并在个人计算机上使用刷机软件进行刷机的行为;
而卡刷则是把固件或者升级包拷贝到手机SD卡中进行刷机升级操作;
一般在刷机模式下进行
线刷更彻底,一般重大的版本还是线刷更好一点。
线刷包一般包含各个分区文件,相当于从底层把整个手机刷机,卡刷包一般只包含system和boot(当然也有特例,像oppo)。
有些线刷包也可以做成卡刷,像htc的ruu可以提取做成卡刷包,用fastboot刷机。
并不是说线刷包就能救砖,这句话太绝对,太笼统了,有些机器线刷包也不一定能救,真正的黑砖,htc的,官方线刷包不一定能救活。
  • 卡刷法与线刷法的区别
可靠性/是否需要与电脑交互/失败率:
通常认为卡刷更加可靠,因为它不会和电脑交互。
失败的几率比线刷低。因为线刷的时候,电脑,连接线出问题都可能影响到结果。
而卡刷只要手机和存储卡不出问题,通常都不会出现失败的情况。当然仁者见仁智者见智,大家最终的目的还是为了手机刷机成功达到理想的体验效果! 刷机的彻底性:
线刷更胜一筹。
  • 卡刷包与线刷包 能相互转换/替换着使用吗?

这个问题我的回答是不行,虽然也有听说过有某些可以转换着用,但一般不建议。

一是麻烦,二是容易出现错误。

一般建议直接使用对应类型的刷机包进行操作,这样可以避免不必要的错误。

  • 线刷法的线刷包是什么?
线刷包
即 系统底包,一般是 tg 压缩文件,里面是一大堆 img 文件,某些底包里也有文件夹。
线刷包一般是分区镜像,一般需要在下载模式,直接访问闪存。这个状态下闪存上的内容都可以改动,甚至包括软件层的bootloader,比方说android的通用下载模式fastboot。

1)高通QPST(9008模式)线刷法

理论上,高通处理器都可以用这个方法

  • 前提条件
  1. 能找到要被刷手机型号的QPST专用刷机包

    (如果找不到,就没法)
  2. 确认手机能进9008端口
  • 使用的工具
QPST
QFIL


  • 原理
高通QPST线刷法,其实就是利用高通芯片自带的9008端口,将手机系统内的所有分区的镜像文件,直接刷写手机。
这个刷机方式比REC卡刷、fastboot线刷,更底层、高效、强大。
这种方式,不需要进入手机的任何分区,就可以直接刷写手机固件。 与其它方法比较:
REC卡刷法: 必须要手机能进入recovery模式,并且要是第三方rec才能随意刷zip卡刷包。
Fastboot线刷法:要求手机能够进入fastboot模式,而且没有锁定bootloader;否则,也无法刷入各种刷机包和分区镜像文件。 而高通线刷可以刷写包括fastboot所在的bootloader分区、boot启动分区、recovery恢复分区在内的所有分区。
甚至,可以改写手机分区表。就算手机开不了机了,一样可以刷入,只要9008端口能连接就可以刷。
这就是高通线刷既可以刷入系统,又可以救砖的原理。
从理论上讲,高通平台的手机在硬件不出问题的情况下是刷不死的(手动滑稽)。
  • 刷机教程

参见此文: 高通9008刷机 - CSDN

2.3 补充篇

2.3.1 三星刷机模式 := 挖煤模式 != Recovery模式

  • 定义

三星手机刷机时需要进入独有的【挖煤模式】,通过 三星的官方刷机工具Odin进行刷机;

【挖煤模式】
就是三星的系统升级模式、刷机模式。
名称的来源:
以前三星老的安卓刷机界面上是个安卓机器人在挖煤(也有说是挖坟),所以才叫【挖煤模式】
早期三星手机Galaxy S(I9000)时代,刷机模式进入后会看到一个黄色三角形,内部有一个Android机器人挖煤的图标,该模式下能够连接电脑,使用ODIN工具进行刷机,我们叫该模式为【刷机模式】。
如今,三星已经将刷机模式的图标改变成绿色Android机器人,但是还是有以往的老用户一直称之为【挖煤模式】。
线刷的前提: 进入挖煤模式
用三星官方刷机工具Odin工具进行【线刷】时,必须进入此模式才能刷机。
卡刷:可不需进入挖煤模式
卡刷的前提是需要刷入第三方recovery,而刷recovery又必须用Odin工具线刷
但有些手机出厂时被【锁三键】、有些手机实体键损坏,无法同时按住三键进入“挖煤”模式。
【解决方法(不用按键也可进入“挖煤”?)】通过 ADB 工具 进入 挖煤模式 fastboot模式 、挖煤模式:
都是刷机模式,也就是通过电脑线刷,如SONY、联想刷机用fastboot,而MOTO和三星都有专门的刷机软件。
挖煤模式是特指三星的刷机模式。
因为:三星手机进入刷机模式后有一个机器人在挖煤,所以三星的刷机模式又叫挖煤模式。
进入方式也因品牌不同而不同,三星在关机状态下同时按住音量下+HOME+电源键进入。
  • 如何进入 挖煤模式?
[方法1: by 按键法]
音量下键 + Home键 + 电源键 [方式2: by adb 工具]
step1 打开手机USB调试,并用USB数据线连接电脑
step2 打开adb工具
step3 cmd: adb devices
回车,查看手机是否成功连接
step4 cmd: adb reboot download

回车后就手机就重启进入“挖煤”模式了,图上界面是较新的“挖煤”界面了,以前老的界面上是个机器人在挖煤(也有说是挖坟),所以才叫“挖煤”模式

2.3.2 Recovery模式

  • 定义
Recovery模式:
恢复模式,可进行卡刷、清除数据等功能;
进入方式各个品牌的手机不同。
三星品牌Recovery模式下刷机:在关机状态下,同时按住音量上+HOME+电源键进入,有的手机没有Recovery模式,如SONY
  • 界面选项说明
reboot system now 立即重启系统
wipe data/factory reset 清空data分区所有数据并恢复出厂设置
wipe cache partition 清空cache分区所有缓存
apply update from ADB 从ADB进行更新。
ADB: ADB驱动是Android设备(如手机)连接PC时所需的应用程序。
apply update from cache指从手机内存中的升级包升级
apply update from internal storage 从内部闪内存更新(手机内存卡 上还原,你可将原备份好的系统镜像放在内存卡上)
apply update from internal sdcard 从外置SD卡更新(手机外置SD卡上还原,你可将原备份好的系统镜像放在SD卡上)
apply updata from sdcard 刷机包来自内存卡
apply update from external storage 从外部的存储应用中进行更新
apply update from external sdcard 从外部SD卡应用更新
install zip from sdcard 从SDcard选择文件更新系统
apply sdcard:update.zip 使用SD卡根目录的update.zip更新系统
choose zip from sdcard 从SD卡选择zip格式升级包
apply update from otg udisk 适用于从OTG U盘更新
toggle signature verification 切换签名验证
toggle script asserts 切换升级脚本检查
backup user data:备份用户数据
restore user data:恢复用户数
--Backup 备份
--Restore 恢复
  --Advanced Restore 高级恢复
  --mounts and storage 挂载和存储
  --mount /system 挂载/system分区(系统分区)
  --mount /data 挂载/data分区(数据分区)
  --mount /cache 挂载/cache分区(缓存分区)
  --mount /sd-ext 挂载/sd-ext分区(A2SD分区)
  --format boot 格式化内核分区
  --format system 格式化系统分区
  --format data 格式化数据分区   --format cache 格式化缓存分区
  --format sdcard 格式化存储卡
  --format sd-ext 格式化内存卡SD
  --mount USB storage 挂载SD卡为U盘模式
  --advanced 高级
  --Reboot Recovery 重启Recovery
  --Wipe Dalvik Cache 清空Dalvik缓存
  --Wipe Battery Stats 清空电池状态
  --Report Error 报告错误
  --Key Test 键位测试
  --Partition SD Card 对SD卡分区
  --Fix Permissions 修复权限
手机即进入 Recovery 模式后,一般都是先进行双wipe,然后选择上述合适的选项进行刷机。
  • 如何进入 Recovery 模式?
[方法1: 按键法]
Samsung Galaxy A6s (SM-G6200):
手机关机;
音量+键、电源键,二键齐按 [方法2: by adb 工具]
step1 打开手机USB调试,并用USB数据线连接电脑
step2 打开adb工具
step3 cmd: adb devices
回车,查看手机是否成功连接
step4 cmd: adb reboot recovery

三星锁三键问题

锁三键:
就是指不能通过"电源键+HOME键+音量键下"的三键组合进入刷机模式(挖煤模式);
是三星为了避免用户自行刷非官方ROM而在某批次后取消这个功能的。
避免用户自行刷机,导致刷错版本,或者刷机失败造成开不了机。 怎么解锁三键
如何【辨别】购买的手机是否【锁三键】呢?
关机状态同时按音量下+主页健+电源三个按键,如果无法进入刷机模式界面(即 三星 挖煤模式),那就是【锁三键】的机器。

X 参考文献

[操作系统]记一次未尽的三星 Galaxy A6s(SM-G6200)刷机过程的更多相关文章

  1. 三星S5360(GALAXY Y)首次刷机尝试~

    刷机包下载: http://www.romjd.com/Device/samsung-s5360 http://www.shuaji.com/rom/2033.htm#down http://www. ...

  2. 三星N8000/N8010通用刷机教程

    前面已经讲到过如何给三星n8000/n8010 Galaxy Note 10.1获取ROOT权限了.接下来就顺便告诉大家怎么给三星n8000/n8010刷机吧.其实给三星n8000/n8010刷机过程 ...

  3. 三星GT-N8010刷机教程

    本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ...

  4. 三星N900(note3)刷机包 颓废N0.8.1 修复已知BUG 集成谷歌服务

    ROM介绍 8.1更新信息:攻克了来电后点击HOME出现SECPHONE已经停止的问题 去掉了桌面隐藏信息的选项,官方最新底包暂不支持这功能 增加了网友们须要验证的谷歌服务(不须要的同学同步什么的都关 ...

  5. 技术解析:锁屏绕过,三星Galaxy系列手机也能“被”呼出电话

    近期,由两位安全研究人员,Roberto Paleari及Aristide Fattori,发布了关于三星Galaxy手机设备安全漏洞的技术细节.据称,Galaxy手机可在锁屏状态下被未授权的第三方人 ...

  6. 三星平板SM-T320刷机

    三星 Galaxy Tab Pro 8.4 (SM-T320) / 国行 固件下载 刷机教程 下载手机驱动,刷机工具Odin,相应的固件包,手机和电脑用数据线连接安装好手机的驱动. 手机先完全的关机, ...

  7. 三星A3、A5、A7、G7、J5、J7、S6系列等新机型的部分手机解锁 ROOT刷机

    三星A3.A5.A7.G7.J5.J7.S6系列等新机型的部分手机,三星官方加了限制,需要解锁后才能刷机如果没有解锁,刷第三方recovery或者刷非官方原版固件,都会刷不进,手机跳转到提示界面,显示 ...

  8. 三星s5830刷机小记

    拿起好久没用的三星s5830手机,看了看手机内存所无几,运行十分缓慢,就想着收拾下,当个备机用,在刷机前我做了个小实验,先把手机root,安装RE管理器,把system/app下的所有东西都删了,因为 ...

  9. 记一次,Docker镜像1G多精简至300+M的过程

    记一次,Docker镜像1G多精简至300+M的过程 一.业务场景描述 二.Docker时区不一致,相差8小时 三.通过Docker发布的服务上传文件上传不上去 四.上传的图片带水印,水印中包含的字体 ...

  10. 三星Galaxy Note 10.1 N8010 最后的救赎 Andorid 5.0.2 ROM

    上市日期为2012年的三星Galaxy Note N8010 10.1采用10.1英寸TFT屏幕,分辨率为1280×800,支持10点触控,支持S pen手写笔功能.,拥有一颗1.4GHz Exyno ...

随机推荐

  1. Python使用双层列表推导式输出九九乘法表

    print('\n'.join([' '.join(['%2d *%2d = %2d' % (col, row, col * row) for col in range(1, row + 1)]) f ...

  2. Mysql的MVCC与幻读

    以下特殊情况在可重复读时会产生幻读: 1.a事务先select,b事务insert确实会加一个gap锁,但是如果b事务commit,这个gap锁就会释放(释放后a事务可以随意操作), 2.a事务再se ...

  3. Charles4.5.1抓取HTTPS请求

    Charles下载以后发现 抓取http请求是成功的: 抓取https请求是失败的: 按照失败提示设置即可: 1.点击 Help -> SSL Proxying -> install ch ...

  4. HashMap记录

    1.HashMap接收null的键值 2.HashMap是非synchronized的 3.HashMap使用hashCode找到bucket的位置.bucket中存储的是键和值 4.当HashCod ...

  5. vue中的普通函数与箭头函数以及this关键字

    普通函数 普通函数指的是用function定义的函数 var hello = function () { console.log("Hello, Fundebug!"); } 箭头 ...

  6. Delphi注解(不是注释)

    开发环境Delphi XE10 1 unit Unit1; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUt ...

  7. How to Change Reset Retrieve the WebLogic Server Administrator Password on WLS 10.3.6 or earlier

    To change the Administrator password on WLS 10.3.6 or earlier, perform the following steps depending ...

  8. 虚拟机文件丢失,虚拟机无法启动,通过xx-flat.vmdk和xx-delta.vmdk恢复虚拟机

    突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-flat.vmdk和-delta.vmdk文件,其他文件全部丢失,文件格式原本为"文件"格式.新建虚拟机无法直接使用此文件夹里面的 ...

  9. Linux 复制时排除某文件/目录

    如果要排除/home/data目录下面的a.b.c.三个目录,同时拷贝其它所有目录,执行rsync命令yum install rsync -y #安装rsync 排除单个文件/目录rsync -avP ...

  10. c++中的构造函数,拷贝构造函数和赋值函数

    1.拷贝构造和赋值函数的区别: 1)拷贝构造函数是一个对象初始化一块内存区域,这块内存就是新对象的内存区,而赋值函数是对于一个已经被初始化的对象来进行赋值操作. 2)一般来说在数据成员包含指针对象的时 ...