diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-09 08:06:18 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-09 08:06:18 +0000 |
commit | d76263ed26a1539ab2ca99100a20417c7da1fbc9 (patch) | |
tree | cd07b2322ca69c3828a5719a2076b18118e77584 | |
parent | 67a620c6f11669ba8509eccec6ebff301f1fc985 (diff) | |
parent | c90f0063b4c9959c22f6fce8006c8214e7e25c46 (diff) | |
download | lowpan-d76263ed26a1539ab2ca99100a20417c7da1fbc9.tar.gz |
release-request-999b130a-24cf-4106-967e-4713076535ff-for-git_pi-release-4257729 snap-temp-L14600000090822884
Change-Id: I70fb1fe8f0a57d81113a38b74ed34c6dd911a270
-rw-r--r-- | service/java/com/android/server/lowpan/LowpanServiceImpl.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/service/java/com/android/server/lowpan/LowpanServiceImpl.java b/service/java/com/android/server/lowpan/LowpanServiceImpl.java index 07677e3..967dc79 100644 --- a/service/java/com/android/server/lowpan/LowpanServiceImpl.java +++ b/service/java/com/android/server/lowpan/LowpanServiceImpl.java @@ -16,6 +16,7 @@ package com.android.server.lowpan; +import android.content.pm.PackageManager; import android.content.Context; import android.net.lowpan.ILowpanInterface; import android.net.lowpan.ILowpanManager; @@ -46,9 +47,11 @@ public class LowpanServiceImpl extends ILowpanManager.Stub { private final Context mContext; private final HandlerThread mHandlerThread = new HandlerThread("LowpanServiceThread"); private final AtomicBoolean mStarted = new AtomicBoolean(false); + private final boolean mIsAndroidThings; public LowpanServiceImpl(Context context) { mContext = context; + mIsAndroidThings = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_EMBEDDED); } public Looper getLooper() { @@ -74,14 +77,29 @@ public class LowpanServiceImpl extends ILowpanManager.Stub { } private void enforceAccessPermission() { - mContext.enforceCallingOrSelfPermission( - android.Manifest.permission.ACCESS_LOWPAN_STATE, "LowpanService"); + try { + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.ACCESS_LOWPAN_STATE, "LowpanService"); + } catch (SecurityException x) { + if (!mIsAndroidThings) { + throw x; + } + mContext.enforceCallingOrSelfPermission( + "com.google.android.things.permission.ACCESS_LOWPAN_STATE", "LowpanService"); + } } private void enforceManagePermission() { - // TODO: Change to android.Manifest.permission.MANAGE_lowpanInterfaceS - mContext.enforceCallingOrSelfPermission( - android.Manifest.permission.CHANGE_LOWPAN_STATE, "LowpanService"); + try { + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.MANAGE_LOWPAN_INTERFACES, "LowpanService"); + } catch (SecurityException x) { + if (!mIsAndroidThings) { + throw x; + } + mContext.enforceCallingOrSelfPermission( + "com.google.android.things.permission.MANAGE_LOWPAN_INTERFACES", "LowpanService"); + } } public ILowpanInterface getInterface(String name) { |