用C/C ++,Java和Kotlin编写的Android应用程序通过Juicessh远程运行OpenPyn。特别感谢Nvidiagpumonitor,这是由SDS100编写的Juicessh插件,它是此Juicessh插件的基础。
注意:第一个公共测试版已发布。
当我想连接到由NORDVPN在ASUS RT-AC86U上托管的OpenVPN服务器时,这个想法就开始了。默认情况下,这是可能的,但是默认固件在内,包括第三方固件ASUSWRT-MERLIN仅允许保存最多5个OpenVPN客户端。
然后,我偶然发现了OpenPyn,很快就学会了Python,并提出了拉动请求,从而支持Asuswrt-Merlin。 OpenPyn是一个Python3脚本,可以在Asuswrt-Merlin上的Entware-NG-3X上运行。 OpenPyn的主要功能是它会自动连接到最繁忙,最低的延迟openVPN服务器。 NVRAM在OpenPyn中为Asuswrt-Merlin的NVRAM写支持可以将最小繁忙,最低的延迟OpenVPN服务器保存到启用Entware-NG-3X的NVRAM中。
现在,我或多或少取得了所需的成就,但是这使我进行了最后的斗争,不得不诉诸于与华硕路由器的SSH连接,并为OpenPyn提供所需的参数,例如,乡村,负载阈值,服务器类型和发送到每个服务器的pings数量以确定质量。我认为有能力在手机上做到这一点,而不是我的计算机会变得容易得多,这使我发现了Juicessh。
Juicessh支持使用插件,这使我能够创建这个出色的应用程序。该应用程序在Android上运行,它建立了与具有SSH服务器在其上运行的设备的连接,然后可以将OpenPyn命令发送到远程设备。
注意:这个项目是我的第一个Android项目,因此,它可能还没有遵循所有最佳的编码实践,无论如何,我致力于使该应用程序成为其他从事类似基于Google Maps Android Appss的开发人员的灵感来源。
支持大多数在OpenPyn中可用的参数,并易于使用首选项
允许在OpenPYN中使用基于位置的过滤
地图视图显示由NORDVPN支持的每个国家 /地区的标记
允许在地图视图中隐藏国家
允许在地图视图中饰演一个国家
存储在共享首选项中的API键已加密(“ AES/GCM/NOPADDING”)
在应用程序开始时,它将使用智能位置来确定最接近的国家
使用地理位置API根据当前的公共IP地址来确定当前位置
我是否缺少一些基本功能?
许多组件使此应用程序起作用,我将在这里介绍一些基本知识。基本上,在App启动时,该地图是异步加载的,位于APK中资产资源文件夹中的MBTile文件(SQLITE数据库)被加载,然后存储并在内存中读取并读取。使用自定义python脚本生成world.mbtiles,generate_tiles_multiprocess.py。
rm ./app/src/main/assets/world.mbtiles
python3 ./generate_tiles_multiprocess.py ./mapfile.xml ./app/src/main/assets/world.mbtiles 4 4 --format webp
完成地图完成加载后,请调用NordVPN API查询所有受支持的国家,根据此处完成的偏好(例如服务器类型)的过滤,在此处完成了标记,为所有国家 /地区生成标记(并非将标记放置在地图上),所有图块(512x512 WebP图像)均由Minimim Zoom temimim the Mimimim Zoom abos temimim the Mbbtile file file the mbbtile for。根据客户端的公共IP地址检测到当前位置。然后,地图动画到最接近此位置的标记。动画完成后,只有在地图的可见范围内的“懒惰”标记可见(首次使标记可见后将标记放在地图上)。
注意:您可以将此流与多个远程设备一起使用,只要该远程设备在其上运行SSH服务器,并且在Juicessh的连接中配置并在此应用程序的App工具栏中选择,然后才能单击“彩色浮动动作”按钮(FAB)!





公共Beta对任何人开放。
请使用我的OpenPyn test分支。
git clone --branch 2.2.1 [email protected]:1951FDG/openpyn-nordvpn.git
cd openpyn-nordvpn
pip3 install --upgrade .
要编译和运行您需要的项目:
Android Studio 3.5或更高
10 (API level 29)29.0.2v3.10.2Android的地图SDK
MyStorage.kt灵感来自博客文章,保存和检索obsearpreference中的对象的ArrayList:Ready Android的Android。
printArray.kt受Tobibur Rahman的Github Repo的启发。
SecurityManager.java受博客文章的启发,由Nikita Ogorodnikov制作了Secuted EdittextPreference。
随时通过提交问题向我们发送反馈。总是欢迎错误报告,功能请求,补丁和祝福。
注意:欢迎拉动请求。有关重大更改,请先提交问题,以讨论您想更改的内容。
该应用程序使用(修改)代码来自几个开源项目。
关于盒子
sqlite-ndk
Android地图扩展
地图utils
Android Google地图API V2附加组件
Google Maps Android API公用事业库
可检查的浮动按钮
注意:特别感谢Android资产资源的Read SQLite数据库的作者是
非常感谢Sonelli使该项目成为可能,无痛。特别感谢Sqlite-NDK的作者Krystian Bigaj。