2

我买了一个非常弱的上网本,它预装了 android 2.0,我想用另一个 linux 发行版(如小狗或damnSmallLinux)替换它。

上网本没有带有“从 SD 卡启动”选项的 bios 菜单,所以当我插入带有 grub/lilo 的 SD 卡或 USB 密钥时,它仍然没有从它启动。

我找不到进入 android 调试模式的键序列,所以我没有 android 系统的 root。

  1. 是否有一种 android-internal 方式来指定从其他媒体启动?
  2. 是否有“das-uboot”方式强制从另一台设备启动 android?

谢谢!

4

1 回答 1

3

我不熟悉运行 android 的上网本,所以这是我使用嵌入式设备的经验。

据我所知,没有“android-internal”方式。Android 在 u-boot 之后接管,并且很少(从不读取)修改为 u-boot 环境分区。

长话短说,这几乎是不可能的,而且付出了太多的努力。初学者也需要一个调试串行控制台连接到板或 ADB 外壳。这只是猜测没有外壳的工作。

对于一般算法:

  1. 让外壳工作
  2. 了解系统(cpu类型,分区表,...)
  3. 现在只需研究你可以用你知道的东西做什么。

或“全有或全无” - 对固件升级和固件映像进行逆向工程,并尝试使用您自己的引导。

很长的故事:

对于 sd_card 启动,您有 2 个选项:

  1. 使用板上的引导加载程序并从 sdcard 加载内核和 rootfs
  2. 从 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 的确切平台配置
于 2011-02-26T22:49:45.700 回答