神刀安全网

Android流氓代码块(亲测可行)

个人博客http://blog.csdn.net/qq_22329521/article/details/52704661

开机自启动(小米需要在安全中心设置自启动)

//在广播中声明   String action = intent.getAction();       if (action.equals("android.intent.action.BOOT_COMPLETED")) {             Intent activity = new Intent(context, SecondActivity.class);             activity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);             context.startActivity(activity);      }    <receiver android:name=".xxx.xxx">             <intent-filter>                 <action android:name="android.intent.action.BOOT_COMPLETED"/>             </intent-filter>   </receiver>   //权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

静默安装(需要root)

    public static boolean installUseRoot(String filePath) {         if (TextUtils.isEmpty(filePath))             throw new IllegalArgumentException("Please check apk file path!");         boolean result = false;         Process process = null;         OutputStream outputStream = null;         BufferedReader errorStream = null;         try {             process = Runtime.getRuntime().exec("su");             outputStream = process.getOutputStream();             String command = "pm install -r " + filePath + "/n";             outputStream.write(command.getBytes());             outputStream.flush();             outputStream.write("exit/n".getBytes());             outputStream.flush();             process.waitFor();             errorStream = new BufferedReader(new InputStreamReader(process.getErrorStream()));             StringBuilder msg = new StringBuilder();             String line;             while ((line = errorStream.readLine()) != null) {                 msg.append(line);             }             Log.d(TAG, "install msg is " + msg);             if (!msg.toString().contains("Failure")) {                 result = true;             }         } catch (Exception e) {             Log.e(TAG, e.getMessage(), e);         } finally {             try {                 if (outputStream != null) {                     outputStream.close();                 }                 if (errorStream != null) {                     errorStream.close();                 }             } catch (IOException e) {                 outputStream = null;                 errorStream = null;                 process.destroy();             }         }         return result;     }

关机代码块(root)

    public static void closeOs(Context context) {         try {             Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot -p"});  //关机         } catch (IOException e) {             e.printStackTrace();         }     }

双守护线程保活

public class DaemonService extends Service {     String TAG = "DaemonService";      private DaemonBinder mDaemonBinder;      private DaemonServiceConnection mDaemonServiceConn;      public DaemonService() {     }      @Override     public void onCreate() {         super.onCreate();         mDaemonBinder = new DaemonBinder();          if (mDaemonServiceConn == null) {             mDaemonServiceConn = new DaemonServiceConnection();         }          Log.i(TAG, TAG + " onCreate");     }      @Override     public int onStartCommand(Intent intent, int flags, int startId) {         super.onStartCommand(intent, flags, startId);         Log.i(TAG, TAG + " onStartCommand");         bindService(new Intent(this, RemoteService.class), mDaemonServiceConn, Context.BIND_IMPORTANT);          return START_STICKY;     }      @Nullable     @Override     public IBinder onBind(Intent intent) {         return mDaemonBinder;     }      /**      * 通过AIDL实现进程间通信      */     class DaemonBinder extends IProcessService.Stub {         @Override         public String getServiceName() throws RemoteException {             return TAG;         }     }      /**      * 连接远程服务      */     class DaemonServiceConnection implements ServiceConnection {          @Override         public void onServiceConnected(ComponentName name, IBinder service) {             try {                 // 与远程服务通信                 IProcessService process = IProcessService.Stub.asInterface(service);                 Log.i(TAG, "连接" + process.getServiceName() + "服务成功");             } catch (RemoteException e) {                 e.printStackTrace();             }         }          @Override         public void onServiceDisconnected(ComponentName name) {             // RemoteException连接过程出现的异常,才会回调,unbind不会回调             startService(new Intent(DaemonService.this, RemoteService.class));             bindService(new Intent(DaemonService.this, RemoteService.class), mDaemonServiceConn, Context.BIND_IMPORTANT);         }     } }    public class RemoteService extends Service {     String TAG = "RemoteService";     private ServiceBinder mServiceBinder;      private RemoteServiceConnection mRemoteServiceConn;      @Override     public void onCreate() {         super.onCreate();          mServiceBinder = new ServiceBinder();          if (mRemoteServiceConn == null) {             mRemoteServiceConn = new RemoteServiceConnection();         }          Log.i(TAG, TAG + " onCreate");     }      @Override     public int onStartCommand(Intent intent, int flags, int startId) {         super.onStartCommand(intent, flags, startId);         Log.i(TAG, TAG + " onStartCommand");          bindService(new Intent(this, DaemonService.class), mRemoteServiceConn, Context.BIND_IMPORTANT);          return START_STICKY;     }      @Nullable     @Override     public IBinder onBind(Intent intent) {         return mServiceBinder;     }      /**      * 通过AIDL实现进程间通信      */     class ServiceBinder extends IProcessService.Stub {         @Override         public String getServiceName() throws RemoteException {             return "RemoteService";         }     }       /**      * 连接远程服务      */     class RemoteServiceConnection implements ServiceConnection {          @Override         public void onServiceConnected(ComponentName name, IBinder service) {             try {                  IProcessService process = IProcessService.Stub.asInterface(service);                 Log.i(TAG, "连接" + process.getServiceName() + "服务成功");             } catch (RemoteException e) {                 e.printStackTrace();             }         }          @Override         public void onServiceDisconnected(ComponentName name) {             // RemoteException连接过程出现的异常,才会回调,unbind不会回调              startService(new Intent(RemoteService.this, DaemonService.class));              bindService(new Intent(RemoteService.this, DaemonService.class), mRemoteServiceConn, Context.BIND_IMPORTANT);         }     } }

//aidl 文件

package com.android.process.aidl; interface IProcessService {     /**      * Demonstrates some basic types that you can use as parameters      * and return values in AIDL.      */     String getServiceName(); }

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Android流氓代码块(亲测可行)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址