64位 aapt linux

2017-12-27 14:02:00 weixin_33691598 阅读数 70

CentOS 6.5 安装 64位 aapt

通过 aapt 解析 apk包,获取包信息,版本信息等。

aapt在windows、linux、mac分别有对应的文件,我们可以通过解压apktool.jar获取。

aapt文件有32位和64位之分。 在 64位操作系统中安装32位的aapt需要安装glibc.i686、zlib.i686、libstdc,但是官方又没提供64位的aapt文件。我们可以自己在64位操作系统编译。已经编译好的64位aapt文件 aapt_64

把64位aapt文件上传到服务器后,chmod +x aapt添加运行权限,执行./aapt后会发现报libc.so.6: version ‘GLIBC_2.14’ not found,下面需要我们安装glibc2.14。

  1. 下载glibc-2.14.tar.xz上传到服务器
  2. 运行tar -xvf glibc-2.14.tar.xz解压。
  3. 解压完成后,我们进入glibc-2.14目录:cd glibc-2.14。
  4. 创建glibc源码构建目录:mkdir build,然后进入build目录:cd build。在build目录我们运行../configure --prefix=/opt/glibc-2.14进行配置,然后运行make -j4进行编译,最后运行sudo make install进行安装。
  5. 运行strings /lib64/libc.so.6 |grep GLIBC_ 发现还是没有2.14版本
  6. cp -r /etc/ld.so.c* /opt/glibc-2.14/etc/
  7. ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
  8. 再运行strings /lib64/libc.so.6 |grep GLIBC_可以从结果中找到GLIBC_2.14版本
  9. 运行./aapt出现Android Asset Packaging Tool…信息证明配置成功。

转载于:https://my.oschina.net/shichangcheng/blog/1595577

2017-07-23 15:05:28 quwenzhe 阅读数 1310

项目有个需求,需要从cdn上下载apk文件,并对apk文件进行解析,获取其pkg和size等信息。
通过与开平的同学交流发现,在程序中调用aapt工具可以完成apk文件的解析工作。aapt在windows、linux、mac分别有对应的文件,我们可以通过解压apktool.jar获取。这里我们主要讲解aapt如何在linux centos release 6.5 64位操作系统环境运行。
aapt文件有32位和64位之分,32位需要安装glibc.i686、zlib.i686、libstdc,甚是麻烦,下载多次均未成功,这里建议使用64位aapt:点我下载
把64位aapt文件上传到服务器后,chmod +x aapt添加运行权限,执行./aapt后会发现报libc.so.6: version ‘GLIBC_2.14’ not found,下面需要我们安装glibc2.14。
我们把glibc-2.14.tar.xz(点我下载)上传到服务器的/var/glibc目录,然后运行tar -xvf glibc-2.14.tar.xz解压。解压完成后,我们进入glibc-2.14目录:cd glibc-2.14,接着我们创建glibc源码构建目录:mkdir build,然后进入build目录:cd build。在build目录我们运行../configure --prefix=/opt/glibc-2.14进行配置,然后运行make -j4进行编译,最后运行sudo make install进行安装。
此时运行strings /lib64/libc.so.6 |grep GLIBC_发现还是没有2.14版本,别急,还需要下面两个命令:
cp -r /etc/ld.so.c* /opt/glibc-2.14/etc/
ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
此时再运行strings /lib64/libc.so.6 |grep GLIBC_可以从结果中找到GLIBC_2.14版本,运行./aapt出现Android Asset Packaging Tool…信息证明配置成功。

2018-09-11 11:13:22 Abraham_bug 阅读数 1068

apptool中的文件都是下载

https://www.cnblogs.com/miao-zp/p/5983878.html

https://blog.csdn.net/douyunqian668/article/details/78196037?locationNum=8&fps=1

1、安装aapt工具。

参考:http://www.aichengxu.com/view/25283

 

下载工具包,没梯子的自己下载到这个包后再自己传到服务器吧。

$ wget http://android-apktool.googlecode.com/files/apktool-install-linux-r04-brut1.tar.bz2 

解压缩
$ tar -jxvf apktool-install-linux-r04-brut1.tar.bz2 

移动文件
$ mv aapt /usr/bin  
$ mv apktool /usr/bin 


输入aapt命令,控制台输出
-bash: /usr/bin/aapt: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
原因是64位系统中安装了32位程序,apktool是32位。

 

