Invalid policyvers specified: 26解决方案

在编译Android 5.0源码时遇到Invalid policyvers specified: 26的错误,通过搜索源码定位到external//checkpolicy//checkpolicy.c,发现strtol函数可能导致溢出。进一步排查发现错误码为17,表示File exists。通过修改代码成功解决问题,但疑问为何能忽视此错误并正常运行。

     最近由于项目需要编译Android5.0源码(以前编译4.x代码也出现过类似问题),按照source.android.com的指示下载编译过程挺顺利的。但编译到一个小时左右的时候老是出现Invalid policyvers specified: 26,这个错误跟Android系统的安全访问策略有关系。以前重装系统就能搞定,现在重装系统好多次,都搞不定。网上很多同学碰到这个问题,都解决不了,感觉好苦恼。在经过几天的努力之后,最终在这个周末把这个问题解决了。为了使其它碰到类似问题的同学不再苦恼,不再浪费宝贵的时间,现将解决方案陈述如下:

1.定位错误:

     在编译出现错误的时候我们要做的第一件事情就是定位编译出错源码位置。但是有时候错误位置提示不明显,如此多的源码,到哪里去找到出错的位置呢。于是使用

grep -r "Invalid policyvers specified" ./ 

     在源码目录进行内容查找,找了一晚上终于在external//checkpolicy//checkpolicy.c文件中找到。打开该文件,在main函数的switch 语句的case ‘c’代码块中找到了错误提示行。接着发现是先调用了strtol函数,然后错误了,这样就定位到错误位置了。

2.排查原因:

     上网查了一下strtol函数的作

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值