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

二手闲置平台网站怎么做企业网站用户群

二手闲置平台网站怎么做,企业网站用户群,网站开发工程师工作内容,南通建设网站2019独角兽企业重金招聘Python工程师标准 Android系统Recovery工作原理之使用update.zip升级过程分析#xff08;二#xff09;---update.zip差分包问题的解决 在上一篇末尾提到的生成差分包时出现的问题#xff0c;现已解决#xff0c;由于最近比较忙#… 2019独角兽企业重金招聘Python工程师标准  Android系统Recovery工作原理之使用update.zip升级过程分析二---update.zip差分包问题的解决        在上一篇末尾提到的生成差分包时出现的问题现已解决由于最近比较忙相隔的时间也比较长所以单列一个篇幅提示大家。这个问题居然是源码中的问题可能你已经制作成功了不过我的这个问题确实是源码中的一个问题不知道是不是一个bug下文会具体分析 一、生成OTA增量包失败的解决方案            在上一篇中末尾使用ota_from_target_files脚本制作update.zip增量包时失败我们先将出现的错误贴出来。                                   在执行这个脚本的最后读取input_zip中RADIO/bootloader.img时出现错误显示DeviceSpecifiParams这个对象中没有input_zip属性。          我们先从脚本中出现错误的调用函数中开始查找。出现错误的调用地方是在函WriteIncrementalOTAPackage443行中的device_specific.IncrementalOTA_InstallEnd()其位于WriteIncrementalOTAPackage()中的末尾。进一步跟踪源码发现这是一个回调函数他的具体执行方法位于源码中/device/telechips/common/releasetools.py脚本中的IncrementalOTA_InstallEnd()函数。下面就分析这个函数的作用。           releasetools.py脚本中的两个函数FullOTA_InstallEnd()和IncrementalOTA_InstallEnd()的作用都是从输入包中读取RADIO/下的bootloader.img文件写到输出包中同时生成安装bootloader.img时执行脚本的那部分命令。只不过一个是直接将输入包中的bootloader.img镜像写到输出包中一个是先比较target_zip和source_zip中的bootloader.img是否不同使用选项-i生成差分包时然后将新的镜像写入输出包中。下面先将这个函数(位于/device/telechips/common/releasetools.py)的具体实现贴出来                                     我们的实际情况是在用命令make otapackage时生成的包中是没有这个RADIO目录下的bootloader.img镜像文件因为这部分更新已被屏蔽掉了。但是这个函数中对于从包中未读取到bootloader.img文件的情况是有错误处理的即返回。所以我们要从  出现的实际错误中寻找问题的原由。          真正出现错误的地方是           target_bootloaderinfo.input_zip.read(“RADIO/bootloader.img”)。          出现错误的原因是AttributeError‘DeviceSpecificParams’object has no attribute  ‘input_zip’提示我们DeviceSpecificParams对象没有input_zip这个属性。          在用ota_from_target_files脚本制作差分包时使用了选项-i并且只有这种情况有三个参数即target_zip 、source_zip、 out_zip。而出现错误的地方是target_bootloaderinfo.input_zip_read(“RADIO/bootloader.img”)它使用的是input_zip我们要怀疑这个地方是不是使用错了而应该使用info.target_zip.read()。下面可以证实一下我们的猜测。          从ota_from_target_files脚本中WriteFullOTAPackage()和WriteIncrementalOTAPackage这两个函数分别用来生成全包和差分包可以发现在他们的开始部分都对device_specific进行了赋值。其中WriteFullOTAPackage()对应的参数是input_zip和out_zip而WriteIncrementalOTAPackage对应的是target_zip,source_zip,out_zip我们可以看一下在WriteIncrementalOTAPackage函数中这部分的具体实现                                从上图可以发现在WriteIncrementalOTAPackage函数对DeviceSpecificParams对象进行初始化时确实使用的是target_zip而不是input_zip。而在releasetools.py脚本中使用的却是info.input_zip.read()所以才会出现DeviceSpecificParams对象没有input_zip这个属性。由此我们找到了问题的所在(这是不是源码中的一个Bug)。         将releasetools.py脚本IncrementalOTA_InstallEnd(info)函数中的 target_bootloaderinfo.input_zip. read(“RADIO/bootloader.img”)为target_bootloaderinfo.target_zip.read(“RADIO/bootloader.img”)然后重新执行上面提到的制作差分包命令。就生成了我们需要的差分包update.zip。 二、          差分包update.zip的更新测试                      在上面制作差分包脚本命令中生成差分包的原理是参照第一个参数target_zip将第二个参数source_zip中不同的部分输出到第三个参数output_zip中。其中target_zip与source_zip的先后顺序不同产生的差分包也将不同。           在实际的测试过程中我们的增量包要删除之前添加的一个应用在使用update.zip全包升级时增加的其他的部分如内核都没有改动所以生成的差分包很简单只有META-INF这个文件夹。主要的不同都体现在updater-script脚本中其中的#----start make changes  here----之后的部分就是做出改变的部分最主要的脚本命令是 delete(“/system/app/CheckUpdateAll.apk” , “/system/recovery.img”);在具体更新时它将删除CheckUpdateAll.apk这个应用。           为了大家参考还是把这个差分包的升级脚本贴出来其对应的完全升级的脚本在第九篇已贴出 mount(yaffs2, MTD, system, /system); assert(file_getprop(/system/build.prop, ro.build.fingerprint) telechips/full_tcc8800_evm/tcc8800:2.3.5/GRJ90/eng.mumu.20120309.100232:eng/test-keys || file_getprop(/system/build.prop, ro.build.fingerprint) telechips/full_tcc8800_evm/tcc8800:2.3.5/GRJ90/eng.mumu.20120309.100232:eng/test-keys); assert(getprop(ro.product.device) tcc8800 || getprop(ro.build.product) tcc8800); ui_print(Verifying current system...); show_progress(0.100000, 0); # ---- start making changes here ---- ui_print(Removing unneeded files...); delete(/system/app/CheckUpdateAll.apk, /system/recovery.img); show_progress(0.800000, 0); ui_print(Patching system files...); show_progress(0.100000, 10); ui_print(Symlinks and permissions...); set_perm_recursive(0, 0, 0755, 0644, /system); set_perm_recursive(0, 2000, 0755, 0755, /system/bin); set_perm(0, 3003, 02750, /system/bin/netcfg); set_perm(0, 3004, 02755, /system/bin/ping); set_perm(0, 2000, 06750, /system/bin/run-as); set_perm_recursive(1002, 1002, 0755, 0440, /system/etc/bluetooth); set_perm(0, 0, 0755, /system/etc/bluetooth); set_perm(1000, 1000, 0640, /system/etc/bluetooth/auto_pairing.conf); set_perm(3002, 3002, 0444, /system/etc/bluetooth/blacklist.conf); set_perm(1002, 1002, 0440, /system/etc/dbus.conf); set_perm(1014, 2000, 0550, /system/etc/dhcpcd/dhcpcd-run-hooks); set_perm(0, 2000, 0550, /system/etc/init.goldfish.sh); set_perm_recursive(0, 0, 0755, 0555, /system/etc/ppp); set_perm_recursive(0, 2000, 0755, 0755, /system/xbin); set_perm(0, 0, 06755, /system/xbin/librank); set_perm(0, 0, 06755, /system/xbin/procmem); set_perm(0, 0, 06755, /system/xbin/procrank); set_perm(0, 0, 06755, /system/xbin/su); set_perm(0, 0, 06755, /system/xbin/tcpdump); unmount(/system);          在做更新测试时我们要以target_zip系统为依据也就是更新之前的开发板系统是用target_zip包升级后的系统。否则会更新就会失败因为在更新时会从系统对应的目录下读取设备以及时间戳等信息(updater-script脚本一开始的部分)进行匹配正确后才进行下一步的安装。          所有准备都完成后将我们制作的差分包放到SD卡中在Settings--About Phone--System Update--Installed From SDCARD执行更新。最后更新完成并重启后我们会发现之前的CheckUpdateAll.apk被成功删掉了大功告成         至此终于将update.zip包以及其对应的差分包制作成功了下面的文章开始具体分析制作的update.zip包在实际的更新中所走的过程 转载于:https://my.oschina.net/u/572562/blog/63835
http://www.pierceye.com/news/695038/

