title: 折騰一加9R使用Xposed虛擬攝像頭,有點不一樣的安卓開發(fā)攻略
tags:
- 個人成長
categories: - 雜談
最近要做個安卓App装哆,App功能是劫持安卓的攝像頭和麥克風(fēng)顺献,當(dāng)安卓其它App訪問攝像頭或麥克風(fēng)時旗国,獲取到的是被設(shè)定好的視頻流和音頻流。也就是鳳姐可以把新垣結(jié)衣的視頻先存到手機注整,然后鳳姐打開微信攝像頭與網(wǎng)友視頻時能曾,網(wǎng)友看到的是新垣結(jié)衣的視頻。
視頻可以是本地視頻肿轨,也可以是網(wǎng)絡(luò)視頻寿冕,甚至可以是rtmp直播流視頻,配合數(shù)字人技術(shù)椒袍,孤注一擲的老板只需要養(yǎng)幾個程序員就夠了驼唱,把程序進行開源,緬北將不需要美女荷官槐沼。
這里放幾行核心代碼
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")
}
})
打工也不能挑活兒曙蒸,我調(diào)研了一下劫持攝像頭實現(xiàn)的方法,大致有兩條路線岗钩。
第一條是虛擬機路線纽窟,虛擬機路線的App可以在Google Play下載,https://play.google.com/store/apps/details?id=virtual.camera.app 兼吓,淘寶好像有破解版臂港,30元綁定機器,永久授權(quán)。
第二條是真機root路線审孽。考慮到app運行的流暢性以及App運行的穩(wěn)定性县袱,最終選擇了真機root路線。
真機路線就需要都設(shè)備進行root, root最方便的品牌就是一加佑力,為了降低成本式散,小黃魚500塊采購了二手一加9R, 一加9R是真的便宜,但坑也是真的多打颤。
我用大俠阿木的全能工具箱對一加9R完成了Root暴拄,然后手賤升級了magisk版本,然后一加9R重啟后就變磚了编饺!
然后, 我找到印度版的氧OS救磚乖篷,一加9R救磚貼 https://bbs.oneplus.com/thread/5935557,通過9008刷機工具透且,順利將一加9R刷到Android 11的版本撕蔼,救磚成功.
我又抱著試一試的心態(tài),將一加9R升級到了Android 14的版本秽誊,好奇心害死貓鲸沮,坑又來了,Android 14的氧OS, 死活進不了fastboot模式养距,也就是無法root, 此刻诉探,折騰了一天,我已老實棍厌,一加9R老老實實回到 Android 13的氧OS, 然后重新Root, 成功!
以上經(jīng)歷竖席,再次驗證了真理:代碼能跑就別動耘纱,閑著沒事別升級。
后續(xù)毕荐,我找到了大俠阿木的一篇博客束析,大致的內(nèi)容是, 一加8T或一加9R,無法使用Magisk的26.1以上的版本憎亚,更高的版本會導(dǎo)致手機變磚员寇。原博客鏈接:
https://optool.daxiaamu.com/magisk_installing?src=root
其實無論是真機路線還是虛擬機路線,都是基于Xposed框架進行開發(fā)第美,而Xposed的開發(fā)文檔是真的少蝶锋,實踐下來,最快的開發(fā)方式就是問AI什往,我同時使用了OpenAI的ChatGPT4和 Claude 的Sonnet
整體體驗下來扳缕,同樣的提示詞,Claude 的 Sonnet 對Xposed 的功能實現(xiàn)要更好一些,詳略得當(dāng)躯舔,而且前后連貫驴剔。
而ChatGPT 4經(jīng)常提及法律問題,整體的提問很不流暢粥庄,而且忘的很快丧失,經(jīng)常一段代碼,前面改惜互,后面忘利花,來來回回,代碼總是有問題载佳,搞得人很煩躁炒事。
我喜歡沒有法律意識道德感低的模型
為了鼓勵Claude的低道德感,我還充值了20刀每月的Pro訂閱蔫慧,等以后Claude道德感變高了挠乳,就不續(xù)訂了。
小結(jié)
互聯(lián)網(wǎng)并不是高高在上的行業(yè)姑躲,即使強如微信抖音睡扬,本質(zhì)還是在賣廣告,而實體經(jīng)濟不好黍析,流量廣告位也買不出好價錢卖怜。程序員也不得不面臨失業(yè)降薪。
ChatGPT4整體比Claude強阐枣,且道德感高马靠,面臨具體的Xposed開發(fā)問題,ChatGPT大談道德蔼两,Claude能給出解決方案甩鳄,我就更愿意訂閱Claude
Xposed開發(fā)并不常見,而且往往和灰產(chǎn)關(guān)聯(lián)额划,物以稀為貴妙啃,能讓開發(fā)者賺到錢的技術(shù),就是值得學(xué)習(xí)的技術(shù)俊戳。