打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

//在广播中声明  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"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

静默安装(需要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;    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

关机代码块(root)

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

双守护线程保活

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);        }    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146

//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();}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android service进程保护(详细从重说起保活的一些技术)
Android 之 远程图片获取和本地缓存
使用Vitamio打造自己的Android万能播放器(7)
Android串口通信:抱歉,学会它真的可以为所欲为
Android DiskLruCache完全解析,硬盘缓存的最佳方案
Android异步加载网络图片
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服