在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试。最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改安卓系统配置文件的方式来修改但是没有找到解决方案。最后决定针对自己的手机进行私人订制,缺点是只能针对固定机型进行设置,不过优点是脚本很好编写,可以很快的对自己平时使用的测试机进行定制(非Windows下的脚本编写过程类似)。

利用adb命令编写PowerShell脚本

Windows下编写脚本用到了PowerShell和adb相关命令,脚本内容如下(坐标定位用uiautomatorviewer就可以):

  1. Write-Host "更改设置中……" -ForegroundColor Green
  2. #点击Home键返回Home页并进入网络设置页面
  3. adb shell input keyevent 3
  4. adb shell am start -a android.settings.WIRELESS_SETTINGS
  5. adb shell input tap 421 570
  6. adb shell input tap 421 570
  7. adb shell input tap 605 1665
  8. #手动设置代理
  9. #删除主机名
  10. adb shell input swipe 972 1687 972 1686 1500
  11. #获取本机ip
  12. $ip = (ipconfig|findstr "IPv4"|findstr "10.234").split(":")[1]
  13. #修改主机名为本机ip
  14. adb shell input text $ip
  15. #收起软键盘
  16. adb shell input tap 997 1250
  17. #向上滑动屏幕
  18. adb shell input swipe 813 1626 794 201 1000
  19. #点击端口框
  20. adb shell input tap 955 1461
  21. #删除端口号
  22. adb shell input swipe 986 1388 986 1386 1000
  23. #输入端口号8888
  24. adb shell input tap 547 1688
  25. adb shell input tap 547 1688
  26. adb shell input tap 547 1688
  27. adb shell input tap 547 1688
  28. #点击返回按钮
  29. adb shell input tap 1009 1853
  30. #下一项
  31. adb shell input tap 1009 1853
  32. #完成设置
  33. adb shell input tap 1009 1853
  34. #返回设置界面
  35. adb shell input tap 77 126
  36. #返回Home页
  37. adb shell input keyevent 3
  38. Write-Host "手机wifi代理设置完毕,已与本机相连,请开抓包工具!" -ForegroundColor Green
  39. Read-Host

将脚本编译为exe可执行文件

可以进一步将PowerShell脚本转化为可双击执行的exe文件。推荐使用Ps1 To Exe Online Converter这款在线应用上传脚本进行转化后下载。点击解压后的exe文件,运行效果如下:

PowerShell脚本自动设置安卓手机wifi代理的更多相关文章

  1. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(11)-Fiddler设置安卓手机抓包,不会可是万万不行的!

    1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Fiddler能截获 Android 和 Windows Phone 等 ...

  2. 放弃模拟器,安卓手机WiFi投屏到Ubuntu

    曾经使用过一些安卓的模拟器,但是特别占用资源,而且很多平时使用的非游戏生活类App都有兼容性问题,自然最终无奈而放弃了. 现在将学习环境迁移到了Ubuntu平台,发现各个方面还是不错的,平时使用的各种 ...

  3. Android实例-获取安卓手机WIFI信息(XE8+小米2)

    结果: 1.必须打开Access wifi state权限,不打开权限会出图二的错误. 相关资料: http://blog.csdn.net/lyf_lyf/article/category/1735 ...

  4. 脚本自动统计安卓log中Anr、Crash等出现的数量(Python)

    作为测试,在测试工作中一定会经常抓log,有时log收集时间很长,导致log很大,可能达到几G,想找到能打开如此大的log文件的工具都会变得困难:即使log不大时,我们可以直接把log发给开发同学去分 ...

  5. adb 设置安卓连接wifi

    一. 修改wpa_supplicant.conf文件 1.1. 获得root权限 adb root 1.2. 将wpa_supplicant.conf拷贝到你的电脑 adb pull /data/mi ...

  6. Visual Studio下运行PowerShell脚本自增小版本号并发布到Nuget服务器上

    Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上 附脚本[ update.ps1文件内容]: $ ...

  7. Autojs - 用 JavaScript 实现自己的安卓手机自动化工具脚本

    我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...

  8. mac电脑,charles,安卓手机如何配置代理,以及配置代理之后无法上网。已解决

    设备: 电脑:mac book pro 手机:小米10 charles:4.5.6 方法一: 步骤: 首先确保电脑,手机在同一局域网, 1. charles设置代理:proxy -> proxy ...

  9. 通过Fiddler 远程 对 安卓手机 iPhone 苹果手机 访问请求抓包 Android IOS14.4 fiddler代理 无法联网

    Fiddler 中的设置 1 查看 Fiddler所在 电脑的内网 ip地址. (cmd  > ipconfig 查看本机ipv4地址) 2 Fiddler 设置 允许远程设备连接: Fiddl ...

随机推荐

  1. centos7 添加svn

    预期目的: 1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组lsgogroup,该组下添加两个成员lsgoweb1.lsgoweb2,密码直接用用户名,两用户可以 ...

  2. Android NDK常见配置问题的解决方案

    添加NDK包时出现"Not a valid NDK directory" 在解压的android-ndk-rxxx文件夹中新建一个txt文件,将名字包括后缀更改为ndk-build ...

  3. Servlet的历史与规范

    http://blog.csdn.net/u010297957/article/details/51498018

  4. dsview

    http://blog.csdn.net/gzshun/article/details/7495488 http://blog.csdn.net/hjl_1991/article/details/50 ...

  5. js toString()

  6. SecureCRT连接VirtualBox下的ubuntu以及NMP的搭建与通过宿主机访问该NGINX服务器过程

    一直使用wamp作为开发环境,只是工作中时常会遇到在wamp下没问题但是提交到服务器生产环境会出现一些意想不到的情况,由此萌生了在本机搭建LNMP环境的想法,我个人不知道其他人的虚拟机搭建服务器环境是 ...

  7. lua table integer index 特性

    table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...

  8. ios移动端部分手机不支持background-attachment: fixed 的解决办法

    ios系统和某些移动端background-attachment:fixed不兼容性,没有任何效果,但可以hack一下就可以了,代码如下: ps:想在哪个标签加背景,可以在它class后:before ...

  9. Excel标题与索引的对应关系

    /// <summary> /// 返回对应标题的索引 /// </summary> /// <param name="columnTitle"> ...

  10. 关于sigwait

    刚开始看sigwait函数,只是知道它是用来解除阻塞的信号,可是使我疑惑的是那么解除了以后为什么线程收到终止信号SIGINT的时候还是没能终止呢?   于是网上找了一些资料,总的理解如下所示: sig ...