1 votos

Negaciones de SELinux después de migrar datos de aplicación entre dispositivos

Estoy tratando de migrar datos de la aplicación entre dispositivos. La aplicación fue instalada en el perfil de trabajo usando Shelter. Los pasos que hice fueron:

  1. En el teléfono de origen, tar cvf appdata.tar.gz /data/user/10/com.appname
  2. Copiar el tarball del teléfono de origen al teléfono de destino
  3. En el teléfono de destino, instalar las aplicaciones en el perfil de trabajo. Nota el nombre de usuario de /data/user/10/com.appname en el teléfono de destino, que tiene la forma u10_aXXX
  4. En el teléfono de destino, chown -R u10_aXXX:u10_aXXX /data/user/10/com.appname

Cuando intento usar la aplicación, recibe muchas negaciones de AVC de SELinux y termina estrellándose porque no puede abrir /data/user/10/com.appname/databases/database.db:

10-18 16:23:28.485  4120  4120 W SharedPreferenc: type=1400 audit(0.0:889): avc: denied { search } for name="shared_prefs" dev="dm-0" ino=860652 scontext=u:r:untrusted_app:s0:c522,c768 tcontext=u:object_r:app_data_file:s0 tclass=dir permissive=0

¿Qué me falta? La aplicación funciona después de configurar SELinux en modo permisivo.

3voto

En versiones más nuevas de Android, el proceso mencionado en la pregunta y comentario no es suficiente. En mi experiencia en LineageOS 20 (que es Android 13), los siguientes cambios fueron necesarios:

  1. Los directorios cache y code_cache deben ser propiedad de uX_aYYY_cache
  2. restorecon requiere el parámetro -D para tocar archivos en /data/data

Así que el proceso completo sería el siguiente:

  1. Desempaqueta los archivos en /data/en_algun_lugar/com.appname. en_algun_lugar depende del perfil del sistema, el predeterminado es simplemente /data/data
  2. chown -R uX_aYYY:uX_aYYY com.appname
  3. chown -R uX_aYYY:uX_aYYY_cache com.appname/cache
  4. chown -R uX_aYYY:uX_aYYY_cache com.appname/code_cache
  5. restorecon -DR com.appname

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X