Android:如何防止开发人员选项在下次启动时重置?

时间:2014-08-25 13:05:47

标签: java android settings

这是我的第一篇文章,所以请耐心等待。我是Paranoid Android ROM的维护者,也是Java的新手。基本上我的设备需要永久启用“设置>开发人员选项”中的“禁用硬件覆盖”选项,以防止屏幕闪烁。问题是一些正常的AOSP行为导致某些“危险”的开发人员选项在下次启动时重置(尽管我个人认为上述设置并不危险)。

如果有人能告诉我如何在下次启动时更改代码以使此特定设置的状态永久保留,我将非常感激。

这是java文件: DevelopmentSettings.java

我感兴趣的字符串是“DisableOverlays”

对于这类东西,我是一个全新的人,所以任何帮助都非常感激。

感谢。

编辑:这是在启用禁用hw覆盖时调用的文件(声明为DebugDisableHWC): SurfaceFlinger.cpp

1 个答案:

答案 0 :(得分:0)

您应该拥有必要的权限 - AndroidManifest.xml中的android:sharedUserId =“android.uid.system”,您的应用必须使用系统密钥进行签名。如果您有权限 - 这是代码:

private void writeDisableOverlays() {
        try {
            Method getService = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);
            IBinder flinger = (IBinder) getService.invoke(null, "SurfaceFlinger");
            if (flinger != null) {
                Parcel data = Parcel.obtain();
                data.writeInterfaceToken("android.ui.ISurfaceComposer");
                data.writeInt(1);
                flinger.transact(1008, data, null, 0);
                data.recycle();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }