有关从一台设备到另一台设备的 Android 内核移植的指南

2024-01-10

我拥有一台 Samsung Galaxy 3,并且想要移植可用于其他 Android 设备的内核。我已经准备好了所有的建筑环境。我也有C知识。我到底不明白的是移植涉及什么以及如何以及什么,哪些代码应该以什么方式修改?

如果有人可以帮助我。这会很棒。

提前致谢。


好,我知道了。但真正的问题是我不明白一件事。

需要更改源代码中的哪些内容才能使其兼容其他设备?有人能给我解释一下吗?


Idolon 给出了一个很好的建议。从理论上讲,那里写的都是真的。在实践中,它涉及更多一些。我已经移植 Android 内核几个月了。我的目标是在我的定制板上拥有一个带有定制 I/O 的定制 S5PV210 处理器模块。我有三星 Galaxy Tab 和几款三星 Android 智能手机的源代码,以及三星评估板(S5PV210 CPU 的 SMDKV210)的几个版本(Froyo、Gingerbread)。仅供参考,S5PC110 是一个紧密的衍生产品。这是我发现的。 尽管所有设备驱动程序都应该以非常模块化的方式构建并且彼此独立,并且您应该能够用类似的设备替换它们,但三星的做法并不完全是这样。举一个关于电源管理的例子。在许多处理硬件设备的低级驱动程序中,它为其他硬件设备(例如电源管理芯片)调用一些特定的例程。因此,当您更改“make xconfig”或“make menuconfig”中的驱动程序选择时,它将删除您不需要的源代码并添加您想要的驱动程序,但是仍然有其他模块正在调用您删除的低级功能。在构建时,您将获得大量未解决的外部问题,因为您删除了您的硬件没有但在您开始使用的源中使用的电源管理芯片。我查看了三星的几个设备源代码,它们很早就已经分支了。它们已由不同的团队进行了改编,从一个源套件将一种设备转移到另一种设备将是一项艰巨的工作。

我是这样成功的:我购买了一个 S5PV210 评估板,其中已经移植了 Android 内核 (Gingerbread)。所有电源管理和相互依赖的问题都已解决。然后,形成一个工作套件,我可以更改我需要的设备(如果没有每年 10 万台的承诺就无法购买的设备),而不会陷入相互依赖性。然后我什至可以更改 LCD 分辨率(从 800x480 到 1024x768)、触摸屏、Cell 调制解调器等。整个过程仅需要一个人(我)大约一个月的时间。

从 Galaxytab 或其他商业设备开始,我花了几个月的时间思考,除了我学到的东西之外没有任何有用的结果。

我的方法要成功有一个要求。您必须了解您正在使用的硬件。例如,您需要知道您的硬件有什么触摸屏(芯片组)来选择驱动程序,以及它是否已连接以将其连接到正确的设备(USB、串行等)。对于所有其他设备(电源管理芯片、键盘、背光、LCD 等)也是如此

希望这有助于您了解所涉及的工作以及如何完成它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有关从一台设备到另一台设备的 Android 内核移植的指南 的相关文章

  • Linux内核container_of宏和C90中的通用容器

    是否有可能实施容器的 http lxr linux no linux tools perf util include linux kernel h L18纯C90中的宏 我不确定如何做到这一点 因为内核实现取决于海湾合作委员会黑客 http
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • 接近语法错误(代码1)插入Android SQLite

    我正在创建一个通讯录应用程序 用户可以在其中输入姓名 电子邮件地址和号码 我希望将此数据保存在数据库中 但我似乎无法使插入方法起作用 我收到的错误是 android database sqlite SQLiteException near
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • minHeight 有什么作用吗?

    在附图中 我希望按钮列与图像的高度相匹配 但我也希望按钮列有一个最小高度 它正确匹配图像的高度 但不遵守 minHeight 并且会使按钮向下滑动 我正在为按钮列设置这些属性
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