当前位置:网站首页>一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。...

一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。...

2022-11-24 21:34:3751CTO



一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。..._数据库


image.png


结果adb断了,而且开发者模式允许调试功能关闭也没了,
好在qq是属于手机白名单,而我的手机也root了,也安装了qq机器人,哪怕重启也会启动qq,而qq插件会自动运行机器人软件,但是当时的情况是忘记给机器人授权root指令了,通过命令是无法运行adb wifi这样的软件了。

但是我竟然以为我的机器人应该没写支持shell的命令,毕竟很久没搞机器人了,,现在干着急半天,而且我还看了机器人源代码,发现支持shell执行,但是我没给root权限授权,执行完成之后一直提示Unallowed user



一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。..._adb_02


image.png


并没有其他写启动应用(免root)的指令,最后灵光一现,现在手机连接上usb,虽然无法启动开发者模式,但是还可以通过电脑访问存储目录呀,好在我的机器人支持加载java插件,js插件,而且存储目录都是外部存储, 对我来说肯定选择java插件了,

js我感觉还是吃力,于是我编写了一个插件,然后执行了​​配置 重载​​​ 以及​​插件信息​​​发现成功加载机器人插件了,然后成功启动了应用,然后通过路由器查看到了手机的ip地址,然后就通过adb connect ip地址 成功连上了,妈的!
最后我赶紧给我的机器人授权root。
下面是kingroot授权界面



一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。..._java_03


image.png


下面是我写插件放到存储目录,让手机端启动应用adb wifi应用,然后电脑端连接adb connect ip 的插件代码。

      
      
package cn.qssq666.robot.plugin.sdk.control;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.io.File;
import java.util.List;

import cn.qssq666.plugindemo.SimplePluginInterfaceWrapper;
import cn.qssq666.robot.plugin.sdk.interfaces.AtBeanModelI;
import cn.qssq666.robot.plugin.sdk.interfaces.IMsgModel;


/**
* Created by qssq on 2018/7/19 [email protected]
*/
//cn.qssq666.robot.plugin.sdk.control.PluginMainImpl
public class PluginMainImpl extends SimplePluginInterfaceWrapper {
private static final String TAG = "PluginMainImpl";

public File getPicRootdir() {
return new File("/sdcard/qssq666/pic");
}

String mLastMsg = "";

@Override
public String getAuthorName() {
return "情随事迁";
}

@Override
public int getVersionCode() {
return 2;
}

@Override
public String getBuildTime() {
return "2021-8-14 01:15:07";
}

@Override
public String getVersionName() {
return "1.1";
}

@Override
public String getPackageName() {
return "cn.qssq666.applauncher";
}

@Override
public String getDescript() {
return "";
}

@Override
public String getPluginName() {
return "应用启动";
}

@Override
public boolean isDisable() {
return false;
}

@Override
public void setDisable(boolean disable) {

}

@Override
public boolean onReceiveMsgIsNeedIntercept(IMsgModel item) {
mLastMsg = item.getMessage();

String message = item.getMessage();
if(message.startsWith("启动")){

if(!getConfigApi().isManager(item.getSenderuin())){
getControlApi().sendMsg(item.setMessage("你不是管理员"));
return true;
}
String packageName = message.substring(2);
if(TextUtils.isEmpty(packageName)){
getControlApi().sendMsg(item.setMessage("请输入包名"));
}
try{

Context context = getContext();
PackageManager packageManager = context.getPackageManager();
Intent intent =null;
intent = packageManager.getLaunchIntentForPackage(packageName);
context.startActivity(intent);
getControlApi().sendMsg(item.setMessage("已启动"+ packageName));
}catch (Throwable e){
getControlApi().sendMsg(item.setMessage("启动失败"+ Log.getStackTraceString(e)));

}
return true;
}

return false;
}



@Override
public boolean onReceiveOtherIntercept(IMsgModel item, int type) {
return false;
}


@Override
public void onDestory() {

}


@Override
public View onConfigUi(ViewGroup viewGroup) {
TextView textView = new TextView(viewGroup.getContext());
textView.setText("应用启动" + mLastMsg);


return textView;
}

@Override
public int getMinRobotSdk() {
return 0;
}

@Override
public boolean onReceiveRobotFinalCallMsgIsNeedIntercept(IMsgModel iMsgModel, List<AtBeanModelI> list, boolean b, boolean b1) {
return false;
}
}
  • 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.



一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。..._数据库_04


image.png



一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接但是手机root了,怎么搞。..._java_05


image.png


为了防止更多意外,还需要搞不用机器人也能开机启动之类的更好了,这个可能需要借助xposed插件勾住launcher应该可以,写一个自启动没生效,还需要研究是哪个应用把自启动给禁用了,我目前没有发现被禁用,但是没找到原因。

原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15458814/5885099

随机推荐