diff options
author | Neil Fuller <nfuller@google.com> | 2017-10-27 10:13:42 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-10-27 10:13:42 +0000 |
commit | 9df2c8bf9ccfdccd7917e0bd40b6203fe2c673c3 (patch) | |
tree | d43bfef7a04ed2f64a764057c8b1c1593d91a0ba | |
parent | 1dff9355659d622b9278844a333a45bd7cbf00bf (diff) | |
parent | dcea47a7fa7d285919de8a91fc0515c5338b9194 (diff) | |
download | TimeZoneUpdater-9df2c8bf9ccfdccd7917e0bd40b6203fe2c673c3.tar.gz |
Explicitly disallow multiple user execute
am: dcea47a7fa
Change-Id: Ieacc879ea2142067e1b02d33b902054204bbfce5
-rw-r--r-- | src/main/com/android/timezone/updater/RulesCheckReceiver.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/com/android/timezone/updater/RulesCheckReceiver.java b/src/main/com/android/timezone/updater/RulesCheckReceiver.java index 92a8bd5..003b2e4 100644 --- a/src/main/com/android/timezone/updater/RulesCheckReceiver.java +++ b/src/main/com/android/timezone/updater/RulesCheckReceiver.java @@ -30,6 +30,7 @@ import android.content.pm.ProviderInfo; import android.database.Cursor; import android.net.Uri; import android.os.ParcelFileDescriptor; +import android.os.UserHandle; import android.provider.TimeZoneRulesDataContract; import android.util.Log; @@ -85,6 +86,17 @@ public class RulesCheckReceiver extends BroadcastReceiver { + ", action=" + intent.getAction()); return; } + + // The time zone update process should run as the system user exclusively as it's a + // system feature, not user dependent. + UserHandle currentUserHandle = android.os.Process.myUserHandle(); + if (!currentUserHandle.isSystem()) { + // Just do nothing. + Log.w(TAG, "Supposed to be running as the system user," + + " instead running as user=" + currentUserHandle); + return; + } + mRulesManager = (RulesManager) context.getSystemService("timezone"); byte[] token = intent.getByteArrayExtra(RulesUpdaterContract.EXTRA_CHECK_TOKEN); |