【问题标题】:Cross Compile ADB , How to convert Android.mk to MakeFile?交叉编译 ADB,如何将 Android.mk 转换为 MakeFile?
【发布时间】:2017-02-25 13:29:25
【问题描述】:

前言

在我问之前,我已经检查了 thisthis 和 STFW。 由于 ROM 的差异,我想从 [adb source code] 交叉编译运行在我的 aarch64 设备上的 ADB 服务器(N+)。

您可以在此处查看 android.mk 在以下几行中的差异更改:

Latest Android 7.+ version , Lollipop Android 5.+ version 此版本包含用于目标设备功能的 adb。

问题

我找不到合适的 MakeFile,它只是文件夹中的 Android.mk。我应该如何将其转换为 makefile 以便使用 make 为目标设备构建 adb。我已经搭建了一个交叉编译环境,并在我的ubuntu 16.04 lts上安装了ndk-build,repo,build-essential

或者另一方面,我可以只为 device-on-target 构建 ADB 而不编译整个 rom?我应该使用 ndk-build 哪个参数?请给我更详细的信息和谨慎。

【问题讨论】:

    标签: android makefile android-ndk


    【解决方案1】:

    关于设置平台构建环境的说明在 AOSP 网站上:http://source.android.com/source/requirements.html

    ADB 客户端程序未配置为设备构建。我们只支持主机。如果您想为设备构建它,您需要添加该构建配置(参见 system/core/adb/Android.mk),然后很可能进行一些移植工作以使其正常运行。

    【讨论】:

    • 我只是想编译一个不寻常的 adb,由于某些原因,google 删除了用于 device-on-target 的 adb,我需要在我的手机上运行 adb(等于 device-on-target) .so 我怎样才能把它带回来?
    • 您询问了如何将其转换为可以通过 make 调用的 makefile。你没有。按照 AOSP 站点上的构建说明进行操作。您可以在树的顶层运行make,也可以在特定项目中运行mma
    • 如果我在树的顶层使用make adb,它将是x86_64平台的gcc。我怎样才能让它使用aarch64-linux-android-<gcc-version>
    • 扩展了我的答案以涵盖有关设备上 adb 的内容。
    • 如果主机是ARM设备,我该怎么办?例如树莓派
    【解决方案2】:

    您可以查看我的提交,但我必须进行很多更改。

    https://github.com/Surge1223/android_system_core/blob/android-7.1/adb/Android.mk

    为 arm 和 arm64 静态构建

    【讨论】:

    • 我会试一试。你能给我一个使用你的源代码构建的指南吗?我可以'make adb'吗?
    • 在同步 aosp 之后,您必须挑选一些我在 /system/core 中所做的提交,然后当您键入 make adb 时,它将默认为主机和目标生成 adb
    • 非常感谢。我可以克隆您的存储库并替换原始文件吗?我进入了 AOSP 的代码审查,但没有看到您添加的拉取请求。但是,我应该执行哪些提交-选择我是否可以替换原始文件?
    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2012-04-19
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多