Android.mk中调用shell脚本
Android.mk中调⽤shell脚本
最近做的项⽬中,有个特殊的情景:⼿机开机后,程序A是必须启动的,⽽程序B是我们想要启动的,但B的可执⾏⽂件可能会被使⽤任何⽅式修改,所以必须在A中确保B可执⾏⽂件是正确的。
思路:在编译时,对已经⽣成的B进⾏md5sum加密,⽣成⼀个CC.h⽂件。在随后编译A时,在A中包含CC.h⽂件。编译完成后,A执⾏时,动态调⽤shell命令的md5对B⽂件进⾏加密,取得的字符串与CC.h中保留的字符串进⾏对⽐,如果⼀样,则执⾏A的后续流程;如果不相同,则停⽌A的执⾏。
实现:
1.Android.mk中脚本:
$(shell ($(LOCAL_PATH)/md5_shell.sh $(LOCAL_PATH) $(product_name)))
shell语句可以带参数传给shell脚本
2.md5_shell.sh脚本编码火炬之光2如何洗点
#!/bin/sh
#加密⽂件路径微波炉 煮饭
LOCAL_PATH=$1
LOCAL_MODULE_PATH=$2
#输出⽂件
DESTFILE=$LOCAL_PATH/ota_md5_value.h
rm $DESTFILE
#构建.h⽂件
echo "#ifndef __OTA_MD5_VALUE_H__">$DESTFILE
echo "#define __OTA_MD5_VALUE_H__">>$DESTFILE
echo "static char ota_md5[]=">>$DESTFILE
#加密的⼆进制⽂件所在位置
SRC=$LOCAL_MODULE_PATH/ota
#加密,输出到md5value.h中
md5sum $SRC>$LOCAL_PATH/tmp
#取出md5值
var=$(cut -c 1-32 $LOCAL_PATH/tmp)
#删除临时⽂件
rm $LOCAL_PATH/tmp
#构建完整的.h⽂件
sed -i '3s/$/&"/' $DESTFILE怎样打电话不显示自己的号码
燃气灶打不着火原因和处理方法
sed -i "3s/$/$var/" $DESTFILE
sed -i '3s/$/&"/' $DESTFILE
兰州旅游景点大全sed -i '3s/$/&;/' $DESTFILE
echo "#endif">>$DESTFILE
世界名牌化妆品脚本主要⽣成了CC.h
3.A源码中调⽤md5sum与CC.h中的字符对⽐

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。