Giter VIP home page Giter VIP logo

wifiadb's Introduction

WiFiADB

JetBrains IntelliJ Plugins JetBrains IntelliJ plugins GitHub GitHub Star

A IntelliJ IDE plugin use for connect Android device wireless.

Installation

1. By release plugin file

Download Plugin

  • In your IntelliJ IDE, Nav > File > Settings > Plugins > click the gear icon > Install plugin from disk.

  • Another way is copy this plugin file into the IDE's installation path /your_ide_installation_dir/plugin/, you should unzip plugin to this path, and restart IDE.

2. By IntelliJ Plugin Repository

In your IntelliJ IDE, Nav > File > Settings > Plugins > Search WiFiADB

Build

Dependencies

IntelliJ IDEA (Community Edition) 19.1+

Import Project

This project is not a gradle or pom project, but a IntelliJ Platform Plugin project, IDEA cannot import this project normally.

In IDEA Community (necessary) File -> New -> Project from Exsiting Sources -> Create project from exsiting sources, then click next until finish import.

Pressing the Ctrl + Alt + Shift + S to open Project Structure dialog, choose ** Project** tab, change ** Project SDK** to ** IntelliJ IDEA Community Edition IC-xxxx** , then apply change.

Then, edit GenerateModuleFromTemplate.iml in the project root directory, change the type attribute of module node to PLUGIN_MODULE, minimize the IDEA and restore it, the plugin project will be detected.

Finally, Run -> Edit Configuretions -> Alt + Insert -> Plugin -> Apply, the project configuration completed.

Generate Plugin Jar

Run -> Prepare Plugin Module xxx For Deployment

Change Log

SEE RELEASES FOR MORE.

  • 2.8: Fix: dialog height anomaly.
  • 2.7: Update: set the main dialog be modal.
  • 2.6: Update: fixed default dialog width.
  • 2.5: Feature: delete device config support.
  • 2.4: Fix: unable to get device ip address.
  • 2.3: Update: compatible with Android 10.
  • 2.2: Feature: support configure adb path.
  • 2.1: Fix bug: 'Cannot run program "adb"' problem on MacOS.
  • 2.0: Update : custom column support, persist ui status, more menu option, more feature.
  • 1.2: Fix bug: ui frozen when loading device and connecting device.
  • 1.1: Fix bug: can't load device configured.
  • 1.0: First release.

Screenshot

WiFiADB

wifiadb's People

Contributors

dengzii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wifiadb's Issues

Device not connecting

Describe the bug
Not much to say, the device shows up in the list but when I click connect, the msg changes to 'connecting' but nothing happens after that i.e it stays disconnected and the msg changes to 'all devices are listed'.
I refreshed, restarted AS, same thing.

To Reproduce
Steps to reproduce the behavior:
Just configured and connected a device yesterday. worked earlier. opened the plugin after sometime (after shutting down pc) same way as always.

Screenshots
If applicable, add screenshots to help explain your problem.

Context Log
From Menu > Main > Log

08-10/19:16 CmdUtils.execSync:48: adb version
08-10/19:16 CmdUtils$resolve$1.accept:76: >Android Debug Bridge version 1.0.41
08-10/19:16 CmdUtils$resolve$1.accept:76: >Version 31.0.3-7562133
08-10/19:16 CmdUtils$resolve$1.accept:76: >Installed as C:\Users\AMY\AppData\Local\Android\Sdk\platform-tools\adb.exe
08-10/19:16 Config.loadDevices:50: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:16 CmdUtils.execSync:48: adb devices -l
08-10/19:16 CmdUtils$resolve$1.accept:76: >List of devices attached
08-10/19:16 CmdUtils$resolve$1.accept:76: >
08-10/19:16 Config.saveDevice:57: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:16 DeviceManager.connectDevice:55: Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)
08-10/19:16 CmdUtils.execSync:48: adb connect 192.168.1.4:5555
08-10/19:16 CmdUtils$resolve$1.accept:76: >cannot connect to 192.168.1.4:5555: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (10060)
08-10/19:16 Config.loadDevices:50: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:16 CmdUtils.execSync:48: adb devices -l
08-10/19:16 CmdUtils$resolve$1.accept:76: >List of devices attached
08-10/19:16 CmdUtils$resolve$1.accept:76: >
08-10/19:16 Config.saveDevice:57: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:17 DeviceManager.connectDevice:55: Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)
08-10/19:17 CmdUtils.execSync:48: adb connect 192.168.1.4:5555
08-10/19:17 CmdUtils$resolve$1.accept:76: >cannot connect to 192.168.1.4:5555: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (10060)
08-10/19:17 Config.loadDevices:50: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:17 CmdUtils.execSync:48: adb devices -l
08-10/19:17 CmdUtils$resolve$1.accept:76: >List of devices attached
08-10/19:17 CmdUtils$resolve$1.accept:76: >
08-10/19:17 Config.saveDevice:57: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:17 DeviceManager.connectDevice:55: Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)
08-10/19:17 CmdUtils.execSync:48: adb connect 192.168.1.4:5555
08-10/19:17 CmdUtils$resolve$1.accept:76: >cannot connect to 192.168.1.4:5555: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (10060)
08-10/19:17 Config.loadDevices:50: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]
08-10/19:17 CmdUtils.execSync:48: adb devices -l
08-10/19:17 CmdUtils$resolve$1.accept:76: >List of devices attached
08-10/19:17 CmdUtils$resolve$1.accept:76: >
08-10/19:17 Config.saveDevice:57: [Device(sn='192.168.1.4:5555', ip='192.168.1.4', model='moto_g_7__power', modelName='ocean', port='5555', status=DISCONNECTED, broadcastAddress='',mark=)]

