手动制作update升级包以及制作差分包

===============
手动制作update升级包
===============
1.创建update文件夹,将需要升级的文件按照路径放入其中。

2.修改update/META-INF/com/google/android/updater-script升级脚本。
assert、mount/remount、package_extract_dir、赋权限等不能出错

3.将update打成zip包。
在update目录内,选中所有文件,点击右键--压缩--创建.zip

4.zip包签名:
将update.zip放置在LINUX/android目录,运行:
java -Xmx2048m -jar ./out/host/linux-x86/framework/signapk.jar -w ./build/target/product/security/testkey.x509.pem  ./build/target/product/security/testkey.pk8 update.zip update_signed.zip

5.升级
将updater_signed.zip改名为updater.zip,导入手机进行升级。
===============
制作差分包执行命令
===============
make otapackage命令后会在LINUX/android/out/target/product/msm8610/obj/PACKAGING/target_files_intermediates/目录下
生成zip包。
我们可以将两次有差异提交而生成的这个zip,分别命名为old.zip和new.zip,放置在LINUX/android/目录下,
运行命令:
./build/tools/releasetools/ota_from_target_files -i old.zip new.zip update.zip
如果没有其它错误的话,会在源码根目录生成update.zip差分包,OK。

【注】我们不能取LINUX/android/out/target/product/msm8610目录下生成的zip包,那样会报错:
    ValueError: can't find recovery API version in input target-files。即未找到recovery_api_version的错误。
原因:
    在执行上面的脚本时如果使用选项 i 则会调用WriteIncrementalOTAPackage会从A包和B包中的META目录下
    搜索misc_info.txt来读取recovery_api_version的值。
    但是在执行make  otapackage命令时生成的update.zip包中没有这个目录更没有这个文档。
=================================================================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SimpAutoUpdater c#自动升级 模块源码 可以集成到自己程序: 首先在VS中为当前的主程序项目添加引用,引用“客户端”中的“SimpleUpdater.exe”。 在VS中,点开“解决方案管理器”中相应项目的“属性”节点,打开 AssemblyInfo.cs 文件,在最下面添加上一行自动更新声明: //--添加这行标记表示支持自动更新, 后面的网址为自动更新的根目录. [assembly: FSLib.App.SimpleUpdater.Updateable("http://ls.com/update.xml")] 这步是必须的,否则请求检查更新时会抛出异常;代码中的网址即上面提到的能访问到xml文件的网址。 如果您希望更加简单的使用而不用去加这样的属性,或者您想程序运行的时候自定义,您可以通过下列方式的任何一种方式取代上面的属性声明: 使用 FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升级网址") 的重载方法。这个重载方法允许你传入一个升级包的地址; 在检查前手动设置 FSLib.App.SimpleUpdater.Updater.UpdateUrl 属性。这是一个静态属性,也就是说,您并不需要创建 FSLib.App.SimpleUpdater.Updater.UpdateUrl 的对象实例就可以修改它。 无论使用哪种方式,请确保在检查更新前,地址已经设置。 到这里,准备工作即告完成,为代码添加上检查更新的操作即可。 static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var updater = FSLib.App.SimpleUpdater.Updater.Instance; //当检查发生错误时,这个事件会触发 updater.Error += new EventHandler(updater_Error); //没有找到更新的事件 updater.NoUpdatesFound += new EventHandler(updater_NoUpdatesFound); //找到更新的事件.但在此实例中,找到更新会自动进行处理,所以这里并不需要操作 //updater.UpdatesFound += new EventHandler(updater_UpdatesFound); //开始检查更新-这是最简单的模式.请现在 assemblyInfo.cs 中配置更新地址,参见对应的文件. FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple(); /* * 如果您希望更加简单的使用而不用去加这样的属性,或者您想程序运行的时候自定义,您可以通过下列方式的任何一种方式取代上面的属性声明: * 使用Updater.CheckUpdateSimple 的重载方法。这个重载方法允许你传入一个升级包的地址; * 在检查前手动设置 FSLib.App.SimpleUpdater.Updater.UpdateUrl 属性。这是一个静态属性,也就是说,您并不需要创建 FSLib.App.SimpleUpdater.Updater.UpdateUrl 的对象实例就可以修改它。 */ FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升级网址"); Application.Run(new Form1()); } static void updater_UpdatesFound(object sender, EventArgs e) { } static void updater_NoUpdatesFound(object sender, EventArgs e) { System.Windows.Forms.MessageBox.Show("没有找到更新"); } static void updater_Error(object sender, EventArgs e) { var updater = sender as FSLib.App.SimpleUpdater.Updater; System.Windows.Forms.MessageBox.Show(updater.Exception.ToString()); } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值