最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

(在那老虎山上)提供:virgl overlay與exagear合體教程v2

2022-03-20 10:13 作者:霸者一方  | 我要投稿
如果不想知道教程,直接跳到278行看使用說明。使用說明,若不看,則不會(huì)用額。

需要準(zhǔn)備的工具有
apktool_m用于反編回編簽名apk。手機(jī)不能使用apktool_m的,自個(gè)想其它辦法,如上電腦用電腦上工具,能正常反編回編的即可。
mt管理器用于修改反編出來后的smali等文件,易操作。
termux用于修改recipe.zip。
需要準(zhǔn)備的素材有:
virgl overlay 0.0.7版本的apk一個(gè)。
exagear模擬器的apk一個(gè)。教程用到的apk是virGLOverlay_suhang2040.apk,共享用戶名為com.suhang.test。其它安兔兔版本和原版模擬器的apk,想合體就依樣畫胡。

下面是教程。
首先,將virgl overlay 和exagear分別反編。需反編譯全部,即將反編譯資源和classes.dex兩個(gè)選項(xiàng)都點(diǎn)上。點(diǎn)上反編譯classes.dex,反編譯后才會(huì)生成smali目錄。點(diǎn)上反編譯資源,反編譯后才會(huì)有values目錄。在這個(gè)教程中動(dòng)不到資源,可以不反編資源,僅僅是個(gè)人習(xí)慣。在本教程中classes.dex是一定要反編出來的。
將exagear的apk反編譯后生成的smali目錄重命名為smali_classes2
將virgloverlay的apk反編譯后生成的smali目錄整個(gè)移進(jìn)exagear的apk反編后生成的目錄下,即與smali_classes2目錄處于同一個(gè)目錄下。即/storage/emulated/0/BaiduNetdisk/我的資源/virGLOverlay_suhang2040_src目錄下。名字保持smali不變。

然后將virgl-overlay-rebuild-v.0.0.7-gen_signed_src/lib/armeabi-v7a/目錄下的libepoxy-lib.so和libvirgl-lib.so兩個(gè)virgl overlay 0.0.7的so移到virGLOverlay_suhang2040_src/lib/armeabi-v7a/目錄下。

移好smali目錄和那兩個(gè)so后,virgl overlay 與exagear合體需要改動(dòng)的文件有:
一,清單文件AndroidManifest.xml。
二,virGLOverlay_suhang2040_src/smali_classes2/com/eltechs/axs/configuration/目錄下的UBTLaunchConfiguration.smali。
三,virGLOverlay_suhang2040_src/smali_classes2/com/ludashi/benchmark/activities/目錄下的EDMainActivity.smali。
四,virGLOverlay_suhang2040_src/smali/com/mittorn/virgloverlay/common/目錄下的overlay.smali。
五,virGLOverlay_suhang2040_src/assets/目錄下的recipe.zip。

關(guān)于清單文件AndroidManifest.xml的修改:
修改前:
                <action
                    android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <service
            android:name="com.eltechs.axs.environmentService.AXSEnvironmentService">
修改后:
                <action
                    android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <service
            android:name="com.mittorn.virgloverlay.process.p1"
            android:exported="true"
            android:process=":p1" />
        <service
            android:name="com.eltechs.axs.environmentService.AXSEnvironmentService">
即在這里插入了virgloverlay那幾行,這幾行來自virgl overlay的清單文件。搜索com.eltechs.axs.environmentService.AXSEnvironmentService能快速定位到此行。


