Android 製作 升級包

來源:互聯網
上載者:User
Android  製作 升級包

http://hi.baidu.com/j_fo/blog/item/81ae650953ea5ec13ac76312.htmlhttp://hi.baidu.com/j_fo/blog/item/53a45b82206837af0df4d21a.html

如何製作自己的android升級包(update.zip)2010-09-04 19:34

手動製作update.zip包的過程:1.建立一個update目錄,該目錄包含自己想要升級或替換的內容例如:update/update/systemupdate/system/appupdate/system/app/doodle_jump.apkupdate/META-INFupdate/META-INF/comupdate/META-INF/com/googleupdate/META-INF/com/google/androidupdate/META-INF/com/google/android/update-script該目錄包含doodle_jump遊戲,升級後該apk將出現在手機的/system/app/目錄下。META-INF目錄下包含升級指令碼,update-script指令碼的內容如下:show_progress 0.500000 0copy_dir PACKAGE:system SYSTEM:show_progress 0.100000 0大家可以根據自己的升級內容添加相應的命令。2.建立壓縮包在update/目錄下運行:$ zip -qry ../update.unsigned.zip ./將在update/的父目錄下產生update.unsigned.zip 壓縮包3.簽名$ java -Xmx512m -jar signapk.jar -w key.x509.pem key.pk8 update.unsigned.zip update.zip產生簽過名的update.zip包,其中signapk.jar,key.x509.pem,key.pk8與具體手機系統相關4.將簽過名的update.zip包放入手機sdcard根目錄,
重啟系統進入recovery模式,選擇apply update.zip,成功後重啟手機ok,現在手機上已經有doodle_jump遊戲了,並且它無法被刪除~

refer:
http://hi.baidu.com/j_fo/blog/item/53a45b82206837af0df4d21a.html

How
to Create Android Update Zip Package

There are several ways to install applications or  library files to an Android Phone.
You can use Market application to find and install or adb command
line tool to install or push the files to Android file system. These are all easy to implement for  single  file but if you have several applications or library files to install at once, it might be better to use update zip file. The update
zip file is Android advanced system to install applications or lib files to Android file system using recovery tool. This method is commonly used by rom or theme developers to distribute their package.

Creating an update zip file is quite easy, all you have to do is put the files in corresponding directory in Android file system and an update-script file to copy the files. For example, to install Calculator.apk into system/app and
copy libsec-ril.so file into system/lib :

  • Create an empty folder (eg. C:\myupdate)
  • Create C:\myupdate\system\app folder for Calculator.apk and  C:\myupdate\system\lib folder for libsec-ril.so
  • Create C:\myupdate\META-INF\com\google\android folder for update-script file.
  • Create the update-script file with the following syntax:
    show_progress 0.1 0copy_dir PACKAGE:system SYSTEM:show_progress 0.1 10

    Line 1&5 : show progress bar
    Line 3: copy system folder from update package to Android’s /system

    Note: you should add one extra  line at the end of the file (Line 6)

  • Compress the entire contents of C:\myupdate folder to zip (not the myupdate folder itself)
  • Sign the myupdate.zip file

    java -jar signapk.jar certificate.pem key.pk8 myupdate.zip update.zip

    Note: you can find tutorial on how to sign the update.zip file here

  • Copy the update.zip file to sdcard and apply it from recovery console

update-script syntax reference (definitions from recovery.c android source code):

  • copy_dir

    Syntax: copy_dir <src-dir> <dst-dir> [<timestamp>]
    Copy the contents of <src-dir> to  <dst-dir>. The original contents of <dst-dir> are preserved unless something in <src-dir> overwrote them.
    Ex: copy_dir PACKAGE:system SYSTEM:

  • format

    Syntax: format <root>
    Format a partiti0n
    Ex: format SYSTEM:, will format entire /system . Note: formatting erases data irreversibly.

  • delete

    Syntax: delete <file1> [... <fileN>]
    Delete  file.
    EX: delete SYSTEM:app/Calculator.apk, will delete Calculator.apk from system/app directory.

  • delete_recursive

    Syntax: delete_recursive <file-or-dir1> [... <file-or-dirN>]
    Delete a file or directory with all of it’s contents recursively
    Ex: delete_recursive DATA:dalvik-cache, will delete /data/dalvik-cache directory with all of it’s contents

  • run_program

    Syntax: run_program <program-file> [<args> ...]
    Run an external program included in the update package.
    Ex: run_program PACKAGE:install_busybox.sh, will run install_busybox.sh script (shell command) included in the update package.

  • set_perm

    Syntax: set_perm <uid> <gid> <mode> <path> [... <pathN>]
    Set ownership and permission of single file or entire directory trees, like ‘chmod’, ‘chown’, and ‘chgrp’ all in one
    Ex: set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh

  • set_perm_recursive

    Syntax: set_perm_recursive <uid> <gid> <dir-mode> <file-moe> <path> [... <pathN>]
    Set ownership and permission of a directory with all of it’s contents recursively

    Ex: set_perm_recursive 0 0 0755 0644 SYSTEM:app

  • show_progress

    Syntax: show_progress <fraction> <duration>
    Use of the on-screen progress meter for the next operation, automatically advancing the meter over <duration> seconds (or more rapidly if the actual rate of progress can be determined).
    Ex: show_progress 0.1 0

  • symlink

    Syntax: symlink <link-target> <link-path>

    Create a symlink (like ‘ln-s’). The <link-path> is in root:path format, but <link-target> is
    for the target filesystem (and may be relative)

----------

用Android內建的signapk.jar + .x509.pem + .pk8簽名應用程式  

http://lmdy2001.blog.163.com/blog/static/8423891020114262323816/

檔案位置:可以在platform/build/target/product/security/中找到platform.pk8 platform.x509.pem等簽名檔案,對應不同的許可權。
signapk.jar:由/platform/build/tools/signapk/編譯產出,可以在/out/host/linux-x86/framework/中找到。

簽名:
java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有對應許可權的APK

最佳化APK:
zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk

查循APK是否最佳化過:
zipalign -c -v 4 MyDemo.apk

原文轉自:http://www.blogjava.net/MEYE/articles/357111.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.