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

Commit 1056d5a9 authored by Paul Lawrence's avatar Paul Lawrence Committed by Android Git Automerger
Browse files

am 75f304f9: Merge changes Ibfb5c6ab,I712919ae into lmp-mr1-dev

* commit '75f304f9':
  Add mechanism for securely returning parameters though NativeDaemonConnector
  Revert "DO NOT MERGE: Don't log passwords returned from vdc"
parents 0e8c7737 75f304f9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -174,6 +174,8 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo

                for (int i = 0; i < count; i++) {
                    if (buffer[i] == 0) {
                        // Note - do not log this raw message since it may contain
                        // sensitive data
                        final String rawEvent = new String(
                                buffer, start, i - start, StandardCharsets.UTF_8);

@@ -181,6 +183,9 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo
                        try {
                            final NativeDaemonEvent event = NativeDaemonEvent.parseRawEvent(
                                    rawEvent);

                            log("RCV <- {" + event + "}");

                            if (event.isClassUnsolicited()) {
                                // TODO: migrate to sending NativeDaemonEvent instances
                                if (mCallbacks.onCheckHoldWakeLock(event.getCode())
@@ -196,6 +201,7 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo
                                mResponseQueue.add(event.getCmdNumber(), event);
                            }
                        } catch (IllegalArgumentException e) {
                            log("Problem parsing message " + e);
                        } finally {
                            if (releaseWl) {
                                mWakeLock.acquire();
@@ -205,8 +211,9 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo
                        start = i + 1;
                    }
                }

                if (start == 0) {
                    final String rawEvent = new String(buffer, start, count, StandardCharsets.UTF_8);
                    log("RCV incomplete");
                }

                // We should end at the amount we read. If not, compact then
+14 −3
Original line number Diff line number Diff line
@@ -33,16 +33,21 @@ public class NativeDaemonEvent {
    private final int mCode;
    private final String mMessage;
    private final String mRawEvent;
    private final String mLogMessage;
    private String[] mParsed;

    private NativeDaemonEvent(int cmdNumber, int code, String message, String rawEvent) {
    private NativeDaemonEvent(int cmdNumber, int code, String message,
                              String rawEvent, String logMessage) {
        mCmdNumber = cmdNumber;
        mCode = code;
        mMessage = message;
        mRawEvent = rawEvent;
        mLogMessage = logMessage;
        mParsed = null;
    }

    static public final String SENSITIVE_MARKER = "{{sensitive}}";

    public int getCmdNumber() {
        return mCmdNumber;
    }
@@ -62,7 +67,7 @@ public class NativeDaemonEvent {

    @Override
    public String toString() {
        return mRawEvent;
        return mLogMessage;
    }

    /**
@@ -151,9 +156,15 @@ public class NativeDaemonEvent {
            }
        }

        String logMessage = rawEvent;
        if (parsed.length > 2 && parsed[2].equals(SENSITIVE_MARKER)) {
            skiplength += parsed[2].length() + 1;
            logMessage = parsed[0] + " " + parsed[1] + " {}";
        }

        final String message = rawEvent.substring(skiplength);

        return new NativeDaemonEvent(cmdNumber, code, message, rawEvent);
        return new NativeDaemonEvent(cmdNumber, code, message, rawEvent, logMessage);
    }

    /**