开启Google Pixel的USB diag模式

注:目前这篇文章开出来的diag模式我还没有能用QPST成功接入,所以请先考虑要不要折腾再尝试。

本文按理说适用于Pixel和Pixel XL。

Pixel和Pixel XL默认没有diag模式的开关,发布的正式版系统里的配置文件中并没有写入这个开关→相关参考

这个配置文件为 /init.common.diag.rc

打开我们手机里的这个文件,可以看到内容为

这里的内容一致。

那么接下来我们要做的事情就很明确了,就是用这个文件覆盖手机中的 /init.common.diag.rc 文件,然后重启手机。

注意:系统中的根目录是read only的,所以需要刷入第三方recovery(比如twrp),并挂载system分区,才能修改这个文件。

 

这里我以twrp为例(首先打开你的USB调试模式,并把手机连上电脑)

由于懒得上传图片,这里用文字简单地进行操作介绍,如果你知道如何覆盖这个文件,那么可以直接跳到最后

  1. 刷入twrp,这个相关教程很多,本文不做介绍。
  2. 进入twrp。(如果你在系统中,可以使用 adb reboot recovery 进入recovery。如果你的手机正在bootloader模式,那么可以按音量上下键找到recovery模式。如果你没有开机,那可以按着音量↑和电源键进入recovery)
  3. 如果你的设备有锁,先进行相关的解锁操作。
  4. 进入Mount菜单,勾上System,返回。
  5. 回到电脑上,下载这个文件。(下载下来是个内容为原文件base64过后的txt,不要用base64转换工具转换后复制,因为不同的系统复制文本可能出现换行方面的一些问题。直接在浏览器地址栏输入 data:plain/text;base64,下载的txt里的内容 然后回车即可下载这个文件)
  6. 把这个文件改成一个简单的英文文件名,放进手机存储里,就和你往手机里放照片,放视频一样的方法。
  7. 这一步有两个选择,选一种你认为方便的
    • 通过twrp的终端输入命令
      1. 进入Advanced菜单,点Terminal,这时你应该看见了一个黑乎乎的终端界面。
      2. 输入命令 cat /sdcard/你保存的文件名 > /system/init.common.diag.rc ,点√。
    • 通过adb命令(需要root)
      1. 打开cmd,输入 adb shell ,回车。
      2. 输入 su ,回车。这时候你的手机上应该会跳出一个请求root权限的框,请注意查看。
      3. 输入命令 cat /sdcard/你保存的文件名 > /system/init.common.diag.rc ,
  8. 查看是否成功复制,继续输入命令 cat /system/init.common.diag.rc ,看显示出来的内容是不是你下载的文件中的内容,如果不是的话,检查第7步的文件名有没有打错。
  9. 现在配置文件已经修改好了,重启你的手机。
  10. 重启好了之后回到电脑,如果你之前就是用的cmd,跳过这一步后面的内容。打开cmd,做第7步中第二种方法的1、2步。
  11. 输入 setprop sys.usb.config diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb ,回车。
  12. 打开电脑上的设备管理器,看看有没有多出一个未知的Pixel设备或者一个Com端口。如果有,那就成功了。未知的Pixel设备应该会自动安装驱动,耐心等待一会儿。
  13. 完成。

我的Pixel XL完成以上步骤之后,设备管理器里多出来了一个叫做Qualcomm HS-USB Diagnostics 9025和Qualcomm HS-USB NMEA 9025的端口。

不过在使用QPST尝试连接的时候回出现一个错误 : Online connection failure:IDispatch error #7690

目前还在继续研究是否需要完整的userdebug版本的系统才可以正确使用。


目前有个新发现是,直接打开系统的USB调试模式,然后在电脑cmd输入 adb reboot edl 后会出来一个QPST能识别的端口Qualcomm HS-USB QDLoader 9008,但是QPST的信息下载会卡在一个进度不动。


如果读者有什么能推进进程的想法请留言。





如文中无特殊说明,本站均使用以下协议:知识共享许可协议
知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

本博客使用Disqus评论系统,如果看不到评论框,请尝试爬墙。