解包大型apk文件,可能会出现例如以下错误,

UNEXPECTED TOP-LEVEL ERROR:

java.util.concurrent.ExecutionException: java.io.FileNotFoundException/./Contacts/com/google/common/base/Optional$1.smali (Too many open files)

        at java.util.concurrent.FutureTask.report(FutureTask.java:122)

        at java.util.concurrent.FutureTask.get(FutureTask.java:188)

        at org.jf.smali.main.main(main.java:219)

Caused by: java.io.FileNotFoundException:/./Contacts/com/google/common/base/Optional$1.smali (Too many open files)

        at java.io.FileInputStream.open(Native Method)

        at java.io.FileInputStream.<init>(FileInputStream.java:146)

        at java.io.FileInputStream.<init>(FileInputStream.java:101)

        at org.jf.smali.main.assembleSmaliFile(main.java:268)

        at org.jf.smali.main.access$000(main.java:56)

        at org.jf.smali.main$1.call(main.java:210)

        at org.jf.smali.main$1.call(main.java:208)

        at java.util.concurrent.FutureTask.run(FutureTask.java:262)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

这是因为Linux文件数限制导致的错误.

能够使用Ulimit -a查看:

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 20

file size               (blocks, -f) unlimited

pending signals                 (-i) 16382

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 8192

cpu time               (seconds, -t) unlimited

max user processes              (-u) unlimited

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

解决办法就是提高这个上限数,切换到root账户,运行ulimit -n 4096

然后就在root以下运行baksmali就能够.

假设在root下没有java环境,仅仅要source一下java环境设置就能够了.比如我的环境设置文件为:

---------------setup.sh------------------------------

JAVA_HOME=/opt/jdk1.7.0_71

export JAVA_HOME

ANDROID_JAVA_HOME=/opt/jdk1.7.0_71

export ANDROID_JAVA_HOME

PATH=/opt/jdk1.7.0_71/binPATH

export PATH

仅仅须要source setup.sh就能够了,这是由于仅仅要离开root账户,或者重开terminal, ulimit的设置就无效了.

baksmali反编译出现:UNEXPECTED TOP-LEVEL ERROR:....Too many open files的更多相关文章

  1. Android混淆、反编译以及反破解的简单回顾

    =========================================================================虽然反编译很简单,也没下面说的那么复杂,不过还是转了过 ...

  2. andriod的apk文件相关的编译反编译工具

    1.smali-1.2.6.jar 用途:.smali文件 转成 classes.dex文件 说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改. 用法举例:命令行:jav ...

  3. (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切

    if (this == null) Console.WriteLine("this is null"); 这句话一写,大家一定觉得荒谬,然而 if 内代码的执行却是可能的!本文讲介 ...

  4. 编译openwrt时报错:fstools-2018-01-02-11efbf3b/libfstools/overlay.c: At top level: cc1: error: unrecognized command line option '-Wno-format-truncation' [-Werror]

    1. 详细错误信息 [ 11%] Building C object CMakeFiles/fstools.dir/libfstools/overlay.c.o/home/jello/openwrt/ ...

  5. JD-GUI反编译出现ERROR

    反编译Jar包一般使用JD-GUI工具,很方便.但有时会出现异常,如下: 此时,可以辅助使用另一个工具来反编译代码:Luyten(https://github.com/deathmarine/Luyt ...

  6. VS编译错误:fatal error C1859:unexpected precompiled header error, simply rerunning the compiler might fix this problem

    fatal error C1859:unexpected precompiled header error, simply rerunning the compiler might fix this ...

  7. jd-gui反编译报错// INTERNAL ERROR //

    最近在反编译class和jar包的时候,发现部分class无法反编译出来,换了最新版本的jd-gui和多个版本都不行,只能放弃了 解决方案:GitHub上找Luyten这个工具反编译 luyten是P ...

  8. dk.exe自动填报程序的反编译

    dk.exe自动填报程序的反编译 dk.exe用于学校每日健康报的自动填写.

  9. Android odex文件反编译

    odex 是经过优化的dex文件,且独立存在于apk文件.odex 多用于系统预制应用或服务.通过将apk中的dex文件进行 odex,可以加载 apk 的启动速度,同时减小空间的占用.请参考ODEX ...

随机推荐

  1. (33)C#正则表达式

    正则表达式:专门用于字符串处理的语言,用来描述字符串特征的表达式 元字符 . 之间可以出现任意单个字符(除了\n 换行) 例如: a.b   意思是这个表达式必须是三个字符,第一个字符是a,第三个字符 ...

  2. (16)C#继承

    继承格式 class 子类:父类 { ....... } 1.子类能够继承父类所有的字段和方法. class Program { class Father { ; public void b() { ...

  3. UVA 1395 Slim Span 最小生成树

    题意: 给你一个图,让你求这个图中所有生成树中满足题目条件的,这个条件是生成树中最长边与最短边的差值最小. 思路: 根据最小瓶颈生成树的定义:在一个有权值的无向图中,求一个生成树最大边的权值尽量小.首 ...

  4. Windows下SVN权限配置过程详解

    本节讲解一下Windows下SVN权限配置说明,针对的是一个目录下多库的情况,下面是具体的介绍,希望通过本文的学习,你能够对SVN权限配置问题有更加深刻的认识. 1.本文档适用于对Subvesion的 ...

  5. 从内存溢出看Java 环境中的内存结构

    作为有个java程序员,我想大家对下面出现的这几个场景并不陌生,倍感亲切,深恶痛绝,抓心挠肝,一定会回过头来问为什么为什么为什么会这样,嘿嘿,让我们看一下我们日常在开发过程中接触内存溢出的异常: Ex ...

  6. SQL Server 2017 EXPRESS 安装 SQLCMD 设置远程连接

    1.配置管理器内启动TCP/IP协议(端口改为1433)以及加入防火墙允许 2.进入本地实例: cmd Microsoft Windows [版本 ] (c) Microsoft Corporatio ...

  7. zap安装和部署

    1.zap的安装 注意一点测试环境新申请的linux系统java执行路径是/usr/install/java/bin/java,安装zap的时候,会提示找不到java运行环境,解决办法是:做一个软链接 ...

  8. Python中使用XMLRPC(入门)

    一.简介 RPC是Remote Procedure Call的缩写,翻译成中文为:远程方法调用. 它是一种在本地机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了 ...

  9. Ubuntu system zabbix-server-3.x install documentation

    Installing repository configuration package wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/ ...

  10. JavaWeb教程路线

    主要内容大概例如以下: 1.开发环境搭建 2.servlet/jsp解说 3.mysql解说 4.JDBC解说 5.ssh解说 6.整合开发 7.样例具体解释