需要文件:https://www.123684.com/s/lJz7Vv-M0r2A
1、修改AndroidManifest.xml,加入终端新页面的申明
2、修改resources.arsc ,添加简陋终端菜单的id
id/id结尾添加
id/type-info结尾添加,注意id=后的值不要照抄,
是上一个id+1,因为是16进制的0-f,最大是f
复制并记住menu_item_termux的id值
3、修改res/menu/main_menu.xml,主界面菜单添加简陋终端
选项
4、修改classes.dex,DEX编辑器++
打开以后长按com,导入smali.zip,这个就是终端页面
打开com/winlator/MainActivity的onNavigationItemSelected方法
结尾类似下面,可能不一样
.sparse-switch
0x7f0901a3 -> :sswitch_5a
0x7f0901a7 -> :sswitch_43
0x7f0901b3 -> :sswitch_38
0x7f0901c0 -> :sswitch_2f
0x7f0901c1 -> :sswitch_19
.end sparse-switch
根据自己的menu_item_termux id值添加,sswitch_后面数不要和
上面的重复,比如sswitch_10
.sparse-switch
0x7f0901a3 -> :sswitch_5a
0x7f0901a7 -> :sswitch_43
0x7f0901b3 -> :sswitch_38
0x7f0901c0 -> :sswitch_2f
0x7f0901c1 -> :sswitch_19
0x7f090294 -> :sswitch_10
.end sparse-switch
往上翻一点找到这段代码
goto :goto_5d
.line 193
:sswitch_38
new-instance v1, Lcom/winlator/InputControlsFragment;
iget v3, p0, Lcom/winlator/MainActivity;->selectedProfileId:I
invoke-direct {v1, v3}, Lcom/winlator/InputControlsFragment;->
invoke-virtual {p0, v1}, Lcom/winlator/MainActivity;->showFragment(Landroidx/fragment/app/Fragment;)V
在这段代码前面添加下面代码,注意goto :goto_这后面的数学
注意sswitch_的数字
goto :goto_38
:sswitch_10
new-instance v1, Landroid/content/Intent;
const-class v3, Lcom/winlator/TerminalActivity;
invoke-direct {v1, p0, v3}, Landroid/content/Intent;->
invoke-virtual {p0, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V