private static boolean isAppRunning = false;
private static String appName = null;
+ public static void runDaemon() {
+ if (null == serial) {
+ return;
+ }
+ if (!loadDaemon()) {
+ return;
+ }
+ if (!isDaemonRunning()) {
+ if (null == homePath)
+ getHomeEvn();
+ try {
+ Runtime rt = Runtime.getRuntime();
+ rt.exec(getSDBPathWithSerial()
+ + " shell /home/root/.DA_preload/da_daemon &");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private static boolean isDaemonRunning() {
+
+ if (null == homePath)
+ getHomeEvn();
+ try {
+ Runtime rt = Runtime.getRuntime();
+ Process ps = rt.exec(getSDBPathWithSerial()
+ + " shell ps -All | grep da_daemon");
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(
+ ps.getInputStream()));
+ // String app = null;
+ while (null != br.readLine()) {
+ return true;
+ }
+ br.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
public static String getAppName() {
return appName;
}
public static void setSerial(String serial) {
SDBManager.serial = serial;
+ runDaemon();
}
// TODO remove comment
public static ArrayList<String> getDevices() {
ArrayList<String> deviceList = new ArrayList<String>();
+
if (null == homePath)
getHomeEvn();
int cnt = 0;
} catch (Exception e) {
e.printStackTrace();
}
+
return deviceList;
}
return false;
}
+ private static boolean loadDaemon() {
+ Runtime rt = Runtime.getRuntime();
+ Process ps = null;
+ StringBuilder command = new StringBuilder();
+ command.append(getSDBPathWithSerial());
+ command.append(" push ");
+ command.append(homePath);
+ String baseCommand = command.toString();
+ String loadDaemonCommand = baseCommand
+ + "/samsung-sdk/DynamicAnalyzer/tools/da_daemon /home/root/.DA_preload/";
+ String makePreloadDirCmd = " shell mkdir /home/root/.DA_preload";
+ // rt.exec(getSDBPathWithSerial() +
+ // " shell mkdir /home/root/.DynamicAnalyzer");
+ try {
+ ps = rt.exec(getSDBPathWithSerial() + makePreloadDirCmd);
+ BufferedReader br = new BufferedReader(new InputStreamReader(
+ ps.getInputStream()));
+ if (null != (br.readLine())) {
+ // System.out.println(">> load memory : " + message);
+ }
+
+ ps = rt.exec(loadDaemonCommand);
+ BufferedReader ebr = new BufferedReader(new InputStreamReader(
+ ps.getErrorStream()));
+ br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
+ if (null == ebr.readLine()) {
+ // System.out.println(">>>> no device (load memory so)) !! ");
+ serial = null;
+ return false;
+ }
+ if (null != (br.readLine())) {
+ // System.out.println(">> load memory : " + message);
+ }
+ ebr.close();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return true;
+
+ }
+
private static boolean loadSo() {
boolean isLoaded = isSoLoaded();
if (null == serial) {