文章插图
打开root权限 平常在进入Android系统获取root权限的方式是使用ADB shell的方式,但是某个应用或功能需要root权限,那么在每次开机后还需要连接ADB获取root权限是十分麻烦且不符合需求的 , 按照以下方式修改可以使系统上电后默认获取root权限 。
以RK3399的Android7.1为例:
1. 修改build/core/main.mk
ifneq (,$(user_variant))## Target is secure in user builds.ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 改为0 默认是1ifeq (true,$(strip $(enable_target_debugging)))\# Target is more debuggable and adbd is on by defaultADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1 改为1 默认是0ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 (或者按第2条改) 2. 修改:/device/rockchip/rk3399/system.prop
如果需要将“允许USB调试吗?...这台计算机的RSA密钥”提示去掉,可以解压修改system.img中build.prop
将ro.adb.secure=0(0为不显示信任此电脑对话框,1为显示信任此电脑对话框)
ro.adb.secure=0 \ 改为0 默认是1
Patch制作 之前我们大多数的开发方式都是直接在源码中增删改查 , 然后使用git去进行版本管理,这种方式对于一个纯净的项目一般不会有问题 。假设有如下场景,A客户同一个系列产品有3个型号,除了共有功能外,各个型号还有自身定制的功能,这种情景下适合使用patch的方式来做了,将客户的所有需求都制成单一功能的patch,按照客户型号需求在编译前打上patch即可,源码一直保持在最纯净的状态 。
实现步骤
获取到源码后在合适的位置建立如下路径:patch->客户名->型号(01,02 , 03),common,将共有的功能放在common下,各型号文件夹下放定制功能 , 最后在各文件夹下新建脚本文件,common文件夹下的脚本应该被其它定制型号文件夹的脚本调用 。
patch
patch最好遵从单一功能原则,即一个功能一个patch 。开发某个功能前,先保证之前的内容已经全部add了,不然会混入到patch,开发完成后使用如下命令制作patch
git diff filename >> *.patch
制作完成后,将其add起来 , 开始进行下一功能的开发 。制作好的patch放到对应的文件夹,在脚本中新增打patch的语句如下:
cd kernel/ #跳转到要打patch的目录pwdpatch -p1 -i ../a.patch #打上patchpatch -Rp1 -i ../a.patch #撤销patchcd ../ #退回到根目录 这里主要注意路径的问题,patch要打在哪里和patch的位置以及当前执行脚本位置的相对路径关系 。
【打开root权限和patch制作 root权限怎么开启】 另外脚本的编写顺序最好和自己开发步骤的顺序一致,不然容易出现冲突问题 。开发完成后就只需要提交这些patch到服务器即可,源码中的内容就不需要提交了 。