linux使用aapt获取包名

aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看,创建, 更新ZIP格式的文档附件(zip, jar, apk)。也可将资源文件编译成二进制文件,尽管你可能没有直接使用过aapt工具,但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序。

centos6版本因为需要glibc-2.14 , 现附上最简单的方法(想研究可以看后面的方法)

点我下载

下载后解压直接使用aapt获取包名

[root@iZuf62o440hd7ir1f41ahdZ data]# pwd  #放在哪里随便
/data
[root@iZuf62o440hd7ir1f41ahdZ data]# tar xf android.tar.gz 
[root@iZuf62o440hd7ir1f41ahdZ data]# cd android
[root@VM_0_15_centos android]# ll
total 9924
-rwxr-xr-x 1 root root 1425363 Nov 14 11:24 aapt
-rw-r--r-- 1 root root 8709717 Jun 30  2017 ldsmobilemgr.apk  # 测试包( 鲁大师的apk )
drwxr-xr-x 2 root root    4096 Nov 14 11:52 lib64
[root@iZuf62o440hd7ir1f41ahdZ android]# pwd
/data/android
[root@VM_0_15_centos android]# tail -1 /etc/profile
export PATH=$PATH:/data/android         #把这个路径加上,然后   . 或者 source /etc/profile 一下
[root@VM_0_15_centos android]# aapt l -a ldsmobilemgr.apk | grep "name="|awk -F= 'NR==1{print $4}'
com.ludashi.appstore
[root@VM_0_15_centos android]# cd
[root@VM_0_15_centos ~]# aapt l -a /data/android/ldsmobilemgr.apk | grep "name="|awk -F= 'NR==1{print $4}'
com.ludashi.appstore
[root@VM_0_15_centos ~]# # OK,可以了. 这个方法最好的地方就是不用给系统加 glibc-2.14 加了后可能会时间不准,文件乱码

 

下面内容可忽略, 想看也不拦着

 

apktool和aapt各种版本可以到如下地址下载

http://connortumbleson.com/apktool/

https://ibotpeaches.github.io/Apktool/   

本次操作环境centos  以apktool 2.2.2为例

下载工具包:

 wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
 wget http://connortumbleson.com/apktool/apktool_2.2.2.jar
 wget http://connortumbleson.com/apktool/aapt/linux/aapt
配置加权

[root@local leinw]# mkdir -p /usr/local/aapt
[root@local leinw]# mv aapt apktool apktool_2.2.2.jar /usr/local/aapt/
[root@local leinw]# cd /usr/local/aapt/
[root@local aapt]# chmod +x ./*
#  添加到PATH   修改  vim /etc/profile, 把路径添加上   export PATH=$PATH:/usr/local/aapt
[root@local aapt]# . /etc/profile  或者用 source  /etc/profile

获取包名

[root@local wu]# aapt dump badging  BS_HBag_S_HDV2.6.4.938.apk|grep "package" | awk -F "'" '{print $2}'  #或者 aapt l -a /wu/BS_HBag_S_HDV2.7.0.998.apk| grep "name="|awk -F= 'NR==1{print $4}'
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by aapt)

报错了, 刚才centos7没报, centos6报了. 缺少 GLIBC_2.14

[root@local wu]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
[root@local wu]# rpm -qa|grep glibc
glibc-headers-2.12-1.209.el6_9.2.x86_64
glibc-devel-2.12-1.209.el6_9.2.x86_64
glibc-2.12-1.209.el6_9.2.x86_64
glibc-common-2.12-1.209.el6_9.2.x86_64

下载编译安装glibc-2.14

[root@local wu]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
[root@local wu]# tar xf glibc-2.14.tar.gz 
[root@local wu]# cd glibc-2.14
[root@local glibc-2.14]# mkdir build
[root@local glibc-2.14]# cd build
[root@local build]# ../configure --prefix=/opt/glibc-2.14       #检查是否有问题,没问题往下,有问题要解决
[root@local build]# make            # (4核可加-j4 ,8核可加-j8),不加也行
[root@local build]# make install    #  检查编译日志有无报错

观察编译日志有无报错。可能提示少文件. 

touch {glibc2.14解压路径}/etc/ld.so.conf  (报什么没有,创建什么文件 mkdir /opt/glibc-2.14/etc/ld.so.conf  我创建的目录也可以,呵呵 )

重新 make install  , 不报错了再往下进行....

配置修改

看看现在libc.so.6在哪个位置(一般在 lib64下),然后修改软链接
[root@wu build]# \cp -rf /etc/ld.so.c* /opt/glibc-2.14/
[root@wu build]# ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
检查GLIBC2.14是否安装成功
strings /lib64/libc.so.6 | grep GLIBC
列表中有GLIBC_2.14表示安装成功。
[root@wu build]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

再次查看包名

[root@wu build]# aapt l -a /wu/BS_HBag_S_HDV2.7.0.998.apk| grep "name="|awk -F= 'NR==1{print $4}'
com.bszhihui.hbag_launcher
[root@wu build]# aapt d badging  /wu/BS_HBag_S_HDV2.7.0.998.apk |grep "package" | awk -F "'" '{print $2}' 
com.bszhihui.hbag_launcher

注意 

如果升级失败导致大部分系统工具失效,可用下面命令重装libc.so.6

#LD_PRELOAD=/lib/libc-2.12.so yum -y install glibc-devel
 

如果先删除软链接再创建, 删除libc.so.6之后可能导致系统命令不可用的情况, 可使用如下方法解决:

LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

 

如果上述更新失败可使用如下命令还原:

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so   ###此项是系统升级前的版本

 

附加

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

在已有的环境变量上添加新的路径名,方式: LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串)
 
终端下输入:    export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH:
然后再输入:    export
即会显示是否设置正确
export方式在重启后失效,所以也可以用 vim /etc/bashrc ,修改其中的LD_LIBRARY_PATH变量。
例如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/au1200_rm/build_tools/bin。
posted @ 2018-10-29 16:11  mingetty  阅读(1091)  评论(0编辑  收藏  举报