private boolean install(Context context, String destDirName, String assetsDirName, String filename) { File file = new File(context.getDir(destDirName, Context.MODE_PRIVATE), filename); if (file.exists()) { return true; } try { copyAssets(context, (TextUtils.isEmpty(assetsDirName) ? "" : (assetsDirName + File.separator)) + filename, file, "700"); return true; } catch (Exception e) { return false; } }
private void copyAssets(Context context, String assetsFilename, File file, String mode) throws IOException, InterruptedException { AssetManager manager = context.getAssets(); final InputStream is = manager.open(assetsFilename); copyFile(file, is, mode); }
@Override public void onPersistentCreate(final Context context, final DaemonConfigurations configs) { initAmsBinder(); initServiceParcel(context, configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME); Thread t = new Thread(){ public void run() { File binaryFile = new File(context.getDir(BINARY_DEST_DIR_NAME, Context.MODE_PRIVATE), BINARY_FILE_NAME); new NativeDaemonAPI20(context).doDaemon( context.getPackageName(), configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME, binaryFile.getAbsolutePath()); }; }; t.setPriority(Thread.MAX_PRIORITY); t.start(); if(configs != null && configs.LISTENER != null){ this.mConfigs = configs; configs.LISTENER.onPersistentStart(context); } }
private boolean installBinary(Context context){ String binaryDirName = null; // String abi = Build.CPU_ABI; // if (abi.startsWith("armeabi-v7a")) { // binaryDirName = "armeabi-v7a"; // }else if(abi.startsWith("x86")) { // binaryDirName = "x86"; // }else{ // binaryDirName = "armeabi"; // } return install(context, BINARY_DEST_DIR_NAME, binaryDirName, BINARY_FILE_NAME); }
@Override public void onDaemonDead() { if(startServiceByAmsBinder()){ if(mConfigs != null && mConfigs.LISTENER != null){ mConfigs.LISTENER.onWatchDaemonDaed(); } android.os.Process.killProcess(android.os.Process.myPid()); } }
@Override public boolean onInitialization(Context context) { return installBinary(context); }
mDaemonStrategy = new DaemonStrategyXiaomi(); }else if(Build.MODEL != null && Build.MODEL.toLowerCase().startsWith("a31")){ mDaemonStrategy = new DaemonStrategy21();
private boolean installBinary(Context context){ String binaryDirName = null; // String abi = Build.CPU_ABI; // if (abi.startsWith("armeabi-v7a")) { // binaryDirName = "armeabi-v7a"; // }else if(abi.startsWith("x86")) { // binaryDirName = "x86"; // }else{ // binaryDirName = "armeabi"; // } return install(context, BINARY_DEST_DIR_NAME, binaryDirName, BINARY_FILE_NAME); }
@Override public void onDaemonDead() { if(startServiceByAmsBinder()){ if(mConfigs != null && mConfigs.LISTENER != null){ mConfigs.LISTENER.onWatchDaemonDaed(); } android.os.Process.killProcess(android.os.Process.myPid()); } }
@Override public boolean onInitialization(Context context) { return installBinary(context); }
mDaemonStrategy = new DaemonStrategyXiaomi(); }else if(Build.MODEL != null && Build.MODEL.toLowerCase().startsWith("a31")){ mDaemonStrategy = new DaemonStrategy21();
@Override public void onPersistentCreate(final Context context, final DaemonConfigurations configs) { initAmsBinder(); initServiceParcel(context, configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME); Thread t = new Thread(){ public void run() { File binaryFile = new File(context.getDir(BINARY_DEST_DIR_NAME, Context.MODE_PRIVATE), BINARY_FILE_NAME); new NativeDaemonAPI20(context).doDaemon( context.getPackageName(), configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME, binaryFile.getAbsolutePath()); }; }; t.setPriority(Thread.MAX_PRIORITY); t.start(); if(configs != null && configs.LISTENER != null){ this.mConfigs = configs; configs.LISTENER.onPersistentStart(context); } }
private void copyAssets(Context context, String assetsFilename, File file, String mode) throws IOException, InterruptedException { AssetManager manager = context.getAssets(); final InputStream is = manager.open(assetsFilename); copyFile(file, is, mode); }
private boolean installBinary(Context context){ String binaryDirName = null; // String abi = Build.CPU_ABI; // if (abi.startsWith("armeabi-v7a")) { // binaryDirName = "armeabi-v7a"; // }else if(abi.startsWith("x86")) { // binaryDirName = "x86"; // }else{ // binaryDirName = "armeabi"; // } return install(context, BINARY_DEST_DIR_NAME, binaryDirName, BINARY_FILE_NAME); }
private boolean install(Context context, String destDirName, String assetsDirName, String filename) { File file = new File(context.getDir(destDirName, Context.MODE_PRIVATE), filename); if (file.exists()) { return true; } try { copyAssets(context, (TextUtils.isEmpty(assetsDirName) ? "" : (assetsDirName + File.separator)) + filename, file, "700"); return true; } catch (Exception e) { return false; } }
@Override public void onDaemonDead() { if(startServiceByAmsBinder()){ if(mConfigs != null && mConfigs.LISTENER != null){ mConfigs.LISTENER.onWatchDaemonDaed(); } android.os.Process.killProcess(android.os.Process.myPid()); } }
@Override public boolean onInitialization(Context context) { return installBinary(context); }
mDaemonStrategy = new DaemonStrategyXiaomi(); }else if(Build.MODEL != null && Build.MODEL.toLowerCase().startsWith("a31")){ mDaemonStrategy = new DaemonStrategy21();
@Override public void onPersistentCreate(final Context context, final DaemonConfigurations configs) { initAmsBinder(); initServiceParcel(context, configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME); Thread t = new Thread(){ public void run() { File binaryFile = new File(context.getDir(BINARY_DEST_DIR_NAME, Context.MODE_PRIVATE), BINARY_FILE_NAME); new NativeDaemonAPI20(context).doDaemon( context.getPackageName(), configs.DAEMON_ASSISTANT_CONFIG.SERVICE_NAME, binaryFile.getAbsolutePath()); }; }; t.setPriority(Thread.MAX_PRIORITY); t.start(); if(configs != null && configs.LISTENER != null){ this.mConfigs = configs; configs.LISTENER.onPersistentStart(context); } }
private void copyAssets(Context context, String assetsFilename, File file, String mode) throws IOException, InterruptedException { AssetManager manager = context.getAssets(); final InputStream is = manager.open(assetsFilename); copyFile(file, is, mode); }