4

我正在尝试使用以下命令通过 adb 将我的应用设置为设备所有者:

dpm set-device-owner pl.my.packet/pl.my.packet.receivers.AdminReceiver

然后我看到了那个错误:

java.lang.SecurityException: Neither user 2000 nor current process has com.samsung.android.knox.permission.KNOX_PROXY_ADMIN_INTERNAL.,com.sec.enterprise.permission.MDM_PROXY_ADMIN_INTERNAL
    at android.os.Parcel.readException(Parcel.java:1693)
    at android.os.Parcel.readException(Parcel.java:1646)
    at android.app.admin.IDevicePolicyManager$Stub$Proxy.setActiveAdmin(IDevicePolicyManager.java:5825)
    at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:145)
    at com.android.commands.dpm.Dpm.onRun(Dpm.java:96)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.dpm.Dpm.main(Dpm.java:41)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:301)

电话:Samsung S7 Edge,未植根,未关联任何 Google 帐户。

我为我搜索了其他有用的线程但一无所获,我尝试了以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.sec.enterprise.permission.MDM_PROXY_ADMIN_INTERNAL"/>
<uses-permission android:name="com.samsung.android.knox.permission.KNOX_PROXY_ADMIN_INTERNAL"/>
<uses-permission android:name="com.samsung.accessory.permission.ACCESSORY_FRAMEWORK" />
4

3 回答 3

1

我有一个类似的错误,发现我在dpm set-device-owner命令中输入了包和接收器名称。我认为您不需要在收件人姓名中包含包裹名称。也许dpm set-device-owner pl.my.packet/.AdminReceiver

于 2018-03-14T22:43:20.850 回答
0

我在三星手机上遇到了同样的问题,并用我的模拟器试了一下,所以还有另一个例外。

原来 AdminReceiver.class 必须在您的应用程序的根目录中:com.example.yourRootPackage.MyAdminReceiver.class

于 2021-08-23T09:33:06.803 回答
-1

没有扎根

你不能这样做,因为你被明确告知:

用户 2000 和当前进程都没有 com.samsung.android.knox.permission.KNOX_PROXY_ADMIN_INTERNAL.,com.sec.enterprise.permission.MDM_PROXY_ADMIN_INTERNAL

而且您不能只是添加随机权限并期望它起作用。我假设两者都至少是signaturetype 或system. 而且您不能拥有无根或没有系统证书。

于 2017-04-11T12:38:20.407 回答