Cannot install

changing old jar with new
Plugin Error: Plugin "Android WiFi ADB" is incompatible (supported only in IntelliJ IDEA).
The old one loads but had bugs

Menu item missing from Tools

Menu item WifiADB Tool is missing from Tools menu on Android Studio 4.1.2 Windows 10

After instalation of the plugin, menu item is present. If i restart the studio and open it again the menu item is missing but its accesible via CTRL + ALT + 2 shortcut.

If i reinstall the plugin same happens. After restart menu item missing.

Custom shortcut

Is your feature request related to a problem? Please describe.
On my keyboard, for type a "@" you must Ctrl+Alt+2 which is exatly the shortcut of WifiADB and the at sign is quite useful in Java and javadoc .

Describe the solution you'd like
I want a way to set a shortcut for opening WifiABD GUI.

New Feature: Accomodate device IP address changes

It can be observed that going 'Airplane mode' or restarting the device changes the IP adress.

Approaches

  1. Use a cable and set device. - This is a pain.
  2. Reconfigure the plugin: Go to tools --> WifiADB --> Main --> Connect Manual. Lookup the new IP address in the device. Then enter it in the box. - This approach fails.
    image

My device reboots every alternate night, so IP address is bound to change. Can't we just set the IP address from the active hotspot using ifconfig or somethinh. This would be really helpful, as it'd never require a USB cable, except when the plugin is installed.

偶尔出现按下快捷键会弹出多个插件窗口

