5

マニフェストに次の権限を持つアプリがあります。私のアプリは Android JB 4.1.2 で実行されています。

更新: JB でアプリを実行しようとしていますが、機能しません。以前の API バージョンで動作します。

<manifest xmlns...>
   <uses-permission android:name="android.permission.SET_DEBUG_APP"/>

問題は、次のようなコマンドを実行するときです。

Process proc = Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");
    BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(proc.getInputStream()));

    String line;
    while ((line = bufferedReader.readLine()) != null) {
        Log.e("IDSPlayer", "RESULTAT BARRA:" + line);
    }

結果は次のとおりです。

12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:Result: Parcel(
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000000: ffffffff 00000064 00650050 006d0072 '....d...P.e.r.m.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000010: 00730069 00690073 006e006f 00440020 'i.s.s.i.o.n. .D.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000020: 006e0065 00610069 003a006c 00730020 'e.n.i.a.l.:. .s.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000030: 00740065 00650044 00750062 00410067 'e.t.D.e.b.u.g.A.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000040: 00700070 00290028 00660020 006f0072 'p.p.(.). .f.r.o.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000050: 0020006d 00690070 003d0064 00330032 'm. .p.i.d.=.2.3.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000060: 00370038 002c0033 00750020 00640069 '8.7.3.,. .u.i.d.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000070: 0031003d 00300030 00320037 00720020 '=.1.0.0.7.2. .r.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000080: 00710065 00690075 00650072 00200073 'e.q.u.i.r.e.s. .'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x00000090: 006e0061 00720064 0069006f 002e0064 'a.n.d.r.o.i.d...'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x000000a0: 00650070 006d0072 00730069 00690073 'p.e.r.m.i.s.s.i.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x000000b0: 006e006f 0053002e 00540045 0044005f 'o.n...S.E.T._.D.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x000000c0: 00420045 00470055 0041005f 00500050 'E.B.U.G._.A.P.P.'
12-20 11:17:50.110: E/IDSPlayer(23840): RESULTAT BARRA:  0x000000d0: 00000000                            '....            ')

これは ICS デバイスで完全に機能し、適切に実行するには SET_DEBUG_APP 権限が必要です。権限がマニフェストにある場合でも、新しいデバイスでは動作しません。

一方、ADB を介して実行すると、コマンドはこの新しいデバイスで完全に機能します。

許可の問題を解決するにはどうすればよいですか? デバイスのバグでしょうか?

4

1 に答える 1

2

少なくとも Jelly Bean ではSET_DEBUG_APP、ファームウェアの署名キーで署名されているか、システム パーティションにインストールされているアプリ以外では保持できません。通常の SDK アプリケーションは、この権限を保持できません。

于 2012-12-20T12:00:49.097 に答える