Reading view

There are new articles available, click to refresh the page.

ADB & Fastboot 简介与使用

说到安卓系统,肯定少不了大家喜闻乐见的「刷机」。在刷机的时候很多人不可避免地会遇到「ADB」和「Fastboot」这两个工具,因此今天和大家简单介绍下这两个工具。

《ADB & Fastboot 简介与使用》

简介

什么是 ADB

ADB 全称为 Android Debug Bridge

专业说明(来自官方开发文档):

Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具作为一个客户端-服务器程序,包括三个组件:

  • 客户端,该组件发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 后台程序,该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。
  • 服务器,该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

您可以在 android_sdk/platform-tools/ 中找到 adb 工具。

糊弄说明:

即刷机工具

什么是 Fastboot

在 Android 手机中,Fastboot 是一个通信协议,电脑可以通过这个通信协议,直接向手机系统不同分区中写入文件(.img),一般用来向bootloader传送刷机文件进行烧录。

还有一种,指的是 Fastboot 刷机模式,比如小米的米兔界面。Fastboot 是比 Recovery更为底层的刷机模式。

大多数手机可以在关机状态下长按 电源键 + 音量(+) 进入该模式,然后就可以进行刷入第三方 Recovery 或者刷入 System 等操作。

下载与配置

电脑端

  1. 下载SDK Platform Tools

官方页面,注意,包括上面的下载链接,都可能需要梯子。

  1. 下载后直接解压即可,建议放到桌面(因为是全英文路径)。
  2. 在命令提示符(windows)或者终端(Linux)中切换到此路径,运行 ADB 服务。《ADB & Fastboot 简介与使用》

⚠️注意:

  1. PowerShell 和 CMD 都可以运行 ADB,但是 ADB 本身是 CMD 工具,更建议用 CMD 运行它。如果是在 PowerShell 运行,需要先输入 CMD 切换到命令行模式,或者以 ./adb 输入命令,直接输入 adb 会出错。
  2. 查看此链接,添加“在此处打开命令窗口”到右键菜单,操作更方便。

手机端

1、首先进入设置中的手机详细信息页面,连续点7次“版本信息”,直到提示“已打开开发者选项”;

2、进入开发者选项,打开 USB 调试;

《ADB & Fastboot 简介与使用》

3、将手机与电脑连接,电脑上在 CMD 输入adb devices 并执行:

《ADB & Fastboot 简介与使用》

此时手机会有提示:

《ADB & Fastboot 简介与使用》

点击“确定”即可。

4、此时重新输入 adb devices,即可看到已授权,然后我们就可以进行操作了。

《ADB & Fastboot 简介与使用》

一些常见问题

1、无法开启 ADB 服务

提示: error: protocol fault (couldn’t read status): No error

可能是 adb 用于通信的 5037 端口被占用,找到占用此端口的进程,结束掉后重试。

2、无法连接手机

  1. 尝试安装驱动,比如小米手机用 MiFlash 安装,华为手机用 Huawei HiSuite 安装……
  2. 检查数据线,尝试换一条数据线或者换一个 USB 接口;
  3. 如果确认驱动和连接都没有问题,可以尝试换一个系统,或者换一台电脑。

ADB 实例

  • 查看已安装应用

1、基本命令: adb shell pm list packages

Packages 是 APP 的包名

2、参数:

参数 显示列表
所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
包名包含 字符串

3、实例:

《ADB & Fastboot 简介与使用》

  • 批量安装应用

将 APK 文件全部复制到 ADB 工具所在的文件夹,并且重命名(不能有空格),然后在CMD中输入:

for %i in (*.apk) do adb install -r %i

Linux 命令为:

find . -name “*.apk” -execdir adb install -r ‘{}’ ‘;’

不出意外就会自动安装全部 APK 了,而无需干预。这个方法适用于重置系统或者刷机之后的批量安装,简便快捷。

  • 停用应用

基本命令:adb shell pm disable-user <package_name>

启用命令:adb shell pm enable <package_name>

停用类似卸载,被停用的应用无法找到也无法使用,但可以通过启用命令重新启用。

⚠️注意:系统应用谨慎停用!有可能会造成无法开机!

  • 卸载应用

基本命令:adb uninstall [-k] <packagename>

有一些应用不会显示在启动器或者无法用普通方法卸载,可以使用 adb 卸载它。

⚠️注意:系统应用谨慎卸载!有可能会造成无法开机!

  • 清除缓存

基本命令:adb shell pm clear <packagename>

相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

⚠️注意:系统应用谨慎清除缓存,有可能会造成异常!

  • 强制停止应用

基本命令:adb shell am force-stop <packagename>

顾名思义,相当于 Windows 中 taskkill 命令。

  • 复制文件

基本命令:adb push

在电脑和手机或者手机和电脑之间复制文件。

  • 刷机相关

快速重启:adb reboot

重启到引导模式:adb reboot bootloader

重启到恢复模式:adb reboot recovery

Sideload 更新系统:adb sideload <.zip>

 

参考文章:

刀锋上追梦:使用ADB命令批量安装APK文件

疯人院的院长大人:玩转ADB命令(ADB命令使用大全)

千山万水迷了鹿:Android Fastboot 与 Recovery 和刷机

会意:Windows10右键添加“在此处打开命令窗口”

浅谈Android系统-入门篇

这里是琉璃,受博主的邀请担任「Android-安卓」这个栏目的撰稿人。这是本专栏的第一篇文章,想要用一些客观事实来向大家介绍Android系统的发展历史和目前的一些厂商、ROM以及购机的一点建议。由于是面向入门用户的简单科普,熟悉安卓的人可能觉得司空见惯,那么请期待专栏的后续文章~

Android,常见的非官方中文名称为安卓,是一个基于Linux核心的开源操作系统,由Google成立的Open Handset Alliance(OHA,开放手机联盟)持续领导与开发,主要设计用于触控屏幕移动装置如智能手机和平板电脑与其他便携装置。

《浅谈Android系统-入门篇》

版本历史及占有率

Android系统有预发行的内部版本,分别为原子小金刚(Astro)与机器人班亭(Bender)。从2009年5月开始,Android的版本代号改以甜点来命名,且每个代号间的字首以英文字母序接续排列:Cupcake(纸杯蛋糕)、Donut(甜甜圈)、Eclair(闪电泡芙)、Froyo(优格冰淇淋)、Gingerbread(姜饼)、Honeycomb(蜂巢)、Ice Cream Sandwich(冰淇淋三明治)、Jelly Bean(雷根糖)、KitKat(奇巧巧克力)、Lollipop(棒棒糖)、Marshmallow(棉花糖)、Nougat(牛轧糖)、Oreo(奥利奥)、Pie(派)。

而到了今年情况有所不同了,谷歌正式发布将于今年秋季发布的新一代Android移动操作系统:Android 10。这意味着谷歌打破了以往用甜点命名移动操作系统的10年历史,放弃以字母开头的命名方式。今年发布的新系统是Android 10,以此类推明年将是Android 11。

除采取新的命名方式之外,谷歌还对Android系统的标志进行了更新,让品牌形象焕然一新。Android全球品牌总监奥德·甘顿(Aude Gandon)表示,这个标志有一个“更现代化”的文字组合。重要的是标志中将始终包含绿色小机器人。“机器人的存在让Android与众不同。这让整个标志外观更人性化、更有趣、更平易近人。”

代号 版本 发布日期 API 等级
Android 1.0 1.0 2008.09.23 1
Petit Four 1.1 2009.02.09 2
Cupcake 1.5 2009.04.27 3
Donut 1.6 2009.09.15 4
Eclair 2.0 – 2.1 2009.10.26 5 – 7
Froyo 2.2 – 2.2.3 2010.05.20 8
Gingerbread 2.3 – 2.3.7 2010.12.06 9 – 10
Honeycomb 3.0 – 3.2.6 2011.02.22 11 – 13
IceCream Sandwich 4.0 – 4.0.4 2011.10.18 14 – 15
Jelly Bean 4.1 – 4.3.1 2012.07.09 16 – 18
KitKat 4.4 – 4.4.4 2013.10.31 19 – 20
Lollipop 5.0 – 5.1.1 2014.11.12 21 – 22
Marshmallow 6.0 – 6.0.1 2015.10.05 23
Nougat 7.0 – 7.1.2 2016.08.22 24 – 25
Oreo 8.0 – 8.1 2017.08.21 26 – 27
Pie 9 2018.08.06 28
Q 10 2019 Q3 29

截至2019年5月7日,以下是不同的Android版本的用户比例:

版本 代号 占有率
2.3 Gingerbread 0.3%
4.0 Ice Cream Sandwich 0.3%
4.1 Jelly Bean 1.2%
4.2 Jelly Bean 1.5%
4.3 Jelly Bean 0.5%
4.4 KitKat 6.9%
5.0 Lollipop 3.0%
5.1 Lollipop 11.5%
6.0 Marshmallow 16.9%
7.0 Nougat 11.4%
7.1 Nougat 7.8%
8.0 Oreo 12.9%
8.1 Oreo 15.4%
9 Pie 10.4%

《浅谈Android系统-入门篇》

