当前位置: 首页 > ds >正文

fota移植包合入后编译验证提示:File verification failed

logcat提示升级包是一个目录:
05-09 09:48:55.814  1400 12879 D iportFileUtil: getFileMD5, Exception java.io.FileNotFoundException: /data/ota_package/update.zip (Is a directory).(null:168) getMd5ByFile()
05-09 09:48:55.815  1400 12879 W System.err: java.io.FileNotFoundException: /data/ota_package/update.zip (Is a directory)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.io.FileInputStream.open0(Native Method)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.io.FileInputStream.open(FileInputStream.java:231)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.io.FileInputStream.<init>(FileInputStream.java:165)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.utils.FileUtil.getMd5ByFile(Unknown Source:14)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.utils.FileUtil.getMd5ByFile(Unknown Source:11)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.utils.FileUtil.validateFile(Unknown Source:13)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.engine.b.a.a(Unknown Source:390)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.engine.thread.b$g.execute(Unknown Source:15)
05-09 09:48:55.815  1400 12879 W System.err: 	at com.abupdate.iot_libs.engine.thread.NamedRunnable.run(Unknown Source:17)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-09 09:48:55.815  1400 12879 W System.err: 	at java.lang.Thread.run(Thread.java:764)
05-09 09:48:55.817  1400 12879 I iportFileUtil: validateFile() falsemd5_file = null md5_net = dde2afb5940242c6cf3e4752b842c359.(null:53) validateFile()

adb shell进去data/ota_package查看,奇怪为啥会变成dir。

通过adb升级的方式验证差分包没问题可以升级。经fota供应商分析是SELinux权限问题。验证setenforce 0后可以成功升级,问题方向可以确认。可随后调试多版对方提供补丁均未成功,只能通过分析log。展锐6152这个平台不清楚为什么avc log不会体现在logcat中,后通过抓ylog发现avc log隐藏在了kernel log中。

029AF <5> [   67.336971] c2 [05-09 16:22:15.756]  audit: type=1400 audit(1746778935.747:43): avc:  denied  { rmdir } for  pid=1408 comm="e.fota_demo_iot" name="update.zip" dev="mmcblk0p40" ino=2156 scontext=u:r:system_app:s0 tcontext=u:object_r:ota_package_file:s0 tclass=dir permissive=0

 system/sepolicy/public/system_app.te添加rmdir权限,api目录下对应添加。

...allow system_app ota_package_file:dir { create rename search setattr getattr unlink rmdir };...

编译验证a-b升级成功,继续编译验证b-c版本升级,结果又提示: File verification failed。。继续抓log

006F0 <5> [59160.889123] c1 [05-10 10:54:12.152]  audit: type=1400 audit(1746845624.299:44): avc:  denied  { unlink } for  pid=1406 comm="e.fota_demo_iot" name="update.zip" dev="mmcblk0p40" ino=2399 scontext=u:r:system_app:s0 tcontext=u:object_r:ota_package_file:s0 tclass=file permissive=0

添加unlink权限

allow system_app ota_package_file:file { create rename setattr getattr unlink };

http://www.xdnf.cn/news/5495.html

相关文章:

  • Java线程池深度解析:从使用到原理全面掌握
  • KTOR for windows:無文件落地HTTP服务扫描工具
  • 【Bootstrap V4系列】学习入门教程之 组件-表单(Forms)高级用法(二)
  • 教育行业的 RAG 落地:个性化学习助手设计
  • 【Linux基础】网络相关命令
  • Client 和 Server 的关系理解
  • Yocto项目实战经验总结:从入门到高级的全面概览
  • 大模型Embedding模型介绍与使用
  • [CANN] 安装软件依赖
  • 数仓-可累计,半累加,不可累加指标,是什么,举例说明及解决方案
  • 前端面试题:说说你对 Vue 中异步组件的理解
  • jetson orin nano super AI模型部署之路(十)使用frp配置内网穿透,随时随地ssh到机器
  • 单词怎么记:以use一词为例
  • Java中Comparator排序原理详解
  • 3. 无重复字符的最长子串(滑动窗口)
  • 客户端建立一个连接需要占用客户端的端口吗
  • NHANES稀有指标推荐:HALP score
  • average per-pixel disparity error: EPE及不同距离值下的误差曲线
  • JavaScript基础-全局作用域
  • 《Python星球日记》 第53天:卷积神经网络(CNN)入门
  • DNS服务实验
  • 土耳其Koç大学指令驱动的智能综述,从文本表达到任务执行的系统探索
  • 王慧文产品课总结
  • @Transactional注解失效
  • 仿制药研发为何要上电子实验记录本?
  • 数据在内存中的存储
  • 配置高级相关
  • Open CASCADE学习|B 样条曲线拟合优化
  • 探秘 Canva AI 图像生成器:重塑设计创作新范式
  • vs python“““标记注释报错,vs使用自带环境安装 python第三方库