Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41695661
jadx
提交
4edb5121
J
jadx
项目概览
weixin_41695661
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
4edb5121
编写于
6月 11, 2022
作者:
C
Christian Jones
提交者:
GitHub
6月 11, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(cli): allow decoding resource-only APKs (#1517)(PR #1530)
* Process resource-only inputs * Fix error, add testing
上级
702b8822
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
2 deletion
+35
-2
jadx-cli/src/main/java/jadx/cli/JadxCLI.java
jadx-cli/src/main/java/jadx/cli/JadxCLI.java
+8
-2
jadx-cli/src/test/java/jadx/cli/TestInput.java
jadx-cli/src/test/java/jadx/cli/TestInput.java
+27
-0
jadx-cli/src/test/resources/samples/resources-only.apk
jadx-cli/src/test/resources/samples/resources-only.apk
+0
-0
未找到文件。
jadx-cli/src/main/java/jadx/cli/JadxCLI.java
浏览文件 @
4edb5121
...
...
@@ -66,8 +66,14 @@ public class JadxCLI {
private
static
boolean
checkForErrors
(
JadxDecompiler
jadx
)
{
if
(
jadx
.
getRoot
().
getClasses
().
isEmpty
())
{
LOG
.
error
(
"Load failed! No classes for decompile!"
);
return
true
;
if
(
jadx
.
getArgs
().
isSkipResources
())
{
LOG
.
error
(
"Load failed! No classes for decompile!"
);
return
true
;
}
if
(!
jadx
.
getArgs
().
isSkipSources
())
{
LOG
.
warn
(
"No classes to decompile; decoding resources only"
);
jadx
.
getArgs
().
setSkipSources
(
true
);
}
}
if
(
jadx
.
getErrorsCount
()
>
0
)
{
LOG
.
error
(
"Load with errors! Check log for details"
);
...
...
jadx-cli/src/test/java/jadx/cli/TestInput.java
浏览文件 @
4edb5121
...
...
@@ -44,6 +44,33 @@ public class TestInput {
decompile
(
"multi"
,
"samples/hello.dex"
,
"samples/HelloWorld.smali"
);
}
@Test
public
void
testResourceOnly
()
throws
Exception
{
decode
(
"resourceOnly"
,
"samples/resources-only.apk"
);
}
private
void
decode
(
String
tmpDirName
,
String
apkSample
)
throws
URISyntaxException
,
IOException
{
List
<
String
>
args
=
new
ArrayList
<>();
Path
tempDir
=
FileUtils
.
createTempDir
(
tmpDirName
);
args
.
add
(
"-v"
);
args
.
add
(
"-d"
);
args
.
add
(
tempDir
.
toAbsolutePath
().
toString
());
URL
resource
=
getClass
().
getClassLoader
().
getResource
(
apkSample
);
assertThat
(
resource
).
isNotNull
();
String
sampleFile
=
resource
.
toURI
().
getRawPath
();
args
.
add
(
sampleFile
);
int
result
=
JadxCLI
.
execute
(
args
.
toArray
(
new
String
[
0
]));
assertThat
(
result
).
isEqualTo
(
0
);
List
<
Path
>
files
=
Files
.
find
(
tempDir
,
3
,
(
file
,
attr
)
->
file
.
getFileName
().
toString
().
equalsIgnoreCase
(
"AndroidManifest.xml"
))
.
collect
(
Collectors
.
toList
());
assertThat
(
files
.
isEmpty
()).
isFalse
();
}
private
void
decompile
(
String
tmpDirName
,
String
...
inputSamples
)
throws
URISyntaxException
,
IOException
{
List
<
String
>
args
=
new
ArrayList
<>();
Path
tempDir
=
FileUtils
.
createTempDir
(
tmpDirName
);
...
...
jadx-cli/src/test/resources/samples/resources-only.apk
0 → 100644
浏览文件 @
4edb5121
文件已添加
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录