I have the following permission
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
in the android manifest.
Using this script to install the application in /system/priv-app
:
How to install an app in system/app while developing from android studio
Now, I get this error:
Caused by: java.lang.SecurityException: Needs com.google.android.things.permission.MANAGE_BLUETOOTH.: Neither user 10036 nor current process has com.google.android.things.permission.MANAGE_BLUETOOTH.
at android.os.Parcel.readException(Parcel.java:2013)
at android.os.Parcel.readException(Parcel.java:1959)
Even though it worked when installed normally.
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Checking the requested versus granted permissions show that only com.google.android.things.permission.MANAGE_BLUETOOTH
is missing.
Sergeis-MBP:~ darvin$ adb shell dumpsys package com.darvin.usbmavicblehidandroidthing
Activity Resolver Table:
Non-Data Actions:
android.intent.action.MAIN:
ef16bec com.darvin.usbmavicblehidandroidthing/.MainActivity filter c503d5
Action: "android.intent.action.MAIN"
Category: "android.intent.category.LAUNCHER"
Key Set Manager:
[com.darvin.usbmavicblehidandroidthing]
Signing KeySets: 12
Packages:
Package [com.darvin.usbmavicblehidandroidthing] (350bb5):
userId=10036
pkg=Package{325524a com.darvin.usbmavicblehidandroidthing}
codePath=/system/priv-app/USBMavicBLEHIDAndroidThing
resourcePath=/system/priv-app/USBMavicBLEHIDAndroidThing
legacyNativeLibraryDir=/system/priv-app/USBMavicBLEHIDAndroidThing/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=1 minSdk=24 targetSdk=29
versionName=1.0
splits=[base]
apkSigningVersion=2
applicationInfo=ApplicationInfo{532c5bb com.darvin.usbmavicblehidandroidthing}
flags=[ SYSTEM DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
privateFlags=[ PRIVILEGED PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ]
dataDir=/data/user/0/com.darvin.usbmavicblehidandroidthing
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
usesLibraries:
com.google.android.things
usesLibraryFiles:
/system/framework/com.google.android.things.jar
timeStamp=2019-09-03 23:37:16
firstInstallTime=2019-09-03 23:33:24
lastUpdateTime=2019-09-03 23:37:16
signatures=PackageSignatures{87f5ad8 [81ec50ae]}
installPermissionsFixed=true installStatus=1
pkgFlags=[ SYSTEM DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
requested permissions:
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BLUETOOTH_PRIVILEGED
com.google.android.things.permission.MANAGE_BLUETOOTH
install permissions:
android.permission.BLUETOOTH: granted=true
android.permission.BLUETOOTH_ADMIN: granted=true
android.permission.BLUETOOTH_PRIVILEGED: granted=true
User 0: ceDataInode=-4294966185 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false virtual=false
gids=[3002, 3001]
runtime permissions:
Package Changes:
Sequence number=2
User 0:
seq=1, package=com.google.android.gms
Dexopt state:
[com.darvin.usbmavicblehidandroidthing]
path: /system/priv-app/USBMavicBLEHIDAndroidThing/USBMavicBLEHIDAndroidThing.apk
arm: /data/dalvik-cache/arm/system@priv-app@USBMavicBLEHIDAndroidThing@USBMavicBLEHIDAndroidThing.apk@classes.dex[
status=kOatUpToDate, compilation_filter=verify]
Compiler stats:
[com.darvin.usbmavicblehidandroidthing]
(No recorded stats)
Added whitelist in /etc/permissions/privapp-permissions-com.darvin.usbmavicblehidandroidthing.xml
Sergeis-MBP:USBMavicBLEHIDAndroidThing darvin$ adb shell cat /etc/permissions/privapp-permissions-com.darvin.usbmavicblehidandroidthing.xml
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.darvin.usbmavicblehidandroidthing">
<permission name="android.permission.BLUETOOTH" />
<permission name="android.permission.BLUETOOTH_ADMIN" />
<permission name="android.permission.BLUETOOTH_PRIVILEGED" />
<permission name="com.google.android.things.permission.MANAGE_BLUETOOTH" />
</privapp-permissions>
</permissions>
Nothing changed