Compare commits

..

1 commit

Author SHA1 Message Date
Bastien Nocera
1d38a1f3d0 Fix USB resets when adb daemon is started (#1470740) 2018-02-27 19:20:54 +01:00
15 changed files with 10465 additions and 394 deletions

36
0001-Add-string-h.patch Normal file
View file

@ -0,0 +1,36 @@
diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp
index 296995e..48269b6 100644
--- a/base/errors_unix.cpp
+++ b/base/errors_unix.cpp
@@ -17,6 +17,7 @@
#include "android-base/errors.h"
#include <errno.h>
+#include <string.h>
namespace android {
namespace base {
diff --git a/base/file.cpp b/base/file.cpp
index 81b04d7..2fd2b6e 100644
--- a/base/file.cpp
+++ b/base/file.cpp
@@ -22,6 +22,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#include <string.h>
#include <memory>
#include <mutex>
diff --git a/base/logging.cpp b/base/logging.cpp
index 6357b4b..3c7dbce 100644
--- a/base/logging.cpp
+++ b/base/logging.cpp
@@ -23,6 +23,7 @@
#include <fcntl.h>
#include <libgen.h>
#include <time.h>
+#include <string.h>
// For getprogname(3) or program_invocation_short_name.
#if defined(__ANDROID__) || defined(__APPLE__)

View file

@ -1,38 +0,0 @@
From d349fae010f6c780d76e89c5d6b81d45119137c0 Mon Sep 17 00:00:00 2001
From: Arnav Singh <me@arnavion.dev>
Date: Sat, 3 Aug 2024 21:55:23 -0700
Subject: [PATCH] Fix libusb enumeration to handle PINE64 PinePhone modem.
The PINE64 PinePhone modem exposes itself as an adb-accessible device over USB
but its device class is LIBUSB_CLASS_MISCELLANEOUS, so allow that too.
---
vendor/adb/client/usb_libusb.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/vendor/adb/client/usb_libusb.cpp b/vendor/adb/client/usb_libusb.cpp
index 6133e7c8..9af91eb7 100644
--- a/vendor/adb/client/usb_libusb.cpp
+++ b/vendor/adb/client/usb_libusb.cpp
@@ -364,8 +364,8 @@ struct LibusbConnection : public Connection {
}
bool FindInterface(libusb_device_descriptor* device_desc) {
- if (device_desc->bDeviceClass != LIBUSB_CLASS_PER_INTERFACE) {
- // Assume that all Android devices have the device class set to per interface.
+ if (device_desc->bDeviceClass != LIBUSB_CLASS_PER_INTERFACE && device_desc->bDeviceClass != LIBUSB_CLASS_MISCELLANEOUS) {
+ // Assume that all Android devices have the device class set to per interface or miscellaneous.
// TODO: Is this assumption valid?
VLOG(USB) << "skipping device with incorrect class at " << device_address_;
return false;
@@ -1039,7 +1039,7 @@ void usb_init() {
static_cast<libusb_hotplug_event>(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED |
LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT),
LIBUSB_HOTPLUG_ENUMERATE, LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY,
- LIBUSB_CLASS_PER_INTERFACE, hotplug_callback, nullptr, nullptr);
+ LIBUSB_HOTPLUG_MATCH_ANY, hotplug_callback, nullptr, nullptr);
if (rc != LIBUSB_SUCCESS) {
LOG(FATAL) << "failed to register libusb hotplug callback";
--
2.46.0

View file

@ -0,0 +1,40 @@
From 5d002b8d6ae0a1eeefe09309ae6687a16e82ed08 Mon Sep 17 00:00:00 2001
From: Yabin Cui <yabinc@google.com>
Date: Tue, 4 Apr 2017 10:29:21 -0700
Subject: [PATCH] adb: don't reset usb when connecting it.
Calling libusb_reset_device() resets the usb connection with device
on linux platform. It can interfere with other usb interfaces and only
works on linux.
Removing it only affects when adb server is killed while doing IO with
device, which will be solved in later patches.
Bug: http://b/32952319
Test: none
Change-Id: I19522435eadd938ff95d49cbae3bcaa5c8f6d184
---
adb/client/usb_libusb.cpp | 8 --------
1 file changed, 8 deletions(-)
diff --git a/adb/client/usb_libusb.cpp b/adb/client/usb_libusb.cpp
index 7adb26213..c48a2517b 100644
--- a/adb/client/usb_libusb.cpp
+++ b/adb/client/usb_libusb.cpp
@@ -306,14 +306,6 @@ static void poll_for_devices() {
}
device_serial.resize(rc);
- // Try to reset the device.
- rc = libusb_reset_device(handle_raw);
- if (rc != 0) {
- LOG(WARNING) << "failed to reset opened device '" << device_serial
- << "': " << libusb_error_name(rc);
- continue;
- }
-
// WARNING: this isn't released via RAII.
rc = libusb_claim_interface(handle.get(), interface_num);
if (rc != 0) {
--
2.14.3

File diff suppressed because it is too large Load diff

View file

@ -1,36 +0,0 @@
From 36c605004ae1c75813181ffe4c59907016aaf9e9 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <nathbappai@gmail.com>
Date: Tue, 22 Apr 2025 15:12:23 +0000
Subject: [PATCH] extras/libjsonpb: Fix incompatibility with protobuf v30
This commit fixes the following compiler error.
jsonpb.cpp:36:44: error: invalid operands to binary expression (
'basic_string<char, char_traits<char>, allocator<char>>' and
'internal::DescriptorStringView' (aka 'basic_string_view<char>'))
36 | return std::string(kTypeUrlPrefix) + "/" + message.GetDescriptor()->full_name();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More info here https://protobuf.dev/news/2024-10-02/#descriptor-apis
Change-Id: I3c76d51dfdfbe013eaa5031e6194bf5edae1be35
---
libjsonpb/parse/jsonpb.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vendor/extras/libjsonpb/parse/jsonpb.cpp b/vendor/extras/libjsonpb/parse/jsonpb.cpp
index b342c2b..ebd71bf 100644
--- a/vendor/extras/libjsonpb/parse/jsonpb.cpp
+++ b/vendor/extras/libjsonpb/parse/jsonpb.cpp
@@ -33,7 +33,7 @@ using google::protobuf::util::TypeResolver;
static constexpr char kTypeUrlPrefix[] = "type.googleapis.com";
std::string GetTypeUrl(const Message& message) {
- return std::string(kTypeUrlPrefix) + "/" + message.GetDescriptor()->full_name();
+ return std::string(kTypeUrlPrefix) + "/" + std::string(message.GetDescriptor()->full_name());
}
ErrorOr<std::string> MessageToJsonString(const Message& message) {
--
2.49.0

View file

@ -0,0 +1,15 @@
diff --git a/adb/client/usb_libusb.cpp b/adb/client/usb_libusb.cpp
index 7adb262..b994c8c 100644
--- a/adb/client/usb_libusb.cpp
+++ b/adb/client/usb_libusb.cpp
@@ -27,8 +27,9 @@
#include <string>
#include <thread>
#include <unordered_map>
+#include <condition_variable>
-#include <libusb/libusb.h>
+#include <libusb-1.0/libusb.h>
#include <android-base/file.h>
#include <android-base/logging.h>

View file

@ -1,34 +0,0 @@
From 55d30a3098c29431bcbeb2d2a5f1a0c40844c311 Mon Sep 17 00:00:00 2001
From: Fabien Sanglard <sanglardf@google.com>
Date: Mon, 23 Jun 2025 11:21:16 -0700
Subject: [PATCH] Make legacy USB driver default on Linux
Bug: 366314975
Bug: 398328647
Test: Manual
Flag: EXEMPT (adb.exe)
Change-Id: Id49df58587d3f479d263a5b2da1679a1e675feb5
---
client/transport_usb.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/vendor/adb/client/transport_usb.cpp b/vendor/adb/client/transport_usb.cpp
index 3b0b4906..d3b4929c 100644
--- a/vendor/adb/client/transport_usb.cpp
+++ b/vendor/adb/client/transport_usb.cpp
@@ -177,9 +177,9 @@ bool is_adb_interface(int usb_class, int usb_subclass, int usb_protocol) {
}
bool is_libusb_enabled() {
- bool enable = true;
-#if defined(_WIN32)
- enable = false;
+ bool enable = false;
+#if defined(__APPLE__)
+ enable = true;
#endif
char* env = getenv("ADB_LIBUSB");
if (env) {
--
2.52.0

17
0003-atomic-fix.patch Normal file
View file

@ -0,0 +1,17 @@
diff --git a/libcutils/include/cutils/trace.h b/libcutils/include/cutils/trace.h
index fcbdc9b..4281375 100644
--- a/libcutils/include/cutils/trace.h
+++ b/libcutils/include/cutils/trace.h
@@ -18,7 +18,12 @@
#define _LIBS_CUTILS_TRACE_H
#include <inttypes.h>
+#ifdef __cplusplus
+#include <atomic>
+using namespace std;
+#else
#include <stdatomic.h>
+#endif
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>

51
0004-bz1441234.patch Normal file
View file

@ -0,0 +1,51 @@
diff --git a/libcrypto_utils/android_pubkey.c b/libcrypto_utils/android_pubkey.c
index 3052e52..7061db9 100644
--- a/libcrypto_utils/android_pubkey.c
+++ b/libcrypto_utils/android_pubkey.c
@@ -126,37 +126,41 @@ bool android_pubkey_encode(const RSA* key, uint8_t* key_buffer, size_t size) {
BIGNUM* r32 = BN_new();
BIGNUM* n0inv = BN_new();
BIGNUM* rr = BN_new();
+ const BIGNUM *n;
+ const BIGNUM *e;
if (sizeof(RSAPublicKey) > size ||
RSA_size(key) != ANDROID_PUBKEY_MODULUS_SIZE) {
goto cleanup;
}
+ RSA_get0_key(key, &n, &e, NULL);
+
// Store the modulus size.
key_struct->modulus_size_words = ANDROID_PUBKEY_MODULUS_SIZE_WORDS;
// Compute and store n0inv = -1 / N[0] mod 2^32.
- if (!ctx || !r32 || !n0inv || !BN_set_bit(r32, 32) ||
- !BN_mod(n0inv, key->n, r32, ctx) ||
+ if (!ctx || !r32 || !n0inv || !n || !e || !BN_set_bit(r32, 32) ||
+ !BN_mod(n0inv, n, r32, ctx) ||
!BN_mod_inverse(n0inv, n0inv, r32, ctx) || !BN_sub(n0inv, r32, n0inv)) {
goto cleanup;
}
key_struct->n0inv = (uint32_t)BN_get_word(n0inv);
// Store the modulus.
- if (!android_pubkey_encode_bignum(key->n, key_struct->modulus)) {
+ if (!android_pubkey_encode_bignum(n, key_struct->modulus)) {
goto cleanup;
}
// Compute and store rr = (2^(rsa_size)) ^ 2 mod N.
if (!ctx || !rr || !BN_set_bit(rr, ANDROID_PUBKEY_MODULUS_SIZE * 8) ||
- !BN_mod_sqr(rr, rr, key->n, ctx) ||
+ !BN_mod_sqr(rr, rr, n, ctx) ||
!android_pubkey_encode_bignum(rr, key_struct->rr)) {
goto cleanup;
}
// Store the exponent.
- key_struct->exponent = (uint32_t)BN_get_word(key->e);
+ key_struct->exponent = (uint32_t)BN_get_word(e);
ret = true;

8659
51-android.rules Normal file

File diff suppressed because it is too large Load diff

14
adb.service Normal file
View file

@ -0,0 +1,14 @@
# Systemd unit file for adb
[Unit]
Description=Android Debug Bridge (adb) service
[Service]
Type=forking
ExecStart=/usr/bin/adb start-server
ExecStop=/usr/bin/adb kill-server
PrivateTmp=yes
Environment=HOME=/var/lib/adb
[Install]
WantedBy=multi-user.target

View file

@ -1,54 +1,76 @@
%global date 20170311
%global git_commit e7195be7725a
%global packdname core-%{git_commit}
%global extras_git_commit 61f6603
%global extras_packdname extras-%{extras_git_commit}
%global boring_git_commit 7d422bc
%global boring_packdname boringssl-%{boring_git_commit}
%global mdns_git_commit ca0cba5
%global mdns_packdname mdnsresponder-%{mdns_git_commit}
%global _hardened_build 1
Name: android-tools
Version: 35.0.2
Release: %autorelease
Epoch: 1
Version: %{date}git%{git_commit}
Release: 5%{?dist}
Summary: Android platform tools(adb, fastboot)
# The entire source code is ASL 2.0 except boringssl which is BSD
# Automatically converted from old format: ASL 2.0 and (ASL 2.0 and BSD) - review is highly recommended.
License: Apache-2.0 AND (Apache-2.0 AND LicenseRef-Callaway-BSD)
Group: Applications/System
# The entire source code is ASL 2.0 except fastboot/ which is BSD
License: ASL 2.0 and (ASL 2.0 and BSD)
URL: http://developer.android.com/guide/developing/tools/
# Sources with all needed patches and cmakelists live there now:
Source0: https://github.com/nmeum/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
# https://github.com/nmeum/android-tools/issues/153
Patch0: 0001-Fix-libusb-enumeration.patch
# https://github.com/nmeum/android-tools/pull/172
Patch1: 0002-extras-libjsonpb-Fix-incompatibility-with-protobuf-v30.patch
# https://github.com/nmeum/android-tools/pull/190
Patch2: 0003-Make-legacy-USB-driver-default-on-Linux.patch
# using git archive since upstream hasn't created tarballs.
# git archive --format=tar --prefix=%%{packdname}/ %%{git_commit} adb base fastboot libcrypto_utils libcutils liblog libsparse libutils libziparchive mkbootimg include | xz > %%{packdname}.tar.xz
# https://android.googlesource.com/platform/system/core.git
# git archive --format=tar --prefix=extras/ %%{extras_git_commit} ext4_utils f2fs_utils | xz > %%{extras_packdname}.tar.xz
# https://android.googlesource.com/platform/system/extras.git
# git archive --format=tar --prefix=boringssl/ %%{boring_git_commit} src/crypto include src/include | xz > %%{boring_packdname}.tar.xz
# https://android.googlesource.com/platform/external/boringssl
# git archive --format=tar --prefix=mdnsresponder/ %%{mdns_git_commit} mDNSShared | xz > %%{mdns_packdname}.tar.xz
# https://android.googlesource.com/platform/external/mdnsresponder
BuildRequires: brotli-devel
BuildRequires: cmake
BuildRequires: fmt-devel
BuildRequires: gcc
BuildRequires: gcc-c++
Source0: %{packdname}.tar.xz
Source1: %{extras_packdname}.tar.xz
Source2: generate_build.rb
Source3: %{boring_packdname}.tar.xz
Source4: %{mdns_packdname}.tar.xz
Source5: 51-android.rules
Source6: adb.service
Patch1: 0001-Add-string-h.patch
Patch2: 0002-libusb-modifications.patch
Patch3: 0003-atomic-fix.patch
Patch4: 0004-bz1441234.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1470740
Patch5: 0001-adb-don-t-reset-usb-when-connecting-it.patch
Patch6: 0001-adb-fix-two-device-offline-problems.patch
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: zlib-devel
BuildRequires: openssl-devel
BuildRequires: libselinux-devel
BuildRequires: f2fs-tools-devel
BuildRequires: gtest-devel
BuildRequires: golang
BuildRequires: golang(golang.org/x/crypto/chacha20)
BuildRequires: golang(golang.org/x/crypto/chacha20poly1305)
BuildRequires: golang(golang.org/x/crypto/curve25519)
BuildRequires: golang(golang.org/x/crypto/hkdf)
BuildRequires: golang(golang.org/x/crypto/xts)
BuildRequires: libusbx-devel
BuildRequires: libzstd-devel
BuildRequires: lz4-devel
BuildRequires: multilib-rpm-config
BuildRequires: pcre2-devel
BuildRequires: perl
BuildRequires: protobuf-devel
BuildRequires: systemd-rpm-macros
BuildRequires: systemd
BuildRequires: ruby rubypick rubygems
Provides: adb = %{epoch}:%{version}-%{release}
Provides: fastboot = %{epoch}:%{version}-%{release}
Provides: mke2fs.android = %{epoch}:%{version}-%{release}
# Bundled bits
Provides: bundled(boringssl)
Provides: adb
Provides: fastboot
# Bundled boringssl doesn't support the big endian architectures rhbz 1431379
# And dropped ppc64le support: https://github.com/google/boringssl/commit/7d2338d000eb1468a5bbf78e91854236e18fb9e4
ExcludeArch: ppc ppc64 s390x ppc64le
ExcludeArch: ppc ppc64 s390x
# Bundled bits
Provides: bundled(mdnsresponder)
# This is a fork of openssl.
Provides: bundled(boringssl)
%description
@ -71,46 +93,184 @@ to read and write the flash partitions. It needs the same USB device
setup between the host and the target phone as adb.
%prep
%autosetup -p1
%setup -q -b 1 -n extras
%setup -q -b 3 -n boringssl
%setup -q -b 4 -n mdnsresponder
%setup -q -b 0 -n %{packdname}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
cp -p %{SOURCE5} 51-android.rules
%build
export GO111MODULE=off
%cmake -DBUILD_SHARED_LIBS:BOOL=OFF
%cmake_build
ruby %{SOURCE2} | tee build.sh
PKGVER=%{git_commit} CXXFLAGS="%{optflags}" CFLAGS="%{optflags}" sh -xe build.sh
%install
%cmake_install
install -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir}
install -d -m 0775 ${RPM_BUILD_ROOT}%{_sharedstatedir}/adb
install -m 0755 -t ${RPM_BUILD_ROOT}%{_bindir} adb/adb fastboot/fastboot libsparse/simg2img libsparse/img2simg
install -p -D -m 0644 %{SOURCE6} \
%{buildroot}%{_unitdir}/adb.service
%post
%systemd_post adb.service
%preun
%systemd_preun adb.service
%postun
%systemd_postun_with_restart adb.service
%files
#ASL2.0 and BSD
%{_bindir}/adb
%doc adb/OVERVIEW.TXT adb/SERVICES.TXT adb/NOTICE adb/protocol.txt 51-android.rules
%{_unitdir}/adb.service
%attr(0755,root,root) %dir %{_sharedstatedir}/adb
#ASL2.0
%{_bindir}/avbtool
%{_bindir}/mke2fs.android
%{_bindir}/adb
%{_bindir}/simg2img
%{_bindir}/img2simg
#ASL2.0 and BSD.
%{_bindir}/fastboot
%{_bindir}/append2simg
%{_bindir}/e2fsdroid
%{_bindir}/ext2simg
%{_bindir}/lpadd
%{_bindir}/lpdump
%{_bindir}/lpflash
%{_bindir}/lpmake
%{_bindir}/lpunpack
%{_bindir}/make_f2fs
%{_bindir}/mkbootimg
%{_bindir}/mkdtboimg
%{_bindir}/repack_bootimg
%{_bindir}/sload_f2fs
%{_bindir}/unpack_bootimg
%{_datadir}/android-tools/completions/adb
%{_datadir}/android-tools/completions/fastboot
%{_datadir}/android-tools/mkbootimg/gki/generate_gki_certificate.py
%{_datadir}/android-tools/mkbootimg/mkbootimg.py
%{_datadir}/bash-completion/completions/adb
%{_datadir}/bash-completion/completions/fastboot
%{_mandir}/man1/adb.1.*
%changelog
%autochangelog
* Tue Feb 27 2018 Bastien Nocera <bnocera@redhat.com> - 20170311gite7195be7725a-5
- Fix USB resets when adb daemon is started (#1470740)
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Apr 25 2017 Jan Pokorný <jpokorny@fedoraproject.org> - 20170311gite7195be7725a-2
- Resolves: rhbz 1441234 Fix adb crash when generating a key (OpenSSL 1.1.0 API)
* Sat Mar 11 2017 Ivan Afonichev <ivan.afonichev@gmail.com> - 20170311gite7195be7725a-1
- Update to upstream git commit e7195be7725a
- Resolves: rhbz 1323632 1423219 Add optflags. Support new versions.
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20160327git3761365735de-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun May 08 2016 Bastien Nocera <hadess@hadess.net> - 20160327git3761365735de-2
- Add missing BuildRequires for Ruby script to run
- Compile and build img2simg and simg2img
* Mon Apr 4 2016 Ville Skyttä <ville.skytta@iki.fi> - 20160327git3761365735de-2
- Build with %%{optflags}
* Sun Mar 27 2016 Ivan Afonichev <ivan.afonichev@gmail.com> - 20160327git3761365735de-1
- Update to upstream git commit 3761365735de
* Sat Mar 26 2016 Ivan Afonichev <ivan.afonichev@gmail.com> - 20160321git922e151ba2d8-1
- Update to upstream git commit 922e151ba2d8
- Resolves: rhbz 1278769 1318099 Migrate to ruby generate_build. Support new versions
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20141219git8393e50-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20141219git8393e50-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed May 20 2015 Bastien Nocera <bnocera@redhat.com> 20141224git8393e50-3
- Remove Apple from the vendor to launch adb.service for
They never created an Android phone, and probably never will
* Sun Jan 11 2015 Ivan Afonichev <ivan.afonichev@gmail.com> - 20141224git8393e50-2
- Resolves: rhbz 1062095 Harden android-tools
- Remove 0002-Add-missing-headers.patch
* Wed Dec 24 2014 Jonathan Dieter <jdieter@lesbg.com> - 20141224git8393e50-1
- Update to 5.0.2 release
* Fri Sep 19 2014 Ivan Afonichev <ivan.afonichev@gmail.com> - 20130123git98d0789-5
- Added more udev devices
- Resolves: rhbz 967216 Adb service now stores keys in /var/lib/adb
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jan 28 2013 Ivan Afonichev <ivan.afonichev@gmail.com> - 20130123git98d0789-1
- Update to upstream git commit 98d0789
- Resolves: rhbz 903074 Move udev rule to docs as example
- Resolves: rhbz 879585 Introduce adb.service with PrivateTmp
* Tue Nov 20 2012 Ivan Afonichev <ivan.afonichev@gmail.com> - 20121120git3ddc005-1
- Update to upstream git commit 3ddc005
- Added more udev devices
- Added ext4_utils from extras for fastboot
- Updated makefiles
- Resolves: rhbz 869624 start adb server by udev
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120510gitd98c87c-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu May 10 2012 Ivan Afonichev <ivan.afonichev@gmail.com> - 20120510gitd98c87c-1
- Update to upstream git commit d98c87c
- Added more udev devices
- Resolves: rhbz 819292 secure udev permissions
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20111220git1b251bd-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 20 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111220git1b251bd-1
- Update to upstream git commit 1b251bd
* Wed Nov 23 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-3
- Fix license
- More specific URL
* Tue Nov 22 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-2
- Require udev
* Sun Nov 20 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-1
- Versioning changes
- Use only needed sources
- Udev rules moved to lib
- More license info added
- adb and fastboot moved to provides from summary
* Tue Nov 15 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111115.4a25390-1
- Change upstream git repo URL
- Update to upstream git commit 4a25390
- Added more udev devices
* Mon Oct 17 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-3
- Update udev rules (s/SYSFS/ATTR/g)
* Sat Aug 27 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-2
- Remove the rm in the install section
- Remove defattr
- Use install command(not macro)
- Add description of fastboot
* Tue Aug 16 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-1
- Update to upstream git commit 80d508f
- Added more udev devices
* Sun Jul 31 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110731.810cf41-1
- Update to upstream git commit 810cf41
- Fix License
- Use optflags
- Added more udev devices
- Remove Epoch
* Tue Jul 26 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 0:20110726.212282c-1
- Update to upstream git commit 212282c
* Wed May 18 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 0:20110516.327b2b7-1
- Initial spec
- Initial makefiles
- Initial udev rule

214
changelog
View file

@ -1,214 +0,0 @@
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:31.0.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jul 19 2022 Maxwell G <gotmax@e.email> - 1:31.0.2-6
- Rebuild for CVE-2022-{1705,32148,30631,30633,28131,30635,30632,30630,1962} in
golang
* Fri Jun 17 2022 Robert-André Mauchin <zebob.m@gmail.com> - 1:31.0.2-5
- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191,
CVE-2022-29526, CVE-2022-30629
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:31.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Nov 06 2021 Adrian Reber <adrian@lisas.de> - 1:31.0.2-3
- Rebuilt for protobuf 3.19.0
* Sun Oct 24 2021 Adrian Reber <adrian@lisas.de> - 1:31.0.2-2
- Rebuilt for protobuf 3.18.1
* Mon Aug 2 2021 Ivan Afonichev <ivan.afonichev@gmail.com> - 1:31.0.2-1
- GCC 11 compatibility
- Add bash complitions
- Specify golang build dependencies
- Resolves: rhbz 1923681 1987363 1674645
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:30.0.5p1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sun Mar 14 2021 Ivan Afonichev <ivan.afonichev@gmail.com> - 1:30.0.5p1-1
- Switch to linux-friendly upstream
- Use Android SDK versions for versioning(Epoch 1 introduced)
- Resolves: rhbz 1937578 1873878 1923681 1776001
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 20180828gitc7815d675-11
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20180828gitc7815d675-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Nov 6 2020 Ivan Afonichev <ivan.afonichev@gmail.com> - 20180828gitc7815d675-9
- Fix plugdev udev rule
- Resolves: rhbz 1779855
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20180828gitc7815d675-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 20 2020 Jeff Law <law@redhat.com> - 20180828gitc7815d675-7
- Move LTO disablement so that it impacts the optflags override too
* Sat Jul 11 2020 Jeff Law <law@redhat.com> - 20180828gitc7815d675-6
- Disable LTO
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20180828gitc7815d675-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180828gitc7815d675-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon May 27 2019 Peter Robinson <pbrobinson@fedoraproject.org> 20180828gitc7815d675-3
- Fix FTBFS, minor cleanups
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180828gitc7815d675-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Aug 29 2018 Ivan Afonichev <ivan.afonichev@gmail.com> - 20180828gitc7815d675-1
- Update to upstream git commit c7815d675
- Resolves: rhbz 1535542 1550703 1603379 Switch to clang and ninja
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Feb 27 2018 Bastien Nocera <bnocera@redhat.com> - 20170311gite7195be7725a-7
- Fix USB resets when adb daemon is started (#1470740)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Oct 26 2017 Vít Ondruch <vondruch@redhat.com> - 20170311gite7195be7725a-5
- Drop the explicit dependnecy on rubypick.
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170311gite7195be7725a-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Apr 25 2017 Jan Pokorný <jpokorny@fedoraproject.org> - 20170311gite7195be7725a-2
- Resolves: rhbz 1441234 Fix adb crash when generating a key (OpenSSL 1.1.0 API)
* Sat Mar 11 2017 Ivan Afonichev <ivan.afonichev@gmail.com> - 20170311gite7195be7725a-1
- Update to upstream git commit e7195be7725a
- Resolves: rhbz 1323632 1423219 Add optflags. Support new versions.
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20160327git3761365735de-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun May 08 2016 Bastien Nocera <hadess@hadess.net> - 20160327git3761365735de-2
- Add missing BuildRequires for Ruby script to run
- Compile and build img2simg and simg2img
* Mon Apr 4 2016 Ville Skyttä <ville.skytta@iki.fi> - 20160327git3761365735de-2
- Build with %%{optflags}
* Sun Mar 27 2016 Ivan Afonichev <ivan.afonichev@gmail.com> - 20160327git3761365735de-1
- Update to upstream git commit 3761365735de
* Sat Mar 26 2016 Ivan Afonichev <ivan.afonichev@gmail.com> - 20160321git922e151ba2d8-1
- Update to upstream git commit 922e151ba2d8
- Resolves: rhbz 1278769 1318099 Migrate to ruby generate_build. Support new versions
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20141219git8393e50-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20141219git8393e50-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed May 20 2015 Bastien Nocera <bnocera@redhat.com> 20141224git8393e50-3
- Remove Apple from the vendor to launch adb.service for
They never created an Android phone, and probably never will
* Sun Jan 11 2015 Ivan Afonichev <ivan.afonichev@gmail.com> - 20141224git8393e50-2
- Resolves: rhbz 1062095 Harden android-tools
- Remove 0002-Add-missing-headers.patch
* Wed Dec 24 2014 Jonathan Dieter <jdieter@lesbg.com> - 20141224git8393e50-1
- Update to 5.0.2 release
* Fri Sep 19 2014 Ivan Afonichev <ivan.afonichev@gmail.com> - 20130123git98d0789-5
- Added more udev devices
- Resolves: rhbz 967216 Adb service now stores keys in /var/lib/adb
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130123git98d0789-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Jan 28 2013 Ivan Afonichev <ivan.afonichev@gmail.com> - 20130123git98d0789-1
- Update to upstream git commit 98d0789
- Resolves: rhbz 903074 Move udev rule to docs as example
- Resolves: rhbz 879585 Introduce adb.service with PrivateTmp
* Tue Nov 20 2012 Ivan Afonichev <ivan.afonichev@gmail.com> - 20121120git3ddc005-1
- Update to upstream git commit 3ddc005
- Added more udev devices
- Added ext4_utils from extras for fastboot
- Updated makefiles
- Resolves: rhbz 869624 start adb server by udev
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120510gitd98c87c-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu May 10 2012 Ivan Afonichev <ivan.afonichev@gmail.com> - 20120510gitd98c87c-1
- Update to upstream git commit d98c87c
- Added more udev devices
- Resolves: rhbz 819292 secure udev permissions
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20111220git1b251bd-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 20 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111220git1b251bd-1
- Update to upstream git commit 1b251bd
* Wed Nov 23 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-3
- Fix license
- More specific URL
* Tue Nov 22 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-2
- Require udev
* Sun Nov 20 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111120git4a25390-1
- Versioning changes
- Use only needed sources
- Udev rules moved to lib
- More license info added
- adb and fastboot moved to provides from summary
* Tue Nov 15 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20111115.4a25390-1
- Change upstream git repo URL
- Update to upstream git commit 4a25390
- Added more udev devices
* Mon Oct 17 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-3
- Update udev rules (s/SYSFS/ATTR/g)
* Sat Aug 27 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-2
- Remove the rm in the install section
- Remove defattr
- Use install command(not macro)
- Add description of fastboot
* Tue Aug 16 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110816.80d508f-1
- Update to upstream git commit 80d508f
- Added more udev devices
* Sun Jul 31 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 20110731.810cf41-1
- Update to upstream git commit 810cf41
- Fix License
- Use optflags
- Added more udev devices
- Remove Epoch
* Tue Jul 26 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 0:20110726.212282c-1
- Update to upstream git commit 212282c
* Wed May 18 2011 Ivan Afonichev <ivan.afonichev@gmail.com> - 0:20110516.327b2b7-1
- Initial spec
- Initial makefiles
- Initial udev rule

209
generate_build.rb Normal file
View file

@ -0,0 +1,209 @@
#!/usr/bin/ruby
# Android build system is complicated and does not allow to build
# separate parts easily.
# This script tries to mimic Android build rules.
def expand(dir, files)
files.map{|f| File.join(dir,f)}
end
# Compiles sources to *.o files.
# Returns array of output *.o filenames
def compile(sources, cflags)
outputs = []
for s in sources
ext = File.extname(s)
case ext
when '.c'
cc = 'gcc'
lang_flags = '-std=gnu11 $CFLAGS $CPPFLAGS'
when '.cpp', '.cc'
cc = 'g++'
lang_flags = '-std=gnu++14 $CXXFLAGS $CPPFLAGS'
else
raise "Unknown extension #{ext}"
end
output = s + '.o'
outputs << output
puts "#{cc} -o #{output} #{lang_flags} #{cflags} -c #{s}\n"
end
return outputs
end
# Links object files
def link(output, objects, ldflags)
puts "g++ -o #{output} #{ldflags} $LDFLAGS #{objects.join(' ')}"
end
adbdfiles = %w(
client/usb_dispatch.cpp
client/usb_libusb.cpp
client/usb_linux.cpp
adb.cpp
adb_io.cpp
socket_spec.cpp
adb_listeners.cpp
adb_utils.cpp
sockets.cpp
transport.cpp
transport_local.cpp
transport_usb.cpp
services.cpp
adb_trace.cpp
diagnose_usb.cpp
adb_auth_host.cpp
sysdeps_unix.cpp
)
libadbd = compile(expand('adb', adbdfiles), '-DADB_REVISION=\"$PKGVER\" -DADB_HOST=1 -fpermissive -I../boringssl/include -Iadb -Iinclude -Ibase/include -Ilibcrypto_utils/include')
adbshfiles = %w(
fdevent.cpp
shell_service.cpp
shell_service_protocol.cpp
)
libadbsh = compile(expand('adb', adbshfiles), '-DADB_REVISION=\"$PKGVER\" -DADB_HOST=0 -D_Nonnull= -D_Nullable= -fpermissive -Iadb -Iinclude -Ibase/include')
adbfiles = %w(
console.cpp
bugreport.cpp
commandline.cpp
adb_client.cpp
sysdeps/errno.cpp
file_sync_client.cpp
line_printer.cpp
transport_mdns.cpp
client/main.cpp
)
libadb = compile(expand('adb', adbfiles), '-DADB_REVISION=\"$PKGVER\" -D_GNU_SOURCE -DADB_HOST=1 -D_Nonnull= -D_Nullable= -fpermissive -Iadb -I../mdnsresponder/mDNSShared -Iinclude -Ibase/include')
basefiles = %w(
file.cpp
logging.cpp
parsenetaddress.cpp
stringprintf.cpp
strings.cpp
errors_unix.cpp
)
libbase = compile(expand('base', basefiles), '-DADB_HOST=1 -D_GNU_SOURCE -Ibase/include -Iinclude')
logfiles = %w(
logger_write.c
local_logger.c
config_read.c
logprint.c
stderr_write.c
config_write.c
logger_lock.c
logger_name.c
log_event_list.c
log_event_write.c
fake_log_device.c
fake_writer.c
)
liblog = compile(expand('liblog', logfiles), '-DLIBLOG_LOG_TAG=1005 -DFAKE_LOG_DEVICE=1 -D_GNU_SOURCE -Ilog/include -Iinclude')
cutilsfiles = %w(
load_file.c
socket_inaddr_any_server_unix.c
socket_local_client_unix.c
socket_local_server_unix.c
socket_loopback_server_unix.c
socket_network_client_unix.c
threads.c
sockets.cpp
android_get_control_file.cpp
sockets_unix.cpp
)
libcutils = compile(expand('libcutils', cutilsfiles), '-D_GNU_SOURCE -Iinclude')
cryptofiles = %w(
android_pubkey.c
)
libcryptoutils = compile(expand('libcrypto_utils', cryptofiles), '-Ilibcrypto_utils/include -I../boringssl/include -Iinclude')
boringcryptofiles = %w(
bn/cmp.c
bn/bn.c
bytestring/cbb.c
mem.c
buf/buf.c
bio/file.c
bn/convert.c
base64/base64.c
)
boringcrypto = compile(expand('../boringssl/src/crypto', boringcryptofiles), '-I../boringssl/include -Iinclude')
mdnsfiles = %w(
mDNSShared/dnssd_ipc.c
mDNSShared/dnssd_clientstub.c
)
mdns = compile(expand('../mdnsresponder', mdnsfiles), '-D_GNU_SOURCE -DHAVE_IPV6 -DHAVE_LINUX -DNOT_HAVE_SA_LEN -DUSES_NETLINK -UMDNS_DEBUGMSGS -DMDNS_DEBUGMSGS=0 -I../mdnsresponder/mDNSShared -I../mdnsresponder/mDNSCore -Iinclude')
link('adb/adb', libbase + liblog + libcutils + boringcrypto + libcryptoutils + libadbd + libadbsh + mdns + libadb, '-lrt -ldl -lpthread -lcrypto -lutil -lusb-1.0')
fastbootfiles = %w(
socket.cpp
tcp.cpp
udp.cpp
protocol.cpp
engine.cpp
bootimg_utils.cpp
fastboot.cpp
util.cpp
fs.cpp
usb_linux.cpp
)
libfastboot = compile(expand('fastboot', fastbootfiles), '-DFASTBOOT_REVISION=\"$PKGVER\" -D_GNU_SOURCE -Iadb -Iinclude -Imkbootimg -Ibase/include -Ilibsparse/include -I../extras/ext4_utils/include -I../extras/f2fs_utils')
sparsefiles = %w(
backed_block.c
output_file.c
sparse.c
sparse_crc32.c
sparse_err.c
sparse_read.c
)
libsparse = compile(expand('libsparse', sparsefiles), '-Ilibsparse/include')
zipfiles = %w(
zip_archive.cc
)
libzip = compile(expand('libziparchive', zipfiles), '-Ibase/include -Iinclude')
utilfiles = %w(
FileMap.cpp
)
libutil = compile(expand('libutils', utilfiles), '-Iinclude')
ext4files = %w(
make_ext4fs.c
ext4fixup.c
ext4_utils.c
allocate.c
contents.c
extent.c
indirect.c
sha1.c
wipe.c
crc16.c
ext4_sb.c
)
libext4 = compile(expand('../extras/ext4_utils', ext4files), '-Ilibsparse/include -Iinclude -I../extras/ext4_utils/include')
link('fastboot/fastboot', libsparse + libzip + liblog + libutil + libcutils + boringcrypto + libcryptoutils + libbase + libext4 + libfastboot + libadbsh + libadbd, '-lpthread -lselinux -lz -lcrypto -lutil -lusb-1.0')
simg2imgfiles = %w(
simg2img.c
)
libsimg2img = compile(expand('libsparse', simg2imgfiles), '-Iinclude -Ilibsparse/include')
link('libsparse/simg2img', libsparse + libsimg2img, '-lz')
img2simgfiles = %w(
img2simg.c
)
libimg2simg = compile(expand('libsparse', img2simgfiles), '-Iinclude -Ilibsparse/include')
link('libsparse/img2simg', libsparse + libimg2simg, '-lz')

View file

@ -1 +1,4 @@
SHA512 (android-tools-35.0.2.tar.xz) = 391ce4d638b274d7bbae24a3df8de8b5812a982570f29b2aef37d12a3ba7ed6f66b5c0b7f908759e0b0da30d152b5319af0fef16c54bdc3b9f4074fb22f80d10
SHA512 (core-e7195be7725a.tar.xz) = 817cdee3cb71721757c53c07b958e3c308566d3c5c21bf4e013c33445c11ea49c9acab8e0b02d949d2fb4eede41e50d2faacdaadfc59e551a85a5b93a96d6ca1
SHA512 (extras-61f6603.tar.xz) = 464afcd4186b3e7d0dd8117a44878cace0b0df077ae452b5b244cf8c44456b5f4299241a8c962dc4ee7f0da291c388ea58e83d0137fbbc60a52fd22350ad58f3
SHA512 (boringssl-7d422bc.tar.xz) = a06009933408045a3fc7064460d5ddc15c5f5958327cf044a0d1f00729193f373e2190f3c07937d1a3edf8e6c85374fb8ade81b952c6608e67b0590c3538ddd5
SHA512 (mdnsresponder-ca0cba5.tar.xz) = 2139e26ab19c845a636818090d2f6282685a87f9a1b16e51384474480bd1b038de5fab4ea415b6276efb64402832ae46be14030931b100684e9952d6efc1ab9b