全志平台Tina系统量产前adb shell设密码的方法
【适用范围】
全志平台Tina系统
【问题现象】
通常产品量产后都想要以安全方式封闭adb shell,不允许用户或其他开发者使用,因此需要以安全方式禁用。
【修改方式】
这里提供一种以加密码的方式禁用adb shell的方法。
- 找到管理权限与密码的shadow文件
在Tina1.0 上:/package/base-file/files/etc/shadow
在Tina2.0 上:除此外,还需要修改target/方案名/base-file/etc/shadow
- 在shadow文件中,通常第一行:
root::0:0:99999:7:::
在root:后即密码字段,默认为空,即默认有root权限而无须密码
- 创建密码:
使用软件包 makepasswd
命令如下:makepasswd --clearfrom=- --crypt-md5 <<< YourPass(注意等号后还有一个-)
其中YourPass为自定义的密码
- 将生成的哈希值密码(注意非明文)复制到root: 后,保存文件
- 修改adb_shell文件,tina1.0 在package/softwinner/adb下,tina 2.0在package/allwinner/adb下,将脚本中三处/bin/sh 改为/bin/login
- 在/package/base-file/files/etc/init.d/done中,添加/etc/init.d/adbd stop命令,以使开机时默认禁止adb服务。
- 执行make menuconfig,在base-system--->busybox----> customize busybox option ---->Login/Password Management Utilities ----> (*)login 选择编译
- 重新编译,执行adb shell,需要登录账号root及密码。进入后执行root权限。
【其他方式】
除此之外,有几个必备命令,在小机中中执行:
/etc/init.d/adbd enable 使能adb服务
/etc/init.d/adbd disable 禁用adb服务
/etc/init.d/adbd start 启动adb服务
/etc/init.d/adbd stop 停止adb服务
这几个命令可以自由搭配使用来满足客户想要以常见的方式禁用adb如:
不同组合按键设置密码开关adb服务
带屏产品通过屏幕开关adb服务
云平台验证开关adb服务