ota升级总结

升级文件:可用的update.zip
目录:/flash/update.zip  必须是这个,一个字都不能差
这里不能指定为/mnt/storage/update.zip,即使“/flash”和"/mnt/storage" 在目录上他们的映射是一样的.
这里不得不说,做底层的真tm坑爹啊! 


第一:原厂真坑爹
SDK里面自带的RecoverySystem.java在机顶盒上根本就不能用! 
测试:
这里没有添加任何权限。
reboot权限和cache权限在Eclipse中是hide了的。
SDK的RevoverySystem.java + Eclipse编译 + 不要shareduserId == 权限不够,不能进入重启环节

基于同样的变量,这里也没有加同样的变量。
新的RecoverySystem.java + 源码编译 + 不要shareduserId == 权限不够,不能进入重启环节

基于同样的变量,这里也没有加同样的变量。
新的RecoverySystem.java + 源码编译 + 要shareduserId == 能升级成功

由于新的RecoverySystem.java有隐藏类FileUtils、BerInputStream、ContentInfo、SignedData、X509CertImpl
所以,在使用新的RecoverySystem时必须在源码编译下使用。

总结:ota升级相关的程序,
1、必须用源码下编译,
2、并且使用shareduserId,
3、并且使用新的RecoverySystem.java

第二:权限的理解
实现apk有系统的权限,必须要做三步:
第一种实现方式
1、在manifest文件中定义android:sharedUserId="android.uid.system"
2、Andorid.mk 中需要添加LOCAL_CERTIFICATE := platform 
3、需要放在packages/apps/下去 mm
第二种实现方式
1、也是需要定义android:sharedUserId="android.uid.system"
2、在源码或是Eclipse中编译生成apk
3、用platform.x509.pem 和 platform.pk8这两个文件进行认证,但是这两个文件的通用性不大
一般都是一个厂家一个版本,不能通用。

如果在manifest文件中没有指定android:sharedUserId="android.uid.system"的话,即使是在Android.mk
文件中指定了LOCAL_CERIFICATE:=platform,编译出来的apk也不能获取系统权限。

第三:遇到了一个很棘手的问题
在源码编译自己android工程的时候,怎样加入工程需要的jar包?

