diff options
| author | Eugene Susla <eugenesusla@google.com> | 2020-05-12 00:56:44 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-12 00:56:44 +0000 |
| commit | ee924b06eb316ef71ab8fd3e60afd08a50e8aa13 (patch) | |
| tree | ecb64c95f3caf01d5abe0539bdc070f3b04d55e0 /core/java/android | |
| parent | 0f067435096ff070660fcfffc1b401867db99d8b (diff) | |
| parent | 3cb0fb2e0718f31d59d0b9daa71cc2f5f2076403 (diff) | |
Merge "No need for copying dump state for PC" into rvc-dev am: 0728a4fe50 am: 3cb0fb2e07
Change-Id: I7060199537a8c6f4b702669bfd107693a65d04c8
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/permission/PermissionControllerManager.java | 37 | ||||
| -rw-r--r-- | core/java/android/permission/PermissionControllerService.java | 5 |
2 files changed, 16 insertions, 26 deletions
diff --git a/core/java/android/permission/PermissionControllerManager.java b/core/java/android/permission/PermissionControllerManager.java index 06caa03e3cb4..dea932dd6178 100644 --- a/core/java/android/permission/PermissionControllerManager.java +++ b/core/java/android/permission/PermissionControllerManager.java @@ -56,15 +56,11 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.infra.AndroidFuture; import com.android.internal.infra.RemoteStream; import com.android.internal.infra.ServiceConnector; -import com.android.internal.os.TransferPipe; import com.android.internal.util.CollectionUtils; import libcore.util.EmptyArray; import java.io.FileDescriptor; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -72,7 +68,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -88,6 +83,7 @@ import java.util.function.Consumer; public final class PermissionControllerManager { private static final String TAG = PermissionControllerManager.class.getSimpleName(); + private static final long REQUEST_TIMEOUT_MILLIS = 60000; private static final long UNBIND_TIMEOUT_MILLIS = 10000; private static final int CHUNK_SIZE = 4 * 1024; @@ -227,6 +223,11 @@ public final class PermissionControllerManager { } @Override + protected long getRequestTimeoutMs() { + return REQUEST_TIMEOUT_MILLIS; + } + + @Override protected long getAutoDisconnectTimeoutMs() { return UNBIND_TIMEOUT_MILLIS; } @@ -487,28 +488,12 @@ public final class PermissionControllerManager { * * @hide */ - public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @Nullable String[] args) { - CompletableFuture<Throwable> dumpResult = new CompletableFuture<>(); - mRemoteService.postForResult( - service -> TransferPipe.dumpAsync(service.asBinder(), args)) - .whenComplete( - (dump, err) -> { - try (FileOutputStream out = new FileOutputStream(fd)) { - out.write(dump); - } catch (IOException | NullPointerException e) { - Log.e(TAG, "Could for forwards permission controller dump", e); - } - - dumpResult.complete(err); - }); - + public void dump(@NonNull FileDescriptor fd, @Nullable String[] args) { try { - Throwable err = dumpResult.get(UNBIND_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - if (err != null) { - throw err; - } - } catch (Throwable e) { - Log.e(TAG, "Could not dump permission controller state", e); + mRemoteService.post(service -> service.asBinder().dump(fd, args)) + .get(REQUEST_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); + } catch (Exception e) { + Log.e(TAG, "Could not get dump", e); } } diff --git a/core/java/android/permission/PermissionControllerService.java b/core/java/android/permission/PermissionControllerService.java index c6ede32d0864..8ad35e7eb37d 100644 --- a/core/java/android/permission/PermissionControllerService.java +++ b/core/java/android/permission/PermissionControllerService.java @@ -499,6 +499,11 @@ public abstract class PermissionControllerService extends Service { @Override protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) { + checkNotNull(fd, "fd"); + checkNotNull(writer, "writer"); + + enforceSomePermissionsGrantedToCaller(Manifest.permission.GET_RUNTIME_PERMISSIONS); + PermissionControllerService.this.dump(fd, writer, args); } }; |
