Confusion Android - résolvez les conflits avec d'autres noms de packages

question

Récemment, lorsqu'un tiers a intégré notre aar, des fichiers obscurcis sont apparus, entrant en conflit avec d'autres noms de packages introduits par leur projet.

Solution

Par défaut, les noms obscurcis sont généralement a, b, c, d et leurs combinaisons. En modifiant les règles d'obscurcissement et en contrôlant les règles de dénomination des fichiers obscurcis, vous pouvez fondamentalement éviter les problèmes liés au même nom que d'autres packages. Les étapes spécifiques consistent à effectuer les paramètres suivants dans le fichier de règles d'obscurcissement proguard-rules.pro :

-obfuscationdictionary filename.txt
-classobfuscationdictionary filename.txt
-packageobfuscationdictionary filename.txt
  • -obfuscationdictionary filename .txt : spécifiez un dictionnaire qui obscurcit les noms de classe, les noms de variables membres et les noms de méthodes.
  • -classobfuscationdictionary filename .txt : Spécifiez un dictionnaire pour obscurcir les noms de classe. Le format du dictionnaire est le même que celui de -obfuscationdictionary ;
  • -packageobfuscationdictionary filename .txt : filename spécifie un dictionnaire pour obscurcir les noms de packages. Le format du dictionnaire est le même que -obfuscationdictionary.

filename.txt est un fichier de dictionnaire utilisé pour spécifier le nom généré après l'obscurcissement. Les espaces, les signes de ponctuation, les mots répétés et les lignes commençant par « # » dans le fichier de dictionnaire seront ignorés. Il convient de noter que l'ajout d'un dictionnaire n'améliorera pas significativement l'effet de confusion. L'ajout d'un dictionnaire a deux fonctions : l'une est d'éviter toute confusion avec d'autres packages et les noms en double ; l'autre est de le rendre plus difficile à lire ; c'est la même chose. niveau en tant que
répertoire proguard-rules.pro.
Insérer la description de l'image ici
Voici un exemple de dictionnaire. Il est recommandé d'ajouter des préfixes spéciaux avant chaque mot-clé, tels que : xxdo, xxif

# 使用java中的关键字作字典:避免混淆后与其他包重名,而且混淆之后的代码更加不利于阅读
#
# This obfuscation dictionary contains reserved Java keywords. They can't
# be used in Java source files, but they can be used in compiled class files.
# Note that this hardly improves the obfuscation. Decent decompilers can
# automatically replace reserved keywords, and the effect can fairly simply be
# undone by obfuscating again with simpler names.
# Usage:
#     java -jar proguard.jar ..... -obfuscationdictionary filename.txt
#

do
if
for
int
new
try
byte
case
char
else
goto
long
this
void
break
catch
class
const
final
float
short
super
throw
while
double
import
native
public
return
static
switch
throws
boolean
default
extends
finally
package
private
abstract
continue
strictfp
volatile
interface
protected
transient
implements
instanceof
synchronized
référence

1. Optimisation de l'obscurcissement Android : comment résoudre le problème de conflit avec les noms de classe dans d'autres packages après obscurcissement
2. Implémentation open source de l'obscurcissement des chaînes et du dictionnaire Android

Je suppose que tu aimes

Origine blog.csdn.net/fengyulinde/article/details/106115757
conseillé
Classement