How to Create Android Update Zip Package
2012-04-09 18:03
441 查看
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:
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)
Definition of roots and partitions (from root.c android source code)
Share
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 0 copy_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)
Definition of roots and partitions (from root.c android source code)
ROOT: (Linux block device) /mountpoint/ fs, size Description. BOOT: (/dev/mtdblock[?]) / (RAM) Raw Kernel, ramdisk and boot config. DATA: (/dev/mtdblock5) /data/ yaffs2, 91904kb User, system config, app config, and apps (without a2sd) CACHE: (/dev/mtdblock4) /cache/ yaffs2, 30720kb OTA cache, Recovery/update config and temp MISC: (/dev/mtdblock[?]) N/A Raw [TODO: Get info on MISC:] PACKAGE: (Relative to package file) N/A Pseudo-filesystem for update package. RECOVERY: (/dev/mtdblock[?]) / (RAM) Raw, [?]kb The recovery and update environment's kernel and ramdisk. Similar to BOOT:. SDCARD: (/dev/mmcblk0(p1)) /sdcard/ fat32, 32MB-32GB The microSD card. Update zip is usually here. SYSTEM: (/dev/mtdblock3) /system/ yaffs2, 92160kb The OS partition, static and read-only. TMP: /tmp/ in RAM Standard Linux temporary directory. Cleared on poweroff/reboot.
Share
相关文章推荐
- How To Change, Customize & Create Android Boot Animation [Guide]
- How to create and extract zip, tar, tar.gz and tar.bz2 files in Linux
- How_to_create_an_RPM_package
- [zz]How to create a GNU Hello RPM package
- How to create jar for Android Library Project
- How to Create an R Package in Windows
- Android: How to download the latest zip Android Source Code easily and using it in Intellij
- [转载] How to update the recovery.img in android
- How to import class from other package when building android image
- How-to create a Calculator on Google Android: Part I
- How to create a zip file in NetSuite SuiteScript 2.0 如何在现有SuiteScript中创建和下载ZIP压缩文档
- Modify---->How to add a test plan, package to Android CTS?
- [Quote] How To Change, Customize & Create Android Boot Animation [Guide]
- Step by Step - How to create a c++ library with NDK on Android Studio 1.5 (not experimental way)
- How-to create a Calculator Using Google Android: Part II
- how to know the package name of android apk?
- How to create a library for Android Application
- How to create cab package for wm5/wm6
- How to develop and package Android Wear App using Eclips
- How to Sign Android APK or Zip Files