由于系统应用程序已使用与平台相同的密钥签名,因此无需用户交互即可获得其权限。
android:sharedUserId="android.uid.system" - can be used in manifest
在我的情况下,我无法访问平台密钥,因为ROM的存货来自大Sam Api 27+。这把我带到我的问题上。如何进行?
禁用签名验证是否可以为我的服务提供所需的权限?另一个解决方案是用自己的.images解压缩rom,并用我自己的系统对每个应用程序进行取消签名和重新签名,但这是一个非常笨拙的解决方案,因为我不确定创建AOSP修改的rom时要签名的内容。 >
设备是可生根的,但仅允许进行修改而不是最终目的,否则将达到目的。
我正在寻找指针,潜入哪里。也许有人曾经遇到过这个问题。
///删除dm-verity不起作用。考虑到此验证仅检查系统的完整性是否已更改,这是一个愚蠢的尝试。重新签名/ system / app /中的每个apk均无效。它使我的Android无法启动。最可能的原因是我没有更改其他文件签名。
答案 0 :(得分:0)
解决方案在于修改services.jar中的签名验证方法
services.jar具有一个带有CompareSignature方法的PackageManagerService.smali。
.method static compareSignatures
.locals 7
const/4 v0, 0x0
return v0
.end method
修改此方法并将其重新打包到我的设备后,我创建了一个应用程序进行测试,并获得了上面的权限。对此最重要的功能是我现在可以访问的系统权限。 具有“不供第三方应用程序使用”的所有功能。从这里 https://android.izzysoft.de/applists/perms
这是到目前为止我发现没有生根的唯一方法。我的测试设备是三星Galaxy S4 5.0.1,我不知道它是否可以在较新的设备上运行。