com.zhugeioanalytics.android.plugin.ZhugeioAnalyticsSDKHookConfig.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of android-gradle-plugin Show documentation
Show all versions of android-gradle-plugin Show documentation
The official Android SDK Plugin for Zhugeio.
package com.zhugeioanalytics.android.plugin
import org.objectweb.asm.ClassVisitor
import org.objectweb.asm.Opcodes
class ZhugeioAnalyticsSDKHookConfig {
HashMap>> methodCells = new HashMap<>()
void disableIMEI(String methodName) {
def imei = new ZhugeioAnalyticsMethodCell('getIMEI', '(Landroid/content/Context;)Ljava/lang/String;', 'createGetIMEI')
def deviceID = new ZhugeioAnalyticsMethodCell('getDeviceID', '(Landroid/content/Context;I)Ljava/lang/String;', 'createGetDeviceID')
def imeiMethods = [imei, deviceID]
def imeiMethodCells = new HashMap>()
imeiMethodCells.put("com/zhuge/analysis/util/ZhugeioUtils", imeiMethods)
methodCells.put(methodName, imeiMethodCells)
}
void disableAndroidID(String methodName) {
def androidID = new ZhugeioAnalyticsMethodCell('getAndroidID', '(Landroid/content/Context;)Ljava/lang/String;', 'createGetAndroidID')
def androidIDMethods = [androidID]
def androidIdMethodCells = new HashMap>()
androidIdMethodCells.put('com/zhuge/analysis/util/ZhugeioUtils', androidIDMethods)
methodCells.put(methodName, androidIdMethodCells)
}
void disableLog(String methodName) {
def info = new ZhugeioAnalyticsMethodCell('info', '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V', "createSALogInfo")
def printStackTrace = new ZhugeioAnalyticsMethodCell('printStackTrace', '(Ljava/lang/Exception;)V', "createPrintStackTrack")
def sALogMethods = [info, printStackTrace]
def sALogMethodCells = new HashMap>()
sALogMethodCells.put('com/zhuge/analysis/util/ZGLogger', sALogMethods)
methodCells.put(methodName, sALogMethodCells)
}
void disableJsInterface(String methodName) {
def showUpWebView = new ZhugeioAnalyticsMethodCell("showUpWebView", '(Landroid/webkit/WebView;Lorg/json/JSONObject;ZZ)V', "createShowUpWebViewFour")
def showUpX5WebView = new ZhugeioAnalyticsMethodCell("showUpX5WebView", '(Ljava/lang/Object;Lorg/json/JSONObject;ZZ)V', "createShowUpX5WebViewFour")
def showUpX5WebView2 = new ZhugeioAnalyticsMethodCell("showUpX5WebView", '(Ljava/lang/Object;Z)V', "createShowUpX5WebViewTwo")
def zhugeioAPIMethods = [showUpWebView, showUpX5WebView, showUpX5WebView2]
def zhugeioAPIMethodCells = new HashMap>()
zhugeioAPIMethodCells.put('com/zhuge/analysis/stat/ZhugeioSDK', zhugeioAPIMethods)
methodCells.put(methodName, zhugeioAPIMethodCells)
}
void disableMacAddress(String methodName) {
def macAddress = new ZhugeioAnalyticsMethodCell('getMacAddress', '(Landroid/content/Context;)Ljava/lang/String;', 'createGetMacAddress')
def macMethods = [macAddress]
def macMethodCells = new HashMap>()
macMethodCells.put("com/zhuge/analysis/util/ZhugeioUtils", macMethods)
methodCells.put(methodName, macMethodCells)
}
void disableCarrier(String methodName) {
def carrier = new ZhugeioAnalyticsMethodCell('getCarrier', '(Landroid/content/Context;)Ljava/lang/String;', 'createGetCarrier')
def macMethods = [carrier]
def macMethodCells = new HashMap>()
macMethodCells.put("com/zhuge/analysis/util/ZhugeioUtils", macMethods)
methodCells.put(methodName, macMethodCells)
}
//todo 扩展
void createGetIMEI(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitLdcInsn("")
mv.visitInsn(Opcodes.ARETURN)
mv.visitMaxs(1, 1)
mv.visitEnd()
}
void createGetAndroidID(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitLdcInsn("")
mv.visitInsn(Opcodes.ARETURN)
mv.visitMaxs(1, 1)
mv.visitEnd()
}
void createSALogInfo(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitInsn(Opcodes.RETURN)
mv.visitMaxs(0, 3)
mv.visitEnd()
}
void createPrintStackTrack(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitInsn(Opcodes.RETURN)
mv.visitMaxs(0, 1)
mv.visitEnd()
}
void createShowUpWebViewFour(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitInsn(Opcodes.RETURN)
mv.visitMaxs(0, 5)
mv.visitEnd()
}
void createShowUpX5WebViewFour(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitInsn(Opcodes.RETURN)
mv.visitMaxs(0, 5)
mv.visitEnd()
}
void createShowUpX5WebViewTwo(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitInsn(Opcodes.RETURN)
mv.visitMaxs(0, 3)
mv.visitEnd()
}
void createGetMacAddress(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitLdcInsn("")
mv.visitInsn(Opcodes.ARETURN)
mv.visitMaxs(1, 1)
mv.visitEnd()
}
void createGetCarrier(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitLdcInsn("")
mv.visitInsn(Opcodes.ARETURN)
mv.visitMaxs(1, 1)
mv.visitEnd()
}
void createGetDeviceID(ClassVisitor classVisitor, ZhugeioAnalyticsMethodCell methodCell) {
def mv = classVisitor.visitMethod(Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC, methodCell.name, methodCell.desc, null, null)
mv.visitCode()
mv.visitLdcInsn("")
mv.visitInsn(Opcodes.ARETURN)
mv.visitMaxs(1, 1)
mv.visitEnd()
}
//todo 扩展
}