NFC Wallet SDK の難読化
概要
R8/ProGuard ルール
#NFC Wallet SDK
-dontwarn util.**
-dontwarn com.gemalto.mfs.mwsdk.**
-dontnote com.gemalto.mfs.mwsdk.utils.async.AbstractAsyncHandler
-keep class util.h.xz.** { *; }
-keepclasseswithmembernames class * {
native <methods>;
}
# グローバル JNA ルール
-keep,allowobfuscation interface com.sun.jna.Library
-keep,allowobfuscation interface com.sun.jna.Callback
-keep,allowobfuscation interface com.sun.jna.Function
-keep,allowobfuscation interface * implements com.sun.jna.Library
-keep,allowobfuscation interface * implements com.sun.jna.Callback
-keepclassmembers interface * implements com.sun.jna.Library {
<methods>;
}
-keepclassmembers interface * implements com.sun.jna.Callback {
<methods>;
}
-keep class com.sun.jna.CallbackReference {
void dispose();
com.sun.jna.Callback getCallback(java.lang.Class,com.sun.jna.Pointer,boolean);
com.sun.jna.Pointer getFunctionPointer(com.sun.jna.Callback,boolean);
com.sun.jna.Pointer getNativeString(java.lang.Object,boolean);
java.lang.ThreadGroup initializeThread(com.sun.jna.Callback,com.sun.jna.CallbackReference$AttachOptions);
}
-keep,includedescriptorclasses class com.sun.jna.Native {
com.sun.jna.Callback$UncaughtExceptionHandler callbackExceptionHandler;
void dispose();
java.lang.Object fromNative(com.sun.jna.FromNativeConverter,java.lang.Object,java.lang.reflect.Method);
com.sun.jna.NativeMapped fromNative(java.lang.Class,java.lang.Object);
com.sun.jna.NativeMapped fromNative(java.lang.reflect.Method,java.lang.Object);
java.lang.Class nativeType(java.lang.Class);
java.lang.Object toNative(com.sun.jna.ToNativeConverter,java.lang.Object);
int getNativeSize(java.lang.Class);
}
-keep class com.sun.jna.FromNativeConverter {
public java.lang.Class nativeType();
public java.lang.Object fromNative(java.lang.Object, com.sun.jna.FromNativeContext);
}
-keep class com.sun.jna.Native$ffi_callback {
void invoke(long,long,long);
}
-keep class com.sun.jna.Structure {
long typeInfo;
com.sun.jna.Pointer memory;
<init>(int);
void autoRead();
void autoWrite();
com.sun.jna.Pointer getTypeInfo();
com.sun.jna.Structure newInstance(java.lang.Class,long);
}
-keep class com.sun.jna.Structure$FFIType$FFITypes {
<fields>;
}
-keep class com.sun.jna.Structure$ByValue {
}
-keep class com.sun.jna.CallbackReference$AttachOptions {
<fields>;
}
-keep class com.sun.jna.Callback$UncaughtExceptionHandler {
void uncaughtException(com.sun.jna.Callback,java.lang.Throwable);
}
-keep class com.sun.jna.ToNativeConverter {
java.lang.Class nativeType();
}
-keep class com.sun.jna.NativeMapped {
java.lang.Object toNative();
}
-keep class com.sun.jna.IntegerType {
long value;
}
-keep class com.sun.jna.PointerType {
com.sun.jna.Pointer pointer;
}
-keep class com.sun.jna.LastErrorException {
<init>(int);
<init>(java.lang.String);
}
-keep class com.sun.jna.Pointer {
long peer;
<init>(long);
}
-keep class com.sun.jna.WString {
<init>(java.lang.String);
}
-keep class com.sun.jna.JNIEnv { *; }
注意
最終更新
役に立ちましたか?