刚才按下快捷键Ctrl+Alt+2的时候弹出两个窗口,还有一次弹出三个窗口,但是只有最上层可以操作,关闭了最上层的,下层窗口也一并关闭(并不影响使用),但是我没法复现此情况(按记忆中出现此情况的前几步操作没再出现(感觉越说越乱😂)

Security concerns

On the forums that explain how to connect adb over wifi manually ( i.e. stackoverflow ) they always warn that it's dangerous to leave the configuration up after using it, because it allows anyone on your network to access your phone the same way.
My concern is: does this plugin take that into account? Is there any security measurement to avoid that problem?

Thank you in advance. I'll close the issue as soon as you explain it.

[Feature request] The plugin should attempt to auto-locate ADB

Is your feature request related to a problem? Please describe.
Most people don't know where they have ADB installed, and probably don't have it in their PATH variable. So when the first thing they see from this plugin is a blank field for them to enter the ADB path, they're not going to know what to do.

I'd like to be able to recommend this plugin to users of the REV Control Hub without having to walk them through entering the ADB path.

Describe the solution you'd like
Before asking the user where ADB lives, the plugin should look in the most common locations for it. On macOS, that's /Users/USERNAME/Library/Android/sdk (according to this), on Windows, that's C:\Users\USERNAME\AppData\Local\Android\Sdk\platform-tools\adb.exe, and on Linux that's /home/USERNAME/Android/Sdk (according to this).

Describe alternatives you've considered
Another thing that would be a good idea is to include a Browse button in the ADB path prompt.

not installing

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

Screenshots
If applicable, add screenshots to help explain your problem.

Context Log
From Menu > Main > Log

[Feature request] Request: offer stand-alone app to launch

Is your feature request related to a problem? Please describe.
Allow us to open it outside of Android Studio.

Describe the solution you'd like
I want to avoid the need to use Android Studio for this.
In addition, we could have parameters to send when launching.
An example is to auto-switch to adb-over-wifi : For each device that's connected via USB, become connected via Wifi.

Describe alternatives you've considered
Perhaps it's possible via some special command line scripts. Not sure.

Additional context
You can avoid having a UI for this if you wish.

BUG

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.base/java.util.Collections$SingletonList.get(Collections.java:4849)
at com.dengzii.plugin.adb.utils.AdbUtils.getDeviceFromLine(AdbUtils.kt:217)
at com.dengzii.plugin.adb.utils.AdbUtils.listDevice(AdbUtils.kt:80)
at com.dengzii.plugin.adb.utils.AdbUtils.getConnectedDeviceList(AdbUtils.kt:62)
at com.dengzii.plugin.adb.ui.AdbDialog.updateTableOnUi(AdbDialog.java:65)
at java.base/java.lang.Thread.run(Thread.java:834)

Conflicting descriptions

This project states two different descriptions and I'm not sure which one is the correct one:

intellij-vs-android-studio

Why does it show an alert about license?

When i open this plugin in Android studio Arctic fox patch 3, it show an alert about not having license first, close it and then you can use this plugin, why is that?

MARK not save

Android Studio chipmunk 2021.2.1 Path1
WiFiADB 2022.1.22
Describe the bug
mark not save when insert mark

To Reproduce
insert mark
close window
open WiFi ADB
mark is empty
Screenshots

Context Log
From Menu > Main > Log
07-24/11:54 Config.saveDevice:57: [Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=CONNECTED, broadcastAddress='',mark=test-mark1)]
07-24/11:54 Config.loadDevices:50: [Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=DISCONNECTED, broadcastAddress='',mark=test-mark1)]
07-24/11:54 CmdUtils.execSync:48: adb devices -l
07-24/11:54 CmdUtils.resolve$lambda-2:76: >List of devices attached
07-24/11:54 CmdUtils.resolve$lambda-2:76: >WCR7N18525006454 device product:CLT-L29 model:CLT_L29 device:HWCLT transport_id:5
07-24/11:54 CmdUtils.resolve$lambda-2:76: >192.168.1.113:5557 device product:CLT-L29 model:CLT_L29 device:HWCLT transport_id:3
07-24/11:54 CmdUtils.resolve$lambda-2:76: >192.168.1.126:5555 device product:aquaman model:MiTV_AESP0 device:aquaman transport_id:2
07-24/11:54 CmdUtils.resolve$lambda-2:76: >
07-24/11:54 CmdUtils.execSync:48: adb -s WCR7N18525006454 shell ip addr show wlan0
07-24/11:54 CmdUtils.resolve$lambda-2:76: >31: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
07-24/11:54 CmdUtils.resolve$lambda-2:76: > link/ether b8:94:36:2a:e5:0b brd ff:ff:ff:ff:ff:ff
07-24/11:54 CmdUtils.resolve$lambda-2:76: > inet 192.168.1.113/24 brd 192.168.1.255 scope global wlan0
07-24/11:54 CmdUtils.resolve$lambda-2:76: > valid_lft forever preferred_lft forever
07-24/11:54 CmdUtils.resolve$lambda-2:76: > inet6 2405:9800:bc10:b4d1:1180:3d7e:2479:f856/64 scope global temporary dynamic
07-24/11:54 CmdUtils.resolve$lambda-2:76: > valid_lft 600232sec preferred_lft 81808sec
07-24/11:54 CmdUtils.resolve$lambda-2:76: > inet6 2405:9800:bc10:b4d1:ba94:36ff:fe2a:e50b/64 scope global dynamic mngtmpaddr
07-24/11:54 CmdUtils.resolve$lambda-2:76: > valid_lft 2591317sec preferred_lft 2591317sec
07-24/11:54 CmdUtils.resolve$lambda-2:76: > inet6 fe80::ba94:36ff:fe2a:e50b/64 scope link
07-24/11:54 CmdUtils.resolve$lambda-2:76: > valid_lft forever preferred_lft forever
07-24/11:54 Config.saveDevice:57: [Device(sn='192.168.1.113:5557', ip='192.168.1.113', model='CLT_L29', modelName='CLT-L29', port='5557', status=CONNECTED, broadcastAddress='',mark=), Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=CONNECTED, broadcastAddress='',mark=)]
07-24/11:55 Config.saveDevice:57: [Device(sn='192.168.1.113:5557', ip='192.168.1.113', model='CLT_L29', modelName='CLT-L29', port='5557', status=CONNECTED, broadcastAddress='',mark=test-mark2), Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=CONNECTED, broadcastAddress='',mark=test-mark3)]
07-24/11:55 CmdUtils.execSync:48: adb version
07-24/11:55 CmdUtils.resolve$lambda-2:76: >Android Debug Bridge version 1.0.41
07-24/11:55 CmdUtils.resolve$lambda-2:76: >Version 33.0.2-8557947
07-24/11:55 CmdUtils.resolve$lambda-2:76: >Installed as C:\Users\punpro\AppData\Local\Android\Sdk\platform-tools\adb.exe
07-24/11:55 Config.loadDevices:50: [Device(sn='192.168.1.113:5557', ip='192.168.1.113', model='CLT_L29', modelName='CLT-L29', port='5557', status=DISCONNECTED, broadcastAddress='',mark=test-mark2), Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=DISCONNECTED, broadcastAddress='',mark=test-mark3)]
07-24/11:55 CmdUtils.execSync:48: adb devices -l
07-24/11:55 CmdUtils.resolve$lambda-2:76: >List of devices attached
07-24/11:55 CmdUtils.resolve$lambda-2:76: >WCR7N18525006454 device product:CLT-L29 model:CLT_L29 device:HWCLT transport_id:5
07-24/11:55 CmdUtils.resolve$lambda-2:76: >192.168.1.113:5557 device product:CLT-L29 model:CLT_L29 device:HWCLT transport_id:3
07-24/11:55 CmdUtils.resolve$lambda-2:76: >192.168.1.126:5555 device product:aquaman model:MiTV_AESP0 device:aquaman transport_id:2
07-24/11:55 CmdUtils.resolve$lambda-2:76: >
07-24/11:55 CmdUtils.execSync:48: adb -s WCR7N18525006454 shell ip addr show wlan0
07-24/11:55 CmdUtils.resolve$lambda-2:76: >31: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
07-24/11:55 CmdUtils.resolve$lambda-2:76: > link/ether b8:94:36:2a:e5:0b brd ff:ff:ff:ff:ff:ff
07-24/11:55 CmdUtils.resolve$lambda-2:76: > inet 192.168.1.113/24 brd 192.168.1.255 scope global wlan0
07-24/11:55 CmdUtils.resolve$lambda-2:76: > valid_lft forever preferred_lft forever
07-24/11:55 CmdUtils.resolve$lambda-2:76: > inet6 2405:9800:bc10:b4d1:1180:3d7e:2479:f856/64 scope global temporary dynamic
07-24/11:55 CmdUtils.resolve$lambda-2:76: > valid_lft 600133sec preferred_lft 81709sec
07-24/11:55 CmdUtils.resolve$lambda-2:76: > inet6 2405:9800:bc10:b4d1:ba94:36ff:fe2a:e50b/64 scope global dynamic mngtmpaddr
07-24/11:55 CmdUtils.resolve$lambda-2:76: > valid_lft 2591218sec preferred_lft 2591218sec
07-24/11:55 CmdUtils.resolve$lambda-2:76: > inet6 fe80::ba94:36ff:fe2a:e50b/64 scope link
07-24/11:55 CmdUtils.resolve$lambda-2:76: > valid_lft forever preferred_lft forever
07-24/11:55 Config.saveDevice:57: [Device(sn='192.168.1.113:5557', ip='192.168.1.113', model='CLT_L29', modelName='CLT-L29', port='5557', status=CONNECTED, broadcastAddress='',mark=), Device(sn='192.168.1.126:5555', ip='192.168.1.126', model='MiTV_AESP0', modelName='aquaman', port='5555', status=CONNECTED, broadcastAddress='',mark=)]

