0

是否正在阅读Android 系统应用程序 DEVICE_POWER 权限错误以及如何使用系统签名对 Android 应用程序进行签名?

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

我是否将密钥从我自己的设备中取出以用于签署我的应用程序。

我只希望我的应用程序能够调用:

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

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

感谢您的回答。

4

3 回答 3

3

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

如何使用系统签名对 Android 应用进行签名?

于 2012-08-17T20:37:55.050 回答
2

你不能那样做。

只有设备制造商可以使用系统密钥签署应用程序 - 与只有您可以使用密钥签署应用程序的方式相同。并且每个设备(至少每个制造商)都有不同的系统密钥。他们都不会给你那把钥匙。

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

于 2012-08-17T21:59:27.803 回答
0

我认为您需要让您的应用获得 DEVICE_POWER 的权限。是的,普通应用程序没有该权限。但是您可以使您的应用程序成为特权应用程序。如果您将其设为特权,则在构建中,该应用程序将在您的 /system/priv-apps/ 中创建

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

干杯!!!

于 2015-07-14T08:31:37.667 回答