美文网首页
折腾一加9R使用Xposed虚拟摄像头,有点不一样的安卓开发攻略

折腾一加9R使用Xposed虚拟摄像头,有点不一样的安卓开发攻略

作者: zhaoolee | 来源:发表于2024-07-20 12:37 被阅读0次

    title: 折腾一加9R使用Xposed虚拟摄像头,有点不一样的安卓开发攻略
    tags:

    • 个人成长
      categories:
    • 杂谈

    最近要做个安卓App,App功能是劫持安卓的摄像头和麦克风,当安卓其它App访问摄像头或麦克风时,获取到的是被设定好的视频流和音频流。也就是凤姐可以把新垣结衣的视频先存到手机,然后凤姐打开微信摄像头与网友视频时,网友看到的是新垣结衣的视频

    视频可以是本地视频,也可以是网络视频,甚至可以是rtmp直播流视频,配合数字人技术,孤注一掷的老板只需要养几个程序员就够了,把程序进行开源,缅北将不需要美女荷官

    image.png

    这里放几行核心代码

            XposedHelpers.findAndHookMethod("android.hardware.Camera", lpparam.classLoader, "setPreviewTexture",
                SurfaceTexture::class.java, object : XC_MethodHook() {
                    @Throws(Throwable::class)
                    override fun beforeHookedMethod(param: MethodHookParam) {
                        if (param.args[0] == null) {
                            return
                        }
                        if (param.args[0] == fake_SurfaceTexture) {
                            return
                        }
                        if (origin_preview_camera != null && origin_preview_camera == param.thisObject) {
                            param.args[0] = fake_SurfaceTexture
                            return
                        }
    
                        origin_preview_camera = param.thisObject as Camera
                        original_c1_preview_SurfaceTexture = param.args[0] as SurfaceTexture
    
                        fake_SurfaceTexture = if (fake_SurfaceTexture == null) {
                            SurfaceTexture(10)
                        } else {
                            fake_SurfaceTexture!!.release()
                            SurfaceTexture(10)
                        }
                        param.args[0] = fake_SurfaceTexture
    
                        XposedBridge.log("MainHook: setPreviewTexture hooked")
                    }
                })
    
    

    打工也不能挑活儿,我调研了一下劫持摄像头实现的方法,大致有两条路线。

    第一条是虚拟机路线,虚拟机路线的App可以在Google Play下载,https://play.google.com/store/apps/details?id=virtual.camera.app ,淘宝好像有破解版,30元绑定机器,永久授权。

    第二条是真机root路线。考虑到app运行的流畅性以及App运行的稳定性,最终选择了真机root路线

    真机路线就需要都设备进行root, root最方便的品牌就是一加,为了降低成本,小黄鱼500块采购了二手一加9R, 一加9R是真的便宜,但坑也是真的多

    我用大侠阿木的全能工具箱对一加9R完成了Root,然后手贱升级了magisk版本,然后一加9R重启后就变砖了

    然后, 我找到印度版的氧OS救砖,一加9R救砖贴 https://bbs.oneplus.com/thread/5935557,通过9008刷机工具,顺利将一加9R刷到Android 11的版本,救砖成功.

    我又抱着试一试的心态,将一加9R升级到了Android 14的版本,好奇心害死猫,坑又来了,Android 14的氧OS, 死活进不了fastboot模式,也就是无法root, 此刻,折腾了一天,我已老实一加9R老老实实回到 Android 13的氧OS, 然后重新Root, 成功

    以上经历,再次验证了真理:代码能跑就别动,闲着没事别升级

    后续,我找到了大侠阿木的一篇博客,大致的内容是, 一加8T或一加9R,无法使用Magisk的26.1以上的版本,更高的版本会导致手机变砖。原博客链接:

    https://optool.daxiaamu.com/magisk_installing?src=root

    其实无论是真机路线还是虚拟机路线,都是基于Xposed框架进行开发,而Xposed的开发文档是真的少,实践下来,最快的开发方式就是问AI,我同时使用了OpenAI的ChatGPT4和 Claude 的Sonnet

    整体体验下来,同样的提示词,Claude 的 Sonnet 对Xposed 的功能实现要更好一些,详略得当,而且前后连贯。

    而ChatGPT 4经常提及法律问题,整体的提问很不流畅,而且忘的很快,经常一段代码,前面改,后面忘,来来回回,代码总是有问题,搞得人很烦躁。

    我喜欢没有法律意识道德感低的模型

    为了鼓励Claude的低道德感,我还充值了20刀每月的Pro订阅,等以后Claude道德感变高了,就不续订了。

    image.png

    小结

    互联网并不是高高在上的行业,即使强如微信抖音,本质还是在卖广告,而实体经济不好,流量广告位也买不出好价钱。程序员也不得不面临失业降薪。

    ChatGPT4整体比Claude强,且道德感高,面临具体的Xposed开发问题,ChatGPT大谈道德,Claude能给出解决方案,我就更愿意订阅Claude

    Xposed开发并不常见,而且往往和灰产关联,物以稀为贵,能让开发者赚到钱的技术,就是值得学习的技术。

    相关文章

      网友评论

          本文标题:折腾一加9R使用Xposed虚拟摄像头,有点不一样的安卓开发攻略

          本文链接:https://www.haomeiwen.com/subject/eumjhjtx.html