2012-03-16 132 views
6

我正在实施一个演示,以便悄悄地从设备上卸载应用程序。如何将系统权限授予我的Android应用程序?

在adb shell中,我可以使用pm卸载packagename来完成任务,但是当我编写代码时,我得到了一些拒绝错误的权限。

我一直在Google上搜索一下,发现要获得DELETE_PACKAGES权限,我必须使用与系统相同的证书签署我的应用程序。

那么,任何人都可以给我一些关于如何做到这一点的提示?或者,无论如何,我可以做我的应用程序作为系统服务运行吗?

回答

2

远远胜于静音卸载是某种程度上砖砌应用程序。有几种方法可以完成,但基本上跟踪他们使用它的第一天,并使程序无法工作。或者,它可以设置为工作到某一天,之后它将不再工作。 This question回答如何做到这一点。

+1

好吧,“老板”告诉我做这个研究,所以,实际上,我在这里没有其他选择... – 2012-03-16 03:27:28

1

如果您的应用程序未位于“/ system/app”,则“DELETE_PACKAGES”权限将不起作用。 编译你的应用程序的源代码或尝试“root”;)

+0

喜三叶草,我决定编译我的应用程序的源代码,我得到这个错误: java.security.cert.CertificateParsingException:signed字段无效,这里有什么问题? – 2012-03-16 03:22:15

+0

我在我的Android.mk文件LOCAL_CERTIFICATE:= platform中添加了这一行:并使用mmm packages/app/test /来构建这个应用程序。 – 2012-03-16 03:25:09

+0

你的应用程序使用证书操作吗?你知道我从来没有见过这种异常,或者改变平台共享并尝试“制作”源代码〜 – Clover 2012-03-19 01:20:29

4

你不能这样做,除非你正在构建自己的固件(ROM)。如果你是,只需拿钥匙签署ROM并签署你的apk。如果你有一个根深蒂固的手机,你也可以复制apk的/system/app获得权限。

+0

谢谢,但我没有构建自己的固件。我可以用源代码构建我的应用吗? – 2012-03-16 03:26:47

+1

您可以,但如果设备上的ROM没有使用相同的密钥签名,则不起作用。如果您正在使用股票固件(来自运营商等),唯一的方法是将电话根音并复制到'/ system/app'中。或者你可以问他们(很好!)为你签字:) – 2012-03-16 03:36:28

+0

好吧,将它复制到/ system/app听起来像是一个不错的选择,谢谢! – 2012-03-16 03:37:31

-3

我对如何让一个应用程序权限读取浏览器体验书签

  1. 打开要添加的权限给它该应用程序的AndroidManifest.xml中。

2.Somewhere

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
</manifest> 

之间 添加以下代码

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

3.对于填补...去here 例如下面的代码将允许应用获取书签历史

+0

此问题看起来像是授予受限制的系统权限而非正常的公共权限。 – Sam 2015-04-27 11:26:06

相关问题