package julianwi.javainstaller; import java.io.File; import android.content.SharedPreferences.Editor; import android.content.pm.PackageManager.NameNotFoundException; public class Checkforfile { public static String file[] = new String[]{"androidterm.apk", "busybox", "libc.tar.gz", "zlib.tar.gz", "libffi.tar.gz", "jamvm.tar.gz", "classpath.tar.gz", "freetype.tar.gz", "awt.tar.gz", "cairo.tar.gz"}; public static String files[][] = new String[][]{ new String[]{}, new String[]{"busybox"}, new String[]{"ld-linux.so.2", "libBrokenLocale.so.1", "libSegFault.so", "libanl.so.1", "libc.so.6" ,"libc.version" ,"libcidn.so.1", "libcrypt.so.1", "libdl.so.2", "libm.so.6", "libmemusage.so", "libnsl.so.1", "libnss_compat.so.2", "libnss_db.so.2", "libnss_dns.so.2", "libnss_files.so.2", "libnss_hesiod.so.2", "libnss_nis.so.2", "libnss_nisplus.so.2", "libpcprofile.so", "libpthread.so.0", "libresolv.so.2", "librt.so.1", "libthread_db.so.1", "libutil.so.1"}, new String[]{"libz.so.1", "zlib.version"}, new String[]{"libffi.so.6", "libffi.version"}, new String[]{"classes.zip", "jamvm", "jamvm.version"}, new String[]{"classpath.version", "glibj.zip", "libjavaio.so", "libjavalang.so", "libjavalangmanagement.so", "libjavalangreflect.so", "libjavanet.so", "libjavanio.so", "libjavautil.so", "tools.zip"}, new String[]{"freetype.version", "libfreetype.so.6"}, new String[]{"awtonandroid.apk", "awtpeer.zip", "libawtonandroid.so"}, new String[]{"cairo.version", "libcairo.so.2", "libpixman-1.so.0"} }; static { if(getArch().equals("arm")) { files[2][0] = "ld-linux.so.3"; files[5] = new String[]{"classes.zip", "jamvm", "jamvm.version", "libgcc_s.so.1"}; } } public void scan(CheckPoint[] checks){ final String defaultsrc = (getArch().equals("arm"))?"http://borcteam.bplaced.net/files/java/arm/":"http://borcteam.bplaced.net/files/java/"; Editor edit = MainActivity.sharedP.edit(); if(!MainActivity.sharedP.contains("path4")){ edit.putString("path0", "/data/app/"); edit.putString("source0", defaultsrc+"androidterm.apk"); edit.putString("path1", "/data/data/jackpal.androidterm/bin"); edit.putString("source1", defaultsrc+"busybox"); for(int i=2;i<=9;i++){ edit.putString("path"+i, "/data/data/julianwi.javainstaller/javafiles"); edit.putString("source"+i, defaultsrc+file[i]); } edit.commit(); } if(!MainActivity.sharedP.contains("path9")){ edit.putString("path"+9, "/data/data/julianwi.javainstaller/javafiles"); edit.putString("source"+9, defaultsrc+file[9]); } if(checkpackage("jackpal.androidterm")){ checks[0].installed = true; try { edit.putString("path0", MainActivity.context.getPackageManager().getApplicationInfo("jackpal.androidterm", 0).sourceDir); } catch (Exception e) { e.printStackTrace(); new Error("error", e.getMessage()); } new File("/data/data/julianwi.javainstaller/"+file[0]).delete(); } else{ checks[0].installed = false; edit.putString("path0", "/data/app/jackpal.androidterm.apk"); } edit.commit(); for (int i = 1; i < files.length; i++) { Boolean installed = true; for (int j = 0; j < files[i].length; j++) { if(!checkfile(checks[i].getPath()+"/"+files[i][j])){ installed = false; } } checks[i].installed = installed; if(installed){ new File("/data/data/julianwi.javainstaller/"+file[i]).delete(); } } /*if(checkfile(checks[1].getPath())){ checks[1].installed = true; new File("/data/data/julianwi.javainstaller/"+file[1]).delete(); } else{ checks[1].installed = false; } if(checkfile(checks[2].getPath())){ checks[2].installed = true; new File("/data/data/julianwi.javainstaller/"+file[2]).delete(); } else{ checks[2].installed = false; } if(checkfile(checks[3].getPath())){ checks[3].installed = true; new File("/data/data/julianwi.javainstaller/"+file[3]).delete(); } else{ checks[3].installed = false; } if(checkfile(checks[4].getPath()) && checkpackage("julianwi.awtpeer")){ checks[4].installed = true; new File("/data/data/julianwi.javainstaller/"+file[4]).delete(); } else{ checks[4].installed = false; }*/ } public boolean checkfile(String filepath){ File file = new File(filepath); return file.exists(); } public boolean checkpackage(String packagename) { try { MainActivity.context.getPackageManager().getPackageInfo(packagename, 0); return true; } catch (NameNotFoundException e) { return false; } } public static String getArch() { // Returns the value of uname -m String machine = System.getProperty("os.arch"); // Convert machine name to arch identifier if (machine.matches("armv[0-9]+(tej?)?l") || machine.equals("OS_ARCH")) { return "arm"; } else { return "x86"; } } }