我不熟悉运行 android 的上网本,所以这是我使用嵌入式设备的经验。
据我所知,没有“android-internal”方式。Android 在 u-boot 之后接管,并且很少(从不读取)修改为 u-boot 环境分区。
长话短说,这几乎是不可能的,而且付出了太多的努力。初学者也需要一个调试串行控制台连接到板或 ADB 外壳。这只是猜测没有外壳的工作。
对于一般算法:
- 让外壳工作
- 了解系统(cpu类型,分区表,...)
- 现在只需研究你可以用你知道的东西做什么。
或“全有或全无” - 对固件升级和固件映像进行逆向工程,并尝试使用您自己的引导。
很长的故事:
对于 sd_card 启动,您有 2 个选项:
- 使用板上的引导加载程序并从 sdcard 加载内核和 rootfs
- 从 sd_card 启动
从 sd_card 加载内核和 fs:
在不改变u-boot环境的情况下,没有通用的u-boot方式来改变引导设备。u-boot 环境大部分时间驻留在一个 nand 分区中。可能有厂商编码的某种方式,离线固件升级程序可能会猜到。这可能是您快速解决问题的最佳选择。尝试对其进行逆向工程。
从 sd_card 启动:
大多数平台都有 SYSCONFIG 寄存器或硬件引脚,由开发平台上的跳线操作,并且大部分在生产平台上硬连线。SYSCONFIG 控制引导设备。它可以配置为仅用于 NAND 或仅用于 SD_CARD 等...
如果系统确实配置为从 sd_card 加载,则还有一些问题:
- 有时必须以特定方式格式化 SD 卡(例如:http ://www.omappedia.org/wiki/SD_Configuration )。
- 其他时候必须签署第一阶段加载程序。而且很难弄清楚第一阶段引导加载程序是什么(x-loader 或其他),并且签名部分有点棘手:)
- 您必须知道构建 u-boot 和 x-loader 的确切平台配置