欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次修手机的过程

程序员文章站 2022-05-30 19:47:36
...

记一次修手机的过程,附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

测试一下,果然没问题了!

记一次修手机的过程


今天是七夕,非常开心,因为———不用赔公司钱啦!