createpatch命令(打开root权限和patch制作)
平常在进入Android系统获取root权限的方式是使用ADB shell的方式,但是某个应用或功能需要root权限,那么在每次开机后还需要连接ADB获取root权限是十分麻烦且不符合需求的,按照以下方式修改可以使系统上电后默认获取root权限,现在小编就来说说关于createpatch命令?下面内容希望能帮助到你,我们来一起看看吧!
createpatch命令
打开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 默认是1
ifeq (true,$(strip $(enable_target_debugging)))
\# Target is more debuggable and adbd is on by default
ADDITIONAL_DEFAULT_PROPERTIES = ro.debuggable=1 改为1 默认是0
ADDITIONAL_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的目录
pwd
patch -p1 -i ../a.patch #打上patch
patch -Rp1 -i ../a.patch #撤销patch
cd ../ #退回到根目录
这里主要注意路径的问题,patch要打在哪里和patch的位置以及当前执行脚本位置的相对路径关系。
另外脚本的编写顺序最好和自己开发步骤的顺序一致,不然容易出现冲突问题。开发完成后就只需要提交这些patch到服务器即可,源码中的内容就不需要提交了。
头条号:怀揣梦想的自由开发者
公众号:风宇软件
B站:猫猫侠的正义
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com