Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在android上禁用系统应用程序的签名检查_Android_Android Permissions - Fatal编程技术网

Can';t在android上禁用系统应用程序的签名检查

Can';t在android上禁用系统应用程序的签名检查,android,android-permissions,Android,Android Permissions,我需要禁用带有CM10.1夜间rom的Android三星Galaxy S2上的系统应用程序的签名检查,以开发一个防盗应用程序。因此,我尝试用反编译Services.jar 在更换文件并重新启动后,我的手机“忘记”了我的所有应用程序(只有rom应用程序还在这里),我无法安装其他应用程序(通过usb调试)。因此,我尝试直接在一个新的rom(zip)文件中编辑该文件,同样的问题也出现了 你知道问题出在哪里吗?或者可以用另一种方式安装具有系统签名的应用程序权限的应用程序? 我们知道cm的私钥吗?也许我可

我需要禁用带有CM10.1夜间rom的Android三星Galaxy S2上的系统应用程序的签名检查,以开发一个防盗应用程序。因此,我尝试用反编译Services.jar

在更换文件并重新启动后,我的手机“忘记”了我的所有应用程序(只有rom应用程序还在这里),我无法安装其他应用程序(通过usb调试)。因此,我尝试直接在一个新的rom(zip)文件中编辑该文件,同样的问题也出现了

你知道问题出在哪里吗?或者可以用另一种方式安装具有系统签名的应用程序权限的应用程序? 我们知道cm的私钥吗?也许我可以用钥匙在我的应用程序上签名?(但我知道这把钥匙,这是一个安全问题,所以我认为我们不能)


谢谢

当安装出现问题时,我已经检查了logcat,我发现了这个错误

"Cannot install platform packages to user storage"
我查看了cm github,发现了这部分代码

Signature[] s1 = null;
if (obj instanceof SharedUserSetting) {
    s1 = ((SharedUserSetting)obj).signatures.mSignatures;
}
if ((compareSignatures(pkg.mSignatures, s1) == PackageManager.SIGNATURE_MATCH)) {
    Slog.w(TAG, "Cannot install platform packages to user storage");
    mLastScanError = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
    return null;
}
在前面的教程中,我编辑了
compareSignatures()
函数,使其返回
SIGNATURE\u匹配
。但在这段代码中,当函数返回此值时会发生错误

这似乎是一个安全代码添加,以确保系统应用程序将不会安装在“用户存储”。解决我的问题的唯一方法是使错误从不附加(我认为这不是一个大漏洞,但可能是我错了,如果您有更好的解决方案,请告诉我)

所以除了第一个教程之外,我还替换了

invoke-static {v3, v0}, Lcom/android/server/pm/PackageManagerService;->compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I

move-result v3

if-nez v3, :cond_1d1
.line 3715
const-string v3, "PackageManager"
const-string v4, "Cannot install platform packages to user storage"
invoke-static {v3, v4}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I

我以前从未使用过反编译的Java字节码,所以如果我犯了一些错误,请告诉我


希望这会有帮助

你能告诉我更多的细节吗?要修改哪个apk(或jar)?它在哪里?
invoke-static {v3, v0}, Lcom/android/server/pm/PackageManagerService;->compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I

const/4 v3, -0x3

if-nez v3, :cond_1d1
.line 3715
const-string v3, "PackageManager"
const-string v4, "Cannot install platform packages to user storage"
invoke-static {v3, v4}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I