命令行使用JKS文件为APK签名

    目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:
    jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias
   其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:
  jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android
   执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:
   jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)
   查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:
   zip -d Explorer_unsigned.apk META-INF/\*
  命令执行后有如下提示:

   deleting: META-INF/MANIFEST.MF
   deleting: META-INF/CERT.SF
   deleting: META-INF/CERT.RSA
   执行完该命令后,再执行上面的jarsigner命令重新签名即可,此时有如下提示输出:
  正在添加: META-INF/MANIFEST.MF
  正在添加: META-INF/ANDROID.SF
  正在添加: META-INF/ANDROID.RSA
  正在签名: res/drawable-1280x600/content_item.9.png
  正在签名: res/drawable-1280x600/explorer_logo.png
  正在签名: res/drawable-1280x600/icon.png
  正在签名: res/drawable-1280x600/icon_apk.png 
  正在签名: res/drawable-1280x600/icon_audio.png
  正在签名: res/drawable-1280x600/icon_copy.png
  正在签名: res/drawable-1280x600/icon_delete.png
  正在签名: res/drawable-1280x600/icon_folder.png
  正在签名: res/drawable-1280x600/icon_move.png
  正在签名: res/drawable-1280x600/icon_msg.png
  正在签名: res/drawable-1280x600/icon_other.png
  正在签名: res/drawable-1280x600/icon_paste.png
  正在签名: res/drawable-1280x600/icon_photo.png
  正在签名: res/drawable-1280x600/icon_rename.png
  正在签名: res/drawable-1280x600/icon_share.png
  正在签名: res/drawable-1280x600/icon_smb.png
  正在签名: res/drawable-1280x600/icon_video.png
  正在签名: res/drawable-1280x600/line_content.png
  正在签名: res/drawable-1280x600/line_top.png
  正在签名: res/drawable-1280x600/nav_flash1.png
  正在签名: res/drawable-1280x600/nav_flash2.png
  正在签名: res/drawable-1280x600/nav_network1.png
  正在签名: res/drawable-1280x600/nav_network2.png
  正在签名: res/drawable-1280x600/nav_sata1.png
  正在签名: res/drawable-1280x600/nav_sata2.png
  正在签名: res/drawable-1280x600/nav_sdcard1.png
  正在签名: res/drawable-1280x600/nav_sdcard2.png
  正在签名: res/drawable-1280x600/nav_usb1.png
  正在签名: res/drawable-1280x600/nav_usb2.png
  正在签名: res/drawable-1280x600/popup_win.png
  正在签名: res/drawable-1280x600/popup_win1.9.png
  正在签名: res/drawable-1280x600/shadow.png
  正在签名: res/drawable-1280x600/smb_add.png
  正在签名: res/drawable-1280x600/smb_delete.png
  正在签名: res/drawable-1280x600/smb_edit.png
  正在签名: res/drawable-1280x600/smb_search.png
  正在签名: res/drawable-1920x900/background.png
  正在签名: res/drawable-1920x900/content_item.9.png
  正在签名: res/drawable-1920x900/explorer_logo.png
  正在签名: res/drawable-1920x900/icon.png
  正在签名: res/drawable-1920x900/icon_apk.png
  正在签名: res/drawable-1920x900/icon_copy.png
  正在签名: res/drawable-1920x900/icon_delete.png
  正在签名: res/drawable-1920x900/icon_folder.png
  正在签名: res/drawable-1920x900/icon_image.png
  正在签名: res/drawable-1920x900/icon_move.png
  正在签名: res/drawable-1920x900/icon_msg.png
  正在签名: res/drawable-1920x900/icon_music.png
  正在签名: res/drawable-1920x900/icon_other.png
  正在签名: res/drawable-1920x900/icon_paste.png
  正在签名: res/drawable-1920x900/icon_rename.png
  正在签名: res/drawable-1920x900/icon_share.png
  正在签名: res/drawable-1920x900/icon_smb.png
  正在签名: res/drawable-1920x900/icon_video.png
  正在签名: res/drawable-1920x900/line_content.png
  正在签名: res/drawable-1920x900/line_shadow.png
  正在签名: res/drawable-1920x900/line_top.png
  正在签名: res/drawable-1920x900/line_yellow.png
  正在签名: res/drawable-1920x900/nav_flash1.png
  正在签名: res/drawable-1920x900/nav_flash2.png
  正在签名: res/drawable-1920x900/nav_network1.png
  正在签名: res/drawable-1920x900/nav_network2.png
  正在签名: res/drawable-1920x900/nav_sata1.png
  正在签名: res/drawable-1920x900/nav_sata2.png
  正在签名: res/drawable-1920x900/nav_sdcard1.png
  正在签名: res/drawable-1920x900/nav_sdcard2.png
  正在签名: res/drawable-1920x900/nav_usb1.png
  正在签名: res/drawable-1920x900/nav_usb2.png
  正在签名: res/drawable-1920x900/popup_win.png
  正在签名: res/drawable-1920x900/popup_win1.9.png
  正在签名: res/drawable/apk.png
  正在签名: res/drawable/audio.png
  正在签名: res/drawable/background.png
  正在签名: res/drawable/bk.png
  正在签名: res/drawable/blank_page.png
  正在签名: res/drawable/btn_normal.png
  正在签名: res/drawable/btn_pressed.png
  正在签名: res/drawable/cifsmanager.png
  正在签名: res/drawable/close_b.png
  正在签名: res/drawable/content_line.png
  正在签名: res/drawable/copy.png
  正在签名: res/drawable/device.png
  正在签名: res/drawable/device_icon.png
  正在签名: res/drawable/dlna.png
  正在签名: res/drawable/edit_folder.png
  正在签名: res/drawable/explorer_logo.png
  正在签名: res/drawable/file_sharing.png
  正在签名: res/drawable/flash.png
  正在签名: res/drawable/folder.png
  正在签名: res/drawable/folder_back.png
  正在签名: res/drawable/folder_next.png
  正在签名: res/drawable/highlight_disabled.png
  正在签名: res/drawable/highlight_pressed.png
  正在签名: res/drawable/highlight_selected.png
  正在签名: res/drawable/home.png
  正在签名: res/drawable/item_flash.png
  正在签名: res/drawable/item_hl.png
  正在签名: res/drawable/item_sdcard.png
  正在签名: res/drawable/item_smb.png
  正在签名: res/drawable/item_yellow.png
  正在签名: res/drawable/level_up.png
  正在签名: res/drawable/line_top.png
  正在签名: res/drawable/list.png
  正在签名: res/drawable/list_hot.png
  正在签名: res/drawable/listbg.9.png
  正在签名: res/drawable/listbg_press.9.png
  正在签名: res/drawable/main_setting.png
  正在签名: res/drawable/menu_edit.png
  正在签名: res/drawable/nav_flash1.png
  正在签名: res/drawable/nav_flash2.png
  正在签名: res/drawable/nav_network1.png
  正在签名: res/drawable/nav_network2.png
  正在签名: res/drawable/nav_sata1.png
  正在签名: res/drawable/nav_sata2.png
  正在签名: res/drawable/nav_sdcard1.png
  正在签名: res/drawable/nav_sdcard2.png
  正在签名: res/drawable/nav_usb1.png
  正在签名: res/drawable/nav_usb2.png
  正在签名: res/drawable/net_folder.png
  正在签名: res/drawable/new_folder.png
  正在签名: res/drawable/next_image.png
  正在签名: res/drawable/next_image_pressed.png
  正在签名: res/drawable/panel_separator.png
  正在签名: res/drawable/paste.png
  正在签名: res/drawable/popup_blue_border_4.png
  正在签名: res/drawable/pre_image.png
  正在签名: res/drawable/pre_image_pressed.png
  正在签名: res/drawable/rename.png
  正在签名: res/drawable/sdcard.png
  正在签名: res/drawable/search.png
  正在签名: res/drawable/shadow.png
  正在签名: res/drawable/share.png
  正在签名: res/drawable/smb.png
  正在签名: res/drawable/smb_folder_error.png
  正在签名: res/drawable/sort.png
  正在签名: res/drawable/storage_list.png
  正在签名: res/drawable/switch_windows.png
  正在签名: res/drawable/tool_background.9.png
  正在签名: res/drawable/toolbar_down_arrow.png
  正在签名: res/drawable/toolbar_left_arrow.png
  正在签名: res/drawable/toolbar_right_arrow.png
  正在签名: res/drawable/toolbar_up_arrow.png
  正在签名: res/drawable/video.png
  正在签名: res/drawable/yellow_border2.9.png
  正在签名: res/drawable/yellow_border3.9.png
  正在签名: resources.arsc
  正在签名: AndroidManifest.xml
  正在签名: classes.dex
  正在签名: jcifs/http/ne.css
  正在签名: jcifs/util/mime.map
  正在签名: res/anim/image_in.xml
  正在签名: res/anim/image_out.xml
  正在签名: res/drawable/editor_btn.xml
  正在签名: res/drawable/gradient_line.xml
  正在签名: res/drawable/list_selector_background.xml
  正在签名: res/drawable/next_images.xml
  正在签名: res/drawable/pre_images.xml
  正在签名: res/drawable/title_bar_back.xml
  正在签名: res/drawable/tool_bar_selector.xml
  正在签名: res/drawable/tool_btu.xml
  正在签名: res/layout/copy_dialog.xml
  正在签名: res/layout/device_adapter.xml
  正在签名: res/layout/device_list_item.xml
  正在签名: res/layout/editor_layout.xml
  正在签名: res/layout/file_details.xml
  正在签名: res/layout/main.xml
  正在签名: res/layout/new_smb_server.xml
  正在签名: res/layout/new_username_password.xml
  正在签名: res/layout/normal_adapter.xml
  正在签名: res/layout/pictureview.xml
  正在签名: res/layout/recovery_dialog.xml
  正在签名: res/layout/rename_alert_dialog.xml
  正在签名: res/layout/reslover_adapter.xml
  正在签名: res/layout/smb_editor_layout.xml
  正在签名: res/layout/smb_search_progress.xml
  正在签名: res/layout/title_bar.xml
  正在签名: res/layout/tool_bar.xml
  jar 已签名。

  警告: 
  签名者证书为自签名证书。

  未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2154-09-25) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

   至此使用JKS文件为APK签名完成。
   参考资料:
   https://stackoverflow.com/questions/5089042/jarsigner-unable-to-sign-jar-java-util-zip-zipexception-invalid-entry-compres
   https://blog.csdn.net/HongEnIT/article/details/54583826


  

评论

此博客中的热门博文

I/O映射之I/O端口

通过Netlink检测网线插拔

使用seq_file