您的位置:首页 > 运维架构 > Linux

Linux环境下开发Android小技巧

2016-11-14 18:29 375 查看
Vim 小技巧

快速替换应用

快速更改系统Settings数据库的值

开放SEAndroid

Vim 小技巧

Dos 回车转换命令 vim :set fileformats=unix

快速替换应用

源码环境下当我们修改完某些应用后,push进系统,往往还需要杀死当前运行的旧应用才能看到修改后的效果,比如SystemUI应用,修改–>编译–>push进系统,你会发现修改不起作用。简单粗暴的做法是重启手机,这时我们用

adb shell kill systemui的进程id

可以达到杀死旧SystemUI进程的效果,这样就不用重启手机看效果了,

在进一步优化下,不用人为的每次去查找systemui进程id,用下面的命令更简化。

adb shell kill `adb shell ps|grep systemui|awk {‘print $2’}`

快速更改系统Settings数据库的值

系统settings数据库里有三张表global/secure/system,有时我们调试时需要更改这三张表里某些字段的值,一般的做法是先获取root权限,然后进入settings数据库,使用sqlite3语句更新字段值。拿global表中的device_provisioned字段来举例,device_provisioned字段在setupwizard运行完成后会设置为1,如果它的值为0,会发现状态栏无法下拉,recents键也无法使用,这里提供一种快速修改device_provisioned值的方法。

adb shell settings put global device_provisioned 1

该条命令可以快速的更改device_provisioned的值,相应的get命令可以查询指定字段的值。

adb shell settings get global device_provisioned

下图是实验的结果:



开放SEAndroid

有时手机已经root,但依然无法remount,导致root权限的手机无法向/system、/data等目录push文件,这种情况很可能是因为SEAndroid在作怪,SEAndroid在Android5.0已经全面开启,碰到这种情况可以用命令:

adb shell setenforce 0

暂时将SEAndroid安全检查机制关闭,用命令:

adb shell getenforce

检查返回值为Permissive则说明关闭成功。

如果还是无法push文件,尝试先执行命令:

adb disable-verity

重启手机在执行

adb shell setenforce 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android vim 工具