This commit is contained in:
An Bui 2024-10-04 13:41:55 +07:00
parent 96f29f8e40
commit 05323fae73
12 changed files with 166 additions and 52 deletions

View file

@ -93,6 +93,8 @@ public class CustomRomActivity extends AppCompatActivity {
public static DataMainRoms current;
private SharedPreferences getAppConfigData;
public void onStart() {
super.onStart();
}
@ -143,6 +145,7 @@ public class CustomRomActivity extends AppCompatActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
setTitle("Rom Options");
getAppConfigData = getSharedPreferences("appconfig", MODE_PRIVATE);
AdView mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
@ -331,7 +334,7 @@ public class CustomRomActivity extends AppCompatActivity {
if (modify) {
int position = getIntent().getIntExtra("POS", 0);
final File jsonFile = new File(AppConfig.maindirpath + "roms-data" + ".json");
final File jsonFile = new File(getAppConfigData.getString("maindirpath","") + "roms-data" + ".json");
current.itemDrv1 = drive.getText().toString();
current.itemExtra = qemu.getText().toString();
try {
@ -364,7 +367,7 @@ public class CustomRomActivity extends AppCompatActivity {
editor.putBoolean("isFirstLaunch", Boolean.TRUE);
editor.apply();
loadingPb.setVisibility(View.VISIBLE);
final File jsonFile = new File(AppConfig.maindirpath + "roms-data" + ".json");
final File jsonFile = new File(getAppConfigData.getString("maindirpath","") + "roms-data" + ".json");
RomsJso obj = new RomsJso();
if (jsonFile.exists()) {
try {
@ -549,7 +552,7 @@ public class CustomRomActivity extends AppCompatActivity {
super.onActivityResult(requestCode, resultCode, ReturnedIntent);
if (title.getText().toString().length() > 0) {
File romDir = new File(AppConfig.maindirpath + title.getText().toString());
File romDir = new File(getAppConfigData.getString("maindirpath","") + title.getText().toString());
romDir.mkdirs();
}
@ -581,13 +584,13 @@ public class CustomRomActivity extends AppCompatActivity {
} finally {
try {
try {
SaveImage(selectedImage, new File(AppConfig.maindirpath + "icons"), title.getText().toString() + "-" + selectedFilePath.getName());
SaveImage(selectedImage, new File(getAppConfigData.getString("maindirpath","") + "icons"), title.getText().toString() + "-" + selectedFilePath.getName());
} finally {
Runnable runnable = new Runnable() {
@Override
public void run() {
loadingPb.setVisibility(View.GONE);
icon.setText(AppConfig.maindirpath + "icons" + "/" + title.getText().toString() + "-" + selectedFilePath.getName());
icon.setText(getAppConfigData.getString("maindirpath","") + "icons" + "/" + title.getText().toString() + "-" + selectedFilePath.getName());
}
};
activity.runOnUiThread(runnable);
@ -610,7 +613,7 @@ public class CustomRomActivity extends AppCompatActivity {
} else if (requestCode == 1002 && resultCode == RESULT_OK) {
Uri content_describer = ReturnedIntent.getData();
File selectedFilePath = new File(getPath(content_describer));
drive.setText(AppConfig.maindirpath + title.getText().toString() + "/" + selectedFilePath.getName());
drive.setText(getAppConfigData.getString("maindirpath","") + title.getText().toString() + "/" + selectedFilePath.getName());
loadingPb.setVisibility(View.VISIBLE);
custom.setVisibility(View.GONE);
new Thread(new Runnable() {
@ -624,7 +627,7 @@ public class CustomRomActivity extends AppCompatActivity {
}
try {
try {
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + title.getText().toString() + "/" + selectedFilePath.getName()));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + title.getText().toString() + "/" + selectedFilePath.getName()));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
@ -665,7 +668,7 @@ public class CustomRomActivity extends AppCompatActivity {
Uri content_describer = ReturnedIntent.getData();
File selectedFilePath = new File(getPath(content_describer));
if (selectedFilePath.getName().endsWith(".iso")) {
String cdromPath = AppConfig.maindirpath + title.getText().toString() + "/" + selectedFilePath.getName();
String cdromPath = getAppConfigData.getString("maindirpath","") + title.getText().toString() + "/" + selectedFilePath.getName();
cdrom.setText(cdromPath);
String qemuText = qemu.getText().toString();
@ -695,7 +698,7 @@ public class CustomRomActivity extends AppCompatActivity {
}
try {
try {
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + title.getText().toString() + "/" + selectedFilePath.getName()));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + title.getText().toString() + "/" + selectedFilePath.getName()));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
@ -746,7 +749,7 @@ public class CustomRomActivity extends AppCompatActivity {
FileInputStream zipFile = null;
try {
zipFile = (FileInputStream) getContentResolver().openInputStream(content_describer);
File targetDirectory = new File(AppConfig.maindirpath + selectedFilePath.getName().replace(".cvbi", ""));
File targetDirectory = new File(getAppConfigData.getString("maindirpath","") + selectedFilePath.getName().replace(".cvbi", ""));
ZipInputStream zis = null;
zis = new ZipInputStream(
new BufferedInputStream(zipFile));
@ -788,17 +791,17 @@ public class CustomRomActivity extends AppCompatActivity {
custom.setVisibility(View.VISIBLE);
try {
JSONObject jObj = new JSONObject(FileUtils.readFromFile(MainActivity.activity, new File(AppConfig.maindirpath
JSONObject jObj = new JSONObject(FileUtils.readFromFile(MainActivity.activity, new File(getAppConfigData.getString("maindirpath","")
+ selectedFilePath.getName().replace(".cvbi", "") + "/rom-data.json")));
title.setText(jObj.getString("title"));
icon.setText(AppConfig.maindirpath
icon.setText(getAppConfigData.getString("maindirpath","")
+ selectedFilePath.getName().replace(".cvbi", "") + "/" + jObj.getString("icon"));
drive.setText(AppConfig.maindirpath
drive.setText(getAppConfigData.getString("maindirpath","")
+ selectedFilePath.getName().replace(".cvbi", "") + "/" + jObj.getString("drive"));
qemu.setText(jObj.getString("qemu"));
ImageView ivIcon = findViewById(R.id.ivIcon);
Bitmap bmImg = BitmapFactory.decodeFile(AppConfig.maindirpath
Bitmap bmImg = BitmapFactory.decodeFile(getAppConfigData.getString("maindirpath","")
+ selectedFilePath.getName().replace(".cvbi", "") + "/" + jObj.getString("icon"));
ivIcon.setImageBitmap(bmImg);
UIUtils.UIAlert(activity, "rom by:\n" + jObj.getString("author") + "\n\n" + Html.fromHtml(jObj.getString("desc")), "DESCRIPTION");
@ -851,7 +854,7 @@ public class CustomRomActivity extends AppCompatActivity {
public void onDestroy() {
super.onDestroy();
File lol = new File(AppConfig.maindirpath + drive.getText().toString());
File lol = new File(getAppConfigData.getString("maindirpath","") + drive.getText().toString());
try {
lol.delete();
} catch (Exception e) {

View file

@ -1,6 +1,7 @@
package com.vectras.vm;
import static android.content.Intent.ACTION_OPEN_DOCUMENT;
import static android.content.Intent.ACTION_VIEW;
import static android.os.Build.VERSION.SDK_INT;
import static com.vectras.vm.utils.UIUtils.UIAlert;
@ -9,6 +10,8 @@ import android.app.Dialog;
import android.app.NotificationManager;
import android.app.ProgressDialog;
import android.content.ActivityNotFoundException;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@ -228,17 +231,17 @@ public class MainActivity extends AppCompatActivity {
startActivity(new Intent(activity, AboutActivity.class));
}
if (id == R.id.navigation_item_help) {
String tw = AppConfig.vectrasWebsite;
Intent w = new Intent(Intent.ACTION_VIEW);
String tw = getAppConfigData.getString("vectrasWebsite","");
Intent w = new Intent(ACTION_VIEW);
w.setData(Uri.parse(tw));
startActivity(w);
} else if (id == R.id.navigation_item_website) {
String tw = AppConfig.vectrasHelp;
Intent w = new Intent(Intent.ACTION_VIEW);
String tw = getAppConfigData.getString("vectrasHelp","");
Intent w = new Intent(ACTION_VIEW);
w.setData(Uri.parse(tw));
startActivity(w);
} else if (id == R.id.navigation_item_import_iso) {
if (new File(AppConfig.maindirpath + "/drive.iso").exists()) {
if (new File(getAppConfigData.getString("maindirpath","") + "/drive.iso").exists()) {
AlertDialog ad;
ad = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
ad.setTitle("REPLACE ISO");
@ -261,7 +264,7 @@ public class MainActivity extends AppCompatActivity {
});
ad.setButton(Dialog.BUTTON_NEGATIVE, "REMOVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
File isoFile = new File(AppConfig.maindirpath + "/drive.iso");
File isoFile = new File(getAppConfigData.getString("maindirpath","") + "/drive.iso");
try {
isoFile.delete();
} catch (Exception e) {
@ -285,7 +288,7 @@ public class MainActivity extends AppCompatActivity {
startActivityForResult(intent, 1004);
}
} else if (id == R.id.navigation_item_hdd1) {
if (new File(AppConfig.maindirpath + "/hdd1.qcow2").exists()) {
if (new File(getAppConfigData.getString("maindirpath","") + "/hdd1.qcow2").exists()) {
AlertDialog ad;
ad = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
ad.setTitle("REPLACE HDD1");
@ -308,7 +311,7 @@ public class MainActivity extends AppCompatActivity {
});
ad.setButton(Dialog.BUTTON_NEGATIVE, "REMOVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
File isoFile = new File(AppConfig.maindirpath + "/hdd1.qcow2");
File isoFile = new File(getAppConfigData.getString("maindirpath","") + "/hdd1.qcow2");
try {
isoFile.delete();
} catch (Exception e) {
@ -321,11 +324,11 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
File fileWithinMyDir = new File(AppConfig.maindirpath + "/hdd1.qcow2");
File fileWithinMyDir = new File(getAppConfigData.getString("maindirpath","") + "/hdd1.qcow2");
if (fileWithinMyDir.exists()) {
intentShareFile.setType("*/*");
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + AppConfig.maindirpath + "/hdd1.qcow2"));
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + getAppConfigData.getString("maindirpath","") + "/hdd1.qcow2"));
intentShareFile.putExtra(Intent.EXTRA_SUBJECT,
"Sharing File...");
@ -350,7 +353,7 @@ public class MainActivity extends AppCompatActivity {
startActivityForResult(intent, 1005);
}
} else if (id == R.id.navigation_item_hdd2) {
if (new File(AppConfig.maindirpath + "/hdd2.qcow2").exists()) {
if (new File(getAppConfigData.getString("maindirpath","") + "/hdd2.qcow2").exists()) {
AlertDialog ad;
ad = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
ad.setTitle("REPLACE HDD2");
@ -373,7 +376,7 @@ public class MainActivity extends AppCompatActivity {
});
ad.setButton(Dialog.BUTTON_NEGATIVE, "REMOVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
File isoFile = new File(AppConfig.maindirpath + "/hdd2.qcow2");
File isoFile = new File(getAppConfigData.getString("maindirpath","") + "/hdd2.qcow2");
try {
isoFile.delete();
} catch (Exception e) {
@ -386,11 +389,11 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
File fileWithinMyDir = new File(AppConfig.maindirpath + "/hdd2.qcow2");
File fileWithinMyDir = new File(getAppConfigData.getString("maindirpath","") + "/hdd2.qcow2");
if (fileWithinMyDir.exists()) {
intentShareFile.setType("*/*");
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + AppConfig.maindirpath + "/hdd2.qcow2"));
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + getAppConfigData.getString("maindirpath","") + "/hdd2.qcow2"));
intentShareFile.putExtra(Intent.EXTRA_SUBJECT,
"Sharing File...");
@ -474,9 +477,55 @@ public class MainActivity extends AppCompatActivity {
startActivity(new Intent(activity, DataExplorerActivity.class));
} else if (id == R.id.navigation_item_donate) {
String tw = "https://www.buymeacoffee.com/vectrasvm/";
Intent w = new Intent(Intent.ACTION_VIEW);
Intent w = new Intent(ACTION_VIEW);
w.setData(Uri.parse(tw));
startActivity(w);
} else if (id== R.id.setup_sound) {
if (VectrasApp.isAppInstalled("com.termux", getApplicationContext())) {
AlertDialog alertDialog = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
alertDialog.setTitle(getResources().getString(R.string.setup_sound));
alertDialog.setMessage(getResources().getString(R.string.setup_sound_guide_content));
alertDialog.setCancelable(false);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, getResources().getString(R.string.start_setup), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("Setup", "curl -o setup.sh https://raw.githubusercontent.com/AnBui2004/termux/refs/heads/main/installpulseaudio.sh && chmod +rwx setup.sh && ./setup.sh && rm setup.sh");
clipboard.setPrimaryClip(clip);
Intent intent = new Intent();
intent.setAction(ACTION_VIEW);
intent.setData(Uri.parse("android-app://com.termux"));
startActivity(intent);
Toast.makeText(getApplicationContext(), getResources().getString(R.string.copied), Toast.LENGTH_LONG).show();
return;
}
});
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
} else {
AlertDialog alertDialog = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
alertDialog.setTitle(getResources().getString(R.string.termux_is_not_installed));
alertDialog.setMessage(getResources().getString(R.string.you_need_to_install_termux));
alertDialog.setCancelable(false);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, getResources().getString(R.string.install), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
intent.setAction(ACTION_VIEW);
intent.setData(Uri.parse("https://github.com/termux/termux-app/releases"));
startActivity(intent);
return;
}
});
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
}
}
return false;
}
@ -510,7 +559,7 @@ public class MainActivity extends AppCompatActivity {
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "JOIN", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String tg = "https://t.me/vectras_os";
Intent f = new Intent(Intent.ACTION_VIEW);
Intent f = new Intent(ACTION_VIEW);
f.setData(Uri.parse(tg));
startActivity(f);
return;
@ -629,7 +678,7 @@ public class MainActivity extends AppCompatActivity {
.setNegativeButton("Update", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(obj.getString("url"))));
startActivity(new Intent(ACTION_VIEW, Uri.parse(obj.getString("url"))));
} catch (JSONException e) {
}
@ -657,7 +706,6 @@ public class MainActivity extends AppCompatActivity {
try {
SharedPreferences dataAppConfig = activity.getSharedPreferences("appconfig", activity.MODE_PRIVATE);
jArray = new JSONArray(FileUtils.readFromFile(MainActivity.activity, new File(dataAppConfig.getString("maindirpath","")
+ "roms-data.json")));
@ -771,7 +819,8 @@ public class MainActivity extends AppCompatActivity {
}
public static boolean checkSharedFolder() { //TODO: not work idk why
File folder = new File(AppConfig.sharedFolder);
SharedPreferences dataAppConfig = activity.getSharedPreferences("appconfig", activity.MODE_PRIVATE);
File folder = new File(dataAppConfig.getString("sharedFolder",""));
File[] listOfFiles = folder.listFiles();
if (listOfFiles != null) {
@ -965,7 +1014,7 @@ public class MainActivity extends AppCompatActivity {
}
try {
try {
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + "/drive.iso"));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + "/drive.iso"));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
@ -1016,7 +1065,7 @@ public class MainActivity extends AppCompatActivity {
}
try {
try {
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + "/hdd1.qcow2"));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + "/hdd1.qcow2"));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
@ -1065,7 +1114,7 @@ public class MainActivity extends AppCompatActivity {
}
try {
try {
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + "/hdd2.qcow2"));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + "/hdd2.qcow2"));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];
@ -1114,11 +1163,11 @@ public class MainActivity extends AppCompatActivity {
}
try {
try {
File romDir = new File(AppConfig.maindirpath + curRomName + "/");
File romDir = new File(getAppConfigData.getString("maindirpath","") + curRomName + "/");
if (!romDir.exists()) {
romDir.mkdirs();
}
OutputStream out = new FileOutputStream(new File(AppConfig.maindirpath + curRomName + "/" + "drv1-" + selectedFilePath.getName()));
OutputStream out = new FileOutputStream(new File(getAppConfigData.getString("maindirpath","") + curRomName + "/" + "drv1-" + selectedFilePath.getName()));
try {
// Transfer bytes from in to out
byte[] buf = new byte[1024];

View file

@ -84,7 +84,7 @@ public class SetupQemuActivity extends AppCompatActivity implements View.OnClick
alertDialog.setCancelable(false);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "AUTO SETUP", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
startDownload();
setupVectrasStable();
return;
}
});
@ -413,6 +413,27 @@ public class SetupQemuActivity extends AppCompatActivity implements View.OnClick
" libusb ncurses-libs curl libnfs sdl2 gtk+3.0 fuse libpulse libseccomp jack pipewire liburing awesome lxterminal font-terminus xkeyboard-config fluxbox;" +
" tar -xzvf " + tarPath + " -C /;" +
" rm " + tarPath + ";" +
" apk add qemu-audio-sdl pulseaudio;" +
" echo export PULSE_SERVER=127.0.0.1 >> /etc/profile;" +
" mkdir -p ~/.vnc && echo -e \"555555\\n555555\" | vncpasswd -f > ~/.vnc/passwd && chmod 0600 ~/.vnc/passwd;" +
" echo \"installation successful! xssFjnj58Id\"");
}
private void setupVectrasStable() {
inBtn.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
String filesDir = activity.getFilesDir().getAbsolutePath();
String cmd = "";
cmd += "echo \"http://dl-cdn.alpinelinux.org/alpine/edge/testing\" >> /etc/apk/repositories;";
executeShellCommand(cmd);
executeShellCommand("set -e;" +
" echo 'Starting setup...';" +
" apk update;" +
" apk add tar libslirp libslirp-dev pulseaudio-dev glib-dev pixman-dev zlib-dev spice-dev" +
" libusbredirparser usbredir-dev libiscsi-dev sdl2 sdl2-dev libepoxy-dev virglrenderer-dev rdma-core" +
" libusb ncurses-libs curl libnfs sdl2 gtk+3.0 fuse libpulse libseccomp jack pipewire liburing awesome lxterminal font-terminus xkeyboard-config fluxbox;" +
" apk add qemu-system-x86_64 qemu-system-ppc qemu-system-i386 qemu-system-aarch64 qemu-pr-helper qemu-img qemu-audio-sdl qemu-ui-gtk pulseaudio;" +
" echo export PULSE_SERVER=127.0.0.1 >> /etc/profile;" +
" mkdir -p ~/.vnc && echo -e \"555555\\n555555\" | vncpasswd -f > ~/.vnc/passwd && chmod 0600 ~/.vnc/passwd;" +
" echo \"installation successful! xssFjnj58Id\"");
}

View file

@ -363,7 +363,7 @@ public class SplashActivity extends AppCompatActivity implements Runnable {
public void run() {
String filesDir = activity.getFilesDir().getAbsolutePath();
SharedPreferences prefs = getSharedPreferences(CREDENTIAL_SHARED_PREF, Context.MODE_PRIVATE);
if (new File(filesDir, "/distro/usr/local/bin/qemu-system-x86_64").exists())
if ((new File(filesDir, "/distro/usr/local/bin/qemu-system-x86_64").exists()) || (new File(filesDir, "/distro/usr/bin/qemu-system-x86_64").exists()))
startActivity(new Intent(this, MainActivity.class));
else
startActivity(new Intent(this, SetupQemuActivity.class));

View file

@ -157,7 +157,8 @@ public class StartVM {
spiceStr += "port=6999,disable-ticketing=on";
params.add(spiceStr);
} else if (MainSettingsManager.getVmUi(activity).equals("X11")) {
params.add("-display");
params.add("gtk");
}
params.add(extras);

View file

@ -9,6 +9,7 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.os.Build;
@ -454,12 +455,12 @@ public class VectrasApp extends Application {
public static void disablerunsh(Context context) {
Terminal vterm = new Terminal(context);
vterm.executeShellCommand("chmod -x /home/run.sh", false, MainActivity.activity);
vterm.executeShellCommand("sed -i '/run.sh/d' /etc/profile && chmod -x /home/run.sh", false, MainActivity.activity);
}
public static void createrunsh(String env,Context context) {
Terminal vterm = new Terminal(context);
vterm.executeShellCommand("echo 'fluxbox &' > /home/run.sh && echo 'chmod -x /home/run.sh' >> /home/run.sh && echo '"+ env +"' >> /home/run.sh && echo 'pkill -SIGKILL -u root' >> /home/run.sh && chmod +rwx /home/run.sh", true, MainActivity.activity);
vterm.executeShellCommand("echo '/home/run.sh' >> /etc/profile && echo 'sed -i '/run.sh/d' /etc/profile' > /home/run.sh && echo 'fluxbox &' >> /home/run.sh && echo 'chmod -x /home/run.sh' >> /home/run.sh && echo '"+ env +"' >> /home/run.sh && echo 'pkill -SIGKILL -u root' >> /home/run.sh && chmod +rwx /home/run.sh", true, MainActivity.activity);
}
public static void addrunshtostartup(Context context) {
@ -483,10 +484,22 @@ public class VectrasApp extends Application {
data.edit().putString("maindirpath", AppConfig.maindirpath).commit();
data.edit().putString("sharedFolder", AppConfig.sharedFolder).commit();
data.edit().putString("downloadsFolder", AppConfig.downloadsFolder).commit();
data.edit().putString("sharedFolder", AppConfig.vectrasWebsite).commit();
data.edit().putString("downloadsFolder", AppConfig.vectrasHelp).commit();
} catch (ExceptionInInitializerError e) {
} catch (NoClassDefFoundError e) {
}
}
public static boolean isAppInstalled(String packagename, Context context) {
PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo(packagename,PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
}