Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓apk标志信息_Android_Apk_Sign - Fatal编程技术网

Android 安卓apk标志信息

Android 安卓apk标志信息,android,apk,sign,Android,Apk,Sign,apk中存储的标志信息在哪里? apk文件是zip存档,扩展名为.apk。我是否可以更改一些资源,否则会影响签名?使用下面的方法,您可以编辑资源,但您必须退出apk,但这也显示在下面。本例编辑图像资源,但可用于任何资源 首先使用android SDK中的工具“aapt”列出资源: $ANDROID/tools/aapt list file.apk 找到需要更改的资源后,我们使用“删除”和“添加”来替换它们: $ANDROID/tools/aapt remove file.apk res/dra

apk中存储的标志信息在哪里?
apk文件是zip存档,扩展名为.apk。我是否可以更改一些资源,否则会影响签名?

使用下面的方法,您可以编辑资源,但您必须退出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

使用下面的方法,您可以编辑资源,但您必须退出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

很清楚,谢谢。但我仍然不明白签名信息存储在哪里。如果你查看apk内部,你会发现一个META-INF/CERT.SF文件,其中列出了apk中的所有文件及其哈希值。此文件已签名,签名位于META-INF/CERT.RSA文件中。很清楚,谢谢。但我仍然不明白签名信息存储在哪里。如果你查看apk内部,你会发现一个META-INF/CERT.SF文件,其中列出了apk中的所有文件及其哈希值。此文件已签名,签名位于META-INF/CERT.RSA文件中。