После многократного поиска в StackOverflow, кажется, укоренение устройства единственным способом создания профиля VPN до 4.0
Мой вопрос в том, как сделать следующие приложения без root?
https://play.google.com/store/apps/details?id=com.expressvpn.vpn&hl=en
Обновление 1
Кажется, что частный API - это путь до 4.0. К сожалению, не так много ресурсов для начала. Кто-нибудь знает, требует ли частное api укоренившееся устройство?
Обновление 2
Кажется, вы можете сделать это с помощью модифицированного Android.jar или с помощью отражения. Для L2TP/IPSEC по-прежнему требуется внедренное устройство. PPTP не выглядит.
Как использовать внутренние API на Android
Обновление 3
Обратите внимание, что это взято из разных источников. Кажется, root необходим, потому что VpnService запускает racoon, который затем запускается как системный пользователь и извлекает PSK из KeyStore. Таким образом, записи KeyStore, созданные другими приложениями, не видны для racoon. (В среде linux racoon - это процесс безопасности, помогающий в ключевых переговорах IPSEC - IKE).
Это имеет смысл, однако есть еще приложения, которые обеспечивают L2TP/IPSEC без root.
Обновление 4
XinkVPN, исходный код для запуска. Все еще не позволяет пользователям создавать профиль L2TP без необходимости генерировать key_store и перекомпилировать. Не очень дружелюбный к рынку, но потрясающий старт.