无线调试扫描端口速度太慢了

虽然用了16个线程,但是adb扫描端口还是太慢了

测试了一下,每个端口超时时间200ms,16个线程,设备ip是固定的,扫描100个端口就需要20秒.

实际情况是,手机开启无线调试的端口是随机65535个端口(前1000个端口应该不会占用),那要是自动扫描就太慢了。不知道有没有什么好办法?

还有个问题,自动扫描配置的内容不能保存,每次还要再填一遍。

Not able to connect

Hi
I am not able to connect device wirelessly on Android studio.
It failed to connect but previously it was working.
I am able to connect via usb or manual approach using Ip Address.

[Feature request] Allow users to add a wireless ADB connection when the device is not currently available

Is your feature request related to a problem? Please describe.
One of the REV Control Hub users pointed out to us that when they are hosting a video call to help users learn how to use their devices, it is annoying to have to have users disconnect from the video call in order to set up the wireless ADB connection to their Control Hub (the Control Hub broadcasts its own WiFi network that users have to connect to).

Describe the solution you'd like
An "Add device to list even if the device is not currently available" checkbox could be added to the manual connection dialog.

Describe alternatives you've considered
The "Failed, cannot connect to..." error message that shows up at the bottom of the main WiFiADB window could include a button to add the device to the list anyway.

Additional context
There's also a bug where the previously-mentioned error message is clipped at the edge of the window, instead of wrapping to a new line:

image

建议名称可以自定义

使用Android Studio 过程中,有时要连接多个设备。
列表中显示的是设备的内部型号,但是内部型号不常使用。
建议model_name显示内部型号,name变为EditView,可以自定义名称。
例如:设备型号’VKY_TL00‘,可以改为 ‘Huawei P10plus’

close but no cigar

hello - my device is showing with a status of "CONNECTED" in the WiFiADB Tools dialog yet off the main screen, the small drop down showing my phone (samsung SM-G950U and next to the app dropdown) is disabled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.