Android 4.1.2权限BROADCAST_SMS

Android 4.1.2 permission BROADCAST_SMS

我一直在尝试实现一个在我的设备上发送和接收假短信的应用程序(Samsung Galaxy S2,Android 4.1.2)。我在这里找到了此类应用程序的示例: http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your
我将其复制粘贴并 运行 在我的设备上。什么都没发生,我在日志中发现 BROADCAST_SMS 权限是系统权限。我使用 Titanium Backup 创建了应用程序系统,重新启动我的设备并再次 运行 应用程序。然后什么也没有发生。我得到了同样的例外,我的应用程序无权使用 BROADCAST_SMS 权限。然后我读到我应该在清单中指定 android:sharedUserId="android.uid.system" 。当我添加它时,我无法使用 Intellij Idea 14 运行 我的应用程序: Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]
我尝试安装由 Idea 应用程序生成但出现异常:Package has no signatures that match those in shared user android.uid.system; ignoring!

所以我有几个问题:
1. 如何在清单中使用 android:sharedUserId="android.uid.system" 安装未签名的应用程序?
2. 如果我使用 Titanium Backup 或其他技巧使我的应用程序成为系统,我的应用程序是否能够使用 BROADCAST_SMS 权限?
3. 有没有其他方法可以强制应用程序在我的设备上运行?

我见过模仿短信传入的应用程序。但他们都直接写信给收件箱。我需要一个让其他应用程序相信新短信即将到来的应用程序。

提前致谢

要使用 shareduserid,您的应用必须与使用此 uid 的所有其他应用具有相同的签名。将应用程序安装在 /system 分区上,甚至给它 priv-app 状态是不够的。

顺便说一句,无论如何权限都是 "signature" 级别(不是 signatureOrSystem),因此您获得权限的唯一方法是您的应用程序使用与 android 框架相同的签名。换句话说,您必须构建一个自定义平台并用它来刷新您的 phone。

如果您 install/build Android 来自 AOSP,测试密钥用于签署所有应用程序。您可以使用此密钥对您的应用程序进行签名并将其安装为系统应用程序。这非常适合测试;显然不会成为您想要分发的东西的选项。