From 0b81be6f79ec3d1b9441c21a3cefc629be1450c8 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 18 Sep 2012 15:44:16 -0700 Subject: Lockdown should only augment connected networks. Bug: 7148397 Change-Id: I20e2194c874544b272b9ec8b63391d91b0a22f49 --- services/java/com/android/server/net/LockdownVpnTracker.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/net/LockdownVpnTracker.java b/services/java/com/android/server/net/LockdownVpnTracker.java index f2d67456c0fa..f32dd092e5d2 100644 --- a/services/java/com/android/server/net/LockdownVpnTracker.java +++ b/services/java/com/android/server/net/LockdownVpnTracker.java @@ -268,9 +268,11 @@ public class LockdownVpnTracker { } public NetworkInfo augmentNetworkInfo(NetworkInfo info) { - final NetworkInfo vpnInfo = mVpn.getNetworkInfo(); - info = new NetworkInfo(info); - info.setDetailedState(vpnInfo.getDetailedState(), vpnInfo.getReason(), null); + if (info.isConnected()) { + final NetworkInfo vpnInfo = mVpn.getNetworkInfo(); + info = new NetworkInfo(info); + info.setDetailedState(vpnInfo.getDetailedState(), vpnInfo.getReason(), null); + } return info; } -- cgit v1.2.3-59-g8ed1b From 3fe5bf6d69f146077ce9b5e588be8651462b0cd2 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 18 Sep 2012 15:54:52 -0700 Subject: Make getMediaStorageDirectory() user-aware. Bug: 7173591 Change-Id: I4513afbd8c3d6a31cd66d8a149be4071d5a4d24c --- core/java/android/os/Environment.java | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 1607b96c0ad9..364004b2bee0 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -32,6 +32,7 @@ public class Environment { private static final String ENV_EXTERNAL_STORAGE = "EXTERNAL_STORAGE"; private static final String ENV_EMULATED_STORAGE_TARGET = "EMULATED_STORAGE_TARGET"; + private static final String ENV_MEDIA_STORAGE = "MEDIA_STORAGE"; /** {@hide} */ public static String DIRECTORY_ANDROID = "Android"; @@ -88,21 +89,30 @@ public class Environment { private final File mExternalStorageAndroidData; private final File mExternalStorageAndroidMedia; private final File mExternalStorageAndroidObb; + private final File mMediaStorage; public UserEnvironment(int userId) { // See storage config details at http://source.android.com/tech/storage/ String rawExternalStorage = System.getenv(ENV_EXTERNAL_STORAGE); String rawEmulatedStorageTarget = System.getenv(ENV_EMULATED_STORAGE_TARGET); + String rawMediaStorage = System.getenv(ENV_MEDIA_STORAGE); + if (TextUtils.isEmpty(rawMediaStorage)) { + rawMediaStorage = "/data/media"; + } if (!TextUtils.isEmpty(rawEmulatedStorageTarget)) { // Device has emulated storage; external storage paths should have // userId burned into them. + final String rawUserId = Integer.toString(userId); final File emulatedBase = new File(rawEmulatedStorageTarget); + final File mediaBase = new File(rawMediaStorage); // /storage/emulated/0 - mExternalStorage = buildPath(emulatedBase, Integer.toString(userId)); + mExternalStorage = buildPath(emulatedBase, rawUserId); // /storage/emulated/obb mExternalStorageAndroidObb = buildPath(emulatedBase, "obb"); + // /data/media/0 + mMediaStorage = buildPath(mediaBase, rawUserId); } else { // Device has physical external storage; use plain paths. @@ -115,6 +125,8 @@ public class Environment { mExternalStorage = new File(rawExternalStorage); // /storage/sdcard0/Android/obb mExternalStorageAndroidObb = buildPath(mExternalStorage, DIRECTORY_ANDROID, "obb"); + // /data/media + mMediaStorage = new File(rawMediaStorage); } mExternalStorageAndroidData = buildPath(mExternalStorage, DIRECTORY_ANDROID, "data"); @@ -152,6 +164,10 @@ public class Environment { public File getExternalStorageAppCacheDirectory(String packageName) { return new File(new File(mExternalStorageAndroidData, packageName), "cache"); } + + public File getMediaStorageDirectory() { + return mMediaStorage; + } } /** @@ -198,7 +214,8 @@ public class Environment { * @hide */ public static File getMediaStorageDirectory() { - return MEDIA_STORAGE_DIRECTORY; + throwIfSystem(); + return sCurrentUser.getMediaStorageDirectory(); } /** @@ -231,10 +248,6 @@ public class Environment { private static final File SECURE_DATA_DIRECTORY = getDirectory("ANDROID_SECURE_DATA", "/data/secure"); - /** @hide */ - private static final File MEDIA_STORAGE_DIRECTORY - = getDirectory("MEDIA_STORAGE", "/data/media"); - private static final File DOWNLOAD_CACHE_DIRECTORY = getDirectory("DOWNLOAD_CACHE", "/cache"); /** -- cgit v1.2.3-59-g8ed1b