С такими инструментами, как dex2jar и jdgui2, очень легко проверить содержимое APK.Cordova android 5.1.1 APK obfuscation с беспорядком proguard
Мы пытаемся использовать Proguard в нашем проекте Cordova для «защиты» нескольких классов, содержащих информацию, которую мы хотим сохранить в секрете (главным образом ключи для расшифровки некоторого контента, который мы пытаемся защитить для нашего клиента).
Мы не можем понять это правильно. Приложение вылетает, или оно не запутывается.
Мы добавили к нашему build.gradle:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Наш proguard.pro содержит:
-keep class !com.smartmobilesoftware.** (*; }
smartmobilesoftware является плагин inAppPurchases.
В этом пакете мы модифицировали несколько классов, которые отлично работают без proguard.
Я нашел следующую «поддержку Proguard недостающую»: https://issues.apache.org/jira/browse/CB-9269
Здесь Джо Баузер утверждает следующее: «Хорошо, вы не должны использовать ProGuard с Кордова, или, по крайней мере, нет никаких оснований, чтобы использовать его, так как вы не можете использовать его с minifyEnabled, что фактически заставляет ProGuard работать должным образом. Поскольку Cordova использует Reflection повсюду, это хороший способ взорвать Cordova без файла proguard-rules.pro ».
Мы пытались избежать этого вопроса, говоря ProGuard, что все классы должны быть оставлены без изменений, за исключением тех, в com.smartmobilesoftware (-keep класса com.smartmobilesoftware ** (*;!.})
Я не уверен, если это проблема witih нашего кода (но код работает отлично без ProGuard), плагин, или сам ProGuard.
Мы не видим каких-либо существенных ошибок.
Мы выпустили приложения, прежде чем построенные с Кордова 2.2.0, в котором использовались ANT и proguard и еще один плагин, который отлично работал. Поэтому мы задаемся вопросом, изменился ли Cordove в отношении ProGuard.
Может кто-нибудь может пролить свет на этот вопрос?
Благодарим вас за ответ. Я еще не смог проверить, но щедрость истекала, поэтому я дал ее вам. :-) Я отвечу здесь, если ваше предложение будет работать. –