mirror of
https://github.com/xoureldeen/Vectras-VM-Android.git
synced 2026-05-22 03:19:23 +00:00
commit
ce1890a742
11 changed files with 61 additions and 29 deletions
|
|
@ -12,7 +12,7 @@ android {
|
|||
minSdk minApi
|
||||
targetSdk targetApi
|
||||
versionCode 21
|
||||
versionName "v2.9.5-3dfx-bread"
|
||||
versionName "v2.9.5-3dfx-churro"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -573,6 +573,11 @@ public class MainSettingsManager extends AppCompatActivity
|
|||
return prefs.getBoolean("customMemory", false);
|
||||
}
|
||||
|
||||
public static boolean autoCreateDisk(Activity activity) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||
return prefs.getBoolean("autoCreateDisk", true);
|
||||
}
|
||||
|
||||
public static boolean useDefaultBios(Activity activity) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||
return prefs.getBoolean("useDefaultBios", true);
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ import java.util.zip.ZipEntry;
|
|||
import java.util.zip.ZipInputStream;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.vectras.vterm.Terminal;
|
||||
|
||||
public class CustomRomActivity extends AppCompatActivity {
|
||||
|
||||
|
|
@ -528,6 +529,13 @@ public class CustomRomActivity extends AppCompatActivity {
|
|||
} else {
|
||||
title.setText("New VM");
|
||||
setDefault();
|
||||
if (MainSettingsManager.autoCreateDisk(CustomRomActivity.this)) {
|
||||
File myDir = new File(AppConfig.vmFolder + vmID);
|
||||
myDir.mkdirs();
|
||||
Terminal vterm = new Terminal(CustomRomActivity.this);
|
||||
vterm.executeShellCommand2("qemu-img create -f qcow2 " + AppConfig.vmFolder + vmID + "/disk.qcow2 128G", false, CustomRomActivity.this);
|
||||
drive.setText(AppConfig.vmFolder + vmID + "/disk.qcow2");
|
||||
}
|
||||
}
|
||||
}
|
||||
VectrasApp.prepareDataForAppConfig(activity);
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ public class AdapterMainRoms extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
com.vectras.vm.CustomRomActivity.current = data.get(position);
|
||||
VMManager.setArch(current.itemArch, MainActivity.activity);
|
||||
MainActivity.activity.startActivity(new Intent(MainActivity.activity, CustomRomActivity.class).putExtra("POS", position).putExtra("MODIFY", true).putExtra("VMID", current.vmID));
|
||||
bottomSheetDialog.cancel();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class MainService extends Service {
|
|||
String filesDir = MainActivity.activity.getFilesDir().getAbsolutePath();
|
||||
Terminal vterm = new Terminal(this);
|
||||
vterm.executeShellCommand2("dwm", false, MainActivity.activity);
|
||||
vterm.executeShellCommand2(env, false, MainActivity.activity);
|
||||
vterm.executeShellCommand2(env, true, MainActivity.activity);
|
||||
}
|
||||
} else
|
||||
Log.e(TAG, "env is null");
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class StartVM {
|
|||
String ifType;
|
||||
ifType= MainSettingsManager.getIfType(activity);
|
||||
|
||||
String cdrom;
|
||||
String cdrom = "";
|
||||
String hdd0;
|
||||
String hdd1;
|
||||
|
||||
|
|
@ -74,10 +74,10 @@ public class StartVM {
|
|||
|
||||
if (cdromFile.exists()) {
|
||||
if (MainSettingsManager.getArch(activity).equals("ARM64")) {
|
||||
cdrom = "-device";
|
||||
cdrom += " usb-storage,drive=cdrom";
|
||||
cdrom += " -drive";
|
||||
cdrom = " -drive";
|
||||
cdrom += " if=none,id=cdrom,format=raw,media=cdrom,file='" + cdromFile.getPath() + "'";
|
||||
cdrom += "-device";
|
||||
cdrom += " usb-storage,drive=cdrom";
|
||||
if (!extras.contains("-device nec-usb-xhci")) {
|
||||
cdrom += " -device";
|
||||
cdrom += " qemu-xhci";
|
||||
|
|
@ -100,16 +100,12 @@ public class StartVM {
|
|||
}
|
||||
} else {
|
||||
if (MainSettingsManager.getArch(activity).equals("ARM64")) {
|
||||
cdrom = "-device";
|
||||
cdrom += " usb-storage,drive=cdrom";
|
||||
cdrom += " -device";
|
||||
cdrom += " nec-usb-xhci,id=defaultxhci";
|
||||
cdrom += " -device";
|
||||
cdrom += " usb-storage,bus=defaultxhci.0,drive=cdrom";
|
||||
cdrom += " -drive";
|
||||
cdrom += " if=none,id=cdrom,format=raw,media=cdrom,file='" + cdrompath + "'";
|
||||
if (!extras.contains("-device nec-usb-xhci")) {
|
||||
cdrom += " -device";
|
||||
cdrom += " qemu-xhci";
|
||||
cdrom += " -device";
|
||||
cdrom += " nec-usb-xhci";
|
||||
}
|
||||
} else {
|
||||
if (ifType.isEmpty()) {
|
||||
cdrom = "-cdrom";
|
||||
|
|
@ -177,23 +173,23 @@ public class StartVM {
|
|||
bios = "-L ";
|
||||
bios += "pc-bios";
|
||||
} else if (MainSettingsManager.getArch(activity).equals("ARM64")) {
|
||||
bios = "-pflash ";
|
||||
bios += AppConfig.basefiledir + "QEMU_EFI.img";
|
||||
bios += " -pflash ";
|
||||
bios += AppConfig.basefiledir + "QEMU_VARS.img";
|
||||
bios = "-drive ";
|
||||
bios += "file=" + AppConfig.basefiledir + "QEMU_EFI.img,format=raw,readonly=on,if=pflash";
|
||||
bios += " -drive ";
|
||||
bios += "file=" + AppConfig.basefiledir + "QEMU_VARS.img,format=raw,if=pflash";
|
||||
} else {
|
||||
bios = "-bios ";
|
||||
bios += AppConfig.basefiledir + "bios-vectras.bin";
|
||||
}
|
||||
}
|
||||
|
||||
String machine = "-M ";
|
||||
if (Objects.equals(MainSettingsManager.getArch(activity), "X86_64")) {
|
||||
machine += "pc";
|
||||
params.add(machine);
|
||||
} else if (Objects.equals(MainSettingsManager.getArch(activity), "ARM64")) {
|
||||
machine += "virt";
|
||||
params.add(machine);
|
||||
}
|
||||
String machine = "-M ";
|
||||
if (Objects.equals(MainSettingsManager.getArch(activity), "X86_64")) {
|
||||
machine += "pc";
|
||||
params.add(machine);
|
||||
} else if (Objects.equals(MainSettingsManager.getArch(activity), "ARM64")) {
|
||||
machine += "virt";
|
||||
params.add(machine);
|
||||
}
|
||||
|
||||
if (MainSettingsManager.useMemoryOvercommit(MainActivity.activity)) {
|
||||
|
|
|
|||
|
|
@ -519,8 +519,10 @@ public class VMManager {
|
|||
}
|
||||
|
||||
public static boolean isExecutedCommandError(String _command, String _result, Activity _activity) {
|
||||
if (!_command.contains("qemu-system") || _result.contains("Killed"))
|
||||
if (!_command.contains("qemu-system"))
|
||||
return false;
|
||||
if (_command.contains("qemu-system") && _result.contains("Killed"))
|
||||
return true;
|
||||
//Error code: PROOT_IS_MISSING_0
|
||||
if (_result.contains("proot\": error=2,")) {
|
||||
AlertDialog alertDialog = new AlertDialog.Builder(_activity, R.style.MainDialogTheme).create();
|
||||
|
|
@ -569,6 +571,11 @@ public class VMManager {
|
|||
});
|
||||
alertDialog.show();
|
||||
return true;
|
||||
} else if (_result.contains("No such file or directory")) {
|
||||
//Error code: NO_SUCH_FILE_OR_DIRECTORY
|
||||
VectrasApp.oneDialog(_activity.getResources().getString(R.string.problem_has_been_detected), _activity.getResources().getString(R.string.error_NO_SUCH_FILE_OR_DIRECTORY), true, false, _activity);
|
||||
_activity.stopService(new Intent(_activity, MainService.class));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -389,6 +389,9 @@
|
|||
<string name="reinstall_system_content">إذا وجدت أن النظام يواجه مشاكل خطيرة، فيمكنك إعادة تثبيت النظام. ويتم الاحتفاظ بجميع الآلات الافتراضية.</string>
|
||||
<string name="reinstalling">إعادة التثبيت...</string>
|
||||
<string name="mini_tools">أدوات صغيرة</string>
|
||||
<string name="error_NO_SUCH_FILE_OR_DIRECTORY">حدثت مشكلة وفشل تشغيل الجهاز الظاهري لأن الملف أو الدليل الذي يحتاجه الجهاز الظاهري للتشغيل غير موجود.</string>
|
||||
<string name="auto_create_new_hard_drive_when_creating_new_vm">إنشاء محرك أقراص ثابت جديد تلقائيًا عند إنشاء جهاز افتراضي جديد</string>
|
||||
<string name="with_size_is_128GB">بحجم 128 جيجابايت.</string>
|
||||
|
||||
<!--======================TERMUX STRINGS====================-->
|
||||
<string name="application_name">Vterm</string>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<string name="app_name">Vectras VM</string>
|
||||
|
||||
<!--======================VECTRAS STRINGS====================-->
|
||||
<string name="app_version" translatable="false">v2.9.5 (3dfx - Bread)</string>
|
||||
<string name="app_version" translatable="false">v2.9.5 (3dfx - Churro)</string>
|
||||
<string name="qemu_version" translatable="false">Stable</string>
|
||||
<string name="str_home">Home</string>
|
||||
<string name="str_logger">Logger</string>
|
||||
|
|
@ -391,6 +391,9 @@
|
|||
<string name="reinstall_system_content">If you find that your system is having serious problems, you can reinstall the system. And all virtual machines will be kept.</string>
|
||||
<string name="reinstalling">Reinstalling...</string>
|
||||
<string name="mini_tools">Mini tools</string>
|
||||
<string name="error_NO_SUCH_FILE_OR_DIRECTORY">A problem occurred and the virtual machine failed to run because a file or directory that the virtual machine needs to run does not exist.</string>
|
||||
<string name="auto_create_new_hard_drive_when_creating_new_vm">Automatically create new hard drive when creating new virtual machine</string>
|
||||
<string name="with_size_is_128GB">With size is 128GB.</string>
|
||||
|
||||
|
||||
<!--======================TERMUX STRINGS====================-->
|
||||
|
|
|
|||
|
|
@ -86,6 +86,15 @@
|
|||
android:title="@string/custom_params"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:icon="@drawable/round_terminal_24" />
|
||||
<SwitchPreferenceCompat
|
||||
android:id="@+id/autocreatedisk"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:defaultValue="true"
|
||||
android:key="autoCreateDisk"
|
||||
android:summary="@string/with_size_is_128GB"
|
||||
android:title="@string/auto_create_new_hard_drive_when_creating_new_vm"
|
||||
app:icon="@drawable/round_add_24" />
|
||||
<SwitchPreferenceCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"versionCode":"21",
|
||||
"versionName":"v2.9.5-3dfx,v2.9.5-3dfx-almondcake,v2.9.5-3dfx-bread",
|
||||
"versionName":"v2.9.5-3dfx,v2.9.5-3dfx-almondcake,v2.9.5-3dfx-bread,v2.9.5-3dfx-churro",
|
||||
"size": "46 MB",
|
||||
"url": "https://github.com/xoureldeen/Vectras-VM-Android/releases/v2.9.5",
|
||||
"Message": "<h2>v2.9.5-3dfx</h2><ul><li>Bring back 3dfx support.</li><li>Enhance app execution.</li><li>Added some linux programs in x11 display.</li><li>Added alpine linux (x11).</li><li>Russian language by <a href=\"https://github.com/OFGING\" target=\"_blank\">@OFGING</a></li></ul><br><br>New updates are live!",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue