因项目需要,需要在openwrt系统上使用android的fastboot工具,但搜索,没找到可以使用的fastbootipk安装包,无奈…..只能自己进行编译一个。
Fastboot工具的编译和adb的编译差不多,adb的编译已经有大牛分享了,路径如下:
http://www.right.com.cn/FORUM/thread-182143-1-1.html
里面有如何编写openwrt的packages的 Makefile,以及adb编译的Makefile文件。
在这里需要说明一下,完成上面的步骤后,并没有adb的代码,adb的代码下载路径是在编译的时候通过Makefile文件制定的路径下载的,此文件指定的路径为
https://android.googlesource.com/platform/system/core
但是谷歌已经被墙了,不过还好,有github,将上述路径修改为github的路径即可。
下载完代码后,会在openwrt/dl目录下看到对应的adb压缩包,在编译时候会将此压缩包解压到build_dir对应PKG_BUILD_DIR目录下,直接make V=s编译即可,编译完成后,我的在
Openwrt/bin/ar71xx/packages目录下生成对应的adb ipk包。
说明一下,我在编译的时候没有按照楼上说的在SDK目录下编译,我是直接放在我们用的项目下面编译的,因为本人编译出来的SDK包没有toolchain,其实就放在自己openwrt代码下面,当做一个package即可,是一样的。
Adb编译还比较顺利,fastboot就比较不顺了,各种出错,自己根据android.mk写的Makefile也是各种出错,无奈,只能翻墙Google,发现国外牛人真不少,有人已经写好了可供编译的fastboot的Makefile,如下网站:
http://android.serverbox.ch/?p=1217
拿过来,悲剧了,编译fgetfilecon.c文件提示找不到sys/xattr.h,优势Google,发现有人也遇到了同样的问题,如下:
https://github.com/openwrt/packages/issues/1703
其中mstorchak 的回答部分完全解答了如何解决此问题
附上上图的网址
https://lists.openwrt.org/pipermail/openwrt-devel/2015-October/036652.html
https://lists.openwrt.org/pipermail/openwrt-devel/2015-October/036667.html
按照上述打开工具的xattr选项,编译OK。
终于在bin下发现了需要的fastbootipk包,安装测试,基本功能OK。
基本上fastboot的编译按照adb的编译来做。只需要将adbmakefile替换为fastbootmakefile即可,根据下载的core代码的git commit,代码有些许的差异,只需要做一些基本的修改即可,
最后我是在https://source.codeaurora.org/external/gigabyte/platform/system/core上下载的代码,commit取的45f92c7012bc6bfcd91837982b8cead7f51f687b。
最后,非常感谢大牛们的分享。