allenymt / PrivacySentry

Android隐私合规整改检测工具,注解+Asm修改字节码的检测方案
MIT License
2.05k stars 262 forks source link

关于黑名单的逻辑 #105

Closed yihuajia closed 1 year ago

yihuajia commented 1 year ago

private fun shouldProcessClass(entryName: String, blackList: Set?): Boolean { val replaceEntryName = entryName.replace("/",".") blackList?.forEach{ if (replaceEntryName.contains(it)) return false } if (!entryName.endsWith(".class") // || entryName.contains("$") // kotlin object编译后都是内部类,因此这里要放开 || entryName.endsWith("R.class") || entryName.endsWith("BuildConfig.class") || entryName.contains("android/support/") || entryName.contains("android/arch/") || entryName.contains("android/app/") || entryName.contains("android/material") || entryName.contains("androidx") || entryName.endsWith(".SF") || entryName.contains(".DSA") || entryName.contains(".RSA") || entryName.contains(".MF")

            // 过滤掉库本身
            || entryName.contains("com/yl/lib/privacy_annotation")
        ) {

// print("checkClassFile className is $entryName false") return false } // print("checkClassFile className is $entryName true") return true }

添加了黑名单,结果还是被处理了

yihuajia commented 1 year ago

对于sdk需要填的是包名,对于源码需要填类名

allenymt commented 1 year ago

blackList = [] 用这个就行了

yihuajia commented 1 year ago

blackList = [] 用这个就行了

恩恩,对于源码依赖的只能是把类名加上。

allenymt commented 1 year ago

填包名就好了吧

yihuajia commented 1 year ago

填包名就好了吧

不行哦,调了源码才发现,对于非sdk的只能是文件名