Closed baolitoumu closed 4 years ago
does touch screen work when you flash the old firmware back?
just to note, none of the scripts here change anything on touch screen functionalities..
无论怎么刷固件,触摸屏都无法使用,这个问题出现在我刷了蓝牙hid之后,进入系统之后触摸屏无法使用,于是我尝试进入重置,发现这样也没用,触摸屏依旧无法使用。所以我想问下,如何彻底的刷机,类似于dd
你可以用upgrade wiki里面的pkg 里面用的是dd的方法刷机 刷完后可能需要重置一下数据
另外如果你进diagnosis mode 里面/use/local/bin应该有一个测试触摸屏的script 我晚一些给你找一下 如果diagnosis里测试触屏的script不工作 那么就不是蓝牙pkg导致的问题(虽说本来蓝牙替换就不应该影响到触摸屏)
On Wed, Jun 19, 2019, 17:58 tao notifications@github.com wrote:
无论怎么刷固件,触摸屏都无法使用,这个问题出现在我刷了蓝牙hid之后,进入系统之后触摸屏无法使用,于是我尝试进入重置,发现这样也没用,触摸屏依旧无法使用。所以我想问下,如何彻底的刷机,类似于dd
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/HappyZ/dpt-tools/issues/107?email_source=notifications&email_token=ABDVEKWWBRVO2IDW3VYJMBTP3K23HA5CNFSM4HYTZON2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYDQNCA#issuecomment-503776904, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDVEKXJKKS37Q43RZJ7MY3P3K23HANCNFSM4HYTZONQ .
这些方法我都试过,包括我也翻看了历史问题,没办法了,才来发了个问题,实在打扰你了
你用
cd /usr/local/bin
./tp_print_touch_data.sh > /root/test.log
触摸屏幕 按ctrl + C 退出 然后
cat /root/test.log
你看有没有:
Finger, ID, Detect, Type 1:Finger, Event 1:Mo 4:Do 5:Up, X, Y, H, W, Ampl, Peak
Stylus, ID 1:Tip 2:Btn0 3:Btn1, Detect, Type 3:Stylus, Event 1:Mo 4:Do 5:Up,X, Y, Prs, bat 1:L 2:M 3:H, dmy0, dmy0
F,0,1,1,4,10494,20169,15,13,172,255
F,0,1,1,1,10494,20169,15,13,168,255
F,0,1,1,1,10494,20169,15,12,173,255
F,0,1,1,1,10494,20169,15,13,176,255
F,0,1,1,1,10494,20169,15,13,177,255
F,0,1,1,1,10494,20169,15,13,178,255
F,0,1,1,1,10494,20169,15,13,177,255
F,0,1,1,1,10494,20169,15,12,170,255
F,0,1,1,1,10494,20169,16,12,125,255
F,0,0,1,5,10494,20169,0,0,0,0
...
运行./tp_print_touch_data.sh 报错 cat: can't open '/sys/bus/i2c/drivers/atmel_mxt_ts/3-004b/print_touch_data': No such file or directory
looks like that's what causing your touchscreen not working.. I don't have device in hand, but can you look into ./tp_print_touch_data.sh
and see if this is caused by environment setup, or it's actually you were missing those files? check if your touchscreen drivers all exist
驱动在哪个位置
I have the exact same problem, too. This touch screen bug never occured in 1.4 firmware.
And I fixed it several times using fw or install-pkg in diagnosis mode. However, this touch screen bug happens now and then, so I have to re-fix it every time, which is pretty annoying.
srry i was super busy lately..
/sys/
exist in diagnosis mode (and corresponding folders), and i haven't seen this before.. but if it didn't work in diagnosis mode, then it won't work for Android system either for sure.. My device is rp1 Japanese edition, I can temporarily fix this problem by doing several re-flash. By SEVERAL I mean sometimes just one flash does not solve the problem. BTW, it is never a permanent fix, I "fixed" the bug in the morning, but it happens again now...
Another thing to mention is that running factory_reset.sh under /usr/local/bin reports "NG", which never happens in firmware 1.4.
This is how I fixed the problem again! (But I guess it will happen sometimes later...)
warning: do not reboot between step 1 and 2, it seems to cancel out step1's effect. Note: the "NG" after running factory_rest.sh is weird... In 1.4 factory_reset.sh works well.
thx, but I want to clarify that the new version did not modify anything in /usr/local/bin
in diagnosis partition, not that I am aware of.
NG
prints only when the factor reset script is interrupted, is terminated, or has memory-related error. For example, if you ran the reset script, and you pressed Ctrl + C
to terminate it, it will print NG
again, when touch screen did not work, it also did not work in diagnosis mode (this comment)? when it happens, can you also do lsmod
to check if tp_filter
is currently loaded?
Appendix:
a. tp_filter
is loaded, this is the most suspected thing I had in mind that causes this (1.6 upgrade unifies the driver tp_filter
for both RP1 and CP1)
b. I do have this file in diagnosis mode, and touch screen works when I tested it
and finally, @baolitoumu you can try to downgrade it back to 1.4 and see if problem persists, using the modded official app. if so, then it may be hardware issue, rather than software
Thanks for replying. I'm curious that if nothing changed in diagnosis partition, what may be the cause of factory_reset.sh messing up? BTW, after I "fixed" the touch screen problem by format_userdata.sh and then re-flash, touch screen worked and print_touch_data exist. However, print_touch_data does not exist when the touch screen is bugged(If my memory is correct). I will further test it when the bug reappears since my device is temporarily normal.
nothing I had in mind for factory_reset.sh
NG
problem.. it would be nice to see if it pops up errors but I don't see that in your screenshot. It means every command in the script went smoothly.. if you can confirm it actually resets, then I think you can just ignore it.
Currently factory_reset.sh does not work, "NG" pops up immediately like nothing is done, and my device is not resetted as it should be. However, format_userdata.sh works fine just like factory_reset.sh did in 1.4, their functions are similar, too.
机器放电完了之后,插电重启,触摸屏暂时恢复正常了。。这是什么原理,这期间我等待你们的回复,没有进行任何操作
根据历经一个月的问题,我总结如下(仅仅代表我的):屏幕失灵跟蓝牙hid功能有非常大的关系,如果造成了蓝牙功能开启报错(1.4刷蓝牙hid,升级1.6我遇到了这个问题),接着会引发屏幕失灵(可能重启后会产生这个问题),在重新刷新固件后,彻底断电重启,貌似可以恢复,按reset重启似乎没有作用。
@baolitoumu check out https://pro.sony/cn/service/20190627.shtml
I kinda suspect they may also have bugs that trigger your issue..
/usr/local/bin 目录下有触摸屏测试脚本,启动后用手指在屏幕上滑动会在终端上打印采集到的坐标,你在有问题的时候进入diagnosis模式测试一下看看是什么结果。
不幸的是,我几天没用(没充过电,电量充足),打开一看触摸屏没法用了。。。。。。。
现在还能进入diagnosis模式吗?diagnosis模式下是linux系统,而非用户态的Android系统,进入后用触屏测试脚本测试一下,确认硬件是否正常,如果正常就重刷原厂系统,重新来过就是了
测试了正常,有触摸数据的
按照进入 调试模式,poweroff然后开机,可以解决触摸屏临时问题
interesting solution for that..
This issue is first reported maybe even before dpt-tools came out. So I believe sony is largely responsible for this issue. See: https://us.community.sony.com/s/question/0D50B00005IkNOs/i-have-a-dptrp1-and-the-touch-screen-sometimes-doesnt-work-does-someone-know-how-to-solve-the-problem-many-thanks?language=en_US&t=1563682282580
Any clue of how to debug like keeping a log? Yet the problem remains mystery, I think that finding the cause is very important. Maybe the log can share some light on this issue...
whenever it broke, you can run adb logcat
to see if anything happened. By default, the log is not saved. To track it in longer history, you probably need to install an app and then keep running it until touchscreen didn't response.
W/DigitalPaperApp_DigitalPaperAppIntentReceiver( 3612): onReceive: action[com.sony.infras.dp_system_intent.PEN_DETECT] I/InputDispatcher( 2634): Override ACTION to CANCEL W/PowerManagerService( 2634): [PhoneWindowManager] interceptKeyBeforeQueueing keycode=KEYCODE_CAMERA up isWakeKey=false wakeUp=false interactive=true keyguardActive=false policyFlags=22000000 W/ContextImpl( 2634): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1336 com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeDispatching:2787 com.android.server.wm.InputMonitor.interceptKeyBeforeDispatching:388 com.android.server.input.InputManagerService.interceptKeyBeforeDispatching:1466
W/DigitalPaperApp_DigitalPaperAppIntentReceiver( 3612): onReceive: action[com.sony.infras.dp_system_intent.PEN_LOST] W/PowerManagerService( 2634): [PhoneWindowManager] interceptKeyBeforeQueueing keycode=KEYCODE_CAMERA down isWakeKey=false wakeUp=false interactive=true keyguardActive=false policyFlags=22000000 D/PowerManagerService( 2634): userActivityFromNative: start event=1 D/PowerManagerService( 2634): userActivityInternal: event=1 flags=0x0 W/ContextImpl( 2634): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1336 com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeDispatching:2774 com.android.server.wm.InputMonitor.interceptKeyBeforeDispatching:388 com.android.server.input.InputManagerService.interceptKeyBeforeDispatching:1466 W/DigitalPaperApp_DigitalPaperAppIntentReceiver( 3612): onReceive: action[com.sony.infras.dp_system_intent.PEN_DETECT] D/PowerManagerService( 2634): handleUserActivityTimeout D/PowerManagerService( 2634): [Wakefulness] Awake D/PowerManagerService( 2634): KeepAwake by: D/PowerManagerService( 2634): WAKE_LOCK_STAY_AWAKE D/PowerManagerService( 2634): USER_ACTIVITY_SCREEN_DIM D/PowerManagerService( 2634): NearbyPen D/PowerManagerService( 2634): handleUserActivityTimeout D/PowerManagerService( 2634): [Wakefulness] Awake D/PowerManagerService( 2634): KeepAwake by: D/PowerManagerService( 2634): WAKE_LOCK_STAY_AWAKE D/PowerManagerService( 2634): NearbyPen D/PowerManagerService( 2634): [Wakefulness] Awake D/PowerManagerService( 2634): KeepAwake by: D/PowerManagerService( 2634): WAKE_LOCK_STAY_AWAKE D/PowerManagerService( 2634): NearbyPen D/PowerManagerService( 2634): ReleaseSuspendBlocker: PowerManagerService.WakeLocks I/InputDispatcher( 2634): Override ACTION to CANCEL W/PowerManagerService( 2634): [PhoneWindowManager] interceptKeyBeforeQueueing keycode=KEYCODE_CAMERA up isWakeKey=false wakeUp=false interactive=true keyguardActive=false policyFlags=22000000 W/ContextImpl( 2634): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1336 com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeDispatching:2787 com.android.server.wm.InputMonitor.interceptKeyBeforeDispatching:388 com.android.server.input.InputManagerService.interceptKeyBeforeDispatching:1466
When the touch screen becomes not responsive, it seems to enter a loop. I committed the bold section because it repeats awful lot of times. However, it became normal somehow this time even I don't think I've touched anything, it just became automatically this time.
test_logcat_new.txt Full log here, hope this helps find out the reason that touchscreen malfunctions.
Cheers! I permanently fixed my issue by clearing data of DigitalPaperApp, below are detailed steps:
adb shell am start com.android.settings/com.android.settings.Settings
to open android settingsNote: By logcat I found something is wrong with this app, but your issue's cause may not be the same as mine. However, the fix is quick and harmless, which can be done in about 10 minutes, worth a try anyway.
I had this issue on my digital paper as well, unfortunately none of the fixes here seemed to alleviate the problem for me.
However I did notice a new update @ https://www.sony.jp/digital-paper/update/#20190716. Specifically the newest version update. One of the highlights is that it fixes touch screen problems (whether by finger or by pen). ・DPT-RP1 / DPT-CP1 Version【1.6.03.09261】 Dont have my digital paper with me, but this might be the fix.
Looks to be addressed already.
1.6.03.09261 , touchscreen failed today. i had 'fw' a bt_hid.pkg to my RP1 longtime ago, maybe also did 'fw' a bt_recover.pkg so i just connect RP1 to MacBook with USB, fw a bt_recover.pkg again after RP1 reboot, touchscreen come back
1.6.03.09261 , touchscreen failed today. i had 'fw' a bt_hid.pkg to my RP1 longtime ago, maybe also did 'fw' a bt_recover.pkg so i just connect RP1 to MacBook with USB, fw a bt_recover.pkg again after RP1 reboot, touchscreen come back
sorry, it seems no because bt.pkg, just because fw's reboot make touchscreen come back. after one night , touchscreen failed again and now i'm trying to fw again, then reset to factory.....
1.6.03.09261 , touchscreen failed today. i had 'fw' a bt_hid.pkg to my RP1 longtime ago, maybe also did 'fw' a bt_recover.pkg so i just connect RP1 to MacBook with USB, fw a bt_recover.pkg again after RP1 reboot, touchscreen come back
sorry, it seems no because bt.pkg, just because fw's reboot make touchscreen come back. after one night , touchscreen failed again and now i'm trying to fw again, then reset to factory.....
update: i tried every software approach , but it didn't work i tried to flash every pkg(total system/adb/bt......and 1.4.1/1.6.02/1.6.03) to my DP1, it always stuck at "preparing to the update..." for 30~60min , but it would finish the firmware update finally.
finally, i got it work: i pried a gap between the back of the device and the front panel, then touchscreen works.
and every time i make a gap to the device, the stucking "...update..." vanished immediately
so, i think it's a hardware issue, DP1 is too thin and bends easily, maybe there's some bad cable contact
嗨,各位好,我的DPT-RP1的触摸屏最近一个月也没有响应了,也不是完全地没有任何响应,我用笔测试过,准确地说,应该是屏幕最左边大概5毫米宽度的那一竖条有反应,最右边大概1毫米宽度那一竖条有反应,但这么小的范围,毫无实际意义。
以下操作我都是全程用USB数据线连接到Windows系统操作的。
按照本帖上面的讨论,在屏幕没有响应之后,我刷入了fw_updater_packer_by_shankerzhiwu/pkg_example/hack_basics/fw.pkg和fw_updater_packer_unpacker/pkg_example/flashable_mod_boot_img_1.6.00.15110/FwUpdater.pkg,然后没有找到ADB软件,也就再没有安装任何软件了。
用python .\dpt-tools-master\dpt-tools.py进入diagnosis模式,进入cd /usr/local/bin目录,运行./tp_print_touch_data.sh > /root/test.log命令,再cat /root/test.log, 发现我触摸上述的左右两个竖条范围内,test.log有类似于下面的数据,但是我触摸原来没有反应的屏幕区域,test.log就没有类似于下面的数据:
F,0,1,1,4,10494,20169,15,13,172,255 F,0,1,1,1,10494,20169,15,13,168,255 F,0,1,1,1,10494,20169,15,12,173,255 F,0,1,1,1,10494,20169,15,13,176,255
这个时候,我做了一件傻事,运行了format_userdata.sh,并且重启了电纸书,然后,PC端软件就无法连接电纸书了,python .\dpt-tools-master\dpt-tools.py也一直报错了,估计是电纸书里面没有证书了。
D:\Python310>python .\dpt-tools-master\dpt-tools.py [error] HTTPSConnectionPool(host='digitalpaper.local', port=8443): Max retries exceeded with url: /auth/nonce/f31cbe3a-745e-4f19-9e55-b98ea50f67da (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000288A174B460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')) [error] cannot get nonce [error] Cannot authenticate. Make sure your id, key, and ip addresses are correct.
电纸书现在可以通过按Home键然后Power On进入diagnosis模式,PC上也能够发现电纸书的COM口。 本来我是不知道串口ssh的用户名和密码的,幸好从其他地方知道了用户名和密码分别是root和12345, 所以现在还可以登录到linux系统。
FPX-1010 login: root Password: 12345 Last login: Sat Nov 27 09:25:04 UTC 2021 on ttyGS0 root@FPX-1010:~#
要是直接按reset键强行重启电纸书而不进入进入diagnosis模式,就停在“请点击开始按钮”界面,然后因为屏幕没反应,就无法继续下去了。
所以,请问我在目前这个状态,如何把机器救回来?
用adb对屏幕进行操作 比如adb shell input tap
后面加按钮坐标
嗨,各位好,我的DPT-RP1的触摸屏最近一个月也没有响应了,也不是完全地没有任何响应,我用笔测试过,准确地说,应该是屏幕最左边大概5毫米宽度的那一竖条有反应,最右边大概1毫米宽度那一竖条有反应,但这么小的范围,毫无实际意义。
以下操作我都是全程用USB数据线连接到Windows系统操作的。
按照本帖上面的讨论,在屏幕没有响应之后,我刷入了fw_updater_packer_by_shankerzhiwu/pkg_example/hack_basics/fw.pkg和fw_updater_packer_unpacker/pkg_example/flashable_mod_boot_img_1.6.00.15110/FwUpdater.pkg,然后没有找到ADB软件,也就再没有安装任何软件了。
用python .\dpt-tools-master\dpt-tools.py进入diagnosis模式,进入cd /usr/local/bin目录,运行./tp_print_touch_data.sh > /root/test.log命令,再cat /root/test.log, 发现我触摸上述的左右两个竖条范围内,test.log有类似于下面的数据,但是我触摸原来没有反应的屏幕区域,test.log就没有类似于下面的数据:
F,0,1,1,4,10494,20169,15,13,172,255 F,0,1,1,1,10494,20169,15,13,168,255 F,0,1,1,1,10494,20169,15,12,173,255 F,0,1,1,1,10494,20169,15,13,176,255
这个时候,我做了一件傻事,运行了format_userdata.sh,并且重启了电纸书,然后,PC端软件就无法连接电纸书了,python .\dpt-tools-master\dpt-tools.py也一直报错了,估计是电纸书里面没有证书了。
D:\Python310>python .\dpt-tools-master\dpt-tools.py [error] HTTPSConnectionPool(host='digitalpaper.local', port=8443): Max retries exceeded with url: /auth/nonce/f31cbe3a-745e-4f19-9e55-b98ea50f67da (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000288A174B460>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')) [error] cannot get nonce [error] Cannot authenticate. Make sure your id, key, and ip addresses are correct.
电纸书现在可以通过按Home键然后Power On进入diagnosis模式,PC上也能够发现电纸书的COM口。 本来我是不知道串口ssh的用户名和密码的,幸好从其他地方知道了用户名和密码分别是root和12345, 所以现在还可以登录到linux系统。
FPX-1010 login: root Password: Last login: Sat Nov 27 09:25:04 UTC 2021 on ttyGS0 root@FPX-1010:~# ls -l total 13 -rw-r--r-- 1 root root 994 Nov 27 00:07 test.log -rw-r--r-- 1 root root 11244 Nov 25 12:23 updater_1637842879.log -rw-r--r-- 1 root root 362 Nov 25 12:28 updater_bootimg_1637843299.log root@FPX-1010:~#
要是直接按reset键强行重启电纸书而不进入进入diagnosis模式,就停在“请点击开始按钮”界面,然后因为屏幕没反应,就无法继续下去了。
所以,请问我在目前这个状态,如何把机器救回来?
按照进入 调试模式,然后登陆进去,root/12345,然后运行下面的命令:
cd /usr/local/bin ./tp_print_touch_data.sh > /root/test.log
触摸屏幕 按ctrl + C 退出
然后用尖的东西捅一下reset,机器会关机,然后再开机,可以解决触摸屏临时问题。
@p4s2wd: 多谢,试了你的方法,重新开机之后,触摸屏还是没有反应。 @HappyZ: 多谢,按照你说的方法,我也试了一下,还是无法模拟点击开始按钮。
我从网上找到了一些参考资料如何计算屏幕坐标的方法,如下:
已知安卓系统的屏幕坐标系的原点是视觉的左上角,向右为X正方向,向下为Y正方向。
引用开始!
获取坐标方法:
第一步:计算比例
adb shell getevent -p | grep -e “0035” -e “0036” 获得event 体系里 宽(0035)和高(0036)
以当前我使用的手机为例,命令会输出如下信息: 0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0
0035(宽) max 1602 0036(高) max 2503
计算比例(用已知的屏幕分辨率,如1080p即:1080(宽) * 1920(高)): rateW = 1080(手机屏幕的宽) / 1602(event里0035的max) = 0.674 rateH = 1920(手机屏幕的高) / 2503(event里0036的max) = 0.767
第二步:点击屏幕计算点击位置的坐标 adb shell getevent | grep -e “0035” -e “0036” 点击屏幕上需要的位置,会有如下输出: /dev/input/event0: 0003 0035 00000341 /dev/input/event0: 0003 0036 000008ec
把0035和0036后面的位置数据从16进制转化为10进制 width = 0x341 = 31616 + 416 + 1 = 833 height = 0x8ec = 81616 + 1416 + 12 = 2284 这是在event体系里的位置,将其转化为屏幕位置 screenW = widthrateW = 8330.674 = 561 screenH = heightrateH = 22840.767 = 1751
引用结束!
我按照这个方法,获取了我的机器的参数如下:
getevent -p | grep -e 0035 -e 0036 0035 : value 0, min 0, max 20294, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 27059, fuzz 0, flat 0, resolution 0
我用皮尺测量了一下我的机器的屏幕的可视或者可触摸区域的尺寸,X方向201.5毫米,Y方向269毫米。 所以大概的比例尺是event坐标和屏幕尺寸的比例是100:1。
然后我再测量了一下开始按钮相对屏幕左上角的尺寸, 按钮的左右两侧的尺寸是从65毫米和135毫米, 按钮的上下两侧的尺寸是从225毫米和240毫米。
我用input tap 10150 23000输入,没有反应。用input tap 10150 23500输入,也没有反应。 因为开始按钮很居中,我没有更改X坐标,始终保持10150,Y坐标从21000到25000,每500递增,都始终没有反应。
然后我为了验证按钮的坐标方法的正确性,又进入到调试模式,利用残存的左边那一小条触摸还有反应的区域, 获取了一下触摸屏的数据,我分别触摸了靠近左上角的位置,靠近左下角的位置,以及左侧跟开始按钮大致等高235毫米的位置, 结果如下:
root@FPX-1010:/usr/local/bin# ./tp_print_touch_data.sh > /root/test.log root@FPX-1010:/usr/local/bin# cat /root/test.log
Finger, ID, Detect, Type 1:Finger, Event 1:Mo 4:Do 5:Up, X, Y, H, W, Ampl, Peak Stylus, ID 1:Tip 2:Btn0 3:Btn1, Detect, Type 3:Stylus, Event 1:Mo 4:Do 5:Up,X, Y, Prs, bat 1:L 2:M 3:H, dmy0, dmy0
F,0,1,1,4,468,667,9,10,64,188 F,0,1,1,1,468,667,11,11,76,215 .................... F,0,1,1,0,421,26513,6,10,85,255 F,0,1,1,0,421,26513,6,9,69,233 F,0,1,1,0,421,26513,6,9,52,187 .................... F,0,1,1,1,257,23538,10,13,132,255 F,0,1,1,1,257,23538,10,13,129,255 F,0,1,1,1,257,23538,10,13,126,255
好像667,26513,23538这几个Y值跟我触摸的位置大概确实能够保持100比1的比例,说明Event坐标的计算方法是对的。
但就是还是input tap 10150 23500没有反应,input tap 101 235,也没有反应。
另外特别说明一下,为了避免出现屏幕旋转导致的坐标变化,以上操作我都是把dpt rp1特意像墙壁上挂相框那样竖直静止放置的。
再次多谢各位兄弟的出谋划策帮助。
@HappyZ:
我的机器现在使用dpt-tools.py已经无法连接了,normal模式下只有adb shell可用,diagnosis模式下只有COM口可用。 不知道是否可以用adb shell 或者COM口来完成dpt-tools.py里面的fw命令的功能刷新PKG? 或者是否有可能把什么文件通过adb shell 或者COM口上传到电子纸里面,从而救活dpt-tools.py连接? 我的电脑上的windows版的Digital Paper APP上以前连接成功过dpt rp1,或许还能找到一些文件上传给dpt rp1。
非常感谢大佬。
@HappyZ:
我的机器现在使用dpt-tools.py已经无法连接了,normal模式下只有adb shell可用,diagnosis模式下只有COM口可用。 不知道是否可以用adb shell 或者COM口来完成dpt-tools.py里面的fw命令的功能刷新PKG? 或者是否有可能把什么文件通过adb shell 或者COM口上传到电子纸里面,从而救活dpt-tools.py连接? 我的电脑上的windows版的Digital Paper APP上以前连接成功过dpt rp1,或许还能找到一些文件上传给dpt rp1。
非常感谢大佬。
你这个机器能进入adb shell,那么可以尝试下面的命令:
触摸屏幕 按ctrl + C 退出
然后用尖的东西捅一下reset,机器会关机,然后再开机,可以解决触摸屏临时问题。
@p4s2wd
我是用ssh登录到COM口的,应该和telnet一样效果。但是无法执行install-pkg,没这个命令。 ins开头的只有insmod和installkernel两个命令。
root@FPX-1010:/# install-pkg -sh: install-pkg: not found root@FPX-1010:/# ins (press tab) insmod installkernel root@FPX-1010:/# ins insmod installkernel
@p4s2wd: 多谢,试了你的方法,重新开机之后,触摸屏还是没有反应。 @HappyZ: 多谢,按照你说的方法,我也试了一下,还是无法模拟点击开始按钮。
我从网上找到了一些参考资料如何计算屏幕坐标的方法,如下:
已知安卓系统的屏幕坐标系的原点是视觉的左上角,向右为X正方向,向下为Y正方向。
引用开始!
获取坐标方法:
第一步:计算比例
adb shell getevent -p | grep -e “0035” -e “0036” 获得event 体系里 宽(0035)和高(0036)
以当前我使用的手机为例,命令会输出如下信息: 0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0
0035(宽) max 1602 0036(高) max 2503
计算比例(用已知的屏幕分辨率,如1080p即:1080(宽) * 1920(高)): rateW = 1080(手机屏幕的宽) / 1602(event里0035的max) = 0.674 rateH = 1920(手机屏幕的高) / 2503(event里0036的max) = 0.767
第二步:点击屏幕计算点击位置的坐标 adb shell getevent | grep -e “0035” -e “0036” 点击屏幕上需要的位置,会有如下输出: /dev/input/event0: 0003 0035 00000341 /dev/input/event0: 0003 0036 000008ec
把0035和0036后面的位置数据从16进制转化为10进制 width = 0x341 = 3_16_16 + 4_16 + 1 = 833 height = 0x8ec = 8_16_16 + 14_16 + 12 = 2284 这是在event体系里的位置,将其转化为屏幕位置 screenW = width_rateW = 833_0.674 = 561 screenH = height_rateH = 2284_0.767 = 1751
引用结束!
我按照这个方法,获取了我的机器的参数如下:
getevent -p | grep -e 0035 -e 0036 0035 : value 0, min 0, max 20294, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 27059, fuzz 0, flat 0, resolution 0
我用皮尺测量了一下我的机器的屏幕的可视或者可触摸区域的尺寸,X方向201.5毫米,Y方向269毫米。 所以大概的比例尺是event坐标和屏幕尺寸的比例是100:1。
然后我再测量了一下开始按钮相对屏幕左上角的尺寸, 按钮的左右两侧的尺寸是从65毫米和135毫米, 按钮的上下两侧的尺寸是从225毫米和240毫米。
我用input tap 10150 23000输入,没有反应。用input tap 10150 23500输入,也没有反应。 因为开始按钮很居中,我没有更改X坐标,始终保持10150,Y坐标从21000到25000,每500递增,都始终没有反应。
然后我为了验证按钮的坐标方法的正确性,又进入到调试模式,利用残存的左边那一小条触摸还有反应的区域, 获取了一下触摸屏的数据,我分别触摸了靠近左上角的位置,靠近左下角的位置,以及左侧跟开始按钮大致等高235毫米的位置, 结果如下:
root@FPX-1010:/usr/local/bin# ./tp_print_touch_data.sh > /root/test.log root@FPX-1010:/usr/local/bin# cat /root/test.log
Finger, ID, Detect, Type 1:Finger, Event 1:Mo 4:Do 5:Up, X, Y, H, W, Ampl, Peak Stylus, ID 1:Tip 2:Btn0 3:Btn1, Detect, Type 3:Stylus, Event 1:Mo 4:Do 5:Up,X, Y, Prs, bat 1:L 2:M 3:H, dmy0, dmy0
F,0,1,1,4,468,667,9,10,64,188 F,0,1,1,1,468,667,11,11,76,215 .................... F,0,1,1,0,421,26513,6,10,85,255 F,0,1,1,0,421,26513,6,9,69,233 F,0,1,1,0,421,26513,6,9,52,187 .................... F,0,1,1,1,257,23538,10,13,132,255 F,0,1,1,1,257,23538,10,13,129,255 F,0,1,1,1,257,23538,10,13,126,255
好像667,26513,23538这几个Y值跟我触摸的位置大概确实能够保持100比1的比例,说明Event坐标的计算方法是对的。
但就是还是input tap 10150 23500没有反应,input tap 101 235,也没有反应。
另外特别说明一下,为了避免出现屏幕旋转导致的坐标变化,以上操作我都是把dpt rp1特意像墙壁上挂相框那样竖直静止放置的。
再次多谢各位兄弟的出谋划策帮助。
你这个是局部不能触摸,我今天出现的问题是整个面板都无法响应触摸,然后用我那个方法修复。
@p4s2wd
我是用ssh登录到COM口的,应该和telnet一样效果。但是无法执行install-pkg,没这个命令。 ins开头的只有insmod和installkernel两个命令。
root@FPX-1010:/# install-pkg -sh: install-pkg: not found root@FPX-1010:/# ins (press tab) insmod installkernel root@FPX-1010:/# ins insmod installkernel
你能进入shell,就不用重新刷机,按照我新的方法试试。
@p4s2wd 我的机器,normal模式下,adb shell可用,但adb shell下没有/usr目录。不知道为啥。 diagnosis模式下,COM口可用,用COM口ssh,有/usr目录。
normal模式下,adb shell 结果如下:
root@FPX-1010:/ # cd /usr/local/bin /system/bin/sh: cd: /usr/local/bin: No such file or directory
root@FPX-1010:/ # ls -l / ......... drwxr-xr-x root root 1970-01-01 08:00 system drwx------ root root 1970-01-01 08:00 teesst drwxrwxrwx system system 2021-11-29 00:17 tmp -rw-r--r-- 501 20 4575 1970-01-01 08:00 ueventd.pxa1908.rc -rw-r--r-- 501 20 4464 1970-01-01 08:00 ueventd.rc lrwxrwxrwx root root 2021-11-29 00:17 vendor -> /system/vendor
diagnosis模式下,用COM口ssh,结果如下: root@FPX-1010:/# ls -l / total 33 ......... drwxr-xr-x 2 root root 5120 Apr 10 2018 sbin drwxr-xr-x 2 root root 1024 Feb 18 2015 srv dr-xr-xr-x 13 root root 0 Nov 28 16:32 sys drwxrwxrwt 3 root root 60 Nov 28 16:32 tmp drwxrwxr-x 8 1496 1496 1024 Apr 10 2018 usr drwxr-xr-x 12 root root 1024 Jan 2 2000 var root@FPX-1010:/#
机器我刷新过hid 蓝牙img (1.4)。之后系统升级到了1.6,进入系统后蓝牙报错,触摸屏正常,重启后触摸屏点击没有任何反应,于是我进入调试模式,运行恢复出厂设置的脚本,重启之后进入如图的界面,同样触摸屏无法使用