Runtime.getRuntime()。exec()上的Android权限

时间:2012-12-20 10:36:36

标签: android permissions command

我在清单上有一个具有以下权限的应用程序。我的应用程序在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执行,该命令在这个新设备中完美运行。

如何解决权限问题?可能是该设备的错误?

1 个答案:

答案 0 :(得分:2)

至少在Jelly Bean中,除了使用固件的签名密钥签名或安装在系统分区上的应用程序之外,SET_DEBUG_APP无法保留。普通的SDK应用程序无法保留此权限。