This commit is contained in:
Epic Studios 2024-01-13 05:49:49 +02:00
parent 7350c7cc47
commit a512997f38
27 changed files with 2237 additions and 1584 deletions

View file

@ -26,6 +26,8 @@ import android.os.Environment;
import android.widget.ImageView.ScaleType;
import com.vectras.vm.AppConfig;
import com.vectras.vm.SplashActivity;
import com.vectras.vm.VectrasApp;
import java.util.Hashtable;
import java.util.LinkedHashMap;
@ -116,7 +118,7 @@ public class Config {
public static String getMachineDir(){
return getBasefileDir() + machineFolder;
}
public static String logFilePath = null;
public static String logFilePath = cacheDir + "/vectras/vectras-log.txt";
public static final String defaultDNSServer = "8.8.8.8";
@ -176,7 +178,9 @@ public class Config {
//Change to true in prod if you want to be notified by default for new versions
public static boolean defaultCheckNewVersion = true;
public static final String sharedFolder = AppConfig.sharedFolder;
// App config
public static final String datadirpath = VectrasApp.getApp().getExternalFilesDir("data")+"/";
public static final String sharedFolder = datadirpath + "Vectras/ProgramFiles/";
public static String machinename = "VECTRAS";
public static int paused = 0;

File diff suppressed because it is too large Load diff

View file

@ -248,7 +248,7 @@ public class MainSettingsManager extends AppCompatActivity
implements Preference.OnPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);/*
Preference pref = findPreference("customMemory");
if (pref != null) {
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@ -278,7 +278,7 @@ public class MainSettingsManager extends AppCompatActivity
}
});
}
}*/
}
private void onMemory() {
@ -629,6 +629,61 @@ public class MainSettingsManager extends AppCompatActivity
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getBoolean("virtio", false);
}
public static void setAvx(Activity activity, boolean AVX) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean("AVX", AVX);
edit.apply();
}
public static boolean getAvx(Activity activity) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getBoolean("AVX", false);
}
public static void setTbSize(Activity activity, String TbSize) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("TbSize", TbSize);
edit.apply();
}
public static String getTbSize(Activity activity) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getString("TbSize", "2048");
}
public static void setVmUi(Activity activity, String vmUi) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("vmUi", vmUi);
edit.apply();
}
public static String getVmUi(Activity activity) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getString("vmUi", "VNC");
}
public static void setUsbTablet(Activity activity, boolean UsbTablet) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean("UsbTablet", UsbTablet);
edit.apply();
}
public static boolean getUsbTablet(Activity activity) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getBoolean("UsbTablet", false);
}
public static void setCustomParams(Activity activity, String customParams) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("customParams", customParams);
edit.apply();
}
public static String getCustomParams(Activity activity) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
return prefs.getString("customParams", "");
}
public static boolean isFirstLaunch(Activity activity) {
PackageInfo pInfo = null;

View file

@ -6,12 +6,14 @@ import android.androidVNC.VncCanvasActivity;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.core.view.MenuItemCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentTransaction;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
@ -51,6 +53,7 @@ import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import com.vectras.qemu.utils.FileUtils;
import com.vectras.vm.Fragment.ControlersOptionsFragment;
import com.vectras.vm.MainActivity;
import com.vectras.vm.R;
@ -124,8 +127,15 @@ public class MainVNCActivity extends VncCanvasActivity {
ImageButton ctrlBtn = findViewById(R.id.ctrlBtn);
ImageButton altBtn = findViewById(R.id.altBtn);
ImageButton delBtn = findViewById(R.id.delBtn);
ImageButton btnLogs = findViewById(R.id.btnLogs);
Button ctrlAltDelBtn = findViewById(R.id.ctrlAltDelBtn);
qmpBtn = findViewById(R.id.btnQmp);
btnLogs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FileUtils.viewVectrasLog(activity);
}
});
shutdownBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -1184,20 +1194,11 @@ public class MainVNCActivity extends VncCanvasActivity {
}
public void onBackPressed() {
// super.onBackPressed();
if (!MainSettingsManager.getAlwaysShowMenuToolbar(activity)) {
ActionBar bar = this.getSupportActionBar();
if (bar != null) {
if (bar.isShowing() && Config.mouseMode == Config.MouseMode.Trackpad) {
bar.hide();
}/* else
bar.show();*/
}
} else
super.onBackPressed();
super.onBackPressed();
Machine.stopVM(activity);
return;
}
public void onHideToolbar() {

View file

@ -64,22 +64,22 @@ public class StartVM {
public String vnc_passwd = "vectras";
// cpu/board settings
private String cpu;
public String cpu;
private String arch = "x86";
private String machine_type;
private int memory = 128;
public int memory = 128;
private int cpuNum = 1;
public int enablekvm;
public int enable_mttcg;
// disks
public String hda_img_path;
private String hdb_img_path;
private String hdc_img_path;
private String hdd_img_path;
public String hdb_img_path;
public String hdc_img_path;
public String hdd_img_path;
public String shared_folder_path;
public int shared_folder_readonly = 1;
private String hd_cache = "default";
public String hd_cache = "default";
//removable devices
public String cd_iso_path;
@ -88,26 +88,30 @@ public class StartVM {
public String sd_img_path;
//boot options
private String bootdevice = null;
public String bootdevice = null;
private String kernel;
private String initrd;
//graphics
private String vga_type = "std";
public String vga_type = "std";
//audio
public String sound_card;
// net
private String net_cfg = "None";
private String nic_card = null;
public String net_cfg = "None";
public String nic_card = null;
private String hostfwd = null;
private String guestfwd = null;
//advanced
private int disableacpi = 0;
private int disablehpet = 0;
private int disabletsc = 0;
public int disableacpi = 0;
public int disablehpet = 0;
public int disabletsc = 0;
public boolean enablleAvx = false;
public String tbSize = "2048";
public String extra_params;
/**
@ -120,7 +124,11 @@ public class StartVM {
save_dir = Config.getMachineDir() + name;
save_state_name = save_dir + "/" + Config.state_filename;
hda_img_path = Config.hda_path;
extra_params = Config.extra_params;
extra_params += " ";
extra_params += MainSettingsManager.getCustomParams(MainActivity.activity);
shared_folder_path = Config.sharedFolder;
//extra_params = Config.extra_params;
this.context = context;
@ -133,6 +141,14 @@ public class StartVM {
this.enable_mttcg = 0;
this.vnc_allow_external = 0;
this.enablleAvx = MainSettingsManager.getAvx(MainActivity.activity);
this.tbSize = MainSettingsManager.getTbSize(MainActivity.activity);
if (MainSettingsManager.getUsbTablet(MainActivity.activity))
this.mouse = "usb-tablet";
else
this.mouse = "ps2";
}
public static void onVMResolutionChanged(int width, int height) {
@ -283,7 +299,8 @@ public class StartVM {
}
if (mouse != null && !mouse.equals("ps2")) {
paramsList.add("-usb");
paramsList.add("-machine");
paramsList.add("usb=on");
paramsList.add("-device");
paramsList.add(mouse);
}
@ -309,7 +326,7 @@ public class StartVM {
private void addAudioOptions(ArrayList<String> paramsList) {
if (sound_card != null && !sound_card.equals("None")) {
if (sound_card != null && !sound_card.equals("None") && enablevnc != 1) {
paramsList.add("-soundhw");
paramsList.add(sound_card);
}
@ -384,7 +401,7 @@ public class StartVM {
if (this.cpuNum > 1 &&
(enablekvm == 1 || enable_mttcg == 1 || !Config.enableSMPOnlyOnKVM)) {
paramsList.add("-smp");
paramsList.add("sockets="+"1"+",cores="+this.cpuNum+",threads="+this.cpuNum+"");
paramsList.add("sockets=" + "1" + ",cores=" + this.cpuNum + ",threads=" + this.cpuNum + "");
}
if (machine_type != null && !machine_type.equals("Default")) {
@ -411,7 +428,11 @@ public class StartVM {
if (this.cpu != null && !cpu.equals("Default")) {
paramsList.add("-cpu");
paramsList.add(cpu + ",+avx");
String cpuParams = null;
cpuParams += cpu;
if (enablleAvx)
cpuParams += ",+avx";
paramsList.add(cpuParams);
}
@ -429,7 +450,7 @@ public class StartVM {
tcgParams += ",thread=multi";
else
tcgParams += ",thread=single";
tcgParams += ",tb-size=2048";
tcgParams += ",tb-size=" + tbSize;
paramsList.add(tcgParams);
//#endif
}

View file

@ -1,13 +1,15 @@
package com.vectras.qemu.utils;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.appcompat.app.AlertDialog;
import com.vectras.qemu.Config;
import com.vectras.vm.MainActivity;
import com.vectras.vm.R;