Android 6 ~ Android 9 的总和接近75%,为了体验和安全考虑,建议应该优先考虑更新的系统版本。不过身边很多的安卓用户并不对系统版本很感冒,从购机用到卡顿换机也从不升级系统,这和 iOS 强制升级系统以至于整体系统版本号较高形成了反差。希望将来的Android和 Google 的新操作系统Fuchsia OS能在系统更新推送和升级建议这方面继续下功夫。

定制系统

Android 是一个开源系统,任何个人或者组织都可以对其源码进行改造、定制。因为国内的特殊国情,从2011年开始,国内基于 AOSP 的深度定制系统就开始生根发芽。接下来介绍一些定制系统,无论是轻度修改还是深度定制。

Google Pixel

Pixel 是由 Google 设计、制造、销售并且提供技术支持的 Android 智能手机,接任之前的 Nexus 系列,一般戏称 “Google 亲儿子”。

Pixel 系统是在 AOSP 的基础上小幅度定制,加入了 Pixel 特有的功能,比如 Google的云服务、相机,正在播放等功能。使用 Pixel 手机可以体验完整的 Google 服务。

《浅谈Android系统-入门篇》

Sony Xperia

索尼手机 Xperia 所搭载的系统同样是 AOSP 小幅度修改的,加入了一些针对索尼手机的功能,不仅可以使用 Google 服务,也可以使用索尼的服务。

《浅谈Android系统-入门篇》

Samsung One UI

One UI 是三星2018年公布的基于 Android 9 的全新深度定制系统,接任 Samsung Experience,并且对于上一代系统的不足之处(效能、UI)有所改进。

《浅谈Android系统-入门篇》

国内深度定制系统

主要有小米 MIUI、魅族 Flyme、华为 EMUI、OPPO Color OS、VIVO Funtouch OS、Nubia UI、锤子 Smartisan OS、一加氢 OS、联想 ZUI、360 OS 等等……

至于孰优孰劣,这里不做讨论,毕竟 “萝卜青菜各有所爱”,而且也会占用很多篇幅。每个厂商不同的定制系统,都有不同的特色,也包含了自家的云服务。

不过他们都有一个共同的特点,就是对 Android 本身的机制修改的非常多(要不然怎么会叫深度定制呢)。对于大多数消费者而言,只要自己喜欢就好;对于喜欢折腾、喜欢搞机的朋友(比如我们这系列的文章),就有些不太合适,这些修改的机制可能会导致系统和 AOSP文档上的预期行为不符。

解锁刷机

Android 手机获取 root 权限或者刷机之前,一般都要先解锁,即 BootLoader 锁。现在市面上销售的手机,有的可以官方解锁,而有的只能通过破解的方式解锁,还有一些无法解锁。解锁方法之后会有一篇文章专门讨论,这里只说明哪些手机可以解锁,而哪些不行。

官方支持

小米、Pixel、一加、索尼、三星、HTC、摩托罗拉(一部分)、OPPO 和 VIVO 最近一年多开放了少数机型的官方解锁。

非官方渠道

华为、诺基亚、魅族、锤子(一部分)、360、OPPO(一部分)、VIVO(一部分)。

不可解锁

黑莓、锤子(一部分)、华为(比如新出的中低端)、一些 ATT 定制手机等……

关于选购手机的一些建议

  • 如果想要折腾手机(刷机),尽量优先考虑红米系列,其次是小米和一加。这三个系列刷机资源很丰富。
  • Pixel 和 Xperia 是信仰系列。
  • 三星和索尼手机有特殊机制,解锁后会丢失一些东西且无法还原。
  • 如果没有搞机需求,比如给父母之类的,选择合适的价格,喜欢的系统即可。

⚠️最后强调一点:搞机尽量不要用深度定制系统,搞机尽量不要用深度定制系统,搞机尽量不要用深度定制系统!

引用某位大佬的原话:

发现很多国内手机ROM的logcat简直不忍直视,把研发团队的素质暴露的一干二净,有些甚至常年能看到各种低级Bug引起的fatal exception。这些手机的QA团队哪怕稍微看下logcat也能轻轻松松发现大把的Bug。表面的不流畅下,是各种低级Bug的狂欢!

加上Android有service crash自动重启的机制,有些低级Bug就一直在那里crash、重启、crash、重启,直到耗尽最后一点电量。

花了半个下午时间,查明问题了,是oneplus自己的一个什么Applocker特性的代码有Bug,出了一个数组越界的异常,导致Island创建的最末环节没有执行。

以后我再也不想查这种OEM的beta系统的Bug了,尤其的oneplus的ROM,创建个work Profiles的流程,抛了几千个异常……

❌