2011-02-10 15 views
5

Por favor dígame cómo proteger nuestro recurso en un paquete apk. Con un simple proceso de redenominación de extracción, cualquiera puede copiar y extraer recursos dibujables de la aplicación como imágenes o archivos de sonidoFX. Mi pregunta es, ¿hay alguna manera de proteger recursos dibujables en una aplicación de Android?Cómo proteger un recurso dibujable en la aplicación de Android

Respuesta

2

El dibujo necesita ser accesible para el sistema operativo, por lo que debe ser legible.

Si realmente desea mantenerlo seguro, podría considerar almacenarlo encriptado como un activo sin procesar, luego cargarlo, desencriptarlo en un ByteStream y pasarlo a BitmapFactory. Eso, por supuesto, tiene pequeñas ramificaciones en el rendimiento y te forzará a codificar a mano muchas cosas que podrías haber hecho fácilmente en XML de otra manera.

Dejando eso a un lado, hay muchas maneras de robar datos: si se trata de un dibujo, la gente podría simplemente tomar una captura de pantalla.

1

Mi pregunta es, ¿hay alguna forma de proteger el recurso dibujable en una aplicación de Android?

No. Los recursos son legibles por todo el mundo por diseño. Incluso si no fuera a empaquetar las "imágenes o los archivos soundFX" como recursos, sino que los descargara en la primera ejecución, los usuarios con acceso raíz aún podrían acceder a los archivos.

Dado que esto no es significativamente diferente de cualquier otro sistema operativo popular que la humanidad haya desarrollado, no está claro por qué piensas que se trata de un problema de Android. Los usuarios suficientemente interesados ​​pueden acceder a sus "imágenes o archivos de sonidoFX" en iOS, Windows, OS X, Linux, etc. Incluso las aplicaciones web no son inmunes.

0

Creo que es posible proteger los recursos. De hecho, hay una clase/rutina de bajo nivel para leer los recursos: AssetManager - ordinaria Resources clase se encuentra encima de los AssetManager. Por lo tanto, para proteger el recurso uno puede mezclar recursos y leerlos/descifrarlos usando los métodos de bajo nivel de AssetManager: look here

Cuestiones relacionadas