【问题标题】:Android - How does an SDK port work?Android - SDK 端口如何工作?
【发布时间】:2011-12-14 01:31:00
【问题描述】:
【问题讨论】:
标签:
android
sdk
reverse-engineering
porting
rom
【解决方案1】:
SDK 包含一个 system.img,其中包含手机的大部分固件。除此之外,固件的重要部分是引导加载程序(它是特定于硬件的,而不是特定于 Android 版本的)和内核(它是为硬件配置的,尽管其中可能有一些 Android 版本的细节)。
很可能,他们只是从 system.img 中获取了一些片段,并且能够获得可接受的引导。由于旧内核和新系统映像之间的要求不同,这通常会导致某些部分(如您提到的 wifi)无法工作。
【解决方案2】:
一个可能的工作流程是:
- 获取 SDK 并安装它并确保它能够编译程序
- 移植意味着“重写系统特定的模块以使整个系统在新平台上工作”。在一个设计良好的系统中,什么是系统相关模块(例如,将字节写入大容量存储器)和什么是更高级别的模块(例如,写入文件)有一个明确的区别。底层系统必须提供的分离和抽象级别由操作系统(在本例中为 Android)的需求决定
- ROM 本身可能是一个二进制映像,由引导加载程序加载到 RAM 中(这就是引导加载程序特定于硬件的原因)。然后,引导加载程序将控制权转移到由 SDK 编译和构建的 RAM 映像,其中包含 Nexus One 的特定处理器可以理解的二进制代码。