diff options
| author | 2012-08-22 07:49:03 -0700 | |
|---|---|---|
| committer | 2012-08-22 07:49:03 -0700 | |
| commit | 2bd65b61ba6e98496dc574251e06709546d24500 (patch) | |
| tree | f15338f6cd52c6243d61494804afdefa5d9a1dca /services/java | |
| parent | 00a8f4ff627584f4d9a8ae0cd83f87786005e16d (diff) | |
| parent | 29c6f24b254b4ea1a7d8448980e736355e4badf6 (diff) | |
am 29c6f24b: am 6ffe2594: Merge "restorecon /data/anr directory."
* commit '29c6f24b254b4ea1a7d8448980e736355e4badf6':
restorecon /data/anr directory.
Diffstat (limited to 'services/java')
| -rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 15 | ||||
| -rw-r--r-- | services/java/com/android/server/am/DeviceMonitor.java | 4 |
2 files changed, 17 insertions, 2 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 7f2b69fd5c29..cb15b3be4201 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -105,6 +105,7 @@ import android.os.ParcelFileDescriptor; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; +import android.os.SELinux; import android.os.ServiceManager; import android.os.StrictMode; import android.os.SystemClock; @@ -3040,7 +3041,12 @@ public final class ActivityManagerService extends ActivityManagerNative File tracesFile = new File(tracesPath); try { File tracesDir = tracesFile.getParentFile(); - if (!tracesDir.exists()) tracesFile.mkdirs(); + if (!tracesDir.exists()) { + tracesFile.mkdirs(); + if (!SELinux.restorecon(tracesDir)) { + return null; + } + } FileUtils.setPermissions(tracesDir.getPath(), 0775, -1, -1); // drwxrwxr-x if (clearTraces && tracesFile.exists()) tracesFile.delete(); @@ -3144,7 +3150,12 @@ public final class ActivityManagerService extends ActivityManagerNative final File tracesDir = tracesFile.getParentFile(); final File tracesTmp = new File(tracesDir, "__tmp__"); try { - if (!tracesDir.exists()) tracesFile.mkdirs(); + if (!tracesDir.exists()) { + tracesFile.mkdirs(); + if (!SELinux.restorecon(tracesDir.getPath())) { + return; + } + } FileUtils.setPermissions(tracesDir.getPath(), 0775, -1, -1); // drwxrwxr-x if (tracesFile.exists()) { diff --git a/services/java/com/android/server/am/DeviceMonitor.java b/services/java/com/android/server/am/DeviceMonitor.java index 5f3b0ce6996f..21e7252bf24d 100644 --- a/services/java/com/android/server/am/DeviceMonitor.java +++ b/services/java/com/android/server/am/DeviceMonitor.java @@ -16,6 +16,7 @@ package com.android.server.am; +import android.os.SELinux; import android.util.Slog; import java.io.*; @@ -80,6 +81,9 @@ class DeviceMonitor { if (!BASE.isDirectory() && !BASE.mkdirs()) { throw new AssertionError("Couldn't create " + BASE + "."); } + if (!SELinux.restorecon(BASE)) { + throw new AssertionError("Couldn't restorecon " + BASE + "."); + } } private static final File[] PATHS = { |