diff options
Diffstat (limited to 'services/incremental/BinderIncrementalService.cpp')
-rw-r--r-- | services/incremental/BinderIncrementalService.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/services/incremental/BinderIncrementalService.cpp b/services/incremental/BinderIncrementalService.cpp index 91d05723a605..b2c316a25e7f 100644 --- a/services/incremental/BinderIncrementalService.cpp +++ b/services/incremental/BinderIncrementalService.cpp @@ -16,7 +16,9 @@ #include "BinderIncrementalService.h" +#include <android-base/logging.h> #include <binder/IResultReceiver.h> +#include <binder/PermissionCache.h> #include <incfs.h> #include "ServiceWrappers.h" @@ -90,8 +92,13 @@ BinderIncrementalService* BinderIncrementalService::start() { return self.get(); } -status_t BinderIncrementalService::dump(int fd, const Vector<String16>& args) { - return OK; +status_t BinderIncrementalService::dump(int fd, const Vector<String16>&) { + static const String16 kDump("android.permission.DUMP"); + if (!PermissionCache::checkCallingPermission(kDump)) { + return PERMISSION_DENIED; + } + mImpl.onDump(fd); + return NO_ERROR; } void BinderIncrementalService::onSystemReady() { @@ -270,6 +277,13 @@ binder::Status BinderIncrementalService::startLoading(int32_t storageId, bool* _ return ok(); } +binder::Status BinderIncrementalService::configureNativeBinaries( + int32_t storageId, const std::string& apkFullPath, const std::string& libDirRelativePath, + const std::string& abi, bool* _aidl_return) { + *_aidl_return = mImpl.configureNativeBinaries(storageId, apkFullPath, libDirRelativePath, abi); + return ok(); +} + } // namespace android::os::incremental jlong Incremental_IncrementalService_Start() { @@ -280,3 +294,10 @@ void Incremental_IncrementalService_OnSystemReady(jlong self) { ((android::os::incremental::BinderIncrementalService*)self)->onSystemReady(); } } +void Incremental_IncrementalService_OnDump(jlong self, jint fd) { + if (self) { + ((android::os::incremental::BinderIncrementalService*)self)->dump(fd, {}); + } else { + dprintf(fd, "BinderIncrementalService is stopped."); + } +} |