關(guān)于UBTLaunchConfiguration.smali的修改:
修改前:
    invoke-interface {v3, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 138
修改后:
    invoke-interface {v3, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    iget-object v3, p0, Lcom/eltechs/axs/configuration/UBTLaunchConfiguration;->guestEnvironmentVariables:Ljava/util/List;

    const-string v4, "VTEST_SOCK="

    invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 138
即在line 138前面增加了三行,三行如上所示。修改UBTLaunchConfiguration.smali的目的在于免除要先發(fā)送圖標(biāo)到桌面,然后加VTEST_SOCK=來使用virgl overlay的步驟。
搜line 138能快速定位到此行。


關(guān)于EDMainActivity.smali的修改:
修改前:
    .line 76
    invoke-super {p0, p1}, Lcom/eltechs/axs/activities/FrameworkActivity;->onCreate(Landroid/os/Bundle;)V

    const v0, 0x7f0b0035

    .line 78
修改后:
    .line 76
    invoke-super {p0, p1}, Lcom/eltechs/axs/activities/FrameworkActivity;->onCreate(Landroid/os/Bundle;)V

    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    const-string v1, "com.mittorn.virgloverlay.process.p1"

    invoke-virtual {v0, p0, v1}, Landroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/mittorn/virgloverlay/MainActivity;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    const v0, 0x7f0b0035

    .line 78
即增加了virgl overlay 的p1進(jìn)程。搜line 76能快速定位到此行。此處是打開模擬器即啟動(dòng)virgl服務(wù),若要與turnip版本合體,就不要修改此處。最后在# virtual methods
的后面加上virgl服務(wù)的開啟和關(guān)閉,EDMainActivity.smali就修改完成。增加的內(nèi)容如下:
.method public onClickClean(Landroid/view/View;)V
    .locals 3

    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    const-string v1, "com.mittorn.virgloverlay.process.p1"

    invoke-virtual {v0, p0, v1}, Landroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/ludashi/benchmark/activities/EDMainActivity;->stopService(Landroid/content/Intent;)Z

    return-void
.end method

.method public onClickStart(Landroid/view/View;)V
    .locals 11

    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    const-string v1, "com.mittorn.virgloverlay.process.p1"

    invoke-virtual {v0, p0, v1}, Landroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/ludashi/benchmark/activities/EDMainActivity;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    return-void
.end method


關(guān)于overlay.smali的修改:
overlay.smali這個(gè)文件,需要修改三處。
用mt管理器搜索settings,能找到這三處的具體位置。
第一處
修改前:
    move-result-object v0

    const-string v1, "/layout_settings"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
修改后:
    move-result-object v0

    const-string v1, "/image/opt/recipe/layout_settings"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

第二處
修改前:
    move-result-object p0

    const-string v0, "/settings"

    invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
修改后:
    move-result-object p0

    const-string v0, "/image/opt/recipe/settings"

    invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

第三處
修改前:
    move-result-object v0

    const-string v1, "/hack_settings"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
修改后:
    move-result-object v0

    const-string v1, "/image/opt/virgl/hack_settings"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
即將搜索settings搜到的/layout_settings,/settings,/hack_settings,前面都加上/image/opt/recipe。/hack_settings,前面加上/image/opt/virgl。


關(guān)于recipe.zip的修改:
打開termux。pkg update換源國(guó)內(nèi)源之類的基本使用就不講了。
pkg install zip unzip nano -y。需要用unzip和zip命令對(duì)recipe.zip進(jìn)行解壓和打包。需要用nano進(jìn)行修改。
將recipe.zip放到手機(jī)存儲(chǔ)根目錄。
termux需要在手機(jī)設(shè)置里給存儲(chǔ)權(quán)限。
在termux的~目錄,隨意新建個(gè)目錄如ok。
cd ~
mkdir ok
cd ok
unzip /sdcard/recipe.zip
nano layout_settings
填入數(shù)字1,保存。
nano settings
填入數(shù)字20,保存。
nano hack_settings
填入數(shù)字0 0 0 0 0 ,保存。
nano hack_settings_dxtn
填入數(shù)字0 0 0 0 1 ,保存。數(shù)字之間用空格隔開,4個(gè)0,1后面還有一個(gè)空格。
nano ed.conf
填入:
pulse=0
hud=0
dxtn=0
保存ed.conf
nano run/simple.sh
填入:
#!/bin/bash

. /opt/recipe/util/progress.sh

if [ "$(locale -a | grep $LC_ALL)" != "$LC_ALL" ]; then
    progress "-1" "Generating locale..."
    locale-gen --no-archive $LC_ALL
fi

progress "-1" "Launching application..."
export PATH
export TERM
export LD_PRELOAD=/opt/recipe/run/hardlink_to_symlink.so
/opt/recipe/run/sshd &

ed=/storage/emulated/0/Exagear/ed
virgl=/opt/virgl

if [ ! -f $ed/ed.conf ]; then
mkdir -p $ed
cp /opt/recipe/ed.conf $ed/ed.conf
fi

if [ ! -f $virgl/hack_settings ]; then
mkdir -p $virgl
cp /opt/recipe/hack_settings $virgl/hack_settings
fi

. $ed/ed.conf



if [ "${pulse}" = "1" ]; then
export PULSE_SERVER="tcp:127.0.0.1"
fi

if [ "${hud}" = "1" ]; then
export GALLIUM_HUD="simple,fps"
fi

if [ "${dxtn}" = "0" ]; then
cp /opt/recipe/hack_settings $virgl/hack_settings
fi

if [ "${dxtn}" = "1" ]; then
cp /opt/recipe/hack_settings_dxtn $virgl/hack_settings
fi

progress "-1" "Pulse=${pulse}/Hud=${hud}/DXTn=${dxtn}"

eval "$@"
保存run/simple.sh。注意改的是run目錄下的simple.sh。
chmod 777 -R *
給所有文件加上777的權(quán)限。
rm /sdcard/recipe.zip
刪除放在手機(jī)存儲(chǔ)根目錄的recipe.zip。
zip --symlinks -r /sdcard/recipe.zip .
zip命令打包修改好的recipe.zip。注意上面的打包命令recipe.zip后面接一個(gè)空格然后是一個(gè)英文的符號(hào)點(diǎn)。生成的新recipe.zip即在手機(jī)存儲(chǔ)根目錄。
將改好的recipe.zip放入virGLOverlay_suhang2040_src/assets/目錄下。
然后apktool_m回編,合體完成。

其它:將virgl overlay 0.0.7與exagear合體。
跟將virgl overlay 0.0.1與exagear合體的主要不同之處在于:
virgl overlay 0.0.1的so只有一個(gè)libnative-lib.so。0.0.7版本有兩個(gè)。
0.0.7的overlay.smali有三處地方需要修改,多一個(gè)/hack_settings需要修改。
overlay.smali用aktool_m轉(zhuǎn)成java模式,可以看出與0.0.1的差異。
0.0.7的overlay.smali不僅加載的so變了,還多了一個(gè)/hack_settings判斷語(yǔ)句。recipe.zip處也要多加一個(gè)hack_settings的文件,并寫入0 0 0 0 1 。
以上差異就是是否能夠成功將virgl overlay 0.0.7與exagear合體的主要要點(diǎn)。
用0.0.1合體的方法原封不變則會(huì)合體失敗。需要稍微調(diào)整下。

virgl overlay 0.0.7與exagear合體的教程v2完。
virGLOverlay_suhang2040_007_v2.apk為合體好后的apk。

v2版使用說明:
手機(jī)存儲(chǔ)根目錄/Exagear/ed/ed.conf這個(gè)文件中,0是關(guān),1是開。
pulse=1#打開pulseaudio。pulseaudio服務(wù)端要用termux的。如上面的教程所示,export PULSE_SERVER="tcp:127.0.0.1"。寫的是127.0.0.1。xdsdl是用export PULSE_SERVER="tcp:127.0.0.1:4713"的。
hud=1#打開mesa的幀數(shù)顯示。但是,經(jīng)測(cè)試,virgl overlay 0.0.7不能正常開hud,會(huì)導(dǎo)致茶壺不會(huì)動(dòng),游戲黑屏有聲等問題,要保持hud關(guān)閉,即設(shè)為0。
dxtn=1#打開virgl overlay 0.0.7版本的DXTn選項(xiàng)。
只有apk,沒有數(shù)據(jù)包,自備即可,建議使用前官方eltechs的wine30,mesa用GFOXSH的1830。

v2版更新說明:
v2版本可以在不關(guān)閉模擬器的情況下,開啟和關(guān)閉virgl服務(wù)。
可以通過ed.conf開關(guān)DXTn。
你在開啟和關(guān)閉virgl服務(wù)的上面看到的那些設(shè)置選項(xiàng)是沒用的。只是添加上了菜單,因?yàn)橐恍﹋ava沖突的問題,尚不可用。

最后:
若未能解決添加的那些設(shè)置選項(xiàng)無效的問題。則不再更新。
如何添加的這些菜單,未寫在上面的教程中,因?yàn)閷懫饋頃?huì)教程較長(zhǎng),且尚未成功。
virgl-overlay-rebuild-v.0.0.7-gen_signed.apk為A大神發(fā)布的原版apk,共享用戶名為com.test.test。
virgl-overlay-rebuild-v.0.0.7-gen_signed_mcat.apk共享用戶名為com.mact。
virgl-overlay-rebuild-v.0.0.7-gen_signed_suhang.apk共享用戶名為com.suhang.test。
均為默認(rèn)的apk簽名。
分別搭配同共享用戶名和同應(yīng)用簽名的模擬器的apk使用。


(在那老虎山上)提供:virgl overlay與exagear合體教程v2的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
九江市| 章丘市| 曲阜市| 彭阳县| 南木林县| 保康县| 新郑市| 呈贡县| 当阳市| 拉孜县| 天全县| 稻城县| 陆良县| 应城市| 卫辉市| 洞口县| 洪雅县| 尤溪县| 武义县| 双城市| 沙湾县| 息烽县| 开平市| 日照市| 平阳县| 西城区| 腾冲县| 庐江县| 军事| 景洪市| 夏津县| 卢龙县| 江口县| 樟树市| 刚察县| 宜阳县| 克山县| 荔波县| 石楼县| 南川市| 河北区|