Android11 通过adb shell 来启动一个服务

代码是添加在 ActivityManagerService 的 dump 方法里面 ,
启动的这个服务是 系统的一个服务。

  @Override
        public void dump(FileDescriptor fd, PrintWriter pw, String[] args, boolean asProto) {
            if(args.length>=1 &&  args[0].equals("startService01")){
                Intent intent = new  Intent();
                intent.setClassName("com.android.phone","com.android.phone.TelephonyDebugService");
                pw.println("Starting service: " + intent);

                ComponentName cn = null;
                try {
                    cn = startService(null, intent, intent.getType(),
                            false, "com.android.shell", null, 0);
                } catch (TransactionTooLargeException e) {
                    e.printStackTrace();
                    pw.println("Error ");
                    return ;
                }
                if (cn == null) {
                    pw.println("Error: Not found; no service started.");
                    return ;
                } else if (cn.getPackageName().equals("!")) {
                    pw.println("Error: Requires permission " + cn.getClassName());
                    return ;
                } else if (cn.getPackageName().equals("!!")) {
                    pw.println("Error: " + cn.getClassName());
                    return ;
                } else if (cn.getPackageName().equals("?")) {
                    pw.println("Error: " + cn.getClassName());
                    return ;
                }
                pw.println("service " + intent +" started");
                return ;
            }

执行命令

 adb  shell   dumpsys  activity  startService01  

来调用上述代码.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值