Windows 10 の PC で android 5.1.1 のタブレット端末に対して `adb shell pm hide` とコマンドを実行すると

```

    Error: java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_USERS.
    
```

というエラーメッセージが表示されます。

設定が間違っているのでしょうか？  
ご教示いただければ幸いです。
CC BY-SA 3.0
2017-07-26T04:14:41.873
36685
2017-07-31T08:18:45.770
2017-07-26T08:11:18.827
19110
24584
question
android adb
adb shell pm hide 実行エラー
PackageManager の hide
コマンドのフォーマットは以下であるので、質問文のコマンドは正確には実行されたコマンドにパッケージ名またはコンポーネント名を指定されているかと思います。

```

    pm hide [--user USER_ID] PACKAGE_OR_COMPONENT
    
```

* * *

> Error: java.lang.SecurityException: Neither user 2000 nor current  
>  process has android.permission.MANAGE_USERS.

このエラーはUIDが2000のユーザ(uid=2000(shell))、またはコマンドを実行しているプロセス、つまりshellプロセスには`android.permission.MANAGE_USERS`のパーミッションが与えられていないため、セキュリティエラーとなり、コマンドが実行できないということを表しています。

以下のコマンドを実行してshellに該当のパーミッションが与えられているかを確認してください。  
パーミッションがなければ該当コマンドの実行はできません。

```

    adb shell dumpsys package com.android.shell
    
```

* * *

補足

手元にある以下の端末では`pm hide`コマンドは実行可能でした。

  * Nexus 5 (Android 5.1.1)
  * Xperia Performance (Android 6.0.1)

H.Hさんの回答にある通り、Android 6.0.1以前の端末では、メーカーの実装依存になると思います。  
[Androidのセキュリティパッチのアナウンス](https://source.android.com/security/bulletin/2016-08-01#elevation-
of-privilege-vulnerability-in-shell)  
[CVEのインフォメーション](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3833)
CC BY-SA 3.0
2017-07-26T08:34:15.197
36691
2017-07-31T08:18:45.770
2017-07-31T08:18:45.770
20272
20272
36685
answer
結論から申しますとrootをとらない限り実行できません。

```

    Error: java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_USERS.
    
```

のログで示している通りMANAGE_USERSのPermissionを要求されていますが。

下記の通り、MANAGE_USERSはプリインストールされているアプリ以外には付与できません。

<https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml#1708>

```

    <permission android:name="android.permission.MANAGE_USERS"
        android:protectionLevel="signature|privileged" />
    
```

またShellに対しても下記セキュリティ対応にてMANAGE_USERSの権限が外されています。  
<https://android.googlesource.com/platform/frameworks/base/+/f5cea03eb036c05cacc711ff90c97a48ffb2bc17%5E%21/>

セキュリティパッチとしての投入なので(メーカー側が対応していれば)OS Version問わず上記パッチがあたっているはずです。
CC BY-SA 3.0
2017-07-27T06:26:44.357
36713
2017-07-27T06:26:44.357
19716
36685
answer