我有一个应用程序,它使用清单
中的以下标记在单独的进程中运行活动android:process=:newProcess
我使用Service类来允许两个进程进行通信。现在我想启用某种访问控制,以便只有SPECIFIC活动可以绑定并使用该服务。 这样的事情可能吗?
我需要这个,因为我正在开发SDK,我想让SDK的用户难以对其进行反向工程。我不希望他们能够绑定到我的服务并访问我的服务所使用的数据。
一个选项是传递一个字符串作为intent中的键,并且服务的onBind方法可以验证密钥并且只允许正确绑定,但是sdk的用户可以只看到这个键(因为字符串不会被专业保护人员混淆)并自己传递密钥并能够绑定到服务。
答案 0 :(得分:0)
我想到的一种可能的方法是,每次为操作调用SDK时都会生成一个UUID。该UUID只能在SDK的范围内访问,因此用户无法处理它。 这个uuid将是我的密钥,我将通过意图传递,并且只有这个uuid匹配将允许服务绑定。 这样可以确保只有具有uuid访问权限的类才能绑定到我的服务,并且每次调用SDK时uuid都会重新生成。
我目前没有预见到任何问题,但我可能错过了一些东西。