Obfuscate / Encrypt SharedPreferences archivo posible?

Por lo tanto, estoy interesado en ocultar el archivo xml SharedPreferences de mi aplicación, al igual que Android LVL hace para ofuscar su licencia de datos cahce. ¿Sería esto concebible? Un montón de google-excavación ha dado pocos resultados que podrían abordar mi pregunta. Y ciertamente no soy criptólogo.

¿Qué pasa con otras formas de encriptación? Mi objetivo final no es tratar de hacer el xml a prueba de balas, sólo quiero bloquear el 90% inferior de las personas que se abstengan de jugar con él si no está en texto plano.

No crea que esto es posible, no sin grandes modificaciones (posiblemente escriba su propia implementación de Preferencias), y ni siquiera podría comenzar a pensar en cómo persuadiría a Android para cargar desde su implementación de Preferencias.

La implementación predeterminada de SharedPreferences no es reemplazable por lo que puedo decir: si necesita cifrar algo, haga lo que hace LVL y cifre el valor que escribe en XML de SharedPreferences, o cree su propio archivo cifrado y administrelo en disco .

¿No puedes usar un esquema para cambiar los datos de alguna manera para que sea incomprensible para la mayoría de la gente? Puedo sugerir una manera. Primero, use una cadena de tamaño fijo para que no cambie la longitud con los datos que se guardan. A continuación, puede aplicar una función simple para suavizar los bytes y compensar cada byte. Así que el resultado final seguirá siendo una cadena, pero hará que sea difícil para alguien normal para averiguar lo que es, aunque una persona empeñada en agrietarse puede tener éxito.

¿Qué tal ofuscar las claves y los valores almacenados en la preferencia-XML?

Hice un contenedor para las preferencias compartidas que cifran las claves y los valores: https://github.com/sveinungkb/encrypted-userprefs

He creado una implementación de SharedPreferences usando cifrado AES. El proyecto es un módulo maven. Si usted necesita uno, eche un vistazo. https://github.com/kovmarci86/android-secure-preferences

lo que puede hacer es .. envolver las preferencias compartidas con su propio método .. y evitar el uso de su nombre de método, como "Encrypt" "Decrypt" "String", etc, porque el proguard no ofuscará la palabra ..

aquí por ejemplo https://github.com/afiqiqmal/ConcealSharedPreference-Android

  • Ejecución de ProGuard con una biblioteca AQuery
  • ¿Hay una manera de detectar si un apk ha sido ofuscado?
  • ¿Debo mantener android.support.v4.app.Fragment y sus clases derivadas al crear una versión de lanzamiento de mi aplicación?
  • Java y Android Obfuscator Sugerencia de herramienta
  • Android cómo leer el código Java obfuscated después de conseguir a través de la ingeniería inversa
  • JNI proguard obfuscation
  • ¿Es posible descompilar un archivo .apk de Android?
  • Android Proguard - sólo ofuscación
  • Ofuscación en Android Studio
  • Cómo encriptar activos HTML + JS en Android Phonegap aplicación móvil?
  • Proguard y Netty 5 en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.