android 升级流程分析

             在android中有多种方式可以进入recovery模式进行升级,这里只对判断misc分区进行升级做分析。其他方式的资料网上都很全面了。感谢那些做出贡献的大虾!

         系统上电fastboot在初始化硬件之后,就会去读misc分区。根据该分区的内容来判断是进入recovery模式还是正常启动!该分区存放的是一个bootloader_message结构体,fastboot会读取该结构体的command的内容判断是否为"boot-recovery",如果是就进入recovery。否则会正常启动。

结构体如下:

struct bootloader_message {
    char command[32];
    char status[32];
    char recovery[1024];
};

    网上很多资料都没对misc分区是什么时候写的做介绍!下面将详细介绍这个流程!当用户选择设置->升级->确认后,  会调用到SystemUpdate-JNI ,在system/lib下会有一个libupdatexxx.so,名字可以手动改得。在这个so里面有set_sdcard_update_bootloader_message()的接口,无论是升级还是回复出厂设置,都会调用该接口,该函数会调用到另外一个函数set_bootloader_message()。这个函数就是写真正写misc的地方。只有该函数成功执行之后,系统重启才会进入recovery模式,否则reset之后就直接正常启动了。不会进行升级。所以这个地方就是进入升级的关键地方了

    其实除了在set_bootloader_message中写过misc分区之外。还有一个地方会写misc分区。在系统进入recovery模式之后之后,会执行/sbin/recovery这个可执行程序,recovery这个可执行程序的入口是mian()。在mian()中有一个get_args(arc,agv)

    

Android OTA(Over-The-Air)升级是指通过网络传输直接在设备上进行系统升级的一种方法。下面简要介绍Android OTA升级流程以及常见问题分析Android OTA升级流程通常包括以下几个步骤: 1. 系统准备:开发者根据新版本的要求,为设备准备升级所需的系统文件。这些文件包括操作系统文件、应用程序文件以及升级脚本等。 2. 设备请求:设备通过连接到网络,并向服务器请求最新的系统升级。服务器根据设备的型号和当前系统版本,判断是否需要进行升级。 3. 传输升级文件:如果服务器确认设备需要进行升级,那么就会将升级文件传输给设备。这通常是通过HTTP或FTP等协议进行数据传输。 4. 升级验证:设备接收到升级文件后,会进行文件校验,以确保文件的完整性和一致性。 5. 升级安装:设备在校验通过后,会进行系统升级安装。这通常会涉及到文件解压、系统分区扩展等操作。 6. 安装后处理:升级完成后,设备会重新启动并进行一些后期处理工作,例如数据迁移、应用优化等。 常见问题分析: 1. 升级失败:升级过程中可能出现各种原因导致升级失败,如网络中断、升级文件损坏、设备存储空间不足等。解决方法可以包括重新尝试升级、检查网络连接、清理设备存储空间等。 2. 兼容性问题:新版本的系统可能对设备硬件或软件要求更高,而一些老旧设备可能无法满足这些要求。这可能导致升级后设备性能下降或功能不可用。解决方法可以是提供适配的系统版本或更新设备硬件。 3. 数据丢失:升级过程中可能导致设备的数据丢失,包括联系人、短信、应用程序数据等。为了避免这种问题,可以提醒用户备份数据或提供数据迁移工具。 4. 升级时间过长:升级过程可能需要较长时间,尤其是在升级文件较大或设备性能较低的情况下。解决方法可以是优化升级文件的大小和传输速度,或提供快速升级选项。 总结:Android OTA升级通过网络直接在设备上进行系统升级流程包括准备、请求、传输、验证、安装和处理。常见问题包括升级失败、兼容性问题、数据丢失和升级时间过长等,需要通过合适的解决方法来处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值