Android--刷机与adb
目录
一、Android设备启动流程
二、刷机模式介绍
三、Windows命令行
四、adb介绍与配置
五、常用的adb命令
一、Android设备启动流程
Android就是Linux内核(Kernel)+Java虚拟机(JVM)
Android设备启动就分为两个阶段:
- Linux启动
1.启动电源以及系统启动:
当电源键按下时引导芯片代码从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM中,然后开始执行。
2.引导程序BootLoader:
引导程序(Bootloader)是位于Android操作系统启动之前的一个小程序,其主要作用是将系统操作系统加载到内存中并启动它的运行。
3、Linux内核启动
当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动,当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动init进程。
- Android启动
4.init进程启动:
init进程是Android系统中用户空间的第一个进程,进程号是1。初始化和启动属性服务,并且启动Zygote进程。
5.Zygote进程:
创建Java虚拟机并为Java虚拟机注册JNI方法,创建服务器端Socket,启动SystemServer进程。
6.SystemServer进程启动:
启动Binder线程池和SystemServiceManager,并且启动各种系统服务。
7.Launcher启动:
被SystemServer进程启动的AMS会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到界面上。
二、刷机模式介绍
- 线刷
BootLoader阶段,如果发现按键有特殊的组合,比如音量+键和电源键,就会进入fastboot模式:它是bootloader期间进入的一个特殊阶段,可以通过数据线与电脑连接,然后在电脑上执行一些命令,如刷系统镜像到手机上,fastboot可以理解为实现了一个简单的通信协议,接收命令并更新镜像文件,其它什么也干不了。这种刷机方式称为"线刷"。
- 卡刷
如果没有按键进入fastboot,bootloader继续执行,如果又发现有特殊的按键组合,则会进入recovery模式:从某种意义来说,这就是一个小型操作系统,和正常启动进入的系统的kernel是一样的,只是init及之后干的事情不同。
在recovery模式下,会加载了部分文件系统,所以才可以读sdcard中update.zip进行刷机,当然,也可以清除cache和用户数据。这种刷机方式称为"卡刷"。
- 进入fastboot(bootloader) 模式
1.大多数Android手机,可在关机状态下,然后同时按住[电源键]+[音量+]键,大约2-3s后,就可以进入fastboot模式;
2.作为开发者,我们一般在开机状态下可以用adb命令的方式进入:adb reboot bootloader,一般进入后会有"fastboot mode"相关字样。
如下图所示:
- 在fastboot模式下刷机需要执行的命令
# 命令格式:
fastboot flash xxx xxx.img
# 如下:
fastboot flash system system.img
fastboot flash boot boot.img
fastboot flash apdp apdp.img
fastboot reboot
- recovery模式
1.通过组合键进入recovery;
2.上层应用设置中执行安装/重置/清除缓存等操作进入recovery,OTA升级;
3.Android系统关键组件运行异常,反复重启等特殊情况会自动进入recovery模式。
三、Windows命令行
进入方式有以下两种:
- 快捷键(win+R),输入cmd后回车;
- 找到”命令提示符“程序。
常用命令:
#1.目录跳转
cd //(同Linux命令cd)
cd .. //进入上级目录
cd /d d: //进入上次d盘所在的目录(或者直接输入:d:)
cd /d d:\ //进入d盘根目录
#2.列出文件
dir //(同Linux命令ls)
#3.查找字符串
findstr //(同Linux命令grep)
#4.其它
md //创建目录(同Linux命令mkdir)
copy //拷贝文件(同Linux命令cp)
del //删除文件(同Linux命令rm)
rd //删除目录(同Linux命令rm -r)
move //移动文件(同Linux命令mv)
四、adb介绍与配置
Android Debug Bridge,Android调试桥接器,简称ADB。
ADB是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用)。是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的;
- adb命令是如何运行起来的呢?
它是一种客户端--服务器程序,包括以下三个组件:
1.客户端:用于发送命令。客户端在开发机器上运行,可以通过发出adb命令从命令行终端调用客户端。
2.守护程序(adbd):用于在设备上运行命令,守护程序在每个设备上作为后台进程运行。
3.服务器:用于管理客户端与守护程序之间的通信,服务器在开发机器上作为后台进程运行。
- adb环境变量配置分为三步:
1.右键此电脑,选择属性,再选择系统高级设置;
2.设置环境变量,在系统变量中双击Path,再点击新建,将adb的路径填写进去;
3.点击确定后,接下来在cmd窗口中输入adb version进行验证,如下图所示。
- 打开设备的adb调试
要在通过usb连接的设备上使用adb,必须要在设备的系统设置中启动USB调试(位于开发者选项下),非userdebug版本的手机,”开发者选项“默认情况下处于隐藏状态。如需将其显示出来,请依次转到手机的设置 --> 关于手机 -->,多次点击”版本号“,此时会弹出提示:
”已打开开发者选项“,返回上一屏幕,在底部就可以找到开发者选项。(注:”开发者选项“会因设备的不同,在屏幕中的位置和名称也有所不同)
五、常用的adb命令
//1.查看当前连接电脑的设备(如有多台设备连接,需要加-s参数进行选择)
$ adb devices
List of devices attached
emulator-6666 device
emulator-6667 device
$ adb -s emulator-6666 install camera.apk
//2.重启连接成功的设备
adb reboot
//3.将apk安装到已连接的设备上,-r:强制安装,-d:运行版本代码降级,-t:允许安装测试apk
adb install (-r -d -t) <apk-path>
//4.推送、拉取文件
adb pull <remote-path> <local-path>
adb push <local-path> <remote-path>
//5.root当前的手机并挂载
adb root & adb remount
//6.进行设备或者模拟器的shell,如同进入Linux系统
adb shell
//7.在设备上执行command,command可为任意可执行程序,.exe文件
adb shell [command]
//8.查看手机内属性
adb shell getprop
//9.查看一个文件,cpu信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/memoinfo
//10.Android系统服务相关的命令(am pm input)
//10.1 启动拨号盘
adb shell am start -a android.intent.action.CALL -d tel:10086
//10.2 杀掉一个应用
adb shell am force-stop com.some.package
//10.3 查看com.some.package在手机上的路径
adb shell pm path com.some.package
//10.4 模拟按键,keycode对应设备某些功能
adb shell input keyevent <keycode>
//11.dumpsys:获取在连接的设备上运行的所有系统服务的诊断输出
adb shell dumpsys -l
adb shell dumpsys activity
adb shell dumpsys window
adb shell dumpsys batterystats
adb shell dumpsys meminfo package_name|pid [-d]
//12.logcat,抓取日志
adb shell logcat
// -b <buffer> 指定log类型,如 events、radio。默认是main、system 和 crash 缓冲区集。
adb shell logcat -b radio
// -c, --clear 清除(清空)所选的缓冲区。
adb shell logcat -c
// 只显示包含“tag”字符后的log
adb shell logcat | findstr “tag”
// 将log保存到文件d:/xxx/log.txt
adb shell logcat > d:/xxx/log.txt
本文仅是对Android刷机和adb命令的简要介绍,仍有很多细节和深入的内容未能涉及。如果有任何不准确或不完整之处,请随时提出,我将非常感激。
Android--刷机与adb相关推荐
- android仿卷皮框架,Android刷机常用adb指令集合
Android刷机最常用到的就是adb命令,不过adb命令也跟程序员敲代码一样分为很多种,不同的指令执行之后会起到不同的效果.刷机常用的adb指令有哪些相信同学们也多少能猜到一点点皮毛了,小编今天就为 ...
- 从零开始- Android刷机指南一
从零开始- Android刷机指南 2011年07月27日 第一章:开篇 版权说明: 以下各篇内容部分为原创,部分取材.编改于网络,其内容.包括后续操作提及的程序之版权,均归原作者所有,如有不妥之处, ...
- (转)Android刷机的一些知识整理
刷机概述刷机原因刷机可以升级和破解固件(在Android上:即可以升级系统,更改系统,获取Root权限): 破解系统的原因①安装第三方软件不需要签名,不受证书的束缚: ②修改系统的文件,达到系统的瘦身 ...
- Android 刷机常用命令
Android 刷机常用命令 线刷和卡刷的区别 1.线刷和卡刷的本质区别在于recovery,刷了官方ROM的recovery.img,刷机方式就是线刷,刷了第三方中文recovery.img,刷机方 ...
- Android刷机常识
基础知识 Android刷机一般分3种: 1.卡刷,进入recover模式将sd卡里的固件包刷进去 好久没这么用过了,后面有时间试试 2.线刷, 在电脑上用fastboot,将固件包刷进去 3.900 ...
- 手机内存解读以及android刷机原理
手机内存分为:机身内存.RAM.ROM 机身内存:相当于 电脑的硬盘 这个一般可以外加SD卡扩充: RAM:相当于 电脑的内存条 可读写,掉电清空 ROM:相当于 电脑的 BIOS ROM 原则上只读 ...
- Android fastboot 基本操作命令(Android 刷机)
Android fastboot 基本操作命令(Android 刷机) 1. 控制类: #查看设备信息 fastboot devices #重启设备 fastboot reboot #重启Bootlo ...
- 为Android刷机包签名
当你要发布一个软件或是自制的ROM时,你就需要一个使用了私钥的证书来为.apk或.zip文件进行签名.Android系统使用证书来识别软件作者和软件之间所建立的认证关系.做这个事情最经典的方式就是用k ...
- android刷机刷系统
Android刷机 线刷 前提:手机开发者模式--打开oem解锁 1.关机 2.同时按住电源键+音量up键(或Down键) ,选择fastboot模式 3.执行对应刷分区命令 刷recovery分区命 ...
- 2022全球20多款知名的Android刷机ROM镜像和Android系统开源源码(覆盖全球机型)
推荐阅读 Android10系统定制|frida逆向分析实战课程 2022全球20多款知名的Android刷机ROM镜像和Android系统开源源码(覆盖全球机型) 因此,您拥有一台Android设 ...
最新文章
- 04:sqlalchemy操作数据库 不错
- [SDOI2011]染色 (线段树维护子段问题+树剖)
- Silverlight为什么要使用程序扩展服务
- Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance
- java字符串深克隆_Java中对象的深复制(深克隆)和浅复制(浅克隆)之序列化...
- java双缓存机制_详解JVM类加载机制及类缓存问题的处理方法
- Giesecke Devrient推出全球首张Nano SIM卡,比Micro SIM卡小1/3
- 躲避方块的球——C语言游戏
- VirtualBox 安装增强功能
- 英语基础语法(五)-形容词、副词
- Axure 下载教程
- 大数据是什么?华为云学院带你探索大数据之旅
- Android面试题【高级工程师版】
- 2021-2027全球与中国紫外光固化胶市场现状及未来发展趋势
- 企业中流砥柱:别让企业中层缺位
- TensorFlow1.x最佳实践:Dataset API+Keras Model+TF Train
- 谈谈个人10几年来的一些经历感悟
- c语言中关键字的含义,c语言中的关键字有哪些?有什么含义?
- Hadoop 之上的数据建模 - Data Vault 2.0
- 如何用NAS打造私有协同办公系统?