酷走行车记录仪root和GPS时间同步

首先很惭愧我已经有一年多没有更新博客内容了,之前写过一篇 酷走 Android 行车记录仪研究 的文章,行车记录仪的 ADB 调试已经可以用起来了,不过还存在网络不可用时系统时间不正确的问题,刚好再研究一下行车记录仪的 root 以及通过 GPS 同步记录仪的系统时间。

root 系统

其实酷走这款 Android 行车记录仪系统已经自带了“假” root 权限,只是没有带 su 管理的工具。虽然 SuperSU 很久没更新了,我还是准备安装试试,首先从 SuperSU 官网下载最新 2.82 版本的刷机 zip 包:

http://supersuroot.org/downloads/SuperSU-v2.82-201705271822.zip

解压缩之后,首先使用 adb 命令将系统重新挂载为可读写状态:

~$ adb remount

参考之前折腾刷机的经验,先拷贝刷机 zip 包中的文件:

~$ adb push common/Superuser.apk /sdcard/
~$ adb push common/install-recovery.sh /sdcard/
~$ adb push x86/su /sdcard/
~$ adb push x86/supolicy /sdcard/
~$ adb push x86/libsupol.so /sdcard/

这个时候可以使用 adb shell 命令登录到行车记录仪,再将文件移动到系统目录:

root@Sf3gr_mrd6_p2_720# mkdir /system/app/SuperSU
root@Sf3gr_mrd6_p2_720# mv /sdcard/Superuser.apk /system/app/SuperSU/
root@Sf3gr_mrd6_p2_720# mv /sdcard/install-recovery.sh /system/bin/
root@Sf3gr_mrd6_p2_720# cp /sdcard/su /system/xbin/
root@Sf3gr_mrd6_p2_720# mkdir /system/bin/.ext
root@Sf3gr_mrd6_p2_720# cp /sdcard/su /system/bin/.ext/.su
root@Sf3gr_mrd6_p2_720# mv /sdcard/su /system/xbin/daemonsu
root@Sf3gr_mrd6_p2_720# mv /sdcard/supolicy /system/xbin/
root@Sf3gr_mrd6_p2_720# mv /sdcard/libsupol.so /system/lib/

还需要设置文件权限:

root@Sf3gr_mrd6_p2_720# chmod 0644 /system/app/SuperSU/Superuser.apk
root@Sf3gr_mrd6_p2_720# chmod 0755 /system/bin/install-recovery.sh /system/xbin/su /system/bin/.ext/.su /system/xbin/daemonsu /system/xbin/supolicy /system/lib/libsupol.so
root@Sf3gr_mrd6_p2_720# chcon u:object_r:system_file:s0 /system/app/SuperSU/Superuser.apk /system/bin/install-recovery.sh /system/xbin/su /system/bin/.ext/.su /system/xbin/daemonsu /system/xbin/supolicy /system/lib/libsupol.so

不过最后运行 SuperSu 安装命令的时候却出错了:

root@Sf3gr_mrd6_p2_720# /system/xbin/su --install
error: only position independent executables (PIE) are supported.

看来是想当然了,我拷贝的是非 PIE 格式的 su 程序导致运行不了。那就重新拷贝正确的 su 程序(需要使用 su.pie 地址无关的可执行程序版本),这次就 adb 命令一步到位了:

~$ adb push common/Superuser.apk /system/app/SuperSU/Superuser.apk
~$ adb push common/install-recovery.sh /system/bin/install-recovery.sh
~$ adb push x86/su.pie /system/xbin/su
~$ adb push x86/su.pie /system/bin/.ext/.su
~$ adb push x86/su.pie /system/xbin/daemonsu
~$ adb push x86/supolicy /system/xbin/supolicy
~$ adb push x86/libsupol.so /system/lib/libsupol.so

设置文件权限之后再重新执行 /system/xbin/su --install 命令安装就没有问题了,测试确认 SuperSU App 也可以正常运行了。

GPS 时间同步

为了能修正行车记录仪的系统时间,我在行车记录仪上安装了 Smart Time Sync 这款 App 进行时间同步。Smart Time Sync 支持通过 GPS、NTP 或 HTTP 同步系统时间,不过行车记录仪上都没有装 SIM 卡更没有网络,只能通过 GPS 进行时间同步了。

如果 Android 系统没有 root,Smart Time Sync 只能进行手工同步,因此为了实际使用过程中能实现后台自动时间同步,上面的系统 root 操作还是必须的。

Smart Time Sync 运行效果如下:

Smart Time Sync

App 使用起来也很简单,首先在 Source 源选择 GPS,然后点 Sync Time 按钮就可以手工同步系统时间了,当然前提是设备必须放在有 GPS 信号的地方。

点击后面的设置图标就可以配置后台自动进行时间同步了,现在我的行车记录仪即使掉电了保存的录像文件时间也是正确的了。





*