Revert "Squashed import of adb root patches"
This reverts commit 124a88288f50cdb0802c6747510d7c0a11a34306.
Change-Id: Ie4974e0de4af2f7566378da8e0a6d0e5c635e4f8
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
diff --git a/Android.bp b/Android.bp
index 0a808e9..c44423f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -615,26 +615,18 @@
"daemon/restart_service.cpp",
],
shared_libs: [
- "libbinder_ndk",
"libmdnssd",
"libselinux",
],
- static_libs: [
- "adbroot_aidl_interface-ndk",
- ],
},
recovery: {
exclude_srcs: [
"daemon/abb_service.cpp",
],
exclude_shared_libs: [
- "libbinder_ndk",
"libadb_pairing_auth",
"libadb_pairing_connection",
],
- exclude_static_libs: [
- "adbroot_aidl_interface-ndk",
- ],
},
},
@@ -744,25 +736,10 @@
],
target: {
- android: {
- shared_libs: [
- "libbinder_ndk",
- ],
-
- static_libs: [
- "adbroot_aidl_interface-ndk",
- ],
- },
-
recovery: {
exclude_shared_libs: [
"libadb_pairing_auth",
"libadb_pairing_connection",
- "libbinder_ndk",
- ],
-
- exclude_static_libs: [
- "adbroot_aidl_interface-ndk",
],
}
},
@@ -790,27 +767,6 @@
}
cc_binary {
- name: "adb_root",
- srcs: [
- "root/adbroot_service.cpp",
- "root/main.cpp",
- ],
- init_rc: [
- "root/adb_root.rc",
- ],
- shared_libs: [
- "libbase",
- "libbinder_ndk",
- "liblog",
- "libutils",
- ],
- static_libs: [
- "adbroot_aidl_interface-ndk",
- ],
- system_ext_specific: true,
-}
-
-cc_binary {
name: "abb",
defaults: ["adbd_defaults"],
@@ -1029,34 +985,3 @@
"fastdeploy/testdata/sample.cd",
],
}
-
-aidl_interface {
- name: "adbroot_aidl_interface",
- unstable: true,
- local_include_dir: "aidl",
- srcs: [
- "aidl/android/adbroot/IADBRootService.aidl",
- ],
- backend: {
- cpp: {
- enabled: false,
- },
- java: {
- enabled: false,
- },
- ndk: {
- apex_available: [
- "//apex_available:platform",
- "com.android.adbd",
- ],
- min_sdk_version: "30",
- },
- },
-}
-
-filegroup {
- name: "adbrootservice_aidl",
- srcs: [
- "aidl/android/adbroot/IADBRootService.aidl",
- ],
-}
diff --git a/aidl/android/adbroot/IADBRootService.aidl b/aidl/android/adbroot/IADBRootService.aidl
deleted file mode 100644
index 1a07efb..0000000
--- a/aidl/android/adbroot/IADBRootService.aidl
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * 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.
- */
-package android.adbroot;
-
-/** {@hide} */
-interface IADBRootService {
- boolean isSupported();
- void setEnabled(boolean enabled);
- boolean getEnabled();
-}
diff --git a/daemon/restart_service.cpp b/daemon/restart_service.cpp
index c942c1f..16d2627 100644
--- a/daemon/restart_service.cpp
+++ b/daemon/restart_service.cpp
@@ -16,11 +16,6 @@
#define TRACE_TAG SERVICES
-#if defined(__ANDROID__) && !defined(__ANDROID_RECOVERY__)
-#include <aidl/android/adbroot/IADBRootService.h>
-#include <android/binder_manager.h>
-#endif
-
#include "sysdeps.h"
#include <unistd.h>
@@ -38,33 +33,10 @@
WriteFdExactly(fd.get(), "adbd is already running as root\n");
return;
}
-
-#if defined(__ANDROID__) && !defined(__ANDROID_RECOVERY__)
- ndk::SpAIBinder binder = ndk::SpAIBinder(AServiceManager_getService("adbroot_service"));
- std::shared_ptr<aidl::android::adbroot::IADBRootService> service =
- aidl::android::adbroot::IADBRootService::fromBinder(binder);
- if (!service) {
- LOG(ERROR) << "Failed to get adbroot_service interface";
- return;
- }
-#endif
-
-#if defined(__ANDROID__) && !defined(__ANDROID_RECOVERY__)
- bool enabled = false;
- if (auto status = service->getEnabled(&enabled); !status.isOk()) {
-#endif
if (!__android_log_is_debuggable()) {
WriteFdExactly(fd.get(), "adbd cannot run as root in production builds\n");
return;
}
-#if defined(__ANDROID__) && !defined(__ANDROID_RECOVERY__)
- }
- if (!enabled) {
- WriteFdExactly(fd, "ADB Root access is disabled by system setting - "
- "enable in Settings -> System -> Developer options\n");
- return;
- }
-#endif
LOG(INFO) << "adbd restarting as root";
android::base::SetProperty("service.adb.root", "1");
diff --git a/root/adb_root.rc b/root/adb_root.rc
deleted file mode 100644
index 8c65c0b..0000000
--- a/root/adb_root.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-service adb_root /system_ext/bin/adb_root
- class main
- user root
- group root
-
-on post-fs-data
- mkdir /data/adbroot 0700 root root
diff --git a/root/adbroot_service.cpp b/root/adbroot_service.cpp
deleted file mode 100644
index 710a521..0000000
--- a/root/adbroot_service.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * 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.
- */
-
-#include <android/binder_manager.h>
-#include <android-base/file.h>
-#include <android-base/logging.h>
-#include <android-base/properties.h>
-#include <android-base/strings.h>
-#include <private/android_filesystem_config.h>
-
-#include "adbroot_service.h"
-
-namespace {
-const std::string kStoragePath = "/data/adbroot/";
-const std::string kEnabled = "enabled";
-
-static ndk::ScopedAStatus SecurityException(const std::string& msg) {
- LOG(ERROR) << msg;
- return ndk::ScopedAStatus(AStatus_fromExceptionCodeWithMessage(EX_SECURITY, msg.c_str()));
-}
-} // anonymous namespace
-
-namespace aidl {
-namespace android {
-namespace adbroot {
-
-using ::android::AutoMutex;
-using ::android::base::ReadFileToString;
-using ::android::base::SetProperty;
-using ::android::base::Trim;
-using ::android::base::WriteStringToFile;
-
-ADBRootService::ADBRootService() : enabled_(false) {
- std::string buf;
- if (ReadFileToString(kStoragePath + kEnabled, &buf)) {
- enabled_ = Trim(buf) == "1";
- }
-}
-
-void ADBRootService::Register() {
- auto service = ndk::SharedRefBase::make<ADBRootService>();
- binder_status_t status = AServiceManager_addService(
- service->asBinder().get(), getServiceName());
-
- if (status != STATUS_OK) {
- LOG(FATAL) << "Could not register adbroot service: " << status;
- }
-}
-
-ndk::ScopedAStatus ADBRootService::isSupported(bool* _aidl_return) {
- uid_t uid = AIBinder_getCallingUid();
- if (uid != AID_SYSTEM && uid != AID_SHELL) {
- return SecurityException("Caller must be system or shell");
- }
-
- AutoMutex _l(lock_);
- *_aidl_return = __android_log_is_debuggable();
- return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus ADBRootService::setEnabled(bool enabled) {
- uid_t uid = AIBinder_getCallingUid();
- if (uid != AID_SYSTEM) {
- return SecurityException("Caller must be system");
- }
-
- AutoMutex _l(lock_);
-
- if (enabled_ != enabled) {
- enabled_ = enabled;
- WriteStringToFile(std::to_string(enabled), kStoragePath + kEnabled);
-
- // Turning off adb root, restart adbd.
- if (!enabled) {
- SetProperty("service.adb.root", "0");
- SetProperty("ctl.restart", "adbd");
- }
- }
-
- return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus ADBRootService::getEnabled(bool* _aidl_return) {
- uid_t uid = AIBinder_getCallingUid();
- if (uid != AID_SYSTEM && uid != AID_SHELL) {
- return SecurityException("Caller must be system or shell");
- }
-
- AutoMutex _l(lock_);
- *_aidl_return = enabled_;
- return ndk::ScopedAStatus::ok();
-}
-
-} // namespace adbroot
-} // namespace android
-} // namespace aidl
diff --git a/root/adbroot_service.h b/root/adbroot_service.h
deleted file mode 100644
index 9881542..0000000
--- a/root/adbroot_service.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * 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.
- */
-
-#pragma once
-
-#include <aidl/android/adbroot/BnADBRootService.h>
-#include <android/binder_status.h>
-#include <log/log_properties.h>
-#include <utils/Mutex.h>
-
-namespace aidl {
-namespace android {
-namespace adbroot {
-
-using ::android::Mutex;
-
-class ADBRootService : public BnADBRootService {
- public:
- ADBRootService();
-
- static void Register();
-
- ndk::ScopedAStatus isSupported(bool* _aidl_return) override;
- ndk::ScopedAStatus setEnabled(bool enabled) override;
- ndk::ScopedAStatus getEnabled(bool* _aidl_return) override;
-
- static char const* getServiceName() { return "adbroot_service"; }
- private:
- bool enabled_;
- Mutex lock_;
-};
-
-} // namespace adbroot
-} // namespace android
-} // namespace aidl
diff --git a/root/main.cpp b/root/main.cpp
deleted file mode 100644
index 7de0945..0000000
--- a/root/main.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Copyright (C) 2019 The Android Open Source Project
-//
-// 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.
-//
-
-#include <android/binder_process.h>
-#include <android-base/logging.h>
-
-#include "adbroot_service.h"
-
-int main(int /* argc */, char** argv) {
- android::base::InitLogging(argv, android::base::LogdLogger(android::base::SYSTEM));
-
- aidl::android::adbroot::ADBRootService::Register();
-
- ABinderProcess_startThreadPool();
- ABinderProcess_joinThreadPool();
-
- return 0;
-}