注:目前这篇文章开出来的diag模式我还没有能用QPST成功接入,所以请先考虑要不要折腾再尝试。本人未尝试的方法将不会写入博文,更多可能有效的方法,请查看评论。
本文按理说适用于Pixel和Pixel XL。
Pixel和Pixel XL默认没有diag模式的开关,发布的正式版系统里的配置文件中并没有写入这个开关→相关参考
这个配置文件为`/init.common.diag.rc`
打开我们手机里的这个文件,可以看到内容为
on property:ro.boot.mode=normal rm /dev/diag
与这里的内容一致。
那么接下来我们要做的事情就很明确了,就是用这个文件覆盖手机中的`/init.common.diag.rc` 文件,然后重启手机。
注意:系统中的根目录是read only的,所以需要刷入第三方recovery(比如twrp),并挂载system分区,才能修改这个文件。
这里我以twrp为例(首先打开你的USB调试模式,并把手机连上电脑)
由于懒得上传图片,这里用文字简单地进行操作介绍,如果你知道如何覆盖这个文件,那么可以直接跳到最后
- 刷入twrp,这个相关教程很多,本文不做介绍。
- 进入twrp。(如果你在系统中,可以使用`adb reboot recovery` 进入recovery。如果你的手机正在bootloader模式,那么可以按音量上下键找到recovery模式。如果你没有开机,那可以按着音量↑和电源键进入recovery)
- 如果你的设备有锁,先进行相关的解锁操作。
- 进入Mount菜单,勾上System,返回。
- 回到电脑上,下载这个文件。(下载下来是个内容为原文件base64过后的txt,不要用base64转换工具转换后复制,因为不同的系统复制文本可能出现换行方面的一些问题。直接在浏览器地址栏输入`data:plain/text;base64,下载的txt里的内容` 然后回车即可下载这个文件)
- 把这个文件改成一个简单的英文文件名,放进手机存储里,就和你往手机里放照片,放视频一样的方法。
- 这一步有两个选择,选一种你认为方便的
- 通过twrp的终端输入命令
- 进入Advanced菜单,点Terminal,这时你应该看见了一个黑乎乎的终端界面。
- 输入命令`cat /sdcard/你保存的文件名 > /system/init.common.diag.rc` ,点√。
- 通过adb命令(需要root)
- 打开cmd,输入`adb shell` ,回车。
- 输入`su` ,回车。这时候你的手机上应该会跳出一个请求root权限的框,请注意查看。
- 输入命令`cat /sdcard/你保存的文件名 > /system/init.common.diag.rc` ,
- 通过twrp的终端输入命令
- 查看是否成功复制,继续输入命令`cat /system/init.common.diag.rc` ,看显示出来的内容是不是你下载的文件中的内容,如果不是的话,检查第7步的文件名有没有打错。
- 现在配置文件已经修改好了,重启你的手机。
- 重启好了之后回到电脑,如果你之前就是用的cmd,跳过这一步后面的内容。打开cmd,做第7步中第二种方法的1、2步。
- 输入`setprop sys.usb.config diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb` ,回车。
- 打开电脑上的设备管理器,看看有没有多出一个未知的Pixel设备或者一个Com端口。如果有,那就成功了。未知的Pixel设备应该会自动安装驱动,耐心等待一会儿。
- 完成。
我的Pixel XL完成以上步骤之后,设备管理器里多出来了一个叫做Qualcomm HS-USB Diagnostics 9025和Qualcomm HS-USB NMEA 9025的端口。
不过在使用QPST尝试连接的时候回出现一个错误 : Online connection failure:IDispatch error #7690
目前仍然没有什么进展
目前有个新发现是,直接打开系统的USB调试模式,然后在电脑cmd输入`adb reboot edl` 后会出来一个QPST能识别的端口Qualcomm HS-USB QDLoader 9008,但是QPST的信息下载会卡在一个进度不动。
如果读者有什么能推进进程的想法请留言。
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。
USB Debugging Mode – Pixel™ / Pixel XL, Phone by Google
If you need to facilitate a connection between your device and a computer with the Android SDK (software development kit), view this info.
From a Home screen, tap the Arrow icon Up arrow icon to display all apps.
Navigate: Settings Settings app icon > System About icon > Developer options Developer options icon.
Note If Developer options isn’t available, navigate: Apps > Settings > System > About phone then tap Build number 7 times. Tap the Back icon Back icon to navigate back to System then select Developer options.
Ensure that the Developer options switch (located in the upper-right) is turned on On icon.
Tap USB debugging to turn on On icon or off Switch off.
If prompted “Allow USB debugging?”, tap OK to confirm.
谢谢,但这是usb debug,不是手机芯片diag模式
看到楼主是用系统的驱动,那么这就是QPST连接不上的原因所在了。以前破解Nexus 6的时候我也遇到过相同的问题,一定要去找厂商提供的支持diag的驱动才可以连接上QPST。希望楼主早日成功。
请问pixel 2破解成功了吗
没有pixel 2
编译一个基于userdebug的aosp就可以
怎么编译
从这个 Google Forum 的讨论来看,似乎确实需要 -userdebug 的系统才能打开 usb diag mode
https://productforums.google.com/forum/#!msg/phone-by-google/-3VuWHa0xDw/gjOl4Zz5AQAJ
但是奇怪的是把diag mode放到debug版系统的commit只改动了init.common.diag.rc文件,其它没有变动。
把仓库 clone 下来搜索了一下,似乎确实只有这个 commit 改动了 diag mode 到 userdebug 版本。。照理说按照这篇博文把文件替换回去就应该可以了啊
这我之前没有什么经验,请问你知道到底要开出哪个端口的diag才有用嘛
这方面我也不熟悉,是跟别人讨论能否修改 pixel 的 carrier_policy.xml 让它支持电信的时候,讨论到打开 diag mode 的问题时,搜到这篇博客的
请问最终修改成功了吗?
https://forum.xda-developers.com/pixel-xl/help/pixel-xl-usb-diag-mode-t3516674/page3
所以还是得用userdebug模式编译的系统吗
请问大神有新的进展吗?
没有
gfan有人发了编译好可以连接上QPST的包