Android 设备 设置adb自动监听tcp 5555端口,重启有效

这篇具有很好参考价值的文章主要介绍了Android 设备 设置adb自动监听tcp 5555端口,重启有效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android 设备调试有两种连线方式:有线和无线;

有线是通过USB导线连接android设备和电脑端,无线方式是通过连接WIFI,通过TCP的方式,连接设备和电脑端,一般用 5555端口;

有线的调节,只需要打开调试模式基本就可以了,无线连接方式比有线多一步操作,就是需要先通过usb导线连接后,adb 命令行:adb tcpip 5555  开启tcp 连接5555端口;

正常过程是这样的,但是日常开发的时候经常遇到,没有带线,没有笔记本备用,设备不在身边(在隔壁)的情况,设备每次重启都会关闭tcp 555端口,不可能每次都需要拿着电脑/导线去设备前调试,而且,公司没有给我配置笔记本```

adb tcp,Android 知识碎片,android,adb,tcp/ip

这个情况下,就需要设置adb 自动监听5555端口,而且需要重启有效,

说明 : 该情况适用于 root 的设备;

1.adb 查看root权限

我们先通过导线连接设备,通过adb 命令判断,命令行输入 adb shell,#代表已经root过,$代表没有root权限;

(还好还好,我们的屏/设备 属于root过的设备,具有root权限)

2.修改文件

修改/default.prop或者/system/build.prop文件

//添加这一行
service.adb.tcp.port=5555

文件后可以添加这一行

但是你会发现/system 文件夹是只读权限的.

adb tcp,Android 知识碎片,android,adb,tcp/ip

你可以通过如下的命令查看该文件权限;

adb shell ls -l /system

这个是我修改后的,你可以看看你的;

要修改build.prop文件,是修改不了的,所以需要解决的是如何修改;

adb tcp,Android 知识碎片,android,adb,tcp/ip

3.Android9.0挂载system文件夹读写

我们知道在Android系统中,system文件夹一般都是只读属性,不管你是root用户还是普通权限用户,所以在开发中,如果我们想要访问和修改system文件夹下的内容的话就需要获取system文件夹的写属性,而因为Android版本的变化,在不同版本下system文件夹修改读写属性的方式也有较大的区别。


Android 8.0以下版本
第一步:要得到system分区的全名
adb shell 
mount 
rootfs / rootfs ro 0 0 
tmpfs /dev tmpfs rw,mode=755 0 0 
devpts /dev/pts devpts rw,mode=600 0 0 
proc /proc proc rw 0 0 
sysfs /sys sysfs rw 0 0 
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0 
none /dev/cpuctl cgroup rw,cpu 0 0 
/dev/block/mtdblock0 /system yaffs2 ro 0 0 
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 

从/dev/block/mtdblock0 /system yaffs2 ro 0 0 部分可以看得出/system的权限是ro即是read only。

第二步:根据名称重新挂载
mount -o remount /dev/block/mtdblock0 /system 
mount 
rootfs / rootfs ro 0 0 
tmpfs /dev tmpfs rw,mode=755 0 0 
devpts /dev/pts devpts rw,mode=600 0 0 
proc /proc proc rw 0 0 
sysfs /sys sysfs rw 0 0 
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0 
none /dev/cpuctl cgroup rw,cpu 0 0 
/dev/block/mtdblock0 /system yaffs2 rw 0 0 
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

可以看到/dev/block/mtdblock0 /system yaffs2 rw 0 0,/system拥有rw的权限。

如果要改回去ro权限的话,执行:

mount -o remount,ro /dev/block/mtdblock0 /system 

当/system 目录为读写权限后,就可以随意删除或者替换系统应用了。

Android 8.0以上版本

在Android8.0以上通过以上mount命令,你会发现找不到/system代表的节点和拥有的权限信息,这是因为Android8.0之后谷歌加入了A/B system的特性,system分区跟ramdisk分区打包在一起,因此系统起来之后也就不存在system分区了,而是直接把system镜像挂载到/根目录上。所以/proc/mounts文件中没有包含/system的权限信息,此时如果使用上面的命令:
 

mount -o remount,rw /system 

重新挂载/system分区会报错:

mount: '/system' not in /proc/mounts

因此使用这条命令是不可行的,需要使用下述的命令:

mount -o remount -o rw /

使用这条命令可以临时挂载上/system文件夹,直到下一次重启。
其实为什么root用户会出现/system文件夹无权限写的情况的话,主要原因是/system所属的用户组不是root,而是system用户组,所以需要重新挂载。
当然上面方法不能挂载/system目录的话而且提示“’/dev/root’ is read-only”的话,那么是因为你的设备开启了avb,此时就只能通过下面的方式完全重新挂载整个系统(当然,我暂时没遇到这个情况,大家可以留意一下):
 

adb root
adb disable-verity
adb remount

如果adb disable-verity提示需要解锁OEM的话,那么还需要先解锁OEM:

adb reboot fastboot
fastboot oem unlock
fastboot reboot

提示解锁成功的话,重新执行命令就不会报错了。

4.再修改/system/build.prop

这个时候你就只可以直接操作/system文件夹下的文件了, adb pull,adb push 都可以用了,不过有没有办法可以在android shell中编辑这些文件(比如Linux shell中的vim编辑器)呢,

我看到有个文件说你可以用cat命令,好吧

您可以使用以下方法创建文本

 $ cat > filename.txt

您可以使用以下方法向文本文件添加行:

 $ cat >> filename.txt

两个命令都可以使用终止ctrl-D.

大家也可以试一下,这个也行,cat file文件还可以查看内容~~~

当然,我最后用的还是adb pull到本地,修改后直接adb push~

adb tcp,Android 知识碎片,android,adb,tcp/ip

5.测试一下

这个时候直接新开一个命令窗口,直接adb connect IP:5555,好吧,我尝试的第一次没反应,然后我直接adb  reboot,重启之后重新adb connect IP:5555,竟然真的成功了!然后我重新关机重启,还是可以的,

6.收尾操作

为了设备安全,我们功能完成之后别忘了恢复只读权限

//设置可读写权限
# mount -o rw,remount /system

//恢复只可读
# mount -o ro,remount /system

至此,就算结束了,重启手机还是会生效的

7.代码实现(还未实现)

下面是我打算用代码/程序实现该功能的草稿,下面的函数方法去实现(主要方法)

public void openPort5555()
{
    try 
    {
        String cmds[] = {
            "setprop service.adb.tcp.port 5555",
            "stop adbd",
            "start adbd"
        };
        for (int i = 0; i < cmds.length; i++)
        {
            java.lang.Process process = Runtime.getRuntime().exec(cmds[i]);
            int exitCode = process.waitFor();
            if (exitCode != 0) 
            {
                throw new java.io.IOException("Command exited with " + exitCode);
            }
        }
        Toast.makeText(this, "Listening on port 55555...", Toast.LENGTH_LONG).show();
    } 
    catch (Exception ex) 
    {
        ex.printStackTrace();
        Toast.makeText(this, "An error has occurred: " + ex, Toast.LENGTH_LONG).show();
        
    }
}

大家可以尝试一下;

8.drwxrwxrwx

前面的 d 表示这是一个文件夹,后面的 rwxrwxrwx 则表示文件夹的权限:

第 1 个字符表示文件类型(d 表示目录,- 表示普通文件)
第 2~4 个字符表示文件所有者的权限(rwx 表示可读、可写、可执行)
第 5~7 个字符表示文件所在组的权限(rwx 表示可读、可写、可执行)
第 8~10 个字符表示其他用户的权限(rwx 表示可读、可写、可执行)
在这个例子中,文件夹 /sdcard/myfolder 的权限为可读、可写、可执行,无论是文件所有者、文件所在组还是其他用户。

在 Linux 系统中,文件和目录都有属主(owner)和属组(group)。

文件所有者(owner)指的是文件或目录的拥有者,拥有者有最高的权限,可以对文件或目录进行任何操作。

文件所在组(group)指的是文件或目录所属的组,该组中的用户具有一定的权限,能对文件或目录进行特定的操作。

其他用户指的是除了文件所有者和文件所在组的其他用户,这些用户通常拥有最低的权限,只能进行特定的操作。

Linux 系统中的文件和目录权限是以用户身份和用户组身份来区分的,每个文件或目录都有三组权限,分别是文件所有者的权限、文件所在组的权限和其他用户的权限。

第8项 属于水文字的,大家了解一下知识点就可以了,关于第7项,之后我会再继续尝试一下实现的;

adb tcp,Android 知识碎片,android,adb,tcp/ip

参考资料:

https://blog.csdn.net/baidu_38661691/article/details/107481148
https://blog.csdn.net/u013168615/article/details/128560120文章来源地址https://www.toymoban.com/news/detail-715856.html

到了这里,关于Android 设备 设置adb自动监听tcp 5555端口,重启有效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 红米电视 ADB 安装 app 报错 failed to authenticate xxx:5555

    开启电视开发者模式,允许安装未知来源应用及开启 ADB 调试 电脑端下载 adb 工具 点击下载 同一局域网的电脑使用 adb 工具连接(提前查看电视 IP) 提示未授权 再次连接,提示已连接 查看已连接设备,显示未授权 尝试直接安装 APK,报错未授权 停止 adb 服务,删除 用户/.a

    2024年02月14日
    浏览(35)
  • Linux编程中查看TCP监听的端口和连接

    netstat命令是一个网络工具,可以显示网络连接、路由表和网络接口等信息。使用以下命令可以查看当前的TCP监听端口和连接: -t 显示TCP协议的连接情况 -l:显示监控中的服务器的socket。 -n 以数字形式显示IP地址和端口号。 ss(Socket Statistics)命令是一个更快速和更强大的替代

    2024年02月06日
    浏览(46)
  • Android adb命令 关闭app 和 启动app 还有重启app命令

    以下是Android中使用adb命令关闭应用程序、启动应用程序和重启应用程序的方法: 1.关闭应用程序 使用以下命令可以关闭正在运行的应用程序: 其中,package_name是您要关闭的应用程序的包名。例如,要关闭Google Chrome应用程序,您可以使用以下命令: 2.启动应用程序 使用以下

    2024年02月11日
    浏览(46)
  • 若依 springboot集成 netty 实现tcp监听 设备板 数据 传输

    也不知道说什么   也是记录一下所用到的东西     因为  我得数据板  发送得是   tcp 10进制数据   所以  在监听端口上传信息时   要进行一此转换  10 进制  转换  16进制    下面是  所用到得所有类    MyNettyServer 类    然后  util   就是 所用的  工具类了    具体

    2024年01月22日
    浏览(49)
  • 【Android】ADB无线连接Android设备

    Android Debug Bridge ,简称 adb ,是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件: 客户端 :用

    2023年04月08日
    浏览(53)
  • 使用网络adb连接android设备

    1.系统默认开启网络adb 1.1 打开cmd管理员,输入adb connect IP,例如:adb connect 192.168.4.39 1.2 返回connected to 192.168.4.39:5555 成功连接 ,可进行其它adb 指令操作,  如连接失败有些设备需要在设置中开启网络adb开关,一般是在开发者选项中。 1.3 断开adb连接 在cmd窗口中输入adb discon

    2024年02月15日
    浏览(44)
  • 为什么我在Linux部署的Springboot服务,部署成功之后,使用netstat -ntlp | grep java 命令查看对应服务监听的端口,只看到有tcp6的监听,没有tcp的监听?

    这种情况可能是由于 Spring Boot 默认配置使用了 IPv6 地址而没有使用 IPv4 地址。在较新的 Linux 发行版上,IPv6 通常是默认开启的。实际上,如果你的服务正在监听 IPv6 的通配地址 :: ,那么它将同时监听 IPv4(0.0.0.0)和 IPv6(::)的所有地址。换句话说,仅看到 tcp6 监听并不意味

    2024年02月06日
    浏览(49)
  • android adb wifi和usb 调试设备

    一.usb连接设备 一般情况下,我们通过usb连接(手机,平板或者车载设备),调试的时候,只需要用usb线连接电脑,然后在Settings关于phone中,点击Build Number 7次,开启开发者模式,再在开发者模式中打开usb调试即可。 二.wifi连接设备 可以用wifi通过标准的TCP/IP连接android设备,

    2024年02月12日
    浏览(52)
  • 使用ADB命令查询Android设备的安卓版本信息

    确保你已经安装了ADB并将其添加到系统的路径中。 连接你的Android设备到计算机,并确保启用了开发者选项和USB调试模式。你可以在设备的设置中找到这些选项。 打开终端(命令提示符或终端窗口)。 运行以下ADB命令来获取Android设备的安卓版本信息: 如果你希望获得更详细

    2024年02月08日
    浏览(43)
  • 通过adb 连接多台Android 设备时的操作

    通过adb 连接 多台 android设备时,执行指令的时候,会报出超出一台的连接设备的错误提示,这个时候只能adb disconnect,关闭所有,然后再连接指定的设备; 所以不论是有线多台设备还是无线多台设备或是混合多设备,应该怎么控制操作呢? 看一下3个的命令 1、adb devices 查看所有连接设

    2024年01月23日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包