使用 adb 从损坏的 android 设备中回收传感器

Posted

技术标签:

【中文标题】使用 adb 从损坏的 android 设备中回收传感器【英文标题】:Recycling sensors from a broken android device using adb 【发布时间】:2016-02-05 03:23:52 【问题描述】:

我刚弄坏了我的 s3。 3 年前,它是最好的智能手机之一。

问题如何通过usb获取手机惯性传感器的数值?

我想使用设备的加速度计、陀螺仪、磁力计、气压计和 gps 传感器。

假设我们想要得到:

三个轴上的原始加速度数据。

我连接了 USB 电缆并运行了 adb rootadb shell。好的。

root@android:/ # find / -type d -iname "sensors"                           
/sys/devices/virtual/sensors
/sys/class/sensors

“/sys/class/sensors”目录包含:

root@android:/ # ls sys/class/sensors                                          
accelerometer_sensor
barometer_sensor
gyro_sensor
light_sensor
magnetic_sensor
proximity_sensor

问题

即使我倾斜手机,原始测量值也不会改变。传感器处于待机模式。它始终显示相同的值。

root@android:/sys/class/sensors/accelerometer_sensor # cat raw_data            
-74,121,1016

我注意到控制传感器电源状态的文件夹 power/control。

root@android:/sys/class/sensors/accelerometer_sensor # cat power/control       
auto

我尝试使用echo on/yes/ok/yeah/wtf > power/control,但没有任何改变。

我记得当我让手机屏幕正常工作时,打开具有传感器权限的 Android 应用程序(例如具有指南针功能的 Google 地图)来启用传感器并以恒定速率刷新值就足够了. Java 应用程序可能会在文件中写入一些内容以激活传感器并读取原始值。

如何从外壳激活传感器?

【问题讨论】:

不确定你是否能做到,但你仍然可以启动一个应用程序,即使屏幕坏了也可以使用它来更新原始值还是我错了? 不幸的是,屏幕坏了,唯一可能的交互是通过USB线。 通过 adb 启动应用有什么问题?你甚至可以安装一个新的。 您是否考虑过通过网络将传感器数据发布到您的计算机或服务器上?还是不符合您的要求? 无论您是通过 USB 电缆还是通过网络连接获得结果,数据都将完全相同...如果您要将其发布到树莓派,服务器可能会完成以下工作接收和发送 【参考方案1】:

使用

root@:/ # getevent -S

您可以获得所有传感器的列表。查找一个名为“proximity_sensor”的传感器并检索设备名称。 例如。

root@:/ # getevent -S
add device 1: /dev/input/event11
  name:     "compass_sensor"
add device 2: /dev/input/event8
  name:     "barometer_sensor"
add device 3: /dev/input/event7
  name:     "light_sensor"
add device 4: /dev/input/event6
  name:     "proximity_sensor"

如您所见,您的设备别名为“event6”

现在,进入目录 /sys/class/input/input6

cd /sys/class/input/input6
echo 1 > enable # TO ACTIVATE THE SENSOR
echo 0 > enable # TO TURN IT OFF AGAIN

【讨论】:

以上是关于使用 adb 从损坏的 android 设备中回收传感器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 adb shell 从 Android 设备中删除内置应用程序

Android adb常用指令

android studio 使用adb命令传递文件到android设备

python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)

Android ADB 命令获取设备属性

android adb命令使用