Linux上adb的使用记录

前言

我对手机的需求不高,不打游戏,只需要续航,有 Google 服务以及 root 就足够了。之前一直使用的 ADUI 的 Global 版本,再加上 Magisk 的 root 管理,配上冰箱也足以应付诸如微信这一类的国产毒瘤了。但之前有一次升级到 Pie 的大版本更新,把我的 root 覆盖掉了。因此,不得不重新再刷入 Magisk。不过 MIUI11 官方说会加入应用冻结的功能,这样一来我连 root 的需求似乎也没有了 /笑

言归正传,在 Linux 上使用 adb 有些机型还是需要做一些配置,不然 adb devices 会显示:

List of devices attached
[device name] unauthorized

要进行配置之前,首先需要找到自己手机的 USB vendor ID 和 product ID,启用开发者模式,然后打开 usb 调试模式插上手机后在 terminal 中执行:

$ lsusb

它将会显示出好几条类似 Bus xxx Device xxx: ID xxxx:xxxx 的东西,根据后面显示的公司信息很容易分辨出自己的手机是哪一个,ID 之后的 xxxx:xxxx,前者是 vendor id,后者是 product id

下面有两种方式来写配置文件:

添加udev规则

1.首先要确保系统中有安装 android-udev 这个包。可以通过包管理器来安装或者访问source.android.com来手动安装。在这里新建一个文件:/etc/udev/rules.d/51-android.rules,然后写入以下配置,只需修改其中的 vendor id 和 product id 为自己的即可:

SUBSYSTEM==“usb”, ATTR{idVendor}=="[VENDOR ID]", MODE=“0660”, GROUP=“adbusers”
SUBSYSTEM==“usb”,ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+=“android_adb”
SUBSYSTEM==“usb”,ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+=“android_fastboot”

2.然后重新载入新的配置文件:

$ sudo udevadm control --reload-rules

3.然后将当前的用户添加到 adbusers 这个组里:

$ sudo gpasswd -a user group

配置adb

在这个位置创建文件 ~/.android/adb_usb.ini ,然后将 vendor id 写入到里面,保存退出即可。

这两种方式任选其一即可。然后进入解压后的 platform-tools 目录,将下好的 twrp 也放到里面,在目录中启动 terminal,然后执行:

$ ./adb devices

这样的话,应该就能看到设备被列出来了,类似于这样:

List of devices attached
[device name] device

这样就算是完成了。

后记

我自己使用的是第二种方式,能够成功找到adb。adb reboot bootloader 后进入 bootloader 也能通过 fastboot devices 找到设备,然而通过 fastboot flash recovery xxxx.img 就会莫名其妙的卡住…通过 fastboot boot xxxx.img 想要直接进入 twrp 也会卡在 sending…这里。不知道是什么原因,先挖个坑,以后再慢慢研究好了。

参考资料

  1. Android Debug Bridge
Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计