跨平台编译ADB,如何将Android.mk转换为MakeFile?

4

前言

在提问之前,我已经查看了这篇文章这篇文章并进行了搜索。由于ROM的差异,我想从[adb源代码]交叉编译一个在我的aarch64设备上运行的ADB服务器(N+)。

您可以在以下行中查看android.mk的不同更改:

最新的Android 7.+版本Lollipop Android 5.+版本此版本包含面向目标设备的adb功能。

问题

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

或者换句话说,我是否可以仅构建面向目标设备的ADB而无需编译整个ROM?我应该使用哪个参数来运行ndk-build?请给我更详细的信息和注意事项。

2个回答

0

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

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


我只想编译一个不寻常的adb,因为由于某些原因,谷歌删除了设备对目标的adb,而我需要在我的手机上运行adb(相当于设备对目标)。那么我该如何恢复它呢? - PotatoChips
你问如何将它转换为可以通过make直接调用的makefile。不需要这样做。请按照AOSP网站上的构建说明进行操作。你可以在树的顶层运行make,也可以在特定项目中运行mma - Dan Albert
如果我在树的顶层使用 make adb,它将使用 x86_64 平台的 gcc。我该如何让它使用 aarch64-linux-android-<gcc-version> - PotatoChips
扩展了我的答案,涵盖了有关设备上adb的内容。 - Dan Albert
如果主机是ARM设备,我该怎么办?例如:树莓派。 - PotatoChips
您需要移植adb,包括构建系统。这不是AOSP构建系统完全支持的内容。 - Dan Albert

0

我来试一下。你能给我建立使用你的源代码的指南吗?我只需要执行'make adb'吗? - PotatoChips
同步AOSP后,您需要挑选我在/system/core中制作的一些提交,然后当您键入make adb时,默认情况下会为主机和目标制作adb。 - Surge1223
非常感谢。我能直接克隆你的代码库并替换原文件吗?我进入了AOSP的代码审查,但没有看到你添加的拉取请求。不过,如果我能替换原文件,那么我应该挑选哪些提交? - PotatoChips

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接