美文网首页
一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接

一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接

作者: 吉凶以情迁 | 来源:发表于2021-08-14 01:45 被阅读0次
能连接自然能用屏幕控制软件vysor,但是这个软件需要安装一个app,还是需要手机端确认,后面选择了另外一个成功解决了这个问题,接下来需要一个root版本的adb wifi软件,这样可以wifi启动,虽然软件下载了,但是貌似开机并不能自动启动,而我没有在一这个细节,那么今天我访问存储目录发现访问不了,我就用电脑控制手机切换成传递文件 image.png

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

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

image.png

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

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

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 qssq666@foxmail.com
 */
//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;
    }
}

image.png image.png

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

相关文章

  • 一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接

    能连接自然能用屏幕控制软件vysor,但是这个软件需要安装一个app,还是需要手机端确认,后面选择了另外一个成功解...

  • 一忧一喜

    忧:手机昨天前屏幕摔坏了(后屏幕两年前摔坏的,因为喜欢摔碎的花纹,感觉摔的好!) 今年手机卡坏了,更换新的,手续费...

  • 手机屏幕坏了

    nnd手机突然屏幕失灵了,完全没反应了,这小米……咋回事啊,明天只能去趟维修中心看看了。 这玩意还是头一次遇到,真...

  • adb connect wifi 连接手机安装调试

    ①使用数据线连接上手机,可adb调试,②adb devices 确认手机连接成功③在 tcpip 模式下重启adb...

  • adb命令

    本文介绍常用adb命令 重启手机 adb reboot WiFi调试程序 连接手机adb connect 192....

  • 20211210和你一起成长日记55

    一,整理相片 今天备份手机照片,最近手机老摔,怕哪天坏了,就会丢失小天牛最珍贵的出生照片。手机数据线连接不到电脑,...

  • 手机被我玩坏了

    刚刚打开了升学e网通,看了不到一分钟的视频。突然看到妹妹在玩微信小程序的游戏,于是我就退出升学e网通,打开微信玩游...

  • 电量功耗测试

    adb命令用wifi方式连接手机 因为要通过adb命令来监控手机的耗电量,所以建议通过wifi的方式来连接手机,而...

  • 2020-06-27

    手机被我摔坏了, 生活很难, 心里很苦, 好多事情夹杂在一起, 坏脾气就爆发了,把手机摔了, 很重的摔,感觉很累,...

  • 常用adb命令

    1、adb通过wifi连接手机 1)手机打开USB调试 2)通过数据线连接电脑 3)adb -s se...

网友评论

      本文标题:一段惊险刺激的真实体验 手机屏幕被我摔坏了,手机adb暂时能连接

      本文链接:https://www.haomeiwen.com/subject/jqdsbltx.html