Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.91
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
#1

Как настроить ProGuard в IDEA? - Программирование Android

25.01.2014, 12:53. Просмотров 3396. Ответов 18
Метки нет (Все метки)

Сабж. Искал, читал, но до конца так и не понял..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 12:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как настроить ProGuard в IDEA? (Программирование Android):

ProGuard на IntelliJ IDEA - Программирование Android
Кто нибудь пробовал в IDEA использовать ProGuard? В project.properties добавил: proguard.config=proguard-project.txt В окне...

Как настраивать Proguard - Программирование Android
Приветствую! Есть необходимость защитить приложение от декомпиляции, для этого хочу использовать Proguard. Почитал статью на оф....

proguard - Программирование Android
Пытаюсь сделать обфускацию приложения при помощи Proguard. В теории вроде всё просто, на практике - никак не выходит. Для работы...

Proguard и NullPointerException - Программирование Android
Задействуйте! Надеюсь кто-то поможет. Проблема такая. В release версии ( с использованием proguard) приложения возникает ошибка ...

ProGuard ошибки - Программирование Android
Делаю компиляцию приложения, компилится хорошо, но в процессе работы приложения вылазят ошибки 01-11 22:51:24.745 2552-2747/com.app...

ProGuard сопротивление компилированию( - Программирование Android
Народ всем привет. Уже три дня бьюсь с ProGuard все время выходит такая ошибка: Warning:okio.DeflaterSink: can't find referenced class...

18
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 01:53  [ТС] #2
Никто не защищает свой код или чё?
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
30.01.2014, 07:26 #3
Только начал разбираться... Пока учусь делать это через АНТ. Вроде ничего тяжелого... Но с тонкой настройкой еще не разбирался - взял встроенный файл настроек. После сборки попробовал взломать файл - тяжело читать (подменились имена классов)...

Добавлено через 2 часа 35 минут
Беру свои слова назад - это сложнее чем кажется! Успешно собрал, упаковал, зашифровал, подписал... и... теперь не запускается на телефоне! В момент установки успешно предлагает установить, прочитать разрешения и говорит "не установлено"... буду копать дальше! Если знаете причину этого (уже встречались) отпишитесь пожалуйста!

Добавлено через 1 час 56 минут
Похоже проблемы только в анте! Зашел в студию. Menu>Build>Generated Signed APK
Прошел по пунктам... Ключ уже был сделан мной раньше... Галочка использовать proguard. Результат успешно заработал!!!
А через ант пока успешно работает только дебюг версия
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 11:22  [ТС] #4
Цитата Сообщение от Tester64 Посмотреть сообщение
Галочка использовать proguard
- в том то и дело что этого недостаточно. Там надо еще файлик ручками прописать... А что туда писать - я не понял..
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
30.01.2014, 18:33 #5
Там надо прописать 2 файлика! Первый - это ключ. Второй настройки прогуарда.

По настройкам прогуарда как я понял есть 2 стандартных варианта - быстрый и упаковывающий. Быстрый не пробовал. Сразу попробовал второй. Файл-образец (HelloWorld) сжимается с 20 кб до 10-11кб. Теоретически можно написать свой (кто-то ЗДЕСЬ на форуме выкладывал свою настройку).

Файл ключа надо сначала сгенерировать. Он простой. Инструкций куча. Хотя у меня есть вопрос по "подключам" - ЗАЧЕМ?

С кем из них проблемы?

Добавлено через 21 минуту
Не хочу каждый раз бегать по пунктам! Хочу батник, который соберет, упакует, подпишет и выложит новую версию на мой сайт одним кликом! В пунктах не могу даже определиться куда ляжет новый APK.
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 20:01  [ТС] #6
Tester64, как делать Signed APK - это я знаю, меня интересует настройка самого прогуарда...
0
ASDFD12
40 / 40 / 6
Регистрация: 15.09.2012
Сообщений: 453
30.01.2014, 22:30 #7
В project.properties в конце добавляешь
Java
1
proguard.config=proguard-project.txt
В proguard-project.txt
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
#   [url]http://developer.android.com/guide/developing/tools/proguard.html[/url]
 
# Add any project specific keep options here:
 
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}
 
