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

Commit c10a4773 authored by Andy McFadden's avatar Andy McFadden
Browse files

Set capabilities sooner.

(cherry-pick from gingerbread I4e34b60c0a01b85ce0d80eb96ff3510604a68c71)

Bug 3176774

Change-Id: I34d36b5b215ff0465f4f2f148c675f37ceba1a78
parent 05cc2d63
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -680,19 +680,6 @@ class ZygoteConnection {
            FileDescriptor[] descriptors, PrintStream newStderr)
            throws ZygoteInit.MethodAndArgsCaller {

        /*
         * First, set the capabilities if necessary
         */

        if (parsedArgs.uid != 0) {
            try {
                ZygoteInit.setCapabilities(parsedArgs.permittedCapabilities,
                        parsedArgs.effectiveCapabilities);
            } catch (IOException ex) {
                Log.e(TAG, "Error setting capabilities", ex);
            }
        }

        /*
         * Close the socket, unless we're in "peer wait" mode, in which
         * case it's used to track the liveness of this process.
+3 −13
Original line number Diff line number Diff line
@@ -508,18 +508,6 @@ public class ZygoteInit {
    private static void handleSystemServerProcess(
            ZygoteConnection.Arguments parsedArgs)
            throws ZygoteInit.MethodAndArgsCaller {
        /*
         * First, set the capabilities if necessary
         */

        if (parsedArgs.uid != 0) {
            try {
                setCapabilities(parsedArgs.permittedCapabilities,
                                parsedArgs.effectiveCapabilities);
            } catch (IOException ex) {
                Log.e(TAG, "Error setting capabilities", ex);
            }
        }

        closeServerSocket();

@@ -565,7 +553,9 @@ public class ZygoteInit {
            /* Request to fork the system server process */
            pid = Zygote.forkSystemServer(
                    parsedArgs.uid, parsedArgs.gid,
                    parsedArgs.gids, debugFlags, null);
                    parsedArgs.gids, debugFlags, null,
                    parsedArgs.permittedCapabilities,
                    parsedArgs.effectiveCapabilities);
        } catch (IllegalArgumentException ex) {
            throw new RuntimeException(ex);
        }