当前位置:   article > 正文

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

adb 启动service

代码是添加在 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 ;
            }
  • 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

执行命令

 adb  shell   dumpsys  activity  startService01  
  • 1

来调用上述代码.

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号