From 9475430e46d8513bd8f366ff8ed2b086b553808e Mon Sep 17 00:00:00 2001 From: Alex Zaitsev Date: Fri, 23 Sep 2016 13:41:53 +0300 Subject: [PATCH] 0.0.3, add error handling --- apk_dependency_graph_0.0.2.jar | Bin 9997 -> 0 bytes apk_dependency_graph_0.0.3.jar | Bin 0 -> 10038 bytes code/CodeUtils.java | 8 ++++---- code/SmaliAnalyzer.java | 23 +++++++++++++---------- run.bat | 2 +- run.sh | 2 +- 6 files changed, 19 insertions(+), 16 deletions(-) delete mode 100644 apk_dependency_graph_0.0.2.jar create mode 100644 apk_dependency_graph_0.0.3.jar diff --git a/apk_dependency_graph_0.0.2.jar b/apk_dependency_graph_0.0.2.jar deleted file mode 100644 index fc2eaacb29e1b35a2430a5fc2bcb8c36e834a0ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9997 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 Gzy1fXTvPY} diff --git a/apk_dependency_graph_0.0.3.jar b/apk_dependency_graph_0.0.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..0fdfe327663c306f83c0dfd244a355ac0c13b744 GIT binary patch literal 10038 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 literal 0 HcmV?d00001 diff --git a/code/CodeUtils.java b/code/CodeUtils.java index 5d6ca22..a784460 100644 --- a/code/CodeUtils.java +++ b/code/CodeUtils.java @@ -3,15 +3,15 @@ public class CodeUtils { public static boolean isClassR(String className) { - return className.equals("R") || className.startsWith("R$"); + return className != null && className.equals("R") || className.startsWith("R$"); } public static boolean isClassGenerated(String className) { - return className.contains("$$"); + return className != null && className.contains("$$"); } public static boolean isClassInner(String className) { - return className.contains("$") && !isClassAnonymous(className) && !isClassGenerated(className); + return className != null && className.contains("$") && !isClassAnonymous(className) && !isClassGenerated(className); } public static String getOuterClass(String className) { @@ -19,7 +19,7 @@ public static String getOuterClass(String className) { } public static boolean isClassAnonymous(String className) { - return className.contains("$") + return className != null && className.contains("$") && StringUtils.isNumber(className.substring(className.lastIndexOf("$") + 1, className.length())); } diff --git a/code/SmaliAnalyzer.java b/code/SmaliAnalyzer.java index d09924c..1e2cda7 100644 --- a/code/SmaliAnalyzer.java +++ b/code/SmaliAnalyzer.java @@ -80,18 +80,21 @@ private void processSmaliFile(File file) { Set dependencyNames = new HashSet<>(); for (String line; (line = br.readLine()) != null;) { - classNames.clear(); - - parseAndAddClassNames(classNames, line); - - // filtering - for (String fullClassName : classNames) { - if (fullClassName != null && isFilterOk(fullClassName)) { - String simpleClassName = getClassSimpleName(fullClassName); - if (isClassOk(simpleClassName, fileName)) { - dependencyNames.add(simpleClassName); + try { + classNames.clear(); + + parseAndAddClassNames(classNames, line); + + // filtering + for (String fullClassName : classNames) { + if (fullClassName != null && isFilterOk(fullClassName)) { + String simpleClassName = getClassSimpleName(fullClassName); + if (isClassOk(simpleClassName, fileName)) { + dependencyNames.add(simpleClassName); + } } } + } catch (Exception e) { } } diff --git a/run.bat b/run.bat index eea939a..9765fed 100644 --- a/run.bat +++ b/run.bat @@ -17,4 +17,4 @@ Set outPath=%~dp0\%Name:~0,-4% Set jsonPath=%~dp0\analyzed.js java -jar %~dp0\apktool_2.2.0.jar d %1 -o %outPath% -f -java -jar %~dp0\apk_dependency_graph_0.0.2.jar -i %outPath% -o %jsonPath% -f %2 \ No newline at end of file +java -jar %~dp0\apk_dependency_graph_0.0.3.jar -i %outPath% -o %jsonPath% -f %2 \ No newline at end of file diff --git a/run.sh b/run.sh index a01cf13..843b3a6 100644 --- a/run.sh +++ b/run.sh @@ -10,4 +10,4 @@ outPath=${dir}"/"${xpref} jsonPath=${dir}"/analyzed.js" eval "java -jar ${dir}'/apktool_2.2.0.jar' d ${fileName} -o ${outPath} -f" -eval "java -jar ${dir}'/apk_dependency_graph_0.0.2.jar' -i ${outPath} -o ${jsonPath} -f $2" \ No newline at end of file +eval "java -jar ${dir}'/apk_dependency_graph_0.0.3.jar' -i ${outPath} -o ${jsonPath} -f $2" \ No newline at end of file