如何用另一个发行版替换android

时间:2011-01-14 10:44:19

标签: android bootloader u-boot

我买了一个预装了android 2.0的非常弱的上网本 我想替换另一个Linux发行版,如puppy或damnSmallLinux。

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

我无法找到任何关键序列进入android调试模式,因此我没有android系统的root。

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

1 个答案:

答案 0 :(得分:3)

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

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

长话短说,这几乎是不可能的,而且没有任何努力。 同样对于初学者你需要一个连接到电路板或ADB shell的调试串行控制台。它只是猜测没有shell的工作。

对于一般算法:

  1. 让shell工作
  2. 了解系统(cpu类型,分区表,...)
  3. 现在只研究你能用你所知道的事情做些什么。
  4. 或“全有或全无” - 对固件升级和固件映像进行反向工程,并尝试使用您自己的启动。

    长篇故事:

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

    1. 使用主板上的引导加载程序并从sdcard加载内核和rootfs
    2. 从sd_card启动
    3. 从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的确切平台配置