1、SDK、adb、fastboot随着版本迭代都有了一点变化,编译以Android6.0为界

2、权威参考sdk/docs/howto_build_SDK.txt

3、adb windows版编译方法:

make host_cross_adb

4、fastboot Windows版编译方法:

make host_cross_fastboot

5、Android7.0编译Android使用的adb

diff --git a/android/system/core/adb/Android.mk b/android/system/core/adb/Android.mk
index 62e6c28..428f70e 100755
--- a/android/system/core/adb/Android.mk
+++ b/android/system/core/adb/Android.mk
@@ -275,7 +275,7 @@ LOCAL_CFLAGS_darwin := \
     $(ADB_COMMON_darwin_CFLAGS) \
     -Wno-sizeof-pointer-memaccess -Wno-unused-parameter \
 
LOCAL_MODULE := adb
 LOCAL_MODULE_TAGS := debug
 LOCAL_MODULE_HOST_OS := darwin linux windows
 
@@ -378,3 +378,106 @@ LOCAL_STATIC_LIBRARIES += \

 endif
 include $(BUILD_EXECUTABLE)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmyadb
+#LOCAL_MODULE_HOST_OS := darwin linux windows
+LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1     \
+        -std=c++14 \
+    -Wexit-time-destructors \
+    -O2 \
+    -g \
+    -DADB_HOST_ON_TARGET=1 \
+    -Wall -Wno-unused-parameter -Werror \

+    -D_XOPEN_SOURCE \
+     -D_GNU_SOURCE
+
+LOCAL_SRC_FILES := \
+    $(LIBADB_SRC_FILES) \
+    adb_auth_host.cpp \
+    get_my_path_linux.cpp \
+    sysdeps_unix.cpp \
+    usb_linux.cpp \
+    
+LOCAL_SANITIZE := $(adb_host_sanitize)
+# Even though we're building a static library (and thus there's no link step for
+# this to take effect), this adds the includes to our path.
+LOCAL_STATIC_LIBRARIES := libcrypto_static libbase
+
+LOCAL_MULTILIB := first              //编译平台的位数控制,32,64
+include $(BUILD_STATIC_LIBRARY)

+include $(CLEAR_VARS)
+LOCAL_MODULE := libmydiagnose_usb
+
+LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST_ON_TARGET=1
+LOCAL_SRC_FILES := diagnose_usb.cpp
+# Even though we're building a static library (and thus there's no link step for
+# this to take effect), this adds the includes to our path.
+LOCAL_STATIC_LIBRARIES := libbase
+include $(BUILD_STATIC_LIBRARY)
+
+# =========================================================
+include $(CLEAR_VARS)
+LOCAL_LDLIBS_linux := -lrt -ldl -lpthread
+
+LOCAL_SRC_FILES := \
+    adb_client.cpp \
+    bugreport.cpp \
+    client/main.cpp \
+    console.cpp \
+    commandline.cpp \
+    file_sync_client.cpp \
+    line_printer.cpp \
+    services.cpp \
+    shell_service_protocol.cpp \
+
+LOCAL_CFLAGS += \
+    $(ADB_COMMON_CFLAGS) \
+    -D_GNU_SOURCE \
+    -DADB_HOST=1 \
+    -std=c++14 \
+    -Wexit-time-destructors \
+        -DADB_HOST_ON_TARGET=1 \    //不加将不能启动server
+LOCAL_CFLAGS += -Wno-error=non-virtual-dtor  //忽略无虚析构函数错误

+LOCAL_CFLAGS_linux := \
+    $(ADB_COMMON_linux_CFLAGS) \
+LOCAL_MODULE := my_adb
+LOCAL_MODULE_TAGS := debug
+LOCAL_SANITIZE := $(adb_host_sanitize)
+LOCAL_STATIC_LIBRARIES := \
+    libmyadb \
+    libbase \
+    libcrypto_static \
+    libmydiagnose_usb \
+    liblog \
+    libcutils
+
+LOCAL_CXX_STL := libc++_static
+#LOCAL_LDLIBS= -lrt -ldl -lpthread
+LOCAL_SHARED_LIBRARIES :=
+include $(BUILD_EXECUTABLE)

diff --git a/android/system/core/adb/diagnose_usb.cpp b/android/system/core/adb/diagnose_usb.cpp
index 0f067b0..5ef8922 100755
--- a/android/system/core/adb/diagnose_usb.cpp
+++ b/android/system/core/adb/diagnose_usb.cpp
@@ -32,7 +32,7 @@ static const char kPermissionsHelpUrl[] = "http://developer.android.com/tools/de
 // Returns a message describing any potential problems we find with udev, or nullptr if we can't
 // find plugdev information (i.e. udev is not installed).
 static const char* GetUdevProblem() {
-#if defined(__linux__)
+#if !defined(__linux__)
     errno = 0;
     group* plugdev_group = getgrnam("plugdev");
 

6、Android adb的system权限用户无法获取usb设备

修改system/core/./rootdir/ueventd.rc,加入

/dev/bus/usb/*/*            0777    root        usb

 

更多相关文章

  1. android onGenericMotionEvent(MotionEvent event)
  2. Android(安卓)2.2 Eclipse 源码工程 调试
  3. setBackground、setBackgroundDrawable、setBackgroundResource
  4. [转]android 网络编程 HttpGet类和HttpPost类使用详解
  5. Android(安卓)Service最全面的解析
  6. Android(安卓)NDK 线程回调Java层方法
  7. 编译Android源码时出现的java版本的问题
  8. 疯狂安卓Android自学笔记
  9. mac下搭建cocos2d-x2.2.1版本android编译环境教程

随机推荐

  1. android模拟器发送短信和打电话
  2. Android(安卓)4.0 真实视频泄露
  3. Android Studio 使用自己编译的framework
  4. 转android四种动画
  5. Android RecyclerView(和SnapHelper) 实
  6. Android中WebView使用html,且实现android
  7. Android(安卓)display架构分析二-SW架构
  8. android:XML文件报错!Incorrect line endin
  9. Android(安卓)Intent 使用整理
  10. 【Arcgis for android】相关教程收集自网