Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59a4246c authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by Automerger Merge Worker
Browse files

Merge "Forward dumps from PermissionControllerManager to permissionmgr" into rvc-dev am: f7d1f1a4

Change-Id: I412dddc3645d1109fdc91419f41bee06b9ec2060
parents 943b0dc1 f7d1f1a4
Loading
Loading
Loading
Loading
+37 −0
Original line number Original line Diff line number Diff line
@@ -56,10 +56,15 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.infra.AndroidFuture;
import com.android.internal.infra.AndroidFuture;
import com.android.internal.infra.RemoteStream;
import com.android.internal.infra.RemoteStream;
import com.android.internal.infra.ServiceConnector;
import com.android.internal.infra.ServiceConnector;
import com.android.internal.os.TransferPipe;
import com.android.internal.util.CollectionUtils;
import com.android.internal.util.CollectionUtils;


import libcore.util.EmptyArray;
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.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.ArrayList;
@@ -67,7 +72,9 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Collections;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import java.util.function.Consumer;


/**
/**
@@ -475,6 +482,36 @@ public final class PermissionControllerManager {
        }, executor);
        }, executor);
    }
    }


    /**
     * Dump permission controller state.
     *
     * @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);
                        });

        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);
        }
    }

    /**
    /**
     * Gets the runtime permissions for an app.
     * Gets the runtime permissions for an app.
     *
     *
+7 −0
Original line number Original line Diff line number Diff line
@@ -50,9 +50,11 @@ import com.android.internal.infra.AndroidFuture;
import com.android.internal.util.CollectionUtils;
import com.android.internal.util.CollectionUtils;
import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;


import java.io.FileDescriptor;
import java.io.IOException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Arrays;
import java.util.List;
import java.util.List;
@@ -494,6 +496,11 @@ public abstract class PermissionControllerService extends Service {
                        "packageName cannot be null");
                        "packageName cannot be null");
                onOneTimePermissionSessionTimeout(packageName);
                onOneTimePermissionSessionTimeout(packageName);
            }
            }

            @Override
            protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
                PermissionControllerService.this.dump(fd, writer, args);
            }
        };
        };
    }
    }
}
}
+7 −0
Original line number Original line Diff line number Diff line
@@ -149,6 +149,8 @@ import com.android.server.policy.SoftRestrictedPermissionPolicy;


import libcore.util.EmptyArray;
import libcore.util.EmptyArray;


import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.ArrayList;
@@ -417,6 +419,11 @@ public class PermissionManagerService extends IPermissionManager.Stub {
        LocalServices.addService(PermissionManagerInternal.class, localService);
        LocalServices.addService(PermissionManagerInternal.class, localService);
    }
    }


    @Override
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        mContext.getSystemService(PermissionControllerManager.class).dump(fd, pw, args);
    }

    /**
    /**
     * Creates and returns an initialized, internal service for use by other components.
     * Creates and returns an initialized, internal service for use by other components.
     * <p>
     * <p>