闲置手机改摩托车车机导航,支持短时停车休眠,长时停车断电,点火开机(大屏平板也可参照此方案用于汽车)。
本文以安卓11为例,必须解锁bootload,且刷入第三方recovery。
root
这里使用面具(magisk)作为root示例方案。各大应用商店均可下载。
获取手机boot镜像(boot.img),从升级包中提取出来。记住保存的地址,等一会能用到。
使用magisk修补boot镜像。打开软件确认初始状态,Magisk一栏当前显示无法获取。点击Magisk一栏右上角安装按钮。
选择修补镜像,然后下一步。
选择并修补一个文件,选中刚才解压出来的boot.img。
记住输出地址,使用第三方recovery将该文件刷入到boot分区即可获取ROOT权限。
PC安装adb和驱动
- 安装adb调试工具(Android Debug Bridge)
- 安装安坐通用驱动程序(百度一大把)
- 将adb的路径添加到环境变量
- 然后输入 adb –version,你应该能在电脑的命令行窗口看到如下图这样的输出,即表示adb安装正常
PS C:\Users\xxxx> adb --version
Android Debug Bridge version 1.0.41
Version 33.0.3-8952118
Installed as C:\software\adb\adb.exe
手机启用USB调试
充电开机
使用fastboot设置(部分设备可能不支持)
连接手机,输入adb devices,确保有类似的响应
PS C:\Users\xxx\ adb devices
List of devices attached
940f4268 device
重启到 bootloader 模式
adb reboot-bootloader
禁用关机充电功能(即为充电即开机)
fastboot oem off-mode-charge 0
重启进入手机系统
fastboot reboot
如果无效,使用下面的第二种方案,稍微麻烦一点。
修改启动文件(init.rc)
连接手机,输入adb devices,确保有类似的响应。
PS C:\Users\xxx\ adb devices
List of devices attached
940f4268 device
进入adb shell环境。
PS C:\Users\xxx> adb shell
le_zl1:/ #
安卓rootfs只读,需要重新挂载根文件系统。
le_zl1:/ # mount -o rw,remount /
le_zl1:/ #
查找对应的安卓系统init.rc的位置,我这里使用安卓11,位于/system/etc/init/hw
目录下。
le_zl1:/ # cd /system/etc/init/hw
le_zl1:/system/etc/init/hw # ls -l
total 68
-rw-r--r-- 1 root root 44528 2023-03-01 22:55 init.rc
-rw-r--r-- 1 root root 7690 2009-01-01 08:00 init.usb.configfs.rc
-rw-r--r-- 1 root root 5897 2009-01-01 08:00 init.usb.rc
-rw-r--r-- 1 root root 588 2009-01-01 08:00 init.zygote32.rc
-rw-r--r-- 1 root root 1028 2009-01-01 08:00 init.zygote64_32.rc
le_zl1:/system/etc/init/hw #
vim打开文件修改内容,vim怎么使用,这里不解释。
le_zl1:/system/etc/init/hw # vim ./init.rc
找到on charger
,代码长度可能因为机型不同而不同,但都以on charger
开头
on chargerclass_start charger
在后面添加一行 setprop sys.powerctl reboot
保存。
on chargerclass_start chargersetprop sys.powerctl reboot
验证是否生效
手机关机,插上充电器,确认是否自动开机。
断电关机
断电关机功能,需要借助第三方软件。应用市场自行安装Tasker。
关闭电池优化(可选操作,建议设置,目的是留存后台)。
设置设备管理权限。(可选操作,建议设置,目的是更好控制手机)。
打开软件。点击不,不想了解。
新建两个任务,一个延时关机,一个停止关机
延时关机建议设置30s。
停止关机,执行停止延时关机的任务。(接入电源时,状态不稳定,会在接入和不接入之间跳动。待稳定后,需要停止误触发的关机任务)。
设置配置触发,在状态里找到电源(条件——状态——电源——电源——源:任意)。非电源任意,执行延时关机任务。
设置配置触发,在状态里找到电源(条件——状态——电源——电源——源:任意)。电源任意,执行停止关机任务。
Tasker任务优化
延时关机优化
车辆断电后,调整CPU运行策略为省电模式,频率拉到最低。每个CPU都需要调整。上限频率和下限频率全部拉到最低。
系统锁屏,等3分钟后如果未接通电源,打开飞行模式,关闭定位。应付短时间停车,重新定位和联网需要时间,停车时间在三分钟内重新点火会打断计时操作,只会息屏不会继续往下执。
亮屏时间改为15s,是应付断电息屏后,人为操作再次点亮屏幕的持续时间。不添加此项,就会使用接通电源的亮屏时间,长时间亮屏,不利于低功耗。
关闭定位和联网后,入极低功耗待机状态。等待2小时后若没有接通电源,在关机。应付长时间停车。
实际测试,执行完前10步后,功耗极低,这种状态下待机三天,掉电都极少。我这个给备用机已经使用六年了,电池损耗很大,要是不低功耗处理,正常待机最多两天就关机了。即使是这样,使用低功耗处理后,等他没电关机,最少也能待机用半个月。根据需要去除关机的操作。
接通电源优化(停止关机)
和上面相反。CPU调整运行策略为按需。上限拉到最高,下限拉到最低。
禁用自动调整亮度,长时间亮屏(不息屏),最大亮度。
关闭飞行模式,打开高精度定位。
安装车机桌面
设置为默认桌面,启动后如图。
使用截图
供电安装
买一个防水的点烟器,接控制供电,最好不要接电瓶(接电瓶没法实现断电关机)。可以接钥匙上。
大概买个这样的就行,盖子有嵌入凹槽即可。最好买铜芯的,我这个图片应该是铁的,后期可能会生锈。
安装防水支架
手机支架自行选购吧,我买的是这种带塑料外套的,能防泼溅。放室外淋雨估计不行。
注意防晒
本方案手机电池未拆除,夏天建议不要长时间停在太阳下面接受太阳直射。这可能会引起高温爆炸。若不放心可在此方案的基础上去除电池。