Closed Moderpach closed 2 years ago
Refine.unsafeCast<SurfaceControlHidden>(context.packageManager)
You are casting context.packageManager
(android.content.pm.PackageManager
) to android.view.SurfaceControl
which is obviously wrong.
Method getInternalDisplayToken is a static method, so correct your stub class and call SurfaceControlHidden.getInternalDisplayToken
directly.
很抱歉又来叨扰您了。
如果我直接调用SurfaceControlHidden.getInternalDisplayToken
会出现错误
java.lang.NoSuchMethodError: No static method getInternalDisplayToken()Landroid/os/IBinder; in class Landroid/view/SurfaceControl; or its super classes (declaration of 'android.view.SurfaceControl' appears in /system/framework/framework.jar!classes3.dex)
我对此毫无头绪,请问如何解决。
另外是只要获取了Shizuku权限就可以只通过HiddenApiRefinePlugin中的方法就可以直接访问到Hidden-API了吗?还是要继续使用Shizuku-API里的"Using Shizuku APIs: Remote binder call"中的方法。
很抱歉又来叨扰您了。 如果我直接调用
SurfaceControlHidden.getInternalDisplayToken
会出现错误java.lang.NoSuchMethodError: No static method getInternalDisplayToken()Landroid/os/IBinder; in class Landroid/view/SurfaceControl; or its super classes (declaration of 'android.view.SurfaceControl' appears in /system/framework/framework.jar!classes3.dex)
我对此毫无头绪,请问如何解决。另外是只要获取了Shizuku权限就可以只通过HiddenApiRefinePlugin中的方法就可以直接访问到Hidden-API了吗?还是要继续使用Shizuku-API里的"Using Shizuku APIs: Remote binder call"中的方法。
这个 API 可能是受到 Android 非 SDK API 限制
你有在使用绕过该限制的库吗 类似 AndroidHiddenApiBypass
@Kr328 非常感谢,通过 https://github.com/LSPosed/AndroidHiddenApiBypass 我已经可以调用到API。 但是像 SurfaceControl.setDisplayBrightness()等这些设定类的方法,调用他们并没有任何作用,请问android是对这些方法有什么限制吗?
@Kr328 非常感谢,通过 https://github.com/LSPosed/AndroidHiddenApiBypass 我已经可以调用到API。 但是像 SurfaceControl.setDisplayBrightness()等这些设定类的方法,调用他们并没有任何作用,请问android是对这些方法有什么限制吗?
这类操作一般仅有系统进程或者特权应用拥有权限访问
你可以使用 Sui 和 Shizuku 来在特权进程下调用 API
具体可以在这俩仓库的 README.md 了解如何使用
在使用时可能会需要了解 API 的具体逻辑 可以使用 Code Search 阅读源代码
再具体的我无法提供帮助
Binder 是 Client/Server 的结构,SurfaceControl.setDisplayBrightness()
是客户端,所以要自己找服务端的实现来看有什么权限检查。
I want to call a hidden api in android.view.SurfaceControl. So I call this in my app module.
And my "hidden-api" module is like
But when the app actually call the hidden api, it causes
Did I make a mistake somewhere? Please help point it out. Thank you very much.