feat: add package node, allow to rename packages

This commit is contained in:
Skylot
2022-07-25 12:49:46 +01:00
parent 278d7fa3f9
commit bc7300bd01
12 changed files with 353 additions and 7 deletions
@@ -12,9 +12,18 @@ class RenamePass(private val jadx: JadxScriptInstance) {
}
fun all(makeNewName: (String, IDexNode) -> String?) {
jadx.addPass(object : ScriptPreparePass(jadx, "RenameAll") {
jadx.addPass(object : ScriptOrderedPreparePass(
jadx,
"RenameAll",
runBefore = listOf("RenameVisitor")
) {
override fun init(root: IRootNode) {
val rootNode = root as RootNode
for (pkgNode in rootNode.packages) {
makeNewName.invoke(pkgNode.pkgInfo.name, pkgNode)?.let {
pkgNode.rename(it)
}
}
for (cls in rootNode.classes) {
makeNewName.invoke(cls.classInfo.shortName, cls)?.let {
cls.classInfo.changeShortName(it)
@@ -23,6 +23,9 @@ object JadxScriptConfiguration : ScriptCompilationConfiguration({
wholeClasspath = true
)
}
ide {
acceptedLocations(ScriptAcceptedLocation.Everywhere)
}
baseClass(JadxScriptBaseClass::class)