Приложение Android, написанное в C/C ++, Java и Kotlin, для удаленного запуска через Juicessh. Особая благодарность NVIDIAGPUMONITOR, плагину со JuiCessh, написанным в Kotlin SDS100, который послужил базой для этого плагина Juicessh.
Примечание : первая публичная бета -версия была выпущена.
Идея началась, когда я хотел подключиться к серверам OpenVPN, размещенным NORDVPN на ASUS RT-AC86U. По умолчанию это возможно, но прошивка по умолчанию, включая стороннюю прошивку Asuswrt-Merlin, разрешает сохранен максимум 5 клиентов OpenVPN.
Затем я наткнулся на OpenPyn, быстро изучил Python и сделал запрос на вытягивание, обеспечив поддержку Asuswrt-Merlin. OpenPyn-это скрипт Python3, который можно запустить на Entware-NG-3X на Asuswrt-Merlin. Основная особенность OpenPyn заключается в том, что он автоматически подключается к наименее занятой, самой низкой задержке сервера OpenVPN. Поддержка записи NVRAM для Asuswrt-Merlin в OpenPyn затем может сохранить наименее занятый, самый низкий сервер OpenVPN с самой низкой задержкой для NVRAM Entware-NG-3X, включенного ASUS Router.
Теперь я достиг более или менее того, что я хотел, но это оставило мне последнюю борьбу, необходимую прибегнуть к открытию соединения SSH с маршрутизатором ASUS и предоставил OpenPyn желаемые аргументы, например, страну, порог загрузки, тип сервера и количество пингов, которые будут отправлены на каждый сервер для определения качества. Я думал, что возможность сделать это на моем телефоне вместо моего компьютера сделает это намного проще, и это привело меня к обнаружению сокового.
Juicessh поддерживает использование плагинов, что позволило мне создать это фантастическое приложение. Это приложение работает на Android, оно устанавливает соединение с устройством, на котором работает SSH -сервер, и затем он может отправлять команду OpenPyn на удаленное устройство.
Примечание . Этот проект является моим самым первым проектом Android, и, как таковой, он может еще не следовать всем лучшим методам кодирования, независимо от этого, я привержен общению, чтобы сделать это приложение источником вдохновения для других разработчиков, работающих над аналогичными приложениями Android, особенно приложения Android на основе Google.
Поддерживает большинство аргументов, доступных в OpenPyn с простыми в использовании предпочтения
Позволяет использовать фильтрацию на основе местоположения в OpenPyn
Map View отображает маркеры для каждой страны, поддерживаемой Nordvpn
Позволяет скрывать страны в представлении карты
Позволяет снять страну в представлении карты
Ключи API, хранящиеся в общих предпочтениях, зашифрованы («AES/GCM/NOPADDING»)
При запуске приложения он будет использовать умное местоположение, чтобы определить ближайшую страну
Использует API Geolocation API для определения текущего местоположения на основе текущего публичного IP -адреса
Я упускаю какую -то важную функцию?
Многие компоненты заставляют это приложение работать, я расскажу о некоторых основаниях здесь. В основном при запуске приложения карта загружается асинхронно, файл MBTILE (база данных SQLite), расположенный в папке ресурсов активов в APK, загружается, а затем хранится и читается в памяти. World.mbtiles был сгенерирован с использованием пользовательского сценария Python, 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
После того, как карта выполняется загрузка, API NORDVPN вызывается для запроса всех поддерживаемых стран, фильтрация на основе таких предпочтений, как тип сервера, выполняется здесь, маркеры создаются лениво для всех стран (маркеры не размещаются на карте), все плитки (512x512 Webp Images) предварительно загружаются для минимальной шкалы Zoom Speceed, указанного файлом MBT-файла. Текущее местоположение обнаруживается на основе публичного IP -адреса клиента. Затем карта анимирует маркер, ближайший к этому месту. После завершения анимации, только «ленивые» маркеры, расположение которых находится в пределах видимых границ карты, становятся видимыми (маркеры размещаются на карте, как только они становятся видимыми в первый раз).
ПРИМЕЧАНИЕ . Вы можете использовать этот поток с несколькими удаленными устройствами, если на этом удаленном устройстве есть SSH -сервер, работающий на нем и настроено в подключении в Juicessh и выбирается на панели инструментов приложения этого приложения, прежде чем нажата кнопка цветного плавающего действия (FAB)!





Общественная бета -версия открыта для всех.
Пожалуйста, используйте мою test филиал OpenPyn.
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.2Карты SDK для Android
MyStorage.kt Вдохновлен в блоге, сохранить и получить ArrayList Object в SharedPreference: Android из Ready Android.
Princarray.kt вдохновленный Github Repo, Princarray Тобибур Рахман.
SecurityManager.java вдохновлен в блоге, создавая защищенную версию EditTextPreference от Никиты Огородникова.
Не стесняйтесь присылать нам отзывы, отправив проблему. Отчеты об ошибках, запросы функций, патчи и доброжелательность всегда приветствуются.
Примечание . Приглашаются запросы. Для серьезных изменений, пожалуйста, сначала отправьте проблему, чтобы обсудить, что вы хотели бы изменить.
Это приложение использует (изменен) код из нескольких проектов с открытым исходным кодом.
О коробке
SQLite-NDK
Android Maps расширения
Карта утилит
Android Google Maps API V2 надстройки
Google Maps Android API Библиотека утилит
Проверка плавающая кнопка
ПРИМЕЧАНИЕ : Особая благодарность Yesy, автор Bead SQLite Database из ресурса Android Asset Resource
Большое спасибо Снелли, который сделал этот проект возможным и безболезненным. Особая благодарность Krystian Bigaj, автору Sqlite-NDK.