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

Commit 3457957e authored by Christopher Tate's avatar Christopher Tate Committed by Android Git Automerger
Browse files

am 1d6ff5a1: am 7e93aad4: am 36fa4713: Merge "Fix security hole in Google...

am 1d6ff5a1: am 7e93aad4: am 36fa4713: Merge "Fix security hole in Google backup transport registration" into froyo
parents 70189745 1d6ff5a1
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -479,10 +479,25 @@ class BackupManagerService extends IBackupManager.Stub {
        // Attach to the Google backup transport.  When this comes up, it will set
        // itself as the current transport because we explicitly reset mCurrentTransport
        // to null.
        Intent intent = new Intent().setComponent(new ComponentName(
                "com.google.android.backup",
                "com.google.android.backup.BackupTransportService"));
        ComponentName transportComponent = new ComponentName("com.google.android.backup",
                "com.google.android.backup.BackupTransportService");
        try {
            // If there's something out there that is supposed to be the Google
            // backup transport, make sure it's legitimately part of the OS build
            // and not an app lying about its package name.
            ApplicationInfo info = mPackageManager.getApplicationInfo(
                    transportComponent.getPackageName(), 0);
            if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                if (DEBUG) Slog.v(TAG, "Binding to Google transport");
                Intent intent = new Intent().setComponent(transportComponent);
                context.bindService(intent, mGoogleConnection, Context.BIND_AUTO_CREATE);
            } else {
                Slog.w(TAG, "Possible Google transport spoof: ignoring " + info);
            }
        } catch (PackageManager.NameNotFoundException nnf) {
            // No such package?  No binding.
            if (DEBUG) Slog.v(TAG, "Google transport not present");
        }

        // Now that we know about valid backup participants, parse any
        // leftover journal files into the pending backup set