猫叔の杂记 · 手帐

Linux下的Android刷机

猫叔 LinuxAndroid开发

因为开发与日常用系统都是Linux,偶尔需要给自己的Android手机刷机,但国内各大论坛上给出的刷机工具大都是Windows版的,在虚拟机下操作又不太方便,于是打算在Linux下刷机,经过一时半会的折腾,记录下具体的操作步骤。

启用USB调试

打开设置>关于手机,点击版本号7次,回退至设置可以看到菜单中出现开发者选项,进入后打开USB调试选项。

创建USB配置

以Root权限创建/etc/udev/rules.d/51-android.rules文件,内容为:

SUBSYSTEM=="usb" ENV{DEVTYPE}=="usb_device", MODE="0666"

执行sudo chmod a+r /etc/udev/rules.d/51-android.rules命令为该配置文件增加读权限。

执行sudo /etc/init.d/udev restart使配置文件生效。

查看设备ID号

用USB线将手机连接后,执行lsusb命令查看连接的USB设备信息:

...
Bus 001 Device 013: ID 2a70:9011
...

找到手机设备的一行,在这里2a70就是设备ID,将0x2a70追加到~/.android/adb_usb.ini文件中。

安装ADB与FASTBOOT命令行工具 (Ubuntu)

ADB(Android Debug Bridge)是一个开发工具,帮助Android设备与PC通信,使用USB线或WIFI方式连接后可以用它操作手机。

Fastboot是一种用USB线连接的刷机方式(线刷),它比Recovery(卡刷)更底层。

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot

连接测试

用USB线将手机连接后,执行sudo adb devices,可以看到:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached

0403502001011000    device

若看到no permissions,需要在手机上勾选允许连接USB调试再试。

愉快的玩机

万事具备,接下来就可以用adbfastboot愉快的玩机啦,以下几个有趣的命令:

  • 安装应用:adb install -r <name>.apk
  • 执行Shell命令:adb shell <command>
  • 模拟按键:adb shell input keyevent <value>
  • 截屏:adb shell screencap <path>.png
  • 录像:adb shell screenrecord <path>.mp4

常用刷机步骤

  • 在开机状态下执行adb reboot bootloader命令,在手机重启后进入Fastboot模式。
  • 在Fastboot模式下执行fastboot devices查看连接的手机。
  • 执行fastboot flash recovery <recovery_path>.img命令刷入Recovery。
  • 执行fastboot boot <recovery_path>.img命令免刷进入Recovery

使用许多第三方的Recovery就可以试试各种刷机啦。

猫叔
程序员,关注设计与二次元