记一次修手机的过程,附Google Pixel2拆机过程,附按键修改设置-_-|||
0x01 手机坏了
前段时间,不知道怎么回事,手头测试机的开机键突然坏了,按压无反馈。幸好adb还能用,一直连着电脑用命令唤起屏幕倒也没什么不方便,这里放几条常用的命令:
-
唤醒屏幕
adb shell input keyevent 26
-
home键
adb shell input keyevent 3
-
back键
adb shell input keyevent 4
完整的按键事件可以参考:https://developer.android.com/reference/android/view/KeyEvent
-
输入(省得电脑手机切换)
adb shell input text "XXX"
-
点按
adb shell input tap x y
这里需要输入屏幕坐标,左上角是(0,0),向右向下增大,右下角是屏幕分辨率的值,比如我的屏幕分辨率是1080x1920,那么右下角就是(1080,1920),其余位置大概估一下就差不多
-
查看屏幕分辨率
adb shell wm size
-
滑动
adb shell input swipe x1 y1 x2 y2
这里也是需要输入两个坐标,滑动的起始点(x1,y1)和终点(x2,y2),也是大概估一下就行
日子本来这样相安无事的过着,手机也就姑且这么用着,直到几周后的某一天,我忘了给手机充电…
然后就尴尬了,电源键按不动,按不动手机就开不开机,开不开机连着电脑adb就没法识别,没法识别我就没法把手机开机,死循环了。
0x02 拆手机
我的猜测是电源键卡住或者哪儿排线松了,上网搜了下拆机教程,嗯,屏幕外没有螺丝,屏内一圈胶,只有中间一根排线,里面是金属框,卸掉应该就可以看到电源键的排线了,应该是比较简单的。
于是下班后,找了个手机维修点,找师傅给我拆屏幕。
——“手机怎么了?”
——“电源键坏了,开不开机。”
——“什么型号啊?”
——“Google Pixel2。”
——“没听过,我这儿没配件,怕是修不了。”
——“不用您修,手机没坏,您就给我把屏幕拆下来就行了。”
——“这手机没拆过啊…”
——“很简单,你看我给你找拆机视频。”
——“…那咱们可事先说好,我给你拆,不收钱,但是要是拆坏了你也别找我赔。”
——“好…(你小心点)”
于是师傅开始放手干了,过程很快,先把手机稍微烤一下,然后拿撬棒沿着边缘一点点把屏幕剥开。因为很多胶,师傅拿着刀片来回划。
——“你小心点。”
——“我小心点手,还是小心手机?”
——“手…(其实手机也还很贵)”
屏幕的排线有两个螺丝固定,屏幕下来之后,开始拆中框,一共有12颗螺丝,顶部中间有一颗隐藏螺丝,中框下来之后就可以看到电源的排线了。果然不是排线的问题,是电源按键的脚断了,所以陷进去卡住。
——“这个配件国内换不了。”
——“那有什么办法修吗?”
——“可以拿个东西粘一下,但是估计按几次还是会坏。”
——“那师傅您别给我装回去了,我就这样用吧。”
——“…”
——“可以开机就能用。”
——“…那你小心别再磕着了”
——“嗯!”
——“下次再关机,直接重新装下电源排线就行。”
——“好勒!”
于是,我就拎了一袋螺丝,一个手机里面拆下来的板,和一个屏幕机身分离的手机开开心心回家了。
师傅拆手机的时候没有拍照,发一个最后的图吧。
附一个拆机教程:https://3g.163.com/v/video/VX0OTG5GL.html
0x03 换按键
因为开机键毕竟是坏了,总是把屏幕拆啊拆的也不是个事儿,还总担心把屏幕的排线弄断了,搜了一下果然可以自己设置各个按键功能,参考谷歌的官方文档按键布局文件。
按键布局文件由 USB 供应商、产品(可能还包括版本)ID 或输入设备名称来确定位置。
系统会依次查询指定目录确定各按键的功能,而我们要改的常规按键布局文件
位于/system/usr/keylayout/
目录下,名为Generic.kl
,是一个纯文本文件,每一行是一句声明,包含关键字key
,然后一个按键代码编号,和具体的按键代码名称。
修改操作非常简单,找到开关机键POWER
,然后跟音量加键
换个位置就好了,如图
注意因为涉及到系统配置文件,需要root权限,然后重新挂载一下系统路径修改读写权限,命令是
// 挂载为可写
mount -o remount,rw /system
// 恢复为只读
mount -o remount,ro /system
测试一下,果然没问题了!
今天是七夕,非常开心,因为———不用赔公司钱啦!