2、查看linux版本信息和系统位数。

那我自己也需要清楚我的机子装的是linux哪个版本还有位数。

$ cat /etc/issue
CentOS release ,可以知道是CentOS发行版
$ file /sbin/init 
/sbin/init: ELF 64-bit LSB shared object, x86-64,为64位。
32-bit即为32位。

 

3、安装包和问题的出现

刚开始安装我是参考这个来的:http://michaelzqm.iteye.com/blog/1881576

$ yum install -y glibc-2.12-1.107.el6.i686
本来照着装这个,却报了这样的错误。
No package glibc-2.12-1.107.el6.i686 available.
网上搜了一下,换了个版本的包。
$ yum install -y glibc-2.12-1.166.el6.i686


感觉上一个链接写的介绍有点坑,所以按照另外一个进行安装:
http://www.aichengxu.com/view/25283,centos 64位linux系统下安装appt命令的apktool工具包的笔记


此时执行
$ aapt
-bash: /usr/bin/aapt: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装包
$ yum install glibc.i686
安装完后,继续执行
$ aapt
aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
继续安装包
$ yum install zlib.i686
安装完后,继续执行
$ aapt
aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
继续安装包
$ sudo yum install libstdc++.i686 


问题出现了:
安装过程中报错:
Error: Protected multilib versions: libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64


进行更新,注意更新的版本是将上面的.i686部分更新为x86_64
$yum update libstdc++-4.4.7-16.el6.x86_64




$aapt
aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory


回到原来的那步:
$ yum install libstdc++.i686
这次安装成功。


aapt正常执行
$ aapt
Android Asset Packaging Tool

Usage:
 aapt l[ist] [-v] [-a] file.{zip,jar,apk}

 

问题应该是包的版本和位数问题,虽然不是太了解,但是照着那个思路,根据控制台的输出版本还有网上有的版本,修改一下还是可以调通的。

注意:我个人刚开始将aapt放在了我自己设置的目录,结果一直导致aapt找不到,放到/usr/bin下就可以了,你们也可以尝试一下。

 

2017-08-18 15:07:47 natejeams 阅读数 7937

一、首先下载包

下载路径:https://ibotpeaches.github.io/Apktool/

下载最后得到三个文件 aapt apktool apktool.jar 上传到linux系统后,copy到/usr/local/bin目录下,并赋予权限


如果你的系统是64位的,直接执行就报错:
 libstdc++.so.6:cannot open shared object file:no such file or directory

aapt需要32位支持,所以,首先得安装32位库,很多人一说按32位库,马上就使用:sudo apt-get install ia32-libs这条命令,但很快就发现,在14.04中,该li132-libs无法下载安装
这时候,需要用到这条命:
sudo apt-get install lib32z1
sudo apt-get install lib32stdc++6

如果直接过程中出现报错,则需要先sudo apt-get update一下,然后在重新执行上面两天命令
安装后可以试试aapt version看到成功了




2018-12-03 12:05:34 wkh___ 阅读数 2811

 

注:今天装新一台机器,发现下列url提示404。
这里把需要的包下下来传csdn了。如果命令无法下载可参考csdn下载地址:Linux的aapt工具包

 

下载apktool

wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool

 

下载apktool_2.2.1.jar并且重命名为apktool.jar

wget http://connortumbleson.com/apktool/apktool_2.2.1.jar

mv apktool_2.2.1.jar apktool.jar

 

下载aapt

wget http://connortumbleson.com/apktool/aapt/linux/aapt

 

新建/usr/local/apktool文件夹,将apktool,apktool.jar和aapt移进来

mkdir /usr/local/apktool

mv apktool apktool.jar aapt /usr/local/apktool

 

进入/usr/local/apktool文件夹赋予apktool,apktool.jar和aapt可执行权限

cd /usr/local/apktool

chmod +x apktool apktool.jar aapt

 

将apktool加入环境变量,修改/etc/profile,在最后一行添加如下内容

export PATH="$PATH:/usr/local/apktool"

 

使环境变量立即生效

source /etc/profile

上述原文地址:https://www.cnblogs.com/wjp1122/p/8984163.html

 

安装完成运行时如果linux提示:"libc.so.6: version GLIBC_2.14 not found"

欢迎移步另一篇博客:Linux 解决报错"libc.so.6: version GLIBC_2.14 not found"