<think>首先,用户的问题是:“我想查找OTA升级的测试点相关内容,请问OTA升级的测试点有哪些?” 用户参考了几个引用,我需要基于这些引用和系统指令来回答。 关键引用总结: - 引用[1]:讨论了OTA技术,包括SOTA和FOTA的区别。SOTA针对非核心ECU如智能座舱,FOTA针对所有部件。OTA的本质是固件升级。 - 引用[2]:提到了刷机方式,包括ADB+Fastboot、Recovery刷入ZIP包、OTA升级OTA升级要求系统正常运行。 - 引用[3]:讨论了面对BROM被禁用的设备时的方法,包括测试点定位、时序分析、硬件调试如JTAG。 - 引用[4]:描述了汽车ECU的诊断和软件升级通过OBD或OTA连接网关实现,并给出了一个OBD交互示例。 用户问题焦点在“OTA升级的测试点”,所以我需要提取与测试点相关的信息。引用[3]直接提到了“测试点定位”,这似乎是最相关的。 从引用[3]:"面对BROM被禁用的设备,技术人员可以考虑以下方法:测试点定位:即使BROM接口被禁用,硬件测试点可能仍然存在,需要重新定位和验证时序分析:利用芯片启动时序中的特性,在安全验证前获得控制权硬件调试:通过JTAG或其他硬件调试接口尝试访问。" 所以,测试点可能指的是硬件测试点,用于在设备上进行调试或升级。 在OTA升级的上下文中,测试点可能涉及如何验证OTA升级过程是否正常工作,或者如何访问设备进行测试。 OTA升级(Over-The-Air)通常是通过无线方式进行的,但测试点可能指的是在硬件级别上的测试点,用于开发、调试或故障排除。 基于引用: - OTA升级依赖于系统正常运行(引用[2])。 - 对于汽车系统,OTA可能通过网关实现(引用[4])。 - 当BROM被禁用时,需要硬件测试点(引用[3])。 所以,OTA升级的测试点可能包括: 1. 硬件测试点:如引用[3]所述,用于访问芯片或ECU,进行调试或强制升级。 2. 软件测试点:在OTA过程中,测试各种功能,如下载、验证、安装固件。 3. 网络和通信测试点:测试OTA服务器的连接、数据传输等。 4. 安全测试点:验证OTA升级的安全性,如签名验证、加密。 用户指定了“测试点”,并且引用[3]直接提到了“测试点定位”,所以我应该专注于硬件方面。 在回答中,我需要: - 使用中文。 - 对于数学表达式,使用$...$格式(但这里可能不需要)。 - 独立公式用$$...$$(可能不适用)。 - 引用的段落末尾添加引用标识,如[^1]。 - 生成相关问题。 - 结构清晰,逐步解决问题。 回答结构: 1. 解释OTA升级的测试点概念。 2. 列出基于引用的测试点。 3. 提供额外信息以确保完整。 4. 在末尾生成相关问题。 可能的测试点: - 硬件测试点:如JTAG、SWD接口,用于访问设备(引用[3])。 - 软件测试点:测试OTA升级流程的不同阶段,如初始化、下载、安装。 - 在汽车上下文中:网关访问、ECU诊断(引用[4])。 - 故障注入点:测试升级失败场景。 由于用户提到“OTA升级的测试点”,我认为主要包括: - 物理测试点:硬件连接点。 - 逻辑测试点:软件或协议层面的测试位置。 从引用[3],测试点定位是针对硬件测试点的。 所以,回答: - OTA升级的测试点可以指硬件测试点,如用于调试和升级的物理接口。 - 在OTA过程中,测试点也包括软件测试点,如验证升级包的完整性、安装过程等。 生成相关问题: - 基于主题,生成相关问题,如“如何定位OTA升级的硬件测试点?”或“OTA升级测试的最佳实践是什么?” 最终回答: 1. 介绍OTA升级测试点。 2. 列出测试点类型。 3. 参考引用。 4. 生成相关问题。 </think> ### OTA升级的测试点分析 OTA(Over-The-Air)升级是一种通过无线网络实现固件或软件更新的技术,广泛应用于智能设备、汽车电子等领域。测试点是用于验证OTA升级过程的关键位置或环节,包括硬件接口、软件流程和通信协议等。基于您提供的引用内容,我将系统化地解释OTA升级的相关测试点,重点关注硬件和软件层面的关键验证位置。以下是主要测试点的分类和说明: #### 1. **硬件测试点(物理接口测试)** - **定义**:硬件测试点指设备上的物理接口或引脚,用于连接调试工具,以访问芯片、ECU(电子控制单元)或固件存储区域。这些测试点在OTA升级中用于诊断、调试、强制升级或恢复设备状态。 - **具体测试点**: - **BROM(Boot ROM)测试点**:如果BROM接口被禁用(如在某些安全设备中),技术人员需重新定位硬件测试点,以在芯片启动时序中获得控制权。例如,通过测试点短接或连接调试器,绕过安全验证进行固件写入[^3]。 - **JTAG/SWD调试接口**:用于直接访问处理器核心,测试OTA升级的底层固件逻辑。这在升级失败或设备无法启动时尤其重要,允许读取/写入内存、监控时序[^3]。 - **OBD(车载诊断系统)网关测试点**:在汽车OTA升级中,通过OBD接口连接网关(如BCM车身控制模块),测试诊断命令的交互。例如,发送UDS(Unified Diagnostic Services)协议指令(如0x721/0x729)查询故障信息或模拟升级过程[^4]。 - **芯片测试点定位**:针对特定芯片(如MCU或SoC),需要识别物理测试点(如电源、时钟、数据引脚),以验证OTA升级时的信号完整性或注入故障测试。 #### 2. **软件测试点(升级流程测试)** - **定义**:软件测试点涉及OTA升级流程中的逻辑环节,包括下载、验证、安装和回滚等阶段。目标是确保升级过程可靠、安全且兼容系统运行。 - **具体测试点**: - **升级包下载测试点**:验证OTA服务器到设备的通信链,包括网络连接稳定性、数据传输完整性(如通过HTTPS/TCP协议)。测试点包括包大小验证、断点续传机制和错误处理(例如,模拟网络中断)[^2]。 - **签名验证测试点**:在升级前,测试固件包的签名验证逻辑(如RSA或ECC加密)。关键点是注入无效签名或篡改包内容,检查系统是否拒绝安装[^1]。 - **安装和回滚测试点**:测试固件写入Flash存储的过程,包括分区切换(如从A/B分区升级)、安装进度监控和失败回滚机制。例如,模拟电池耗尽或存储错误,验证系统是否能恢复至旧版本[^2]。 - **系统兼容性测试点**:针对不同ECU类型,如SOTA(非核心ECU,如智能座舱)和FOTA(核心ECU,如自动驾驶系统),测试升级后功能兼容性。例如,升级仪表系统后,检查与动力系统的交互是否正常[^1]。 #### 3. **安全与诊断测试点** - **定义**:这些测试点聚焦OTA升级的安全性和故障诊断能力,防止未授权访问或升级失败。 - **具体测试点**: - **安全启动测试点**:验证设备启动时序中,OTA升级包的安全加载过程(如Secure Boot)。测试点包括时序分析,确保在安全验证前不执行非授权代码[^3]。 - **诊断指令测试点**:通过OBD或类似接口,发送诊断命令(如UDS服务0x19读取故障码),测试OTA升级前后ECU的响应。例如,模拟“0x721 03 19 02 09”查询命令,检查故障信息上报的准确性。 - **故障注入测试点**:人为注入错误(如无效固件包、网络攻击),测试系统的鲁棒性。例如,使用硬件调试工具(如JTAG)模拟BROM禁用场景,验证恢复机制。 #### 总结 OTA升级的测试点涵盖了硬件接口、软件流程和安全机制,确保升级过程可靠高效。在汽车或智能设备场景中,测试点定位需结合具体设备(如通过OBD网关或芯片测试点),并参考标准协议(如UDS)[^4]。实际测试中,建议使用工具如JTAG调试器、OBD模拟器,并遵循行业标准(如ISO 14229)。如果涉及BROM禁用等复杂情况,硬件测试点定位和时序分析是关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值