【问题标题】:How to grant system permissions to my android app?如何授予我的android应用程序系统权限?
【发布时间】:2015-04-18 03:28:30
【问题描述】:

我正在实现一个从设备静默卸载应用程序的演示。

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

我在谷歌上搜索了一段时间,发现要获得 DELETE_PACKAGES 权限,我必须使用与系统相同的证书签署我的应用程序。

那么,谁能给我一些关于如何做到这一点的提示?或者,有什么办法可以让我的应用程序作为系统服务运行?

【问题讨论】:

    标签: android permissions


    【解决方案1】:

    您不能这样做,除非您正在构建自己的固件 (ROM)。如果您是,只需获取签署 ROM 的密钥并用它签署您的 apk。如果你有root手机,也可以复制/system/app中的apk获取权限。

    【讨论】:

    • 谢谢,但我不是在构建自己的固件。我可以使用源代码构建我的应用程序吗?
    • 可以,但如果设备上的 ROM 没有使用相同的密钥签名,它将无法工作。如果您使用的是库存固件(来自运营商等),唯一的方法是 root 手机并复制它/system/app。或者你可以让他们(很好!)为你签名:)
    • 好的,复制到 /system/app 听起来不错,谢谢!
    • 复制到 /system/app 真的可以访问所有系统权限吗?我没有看到这个:stackoverflow.com/questions/24296286/…
    • signatureOrSystem 级别仅限。此外,在 4.4+ 上,您需要在 /system/priv-app 中才能使用此 tovwork。
    【解决方案2】:

    以某种方式使应用程序变砖比静默卸载要好得多。有几种方法可以做到这一点,但基本上跟踪他们使用它的第一天,并使程序无法运行。或者,它可以设置为工作到某一天,之后它将不再工作。 This question 回答如何做到这一点。

    【讨论】:

    • 嗯,“老板”让我做这个研究,所以,其实,我这里没有别的选择……
    【解决方案3】:

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

    【讨论】:

    • 你好三叶草,我决定用源代码编译我的应用程序,我收到了这个错误:java.security.cert.CertificateParsingException: signed fields invalid, 这是什么问题?
    • 我在我的 Android.mk 文件中添加了这一行,LOCAL_CERTIFICATE := platform;并使用 mmm packages/app/test/ 来构建这个应用程序。
    • 你的应用是否使用了证书操作?你知道我以前从未见过这个异常。或者将平台更改为共享并尝试“制作”源代码~
    【解决方案4】:

    我有关于如何获得一个应用程序读取浏览器书签的权限的经验

    1. 打开您要为其添加权限的应用程序的 AndroidManifest.xml。

    2.介于

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

    添加此代码

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

    3.为了填写...去here 例如以下代码将允许应用获取书签历史记录

    【讨论】:

    • 这个问题看起来是关于授予受限制的系统权限而不是普通的公共权限。
    猜你喜欢
    • 2023-04-08
    • 2012-03-18
    • 2012-02-22
    • 2018-07-10
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多