From 4d4f64ff94e8c03d0c2e7b7ccfa7c48ca2345087 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Mon, 8 May 2017 11:30:34 -0700 Subject: [PATCH] Show the "platform tools" version in adb/fastboot --version. Annoyingly folks parse the "adb --version" output so we have the less-interesting protocol version first. But at least now we'll have the "real" version somewhere... Bug: N/A Test: "adb --version"/"fastboot --version" Change-Id: Ia85b561bd8d84c6fd6995923730d36f53b2f800b --- adb/Android.mk | 4 +++- adb/adb.cpp | 4 ++-- adb/daemon/main.cpp | 5 ++--- fastboot/Android.mk | 6 ++++-- fastboot/fastboot.cpp | 2 +- platform_tools_tool_version.mk | 22 ++++++++++++++++++++++ 6 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 platform_tools_tool_version.mk diff --git a/adb/Android.mk b/adb/Android.mk index efdff5d34..ca337ee87 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -5,6 +5,8 @@ LOCAL_PATH:= $(call my-dir) +include $(LOCAL_PATH)/../platform_tools_tool_version.mk + adb_host_sanitize := adb_target_sanitize := @@ -13,7 +15,7 @@ ADB_COMMON_CFLAGS := \ -Wno-unused-parameter \ -Wno-missing-field-initializers \ -Wvla \ - -DADB_REVISION=\"$(BUILD_NUMBER_FROM_FILE)\" \ + -DADB_VERSION=\"$(tool_version)\" \ ADB_COMMON_posix_CFLAGS := \ -Wexit-time-destructors \ diff --git a/adb/adb.cpp b/adb/adb.cpp index 0181daa60..c1e0d98fe 100644 --- a/adb/adb.cpp +++ b/adb/adb.cpp @@ -64,9 +64,9 @@ std::string adb_version() { // Don't change the format of this --- it's parsed by ddmlib. return android::base::StringPrintf( "Android Debug Bridge version %d.%d.%d\n" - "Revision %s\n" + "Version %s\n" "Installed as %s\n", - ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION, ADB_REVISION, + ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION, ADB_VERSION, android::base::GetExecutablePath().c_str()); } diff --git a/adb/daemon/main.cpp b/adb/daemon/main.cpp index 7a87df461..a6d43eaff 100644 --- a/adb/daemon/main.cpp +++ b/adb/daemon/main.cpp @@ -233,9 +233,8 @@ int main(int argc, char** argv) { adb_device_banner = optarg; break; case 'v': - printf("Android Debug Bridge Daemon version %d.%d.%d %s\n", - ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION, - ADB_REVISION); + printf("Android Debug Bridge Daemon version %d.%d.%d (%s)\n", ADB_VERSION_MAJOR, + ADB_VERSION_MINOR, ADB_SERVER_VERSION, ADB_VERSION); return 0; default: // getopt already prints "adbd: invalid option -- %c" for us. diff --git a/fastboot/Android.mk b/fastboot/Android.mk index e675d7d60..4d54175d6 100644 --- a/fastboot/Android.mk +++ b/fastboot/Android.mk @@ -14,8 +14,12 @@ LOCAL_PATH:= $(call my-dir) +include $(LOCAL_PATH)/../platform_tools_tool_version.mk + include $(CLEAR_VARS) +LOCAL_CFLAGS += -DFASTBOOT_VERSION=\"$(tool_version)\" + LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/../adb \ $(LOCAL_PATH)/../mkbootimg \ @@ -37,8 +41,6 @@ LOCAL_MODULE_TAGS := debug LOCAL_MODULE_HOST_OS := darwin linux windows LOCAL_CFLAGS += -Wall -Wextra -Werror -Wunreachable-code -LOCAL_CFLAGS += -DFASTBOOT_REVISION=\"$(BUILD_NUMBER_FROM_FILE)\" - LOCAL_SRC_FILES_linux := usb_linux.cpp LOCAL_STATIC_LIBRARIES_linux := libselinux diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index 5d5ac9b80..a9450dcc3 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -1555,7 +1555,7 @@ int main(int argc, char **argv) setvbuf(stdout, nullptr, _IONBF, 0); setvbuf(stderr, nullptr, _IONBF, 0); } else if (strcmp("version", longopts[longindex].name) == 0) { - fprintf(stdout, "fastboot version %s\n", FASTBOOT_REVISION); + fprintf(stdout, "fastboot version %s\n", FASTBOOT_VERSION); fprintf(stdout, "Installed as %s\n", android::base::GetExecutablePath().c_str()); return 0; } else if (strcmp("slot", longopts[longindex].name) == 0) { diff --git a/platform_tools_tool_version.mk b/platform_tools_tool_version.mk new file mode 100644 index 000000000..73229e6d9 --- /dev/null +++ b/platform_tools_tool_version.mk @@ -0,0 +1,22 @@ +# Copyright (C) 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# We rewrite ${PLATFORM_SDK_VERSION} with 0 rather than $(PLATFORM_SDK_VERSION) +# because on the actual platform tools release branches the file contains a +# literal instead. Using 0 lets us easily distinguish non-canonical builds. +platform_tools_version := $(shell sed \ + 's/$${PLATFORM_SDK_VERSION}/0/ ; s/^Pkg.Revision=\(.*\)/\1/p ; d' \ + $(ANDROID_BUILD_TOP)/development/sdk/plat_tools_source.prop_template \ + ) +tool_version := $(platform_tools_version)-$(BUILD_NUMBER_FROM_FILE)