2012-09-24 150 views
0

在apk中哪裏存儲標誌信息? apk文件是zip文件,擴展名爲.apk。我可以改變一些資源,否則會影響簽名?Android apk安卓apk截圖

回答

5

使用下面的這個方法,你可以編輯資源,但是你必須重新安裝APK,但是下面也顯示了這個。這個例子編輯的圖像資源,但是這可以通過任何資源

首先被用於使用來自Android的SDK工具「AAPT」列出資源:

$ANDROID/tools/aapt list file.apk 

一旦我們找到我們所需要的資源,變化,我們使用「刪除」和「添加」來替換它們:

$ANDROID/tools/aapt remove file.apk res/drawable/file.png 
$ANDROID/tools/aapt add file.apk res/drawable/file.png 

接着我們來刪除舊的APK簽名,並用新的替換它。 我們將生成一個假的自簽名密鑰來簽署的APK:

$ openssl genrsa -out key.pem 1024 
$ openssl req -new -key key.pem -out request.pem 
$ openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem 
$ openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt 

取下APK舊的簽名:

for f in `$ANDROID/tools/aapt list file.apk |grep "META-INF"` ; do 
$ANDROID/tools/aapt remove file.apk $f 
done 

現在我們簽署APK,我用signapk.jar做這個:

$ java -jar signapk.jar certificate.pem key.pk8 file.apk file-signed.apk 
+0

很明顯,謝謝。但我仍然不明白存儲的物理簽名信息在哪裏。 – anber

+1

如果您查看apk內部,您會發現一個META-INF/CERT.SF文件,其中列出了apk中的所有文件及其哈希值。此文件已簽名,簽名位於META-INF/CERT.RSA文件中。 – pcans