android: wrapper propio, con los permisos que faltaban para las videollamadas
Hasta ahora la APK salia re-firmando la de epsylon, y su classes.dex no implementa WebChromeClient.onPermissionRequest. Sin ese metodo el WebView deniega por defecto todo getUserMedia, asi que las videollamadas de Karvan no podian funcionar por mucho que se parchease el manifest: la lista de permisos es estatica y se fija al compilar. El wrapper cierra las dos puertas. Declara CAMERA, RECORD_AUDIO y MODIFY_AUDIO_SETTINGS, pero no se conceden al instalar: son permisos peligrosos y se piden en tiempo de ejecucion la primera vez que se pulsa Llamar. Si nadie llama, no se pide nada. uses-feature required=false evita excluir dispositivos sin camara. Reutiliza las tres librerias nativas tal cual: libnode.so es nodejs-mobile v18.20.4 oficial y libnative-lib.so son 6,8 KB con un unico simbolo JNI. De ahi que el namespace sea com.solarnethub.oasis —JNI resuelve por nombre— mientras el applicationId es net.laenre.oasis, que permite instalarla junto a la oficial. No hace falta NDK ni compilar Node. De paso corrige cosas del APK actual: targetSdk 35, trafico en claro permitido solo hacia loopback en vez de usesCleartextTraffic global, allowBackup a false para que adb backup no saque el .ssb, y el backend en un servicio en primer plano en el proceso :node, que ademas es lo que permitira reiniciarlo limpio para el cambio de identidad. El APK actual declara FOREGROUND_SERVICE pero no registra ningun servicio, de modo que el backend muere al pasar a segundo plano. Los binarios no se versionan: scripts/prepare.sh extrae las librerias y empaqueta el backend. La keystore se pasa por entorno. Verificado: ./gradlew assembleDebug construye una APK de 52 MB con las tres librerias, targetSdk 35 y los permisos declarados; su DEX contiene onPermissionRequest, PermissionRequest, CAMERA y RECORD_AUDIO, donde el APK actual tiene cero de los cuatro. Falta probarla en un dispositivo real.
This commit is contained in:
parent
ace175cca3
commit
32f6d2269c
22 changed files with 944 additions and 0 deletions
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
7
android/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
7
android/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
Loading…
Add table
Add a link
Reference in a new issue