• 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。
    自用博文.不限传播.欢迎留言.共同进步.
  • 相关阅读:
    20200630(A--E)题解 by 王文硕
    20200629(A--E)题解 by 章思航
    GC垃圾回收
    Codeforces Round #629 (Div. 3) A、B、C
    AtomicInteger的Increment方法的自己实现。
    两个线程,一个输出字母一个输出数字,输出A1B2C3....Z26
    NIO记录
    mysql优化相关
    一些Nginx的Linux命令和conf配置文件
    docker记录
  • 原文地址:https://www.cnblogs.com/mingetty/p/9871224.html
Copyright © 2020-2023  润新知