mirror of
https://github.com/xoureldeen/Vectras-VM-Android.git
synced 2026-04-29 14:59:50 +00:00
Churro
This commit is contained in:
parent
8ca54aa1f5
commit
5ae877298a
11 changed files with 61 additions and 29 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue