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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM