#kotlin#android#android_app#android_application#android_firewall#anti_censorship#anti_surveillance#censorship_circumvention#censorship_resistance#dns#dns_over_https#dnscrypt#firewall#internet_freedom#open_source#privacy_enhancing_technologies#wireguard
Rethink DNS + Firewall + VPN for Android is an app that helps you control your internet privacy and security easily without needing root access. It combines a VPN using WireGuard, a firewall that blocks internet access for apps based on your preferences (like when apps run in the background or by category), and a DNS-over-HTTPS client that hides your DNS requests from ISPs and censors. You can route different apps through different VPN tunnels, block ads and malware sites, and monitor which apps connect to the internet. This gives you more control over your data, reduces tracking, and helps bypass censorship on your Android device.
https://github.com/celzero/rethink-app
🚀 Вышел стабильный JavaScript движок от Google для Android
Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}
#jetpack#js