相关文章:

  • 单页网站制作视频教程深圳有哪些软件外包公司
  • 嘉兴电子商务网站建设wordpress如何添加页面子目录
  • 教育在线网站怎样做直播seo网站推广怎样
  • 响应式的网站建设一个多少钱百度域名解析
  • 东莞做网站卓诚网络免费大数据分析网站
  • 网站用什么图片格式好seo学徒招聘
  • 地区网站建设网站用户反馈
  • 网站备案背景幕布下载成都最好的seo外包
  • 荆州 商务 网站建设郑州网站建设灵秀
  • 重庆市建筑工程信息官方网站注册号域名后如何建设公司网站
  • 江门网站建设junke100深圳小企业网站建设设计制作
  • 个人域名能做网站吗江苏外贸型网站制作
  • 文登区做网站的公司琴行网站开发学术论文
  • 嵌入式网站开发学习百度seo优化收费标准
  • 网站评价及优化分析报告湖南省邵阳建设局网站
  • 网站推广是做什么的深圳市住房建设与保障局官方网站
  • qq群推广网站lamp网站开发制作
  • ui网站界面设计广州省建设监理协会网站
  • 网站界面设计教程宁波正规网站seo公司
  • 网站建设与管理中专上海注册公司注册地址
  • 清溪网站建设怎么用wordpress打开网站
  • 网站稳定性不好的原因wordpress仿站维护
  • 银行管理系统网站建设最专业的医疗网站建设
  • 网站应该怎么做住建官网查询
  • 建设网站类型条形码生成器在线制作图片
  • 邯郸广告公司网站建设seo排名怎么做
  • 大眼睛网站建设做艺术品的网站
  • 自助免费网站建设平台网站开发php还是jsp
  • 网站建设成本多少北京怎么进行网页设计
  • 给个网站做导航违法吗游戏推广员每天做什么