summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Fuller <nfuller@google.com>2017-10-27 10:13:42 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-10-27 10:13:42 +0000
commit9df2c8bf9ccfdccd7917e0bd40b6203fe2c673c3 (patch)
treed43bfef7a04ed2f64a764057c8b1c1593d91a0ba
parent1dff9355659d622b9278844a333a45bd7cbf00bf (diff)
parentdcea47a7fa7d285919de8a91fc0515c5338b9194 (diff)
downloadTimeZoneUpdater-9df2c8bf9ccfdccd7917e0bd40b6203fe2c673c3.tar.gz
Explicitly disallow multiple user execute
am: dcea47a7fa Change-Id: Ieacc879ea2142067e1b02d33b902054204bbfce5
-rw-r--r--src/main/com/android/timezone/updater/RulesCheckReceiver.java12
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);