如何将Android应用程序签名为系统应用程序以使用DEVICE_POWER权限

时间:2012-08-17 20:33:13

标签: android

正在阅读Android system application DEVICE_POWER permission errorHow to sign Android app with system signature?

我仍然无法将我的应用程序作为系统应用程序签名。我不知道/ build / target / product / security在哪里。

我是否从我自己的设备上拔下钥匙以用于签署我的应用程序。

我只是希望我的应用能够致电:

private void screenOff(){
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

    long time = SystemClock.uptimeMillis() + 1000;
    pm.goToSleep(time);
}

感谢您的回答。

3 个答案:

答案 0 :(得分:3)

如果要从项目的源代码构建Android,则只能将应用程序签名为系统应用程序。如果您对只能在手机上使用的黑客感兴趣,请参阅:

How to sign Android app with system signature?

答案 1 :(得分:2)

你做不到。

只有设备制造商才能使用系统密钥对应用进行签名 - 只有您可以使用密钥对应用进行签名。并且每个设备(至少每个制造商)具有不同的系统密钥。他们都不会给你那把钥匙。

获得该权限的唯一方法是构建您自己的设备固件(例如CyanogenMod,以便您知道密钥(/build/target/product/security是这些来源的一部分)。但如果您这样做,您仍然无法分发您的应用,因为只有您(+使用您的固件的其他人)拥有正确的密钥。

答案 2 :(得分:0)

我认为您需要让您的应用拥有DEVICE_POWER的权限。是的,普通的应用程序不能拥有该权限。 但是你可以让你的应用程序成为特权。如果你使它成为特权,在构建中,应用程序将在/ system / priv-apps /

中创建

要使您的应用成为特权,请在Android.mk文件中添加以下代码: LOCAL_PRIVILEGED_MODULE:= true

干杯!!!