精华内容
下载资源
问答
  •  Debloater是一款Windows平台上的软件,可以通过adb命令,禁用安卓系统中几乎所有的App。实际上安卓系统一直带有禁用App的功能,但这个功能无法直接作用于系统级别的App。而利用adb命令,无需root也可以突破这一...
  • 刷机工具: adb + fastboot + Magisk Manager +线包 刷机流程 #1 通过各种方式备份重要的数据 #2 首先手机数据线连接电脑,开发者选项中打开usb调试并与电脑认证 #3 下载手机当前系统对应的线包,找到i...

    简单记录一下自己将MI8系统root的过程,凭借记忆描述一下大致流程,没有再做第二遍验证这个过程。如果有错误还望大佬们指正

    刷机环境

    机型:MI 8
    系统:MIUI Global 11.0.2稳定版本
    开发环境:Ubuntu18.04
    刷机工具: adb + fastboot + Magisk Manager +线刷包

    刷机流程

    #1 通过各种方式备份重要的数据
    #2 首先手机数据线连接电脑,开发者选项中打开usb调试并与电脑认证
    #3 下载手机当前系统对应的线刷包,找到images/boot.imgcopy到手机的SD卡中(Downloads目录)
    #4 手机安装一个叫做Magisk Manager的工具,找到安装Magisk同时选择修补刚才的boot.img文件
    #5 magisk_patched.img文件默认在Downloads目录下,导出到工作环境,然后进入刷写boot分区

    ps:如果开机进入recovery模式 需要清除数据,不要犹豫!!

    #6 这时已经获取到临时root权限,手机端再安装Magisk Manager,更新完整版的magisk
    #7 重启,这时卡到了recovery界面。

    有2种方法能正常启动(root权限不变):一是清所有数据,但这样每次重启都要做一次,造成很多麻烦;二是选择将之前没有修补过的boot.img在刷写到boot分区一次。

    hinzer@ubuntu:~$ adb root
    adbd is already running as root
    hinzer@ubuntu:~$ adb shell
    dipper:/ # 
    
    

    参考教程

    参考1:https://www.jianshu.com/p/00aca5f2f0b6
    参考2:https://blog.csdn.net/lv19980523/article/details/84109313
    参考3:https://www.v2ex.com/t/595513
    
    展开全文
  • adb调试

    2016-01-27 18:22:00
    adb usb调试,adb网络调试是非常实用的工具,通过电脑连接手机达到文件传输、电脑端安装app刷机等功能材料: 材料: 1、电脑端安装号对应手机的驱动程序 2、电脑端下载好adb调试工具 3、手机root 4、手机打开...

    adb usb调试,adb网络调试是非常实用的工具,通过电脑连接手机达到文件传输、电脑端安装app刷机等功能材料:

    材料: 1、电脑端安装号对应手机的驱动程序

                2、电脑端下载好adb调试工具

                3、手机root

                4、手机打开开发者模式,开始网络adb调试

    另外:刷机刷系统的话可以重启手机进入 fastboot 模式,命令adb_reboot_bootloader 进入 fastboot mode可以刷机、刷reconvery

    usb调试:准备好后usb连接手机电脑

    运行电脑cmd.exe cd 指到adb文件夹输入:adb_connect_devices,出现设备信息证明已经连上

    网络adb调试:手机打开网络adb调试(进入开发者模式打开)(同一个wifi下)

    电脑端打开cmd.exe输入adb_connect_[手机ip.5555](通常的端口号都是5555)

    常用命令:ps,kill,netview,ls,ls,su,cd,adb shell,push.pull,install等等

    转载于:https://www.cnblogs.com/lwkeny/p/5164217.html

    展开全文
  • 由于本人手机没有root所以不使用Andriod单机实现方式,需要一台辅助电脑用于... 使用python语言实现上面过程,由于之前动手做过跳一跳的自动所以,在这里我同样使用adb工具去做控制这一块有想过使用python-adb的...

    由于本人手机没有root所以不使用Andriod单机实现方式,需要一台辅助电脑用于控制手机

    同时由于本人只是闲暇时间所写,所以代码质量与精度上问题比较大,主要分享思路

    以及代码,任何问题欢迎支出。

    本人邮箱yaquepeng@outlook.com有见解欢迎发邮件告知。

    一、主体思路

        首先我们需要将手机上QQ点赞页面的图片截取,并且上传到我们的电脑。

        使用python语言实现上面过程,由于之前动手做过跳一跳的自动刷所以,在这里我同样使用adb工具去做控制这一块有想过使用python-adb的这个库,但是看看之后,安装尝试之后直接gg了,首先我的电脑总是安装不成功,有一个支持库的版本不对。具体实现

        通过adb命令我们能用电脑控制我们的手机去截取我们的屏幕,然后上传到我们的电脑上

    接下来,使用opencv读取图片,其实所谓opencv在这一次中间使用仅仅是用到了出片处理一点点东西,使用matplotlib也是可以的由于我一开始的想法是使用神经网络去寻找其中的点击点。所以使用了opencv

        首先,我们得到图片之后,会如图所示:


    我的思路是使用一种方法将图片中的每个小图分割出来,这个想法当然不仅仅是为了QQ点赞来的,实现这个可以做别的很多事。经过一番努力,我完成这个方法。

    标记完成之后会如图所示


    这个是通过截取后的到图形画图后制作的。

    最后找到我们需要点击的位置之后,我们需要去通过这个位置使用adb命令进行点击。

    接下来附上代码:

    #!/usr/bin/python
    # *_* coding:utf-8 *_*
    
    import adb
    import cv2
    import numpy as np
    import math
    
    """
    if you see this code, first you should to kown the img's point in the opencv
    and kown the phone's point 
    """
    
    def one_to_two(img):
        left_img = img[0:img.shape[0], 0:img.shape[1] / 2]
        right_img = img[0: img.shape[0], img.shape[1] / 2:img.shape[1]]
        cv2.imshow("left_img", left_img)
        cv2.imshow("right_img", right_img)
        cv2.waitKey()
        print(" ")
    
    def get_aim_img():
        adb.adb("shell screencap -p /sdcard/screen.png")
    #     adb.adb("pull /sdcard/DCIM/Camera/2.jpg")
        adb.adb("pull /sdcard/screen.png")
    
    def get_col_img(temp, img, cut, len_lin):
        img = img[0:len_lin, cut[0]:cut[1]]
        
        if img.shape[0] > 0 and img.shape[1] > 0:
            cv2.imwrite("cut_img/" + str(cut[0]) + ".png", img)
    #         print(temp[0] + 0, temp[1] + cut[0])
    #         cv2.imshow("img", img)
    #         cv2.waitKey()
            if need.shape[0] == img.shape[0] and need.shape[1] == img.shape[1]:
                cmd_str = "shell input tap " + str(temp[1] + cut[0] + 20) + " " + str(temp[0] + 0 + 30)
                print(cmd_str)
                for c in range(5):
                    adb.adb(cmd_str)
                
            one_cut_img = []
            one_cut_img.append(temp[0] + 0)
            one_cut_img.append(temp[1] + cut[0])
            one_cut_img.append(img)
            one_cut_img.append(img.shape[0])
            one_cut_img.append(img.shape[1])
            
            temp_cut_img.append(one_cut_img)
    
    def get_lin_img(temp, img, cut, len_col):
        img = img[cut[0]:cut[1], 0:len_col]
        
        if img.shape[0] > 0 and img.shape[1] > 0:
            cv2.imwrite("cut_img/" + str(cut[0]) + ".png", img)
            if need.shape[0] == img.shape[0] and need.shape[1] == img.shape[1]:
    #             print(temp[0] + cut[0], temp[1] + 0)
    #             cv2.imshow("img", img)
    #             cv2.waitKey()
                cmd_str = "shell input tap " + str(temp[1] + 0 + 20) + " " + str(temp[0] + cut[0] + 20)
                print(cmd_str)
                for c in range(10):
                    adb.adb(cmd_str)
            one_cut_img = []
            one_cut_img.append(temp[0] + cut[0])
            one_cut_img.append(temp[1] + 0)
            one_cut_img.append(img)
            one_cut_img.append(img.shape[0])
            one_cut_img.append(img.shape[1])
            
            temp_cut_img.append(one_cut_img)
        
    def how_cut(f, temp, lin, col, img_color):
        cut_one = [0,0]
        is_cut = False
        for x in range(len(lin) - 1):
    #         print(x, len(lin) - 1)
            if lin[x] == 0 and lin[x + 1] is not 0:
                cut_one[0] = x + 1
                continue
            if (lin[x] is not 0 and lin[x + 1] == 0):
                cut_one[1] = x
                f(temp, img_color, cut_one, len(col))
    #             print(cut_one)
                is_cut = True
                cut_one = [0,0]
            
            if (cut_one[0] is not 0) and x == (len(lin) - 2):
                cut_one[1] = x
                f(temp, img_color, cut_one, len(col))
    #             print(cut_one)
                is_cut = True
                cut_one = [0,0]
        return is_cut
    
    def one_cut(img, img_color):
        col = np.sum(img, axis = 0)
        lin = np.sum(img, axis = 1)
    #     print(img)
    #     print(len(col))
    #     print(len(lin))
        temp = temp_cut_img.pop()
    #     print(img)
    #     input("nihao")
        lin_ok = how_cut(get_lin_img, temp, lin, col, img_color)
        col_ok = how_cut(get_col_img, temp, col, lin, img_color)
        if lin_ok == False and col_ok == False:
            all_cut_img.append(temp)
    
                
    def main(img_color):
        img = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY)
    #     cv2.imshow("imgg", img)
    #     cv2.waitKey()
        ret, dst = cv2.threshold(img, 180, 255, 1)
    #     print(dst)
    #     cv2.imshow("new_aim", dst)
    #     cv2.waitKey()
        one_cut(dst, img_color)
    
    need = cv2.imread("data/72.png", cv2.IMREAD_GRAYSCALE)
    print(need.shape)
    all_cut_img = []
    temp_cut_img = []
    while True:
        get_aim_img()
        img_name = "screen.png"
        one = [0,0]
        img_read = cv2.imread(img_name)
        print(img_read.shape)
        one.append(img_read)
        one.append(img_read.shape[0])
        one.append(img_read.shape[1])
        temp_cut_img.append(one)
        while len(temp_cut_img) is not 0:
            main(temp_cut_img[len(temp_cut_img) - 1][2])
        img_read_c = cv2.imread(img_name)
        j = 0
        f = open("img.txt", "w")
        for i in all_cut_img:
            cv2.rectangle(img_read_c,(i[1],i[0]),(i[1] + i[4],i[0] + i[3]),(0,255,0),3)
            cv2.imwrite("img/" + str(j) + ".png", i[2])
            f.write(str(i[0]) + "    " + str(i[1]) + "    "\
                    + str(i[3]) + "    " + str(i[4]) + "\n")
            j +=1
        f.close()
    #     cv2.imshow("img_read.png", img_read_c)
    #     cv2.waitKey()
        cv2.imwrite("test.png", img_read_c)
        img_read_c = []
        adb.adb("shell input swipe 250 1200 250 800")

    代码写的很拙劣,没办法,本人也有些懒,然后也是接触python这方面都是自学。忘多多见谅。

    最后,这个是主要代码。附上完成代码传送门两个:

    https://github.com/Yaque/Auto 这个是github的

    项目是在eclipse上继承pydev开发的

    https://download.csdn.net/download/qq_20081893/10430660

    还有,希望大家能慷慨点,有积分的尽量也去下载一下这个博客上的资源,给博主一点支持,真的舍不得充钱。

    最后来个小视频展示一下效果

    好吧,发现上传不了。

    展开全文
  • bootimg部分安卓机型获取root权限比较难,supersu卡包和各种刷机工具都不见效;作为一名移动安全工程师,经常需要对各种APK进行调试,通常调试APK需要满足的条件是apk的配置文件androidmanifest.xml中android:...

    准备工具:

    1. adb

    2. bootimg


    部分安卓机型获取root权限比较难,刷supersu卡刷包和各种刷机工具都不见效;

    作为一名移动安全工程师,经常需要对各种APK进行调试,通常调试APK需要满足的条件是apk的配置文件androidmanifest.xml中android:debuggable="true"或者安卓default.prop文件中的ro.debuggable=1。以往,我们都是先将apk反编译,然后手动修改Androidmanifest.xml中的android:debuggable然后重新打包签名,但是随着梆梆、乐固、360等各种“壳”的出现,手动修改Androidmanifest.xml再重打包的方式已经行不通了。

    特别是SELinux机制加入安卓以后,我们想要获取所需要的权限变得更加困难。现在有一种一劳永逸的方法,如下。

    在使用adb连接手机的情况下,可以看到手机根目录下有一个default.prop文件:


    直接使用cat default.prop命令查看内容可以看到ro.secure、ro.adb.secure和ro.debuggable等属性:


    正常情况下,该文件中的ro.debuggable的值应该是0,表示不可调试。我已经手动修改为1。ro.secure表示root权限,如果为0则表示启用root权限,1则相反;ro.adb.secure表示adb的root权限,同样0表示启用adb的root权限,1则相反。

    ----------------------------------------------

    下面开始正式介绍修改这些值的方法。

    首先我们看看安卓系统rom包的结构:


    安卓系统rom包是一个压缩文件,我们可以直接用winrar、7z等工具打开。如上图,我们需要改动的就是boot.img,我们将其解压出来。

    修改boot.img需要先将其完全解开,解包boot.img的工具网上有很多,可自行搜索。再此处我推荐使用bootimg。此工具比较方便且文件很小。有exe、java、python等各种版本。我使用的是python版本,其他版本使用方法基本相同

    为了方便,将bootimg.py与要修改的boot.img放在同一目录下,首先使用

    python bootimg.py --unpack-bootimg
    将boot.img解开,可以获得 kernel 和 ramdisk.gz。


    此时,我们还看不到需要修改的default.prop,要修改,我们还要继续解开ramdisk.gz。使用命令

    python bootimg.py --unpack-ramdisk
    现在,文件夹中出现了initrd,我们需要的default.prop就在这里面了。


    进入initrd目录,使用notepad、sublime等工具直接修改,比如我需要开启所有应用的调试权限,我将default.prop中的ro.debuggable修改成了1。如果你是需要开启root权限,则将ro.secure的值改为0,要永久开启adb的root权限,可将ro.adb.secure修改为0。。。各个参数都可以按照自己的需求修改。(注意只修改自己需要的参数,不要随意更改,否则可能造成手机无法开机)


    修改完成后,开始重新打包,我们先对ramdisk.gz打包,然后对整个boot.img重打包。命令分别如下:

    python bootimg.py --repack-ramdisk 
    python bootimg.py --repack-bootimg 
    打包完成后,会出现一个boot_repack.img,这就是重新打包完成的boot.img。


    到这儿,boot.img已经修改完成,接下来有多种方式将其刷入我们的手机。

    1. 可以重新将文件名改回boot.img打包到系统rom包中,重新签名,刷入整个rom包。

    2.使用fastboot工具刷入手机。

    3.使用第三方recovery工具比如TWRP等,手动刷入此boot_repack.img。

    重启之后,我们使用adb shell命令查看,可看到,此属性已经被永久修改,不需要每次重启都修改一遍。

    如果有不同的意见或者更加简单的方法,欢迎告诉我。

    展开全文
  • 最近研究了一下magiskriru和edxposed的脚本,...1.手机adb拥有root权限,可以通过执行adbroot命令 2.手机系统版本>=8.0 3.本文讨论的riru不是最新版本的,是基于替换libmemtrack.so完成zygote注入的版本 ...
  • adb工具包刷机工具

    2014-03-25 19:42:26
    用于安卓手自我的一个好友偷摸搬运过来、刷机精灵、甜辣椒什么的有时对机型支持并不是那么完善的、关键时刻还的需要通用的adb命令自己动手、把adb完整工具包放在系统system32下、打开cmd、输入adb shell测试通过即可...
  • Android root 方法

    2011-08-09 20:09:16
    通过编译无安全限制的ramdisk.img并打包替换到update.zip中,然后这个update.zip,即可让设备能够adb remount,然后就可以为所欲为了! 对比eng和user版本编译的out目录中product的root目录里的default.prop,...
  • HTC One X Root

    2013-02-25 11:33:30
    非S--OFF要通过线RE才能进入! 具体如下: 1、下载adb.rar包,复制adb文件夹到电脑C盘根目录 2、下载recovery.rar解压缩出来,复制recovery.img到C盘根目录中的adb文件夹 3、手机重启进HBOOT后,进入...
  • muzisoft.adb.tools

    2015-06-06 19:51:08
    木子rom综合目前安卓系统刷机升级等相关工具教程,root权限,使用技巧等实用文章,通过木子rom您能够一站式解决手机问题,下面是本工具的使用方法。 Recovery下载大全:http://www.muzisoft.com/recovery/ 品牌...
  • 前言adb与fastboot开启开发者选项开启USB调试Bootloader解锁如何进入Bootloader模式刷机Root 本文以Google Pixel机型为例,主要解决以下两个问题 官方8.1系统线 twrp+Magisk Root方案 adb与fastboot 手机通过USB...
  • 华为c8650刷机包压缩包内附:C8650_recovery C8650_ROOT.zipC8650_usb驱动(支持64位) C8650一键入Recovery工具.rar刷机前准备工作:1.请确认正确安装手机驱动2.请关闭手机使手机处于关机状态下3.请同时按住音量减小...
  • ①:实现连接豌豆荚 手机关机后,按音量上键+开机键,...手机通过数据线与电脑连接,运行包内的root.bat root包完成后出现下图即是root成功。PS:数值偶尔会有细微变化,无视之。 此时按电脑键盘任意键手机重启。
  • 抓包准备 1. Android手机需要先获得root权限。一种是否获得root权限的检验方法:确保手机已连接上电脑,打开运行-cmd-输入:adb shell,显示:$则表示已经root。 2.如果Android手机尚未...Superoneclick刷root
  • rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4$ make ARCH=arm menuconfig [*] Networking support ---> <*> Bluetooth subsystem support ---> Bluetooth device drivers ---> < > ...
  • MT887

    2013-05-28 23:55:00
    摩托罗拉MT887 root教程 ADB server didn't ACK'的解决办法 ...手机ROOT后,有人可能会进行系统精简,删除一下系统自带程序,若你不想通过刷底包的方法恢复,那下面的方法可能会帮到你:本帖隐藏的内...
  • 重要:取得root权限后,在修改系统文件前,必须使ADB取得最高权限,千万不要等系统已经起不来了再想办法ROOT。  方法如下:  1、手机开机并与电脑通过数据线连接。安装手机驱动程序(只要你过机,自
  • user版本抓取恢复出厂设置的开机log,是让人烦恼的事情,一般可以通过在编译的时候修改MTKLog的配置来达到目的,但这... b)若工程模式下无root选项则只去eng版本的boot获取adb (二)修改配置文件mtklog-config.
  • 手机刷机工具

    2014-03-29 23:14:44
    刷ROOT包下载地址:http://pan.baidu.com/share/link?shareid=428294&uk=2114410210 1.下载附件ROOT.ZIP,并保存到SD卡或者内置卡里面已更新 2.进入Recovery模式(二种方式自选其一) 2.1关机状态下,按住音量...
  • 为了要分析G1的文件系统,用实际的手机上的文件系统来分析最有说服力。所以如何来提取的解包分析Gphone的...我的G1一到手就是上安卓网的2.2系统的,所以本上就有Root权限。 先在G1上插入SD卡,然后把G1
  • 如何解包分析Gphone的文件系统

    千次阅读 2009-06-23 18:35:00
    通过网上查找资料,很容易得到解决方法! 一、提取镜像文件。要提取镜像文件,你同手机的超级终端连接必须得有root权限。也就是你用"adb shell"登录手机后的提示符为“#”,如果没有,你就运行su命令来获取。但是...
  • linux ubuntu fastboot 下载

    2020-07-08 14:53:16
    linux ubuntu fastboot 下载 方法1: GSI Flashing Procedure For Android-Q Fresh Launch...7)adb root 8)adb remount 擦除用户数据,并清除来自其他必要分区的数据(例如,用户数据分区和系统分区): fastboot -w
  • rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4$ make ARCH=arm menuconfig [*] Networking support ---> <*> Bluetooth subsystem support ---> Bluetooth device drivers ---> < > ...
  • 测试:先美睿的系统,然后再原生的系统(支持4K录像,但是美睿没有移植驱动的系统),发现序列号没变。 序列号查看的方法:设置→关于平板电脑→状态信息→序列号:38608c0010503dd3d65c 中看到。 shell@kylin-...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

通过adb刷root