如何看待 supersu v2.80 正式版加入大量敏感权限?

2017-05-25 10:12:48 +08:00
 Epsilon
在 5 月 24 日更新的 supersu v2.80 正式版中,新加入了读取位置信息和手机状态和身份等多项敏感权限,不知各位看法如何?
19044 次点击
所在节点    Android
69 条回复
wangxn
2017-05-25 18:10:10 +08:00
@kamen 都能卖掉软件了,何谈信任?
chinni
2017-05-26 10:22:34 +08:00
@LuvF 是的.
Khlieb
2017-05-26 13:14:03 +08:00
SuperSU 已经姓赵了
asdwddd
2017-05-26 15:35:33 +08:00
请问 SuperSU-v2.79-201612051815 这个版本安全么?
之前一直用的 2.76
升级到安卓 7.0 后发现 2.76 刷入会有问题!
asdwddd
2017-05-26 15:43:13 +08:00
@honeycomb 请问安卓 7.0 上 用 appops 禁用掉了爱奇艺获取手机号,但是直接启动爱奇艺 提示获取手机号,禁用就强制退出,那么选择允许,但是 appops 禁用的,这样爱奇艺就获取不到用户的个人信息了吧

7.0 不支持 xprivacy 准备刷回去
honeycomb
2017-05-26 20:06:47 +08:00
@asdwddd

"用 appops 禁用掉了爱奇艺获取手机号,但是直接启动爱奇艺 提示获取手机号,禁用就强制退出,那么选择允许"

这么做的结果是:
Runtime Permission 层面,爱奇艺获得了电话权限,调用 TelephonyManager.getDeviceId()不会直接抛出 SecurityExcaption。

AppOps 层面,爱奇艺没有在调用受这个 OP 管辖的 API(TelephonyManager.getDeviceId())时,返回 null

即爱奇艺不能从这个 API 获取信息

AppOps 具体怎么在这个函数里工作,看源代码
https://android.googlesource.com/platform/frameworks/opt/telephony/+/9eafe27e7974e38a45ba387c03332653c1ecf7dd/src/java/com/android/internal/telephony/PhoneSubInfo.java

public String getDeviceId(String callingPackage) {
if (!checkReadPhoneState(callingPackage, "Requires READ_PHONE_STATE")) {
return null;
}
return mPhone.getDeviceId();
}

private boolean checkReadPhoneState(String callingPackage, String message) {
//--->运行时权限在这里,这关过不了则抛出 SerurityException
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.READ_PHONE_STATE, message);

//--->AppOps 管这里,不等于 AppOpsManager.MODE_ALLOWED 则返回 null
return mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
callingPackage) == AppOpsManager.MODE_ALLOWED;
}


https://developer.android.com/reference/android/content/Context.html#enforceCallingOrSelfPermission(java.lang.String, java.lang.String)
asdwddd
2017-05-27 15:58:56 +08:00
@honeycomb 多谢解答,这么说安卓 7.0 xprivacy 可以用 appops 代替了? 是不是还是没有 xprivacy 强大吧
honeycomb
2017-05-27 17:18:47 +08:00
@asdwddd

AppOps 的职责有三个:
1,处理运行时权限机制下,优雅地应对旧版应用。这里所谓的优雅就是返回 null
我们用 AppOps 对付流氓软件实际上就是依靠这一点

2,有一些用户可选的非运行时权限实际上就是 AppOps(比如修改"系统设定"等,注:这里的系统设定是专指 android.provider.Settings.System 对应的内容)

3,AppOps 的 RUN_IN_BACKGROUND 也是这次 Android O 新增的后台限制的开关,目前的第二预览版的 UI 允许用户对旧应用开启该限制。

功能上肯定是 Xprivacy 强得多,可以直接看源码做对比
实际上 Xprivacy 的界面就会明确告诉你它会劫持掉哪些 API
cskeleton
2017-06-12 00:50:53 +08:00
@AsherG 然而 Play 版的微信依然是不给权限不让用的节奏~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX