Ответ 1
1) Я не знаю ни одной реализации PPTP или IPSec с открытым исходным кодом для Android 4.x ICS VpnService. VpnService предназначен для создания пользовательских VPN-приложений по протоколу (которые теоретически могут быть pptp или IPSec). Я обнаружил, что единственная реализация с открытым исходным кодом, использующая этот новый API, - одна для OpenVPN:
https://github.com/schwabe/ics-openvpn
Это обеспечивает одно потенциальное VPN-решение, которое вы полностью контролируете (сервер также с открытым исходным кодом), но это не PPTP или IPSec. Если вы понимаете протокол PPTP, должно быть возможно использовать это как модель для реализации такого VPN-клиента.
2) Да, это правда, что в более ранних версиях единственный путь - через частные API. Фактически, даже если вы хотите сделать это в более поздних версиях, используя встроенную поддержку VPN (то есть встроенную поддержку PPTP или IPSec), вы должны использовать эти скрытые API. Возможно, это возможно сделать на более низком уровне, используя базовое ядро Linux, но это потребует рутирования ОС и обхода парадигмы приложений Android. Это не обязательно лучшая альтернатива использованию частных API.
Для получения дополнительной информации о том, как настроить VPN с использованием этих API:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/net/vpn/PptpProfile.java (пример объекта профиля PPTP, нужно было пройти в API)
Как программно создать новый интерфейс VPN с Android 4.0? (Объясняет, как сохранить этот новый профиль VPN в системе)
Я не уверен, насколько последовательными и надежными будут эти API. Я ожидаю, что они будут работать на большинстве устройств Android, поскольку производители вряд ли будут повторно реализовывать базовые реализации VPN, хотя они, возможно, добавили свои собственные. Они также могли изменить API, необходимые для включения таких профилей, или расширить свои возможности.