##---------------Begin: proguard configuration common for all Android apps ----------
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 
-allowaccessmodification
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-repackageclasses ''
 
-dontwarn android.support.**
-dontwarn org.apache.harmony.**
-dontwarn com.tonicsystems.**
-dontwarn org.firebirdsql.**
-dontwarn org.antlr.**
-dontwarn org.apache.**
 
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
 
# Explicitly preserve all serialization members. The Serializable interface
# is only a marker interface, so it wouldn't save them.
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
 
# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
native <methods>;
}
 
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
 
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
 
# Preserve static fields of inner classes of R classes that might be accessed
# through introspection.
-keepclassmembers class **.R$* {
public static <fields>;
}
 
# Preserve the special static methods that are required in all enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
 
-keep public class * {
public protected *;
}
 
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}##---------------End: proguard configuration common for all Android apps ----------
У меня с такими настройками пошло. (только для Eclipse)
1
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 22:36  [ТС] #8
ASDFD12, ооо, буду пробовать..
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
30.01.2014, 23:01 #9
Я с этим не заморачивался (пока).
Слишком много "тонких" настроек, которых за пол часа не перечислить...
Взял стандартный, который предлагает СДК по умолчанию
А в Ант пытаюсь использовать этот
...\android-sdk\tools\proguard\proguard-android-optimize.txt
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
09.02.2014, 13:31  [ТС] #10
ASDFD12, Tester64, до задницы тот ProGuard - дэкомпильнул и всё как на ладони
0
ASDFD12
40 / 40 / 6
Регистрация: 15.09.2012
Сообщений: 453
09.02.2014, 13:47 #11
MegaSinner, слышал о HoseDex2jar, не знаю платна ли, но пишут что замусоривает код прилично))
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
09.02.2014, 14:15  [ТС] #12
ASDFD12, хоть и не люблю работать с текстом, но чувствую, что когда-то придется свою протекцию написать..
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
09.02.2014, 15:32 #13
Цитата Сообщение от MegaSinner Посмотреть сообщение
дэкомпильнул и всё как на ладони
Странно! чем декомпилил? Когда я пытался, то у меня все сжималось до почти-неузнаваемости. Пробовал тем-же методом ЧУЖИЕ проекты также декомпильнуть? У меня названия классов, методов и переменных заменялись на a, b, c (случайные простые буквенные названия). APK реально сжимался до 2х раз.
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
12.02.2014, 00:18  [ТС] #14
Tester64, декомпилил через определённый сайт (единственный способ изо всех, что перепробовал). Чужие проекты тоже читабельны, а мой апк не ужался, а даже наоборот - увеличился...
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
12.02.2014, 18:44 #15
Цитата Сообщение от MegaSinner Посмотреть сообщение
через определённый сайт
Можно ссылочку? Хочу свой проект попробовать декомпильнуть...

Может там хитрая система декомпилирования. Я пробовал через dex2jar. У меня собственная сборка из нескольких утилит по инструкциям в инете. Типа http://habrahabr.ru/post/111513/

А какой файл Вы указали как скрипт для обфускации?
Вы делаете это через Build>Generate Assigned APK (AnStudio)?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 18:44
Привет! Вот еще темы с ответами:

Свое правило для Proguard - Программирование Android
Как создать правило для Proguard? т.е. так чтобы он шифровал только нужные мне файлы...

Оптимизация по размеру при использовании ProGuard - Программирование Android
Помогите, пожалуйста, разобраться. Я работаю в Eclipse. В файле project.properties я добавил строчку...

Eclipse proguard public class android.support.v7.internal.widget.ActionBarView.HomeView - Программирование Android
Добрый день. Сейчас изучаю разработку под андроид. Споткнулся на следующей ошибке This class should be public...

Как связать IDEA с Андроидом, установленным на VirtualBox? - Программирование Android
Чтобы можно было дебажить. Надо серверное приложение протестить, а к эмулятору не могу подключиться.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
12.02.2014, 18:44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru