The Team Lambent Corrosion member presents:
UpdatezipCreator
I've found some time to build a new app that can create updates (as zip archive flashable via recovery).
Features:
-Simply to use interface
-Edify & Amend scripts
-Automatic signing
-Signing single ZIPs
-Drag&Drop
I hope that app will work without any bugs
Changelog:
1.0.0.1
-adding update-binary to edify scripts (possibility of choosing own update-binary)
-added default scripts for edify scripts
-settings not stored in my documents
1.0.0.2
-Adding folders
-Drag&Drop
-Signing single zip archive
1.0.0.3
-Fixed bug with the wrong name of edify scripts
1.0.0.4
-Not signed archive is kept in temporary directory
-Functions library (inserting functions)
1.0.0.5
-Problem with update_ont_signed path solved (I hope so)
1.0.0.6
-Log mode
1.0.0.7
-Signing bug fixed
1.0.0.8
-Handling linux newline character in scripts
10/05/2013 - updated links due to many requests (unfortunately, my dropbox accounts was generating to much traffic )
DOWNLOAD:
Rar archive - about 540 kb
Source code - about 1,3 MB - Visual Studio C#
Installer - about 850 kb
Now this'll get success!
I can't wait to get back to my laptop and try it! Thanks OP!
Sent from my Nexus S 4G using xda premium
Awesome
benzyniarz1 said:
The Team Lambent Corrosion member presents:
UpdatezipCreator
I've found some time to build a new app that can create updates (as zip archive flashable via recovery).
Features:
-Edify & Amend scripts
-Signing
I hope that app will work without any bugs
Changelog:
1.0.0.1
-adding update-binary to edify scripts (possibility of choosing own update-binary)
-added default scripts for edify scripts
-settings not stored in my documents
1.0.0.2
-Adding folders
-Drag&Drop
-Signing single zip archive
DOWNLOAD:
Rar archive - about 390 kb
Source code - about 500 kb - Visual Studio C#
Click to expand...
Click to collapse
Dude, this rocks!! Is there any way you can post a update script for HTC thunderbolt? I will def be donating!
I cant seem to get CWR to take any of my zips. I am getting in error "status 4" any ideas?
jgrimberg1979 said:
Dude, this rocks!! Is there any way you can post a update script for HTC thunderbolt? I will def be donating!
Click to expand...
Click to collapse
Thanks, but what do you mean by update-script for the HTC thunderbolt? Scripts built-in are universal (amend) or almost universal (you need only to change mounting point manually). If you don't know how, I can prepare the specify script for your device.
I'm going to use phoneDatabase from amend2edify to prepare the mount points for different devices.
jgrimberg1979 said:
I cant seem to get CWR to take any of my zips. I am getting in error "status 4" any ideas?
Click to expand...
Click to collapse
1. Are you have a full root kernel in the phone?
2. Are you tried to use the both update-scripts? (amend or edify)
3. If you were using edify, did you changed mounting point in script?
I think that CWM scripts should work on the CWR..
If you could make one for me that would be awesome. I tried using both amend and edify.
benzyniarz1 said:
Thanks, but what do you mean by update-script for the HTC thunderbolt? Scripts built-in are universal (amend) or almost universal (you need only to change mounting point manually). If you don't know how, I can prepare the specify script for your device.
I'm going to use phoneDatabase from amend2edify to prepare the mount points for different devices.
1. Are you have a full root kernel in the phone?
2. Are you tried to use the both update-scripts? (amend or edify)
3. If you were using edify, did you changed mounting point in script?
I think that CWM scripts should work on the CWR..
Click to expand...
Click to collapse
Yes I am full root and s-off
Yes I tried using both
I am not sure how to do that
jgrimberg1979 said:
Yes I am full root and s-off
Yes I tried using both
I am not sure how to do that
Click to expand...
Click to collapse
You've tried edify, but didn't change the mounting point, so it couldn't work.. You need to change the line
mount("/dev/block/stl6", "system", "/system", "rw");
Click to expand...
Click to collapse
to:
mount("/dev/block/mmcblk0p25", "system", "/system", "rw");
Click to expand...
Click to collapse
Here is a prepared update-script for your device. Load it in update-script tab page in the app before making update.zip. I hope it will work. Do not forget to check the edify script in options.
So, here are steps:
Add files you want to
Check the edify script and built-in update-binary in the options page
Load prepared file or change "mount" line manually in a update-script page
Create zip archive
You can also try to mount system via (instead of "mount(..."):
run_program("/sbin/busybox", "mount", "-t", "auto", "/dev/block/mmcblk0p25", "/system");
Click to expand...
Click to collapse
It also should work.
Thanks! I will test it out tonight and get back to you.
Sent from my ADR6400L using Tapatalk
benzyniarz1 said:
You've tried edify, but didn't change the mounting point, so it couldn't work.. You need to change the line
to:
Here is a prepared update-script for your device. Load it in update-script tab page in the app before making update.zip. I hope it will work. Do not forget to check the edify script in options.
So, here are steps:
Add files you want to
Check the edify script and built-in update-binary in the options page
Load prepared file or change "mount" line manually in a update-script page
Create zip archive
You can also try to mount system via (instead of "mount(..."):
It also should work.
Click to expand...
Click to collapse
I cant get it to work. I am getting an error status 25. I have tried all the combinations. I have tried the different update binary and updater scripts and i get the same outcome.
update.. It looks like for my phone i need an updater-script rather than update script. Here is a link to the successful zip. I had to open the finished zip(ur program) and delete the update-script and replace it with an updater-script. Is there any way you can adjust it so it will have the right scripts each time so i dont have to manually change anything? That would be awesome. I have been looking for something like this for years. so nice to have simple gui and not have to use update.zip creator and then use amend2edify to make a zip. here is a link http://www.mediafire.com/?29vyc5sojdm946b
Thanks a lot.. it's all my fault. I've not noticed, that amend scripts require "update-script" name and edify scripts "updater-script"...
The new version has been released, please try it now
simply changelog:
1.0.0.3
-Fixed bug with the wrong name of edify scripts
benzyniarz1 said:
Thanks a lot.. it's all my fault. I've not noticed, that amend scripts require "update-script" name and edify scripts "updater-script"...
The new version has been released, please try it now
simply changelog:
1.0.0.3
-Fixed bug with the wrong name of edify scripts
Click to expand...
Click to collapse
It is still not working. I think it may be something with the signing process or something. to get the zips to work i have to take the zipnotsigned in the folder use 7zip and delete the update-binary and delete updater script and replace it work the scripts that i used in the zip that i uploaded for you and then resign it. Once i do that it will flash just fine.
jgrimberg1979 said:
It is still not working. I think it may be something with the signing process or something. to get the zips to work i have to take the zipnotsigned in the folder use 7zip and delete the update-binary and delete updater script and replace it work the scripts that i used in the zip that i uploaded for you and then resign it. Once i do that it will flash just fine.
Click to expand...
Click to collapse
Ok, so.. please try this.. maybe the problem is with mount command.
Step like before:
Add files you want to
Check the edify script and built-in update-binary in the options page
Load prepared file or change "mount" line manually in a update-script page
Create zip archive
benzyniarz1 said:
Ok, so.. please try this.. maybe the problem is with mount command.
Step like before:
Add files you want to
Check the edify script and built-in update-binary in the options page
Load prepared file or change "mount" line manually in a update-script page
Create zip archive
Click to expand...
Click to collapse
That is an update-script, should i just rename it to updater-script?
It still isn't working. It does work if I use the updater-script and update-binary by means of going into the unsigned zip and dropping them in to replace the ones that are in there and then signing the zip. I has got to be something with the way the program is handling the scripts, because i could type the exact same thing in the edit window and it still wont flash. Either that or it is update-binary. Do you want me to upload the scripts? Here is the updater-script that works when i drop it in the zip with 7z.
ui_print("Script generated by amend2edify v1.0.1.2.");
ui_print("Using mount points for Thunderbolt.");
ui_print("***********************************************");
ui_print("Performing Update...");
ui_print("Mounting mount points...");
run_program("/sbin/mount", "/dev/block/mmcblk0p25", "/system");
run_program("/sbin/mount", "/dev/block/mmcblk0p26", "/data");
run_program("/sbin/mount", "/dev/block/mmcblk0p27", "/cache");
package_extract_dir("data", "/data");
ui_print("Unmounting mount points...");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
ui_print("Update Complete.");
jgrimberg1979 said:
That is an update-script, should i just rename it to updater-script?
Click to expand...
Click to collapse
No, you don't have to. App is automatically changing the name (update-script or updater-script) depending on chosen script type in options.
jgrimberg1979 said:
It still isn't working. It does work if I use the updater-script and update-binary by means of going into the unsigned zip and dropping them in to replace the ones that are in there and then signing the zip. I has got to be something with the way the program is handling the scripts, because i could type the exact same thing in the edit window and it still wont flash. Either that or it is update-binary. Do you want me to upload the scripts? Here is the updater-script that works when i drop it in the zip with 7z.
ui_print("Script generated by amend2edify v1.0.1.2.");
ui_print("Using mount points for Thunderbolt.");
ui_print("***********************************************");
ui_print("Performing Update...");
ui_print("Mounting mount points...");
run_program("/sbin/mount", "/dev/block/mmcblk0p25", "/system");
run_program("/sbin/mount", "/dev/block/mmcblk0p26", "/data");
run_program("/sbin/mount", "/dev/block/mmcblk0p27", "/cache");
package_extract_dir("data", "/data");
ui_print("Unmounting mount points...");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
ui_print("Update Complete.");
Click to expand...
Click to collapse
It looks like the update-binary you are using is the same like used in my app, so it can't be the problem.
I have no idea why it's not working if you type these commands in the editor. The output file should be the same as if you put your updater-script with the same commands via 7zip!..
However.. I've got idea - try to type these commands, and choose in options own update-binary that works for you. If it still won't work, please send me output archive.
oo one more thing - how do you sing the archive to get it work? via my app?
This is exactly what I was looking for.
Thanks.
Is there a way to make this work on a Mac?
If not, I can use my gf's laptop.
Thanks for your hard work.
benzyniarz1 said:
No, you don't have to. App is automatically changing the name (update-script or updater-script) depending on chosen script type in options.
It looks like the update-binary you are using is the same like used in my app, so it can't be the problem.
I have no idea why it's not working if you type these commands in the editor. The output file should be the same as if you put your updater-script with the same commands via 7zip!..
However.. I've got idea - try to type these commands, and choose in options own update-binary that works for you. If it still won't work, please send me output archive.
oo one more thing - how do you sing the archive to get it work? via my app?[/QUOT
I used a couple of processes but i used your app for signing after making the script edits with 7zip
Click to expand...
Click to collapse
lozonw said:
This is exactly what I was looking for.
Thanks.
Is there a way to make this work on a Mac?
If not, I can use my gf's laptop.
Thanks for your hard work.
Click to expand...
Click to collapse
Thanks!
I think it's possible..
Just look at http://www.mono-project.com/Main_Page.
You need only to compile sources via Mono on a Mac.
jgrimberg1979 said:
I used a couple of processes but i used your app for signing after making the script edits with 7zip
Click to expand...
Click to collapse
Strange.. so update-binary is not a problem, signing is not a problem too... updater-scripts only stays, but I have no idea why it's not working when you paste a script in editor but when the replace an updater-script with the same script via 7zip it's working...
Maybe it's sth wrong with ICSharpCode.SharpZipLib library? Maybe it is worth trying to use Zip64?
Related
Hello.
For several days, I tried to create a "zip file" you can install via Clockwork Recovery 3.0.0.5. I tried to use "Update-Zip-Packager" but when I go to install the zip CWR tells me that the update is not good for the 3.0.0.5 version of Clockwork Recovery. Is there any software similar to Zip-Update-Packager creates update.zip compatible with version 3.0.0.5?
I want to create this zip only to delete some files that are always present in "system / app" so as not remove them manually each time.
I do the following steps:
1. Create a folder named Update.
2. Create "Update\META-INF\com\google\android\updater-script" in wich I write the following lines using Notepad:
ui_print("CLEANER");ui_print("-----------");mount("MTD", "system", "/system");show_progress(1, 10);delete("/system/app/app1.apk");delete("/system/app/app2.apk");delete("/system/app/app3.apk");show_progress(0.200000, 10);unmount("/system");ui_print("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
where am I wrong?
Many thanks ..
PS: Sorry for my bad English...
help me please...
You are a Windows guy, Linux doesn't like Windows NOTEPAD.
You must use Linux friendly Text Editor.
Try Notepad++
Make sure you have update-binary still in the folder where your update-script is.
Code:
ui_print("CLEANER");
ui_print("-----------");
mount("MTD", "system", "/system");
show_progress(1, 10);
delete("/system/app/app1.apk");
delete("/system/app/app2.apk");
delete("/system/app/app3.apk");
show_progress(0.200000, 10);
unmount("/system");
ui_print("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
Looks okay to me, but you do have to keep note, the code looks gibberish to me.
Uh.. there is a Update-Zip-Packager?!?? "-_____-
sigh, I was typing it in notepad++
For those who want an easy way to create and sign CWM flashable zips via windows, look no further... this is about as easy as it gets!
1. Unzip contents of package to a folder we'll call this folder "tools"
2. in "tools" you will now have the included files plus and "update" folder
3. in "update" folder you have "META-INF," "system," & "data" folders
4. place any files you want copied to system in "system" folder, make sure your structure is proper.
5. place any files you want copied to data in "data" folder, make sure structure is proper.
6. once you have everything set in place, you have four options:
• 6a: drag the folder on top of "DRAGandDROPzipANDsign.bat" wait for it to finish, you will end up with {folder_name}_update.zip in the same folder as 7za.exe
• 6b: double click SIGNandZIPmanual.bat, type the name of the working folder, hit enter, wait for it to finish, it will loop back and allow you to complete another task, or hit X + Enter exit.
• 6c: double click SIGNonlyMANUAL.bat, enter just the zip filename you want to sign (no extension), hit enter and wait for it to finish. It will loop back and allow you to sign another one or hit X + Enter to exit.
• 6d: drag a ZIP on top of DRAGandDROPsignONLY.bat to sign/re-sign a zip that's already been built.
Click to expand...
Click to collapse
I suggest if you are using this method to replace any system files, to delete the existing file first by adding some lines to the updater-script found in the META-INF folder. as follows:
Code:
delete("/system/app/Rosie.apk");
these lines can be added below the
Code:
mount("MTD", "data", "/data");
line... make sure filenames correct because they are case sensitive.
Hopefully this will make your lives a little easier =)
LATEST VERSION MIRROR: CLICK HERE
Code:
CHANGELOG:
1.1 - Current
~~* Silent update, forgot to include a couple of the updated files... oops! =)
1.0 - Update
~~* All drag & drop versions now support dragging and dropping from anywhere, not just the "working" directory.
~~* Fixed manual versions, where the loopback to work with more files was not working properly.
~~* Now deletes the unsigned zip after building the signed zip.
~~* Cleaned up folder a bit, now works from _bin folder, and outputs to _out folder. Batch file should stay in "main" folder, one level above _bin folder.
0.9 - Update
~~* Added sign only, manual plus drag & drop versions
~~* Included FR translation (google) of the d&d zip and sign
0.8 - Update
~~* removed the random .apk that was accidentally included in 0.6, not sure what happened to 0.7... lol
0.6 - Initial forum release
quick little update... apparently I had included a small .apk in the update folder... my bad, sorry for the waste of bandwidth =)
as the great homer simpson would say: DOH!
Hi ...
I'm not developer but it seems what you're doing will help other developers (and in the end: I'll benefit from that)...
Here's a "thank you" note..
... note: this post is just my way to become a post-whore like you.... j/k
would it also work for Amon-RA?
bestofrhcp said:
would it also work for Amon-RA?
Click to expand...
Click to collapse
yes, latest versions of amon-ra and cwm are both work only with edify scripts, so yes. you just need to know what your specific system & data paths are, system should be the same for everyone, but some devices use userdata /userdata instead of data /data... hopefully that makes sense =)
hope this helps =)
a new version, for the "manual" script will actually loop back when finished building/signing a zip, so that you can do multiple build/sign sessions, without having to reopen the script after every build/sign session will be updated shortly... I've already tested it and got it working... no real changes to the drag-and-drop file as it's not really necessary... I am trying to figure out a way to do a drag and drop sign only script, so once I have that figured out I will updated again...
updated =)
Thanks! This will save me from using Terminal Emulator after each cm nightly flash.
wilnotdie said:
thanks! This will save me from using terminal emulator after each cm nightly flash.
Click to expand...
Click to collapse
oops! Oops! ^~^
UDPATED... sorry if you downloaded 1.0, download again now @ 1.1... forgot to include a couple of the updated files... double checked everything this time though... =) enjoy!
looks like you might be able to answer my question
was playing around and deleted systemui.apk from system\app folder...
was trying to replace with another one... that did not work...
so i tired putting back the original one... and that does not install either...
is there a way to install that back on ?
if it is just guide me a lil bit...
will this procedure actually install the file?
http://forum.xda-developers.com/showthread.php?t=1268661
thank you
heart_crafter said:
looks like you might be able to answer my question
was playing around and deleted systemui.apk from system\app folder...
was trying to replace with another one... that did not work...
so i tired putting back the original one... and that does not install either...
is there a way to install that back on ?
if it is just guide me a lil bit...
will this procedure actually install the file?
http://forum.xda-developers.com/showthread.php?t=1268661
thank you
Click to expand...
Click to collapse
just do this
Code:
adb remount
adb push SystemUI.apk /system/app
adb reboot
no need to "install" it, it just needs to be in the system/app folder at boot time... you might actually want to "adb reboot recovery" instead of "adb reboot" and then clear dalvik before rebooting into OS again...
I tried testing it by droping a apk in a folder called app and then dropping the app folder in data and then went ahead and used the .bat. I went into recovery, flashed it without an error but nothing was installed once i booted. Any ideas? Dont scripts very like some have a run program system/xbin/busybox etc?
edit. I was able to move the folder from data to system and then ran the script and flashed it and it worked, it should up once it booted. Is there any way to get it to flash data/app?
benjamminzIS said:
just do this
Code:
adb remount
adb push SystemUI.apk /system/app
adb reboot
no need to "install" it, it just needs to be in the system/app folder at boot time... you might actually want to "adb reboot recovery" instead of "adb reboot" and then clear dalvik before rebooting into OS again...
Click to expand...
Click to collapse
thanks for the code...
but i already had copied the file into system/app... and it wasnt working (wasnt installing) just did a dalvic wipe now... and looked at that file permission and it was different from all other system apps... so i matched them up.. and rebooted ... and systemtray is back
thank you!
jgrimberg1979 said:
edit. I was able to move the folder from data to system and then ran the script and flashed it and it worked, it should up once it booted. Is there any way to get it to flash data/app?
Click to expand...
Click to collapse
here's the hint from the first post:
benjamminzIS said:
I suggest if you are using this method to replace any system files, to delete the existing file first by adding some lines to the updater-script found in the META-INF folder. as follows:
Code:
delete("/system/app/Rosie.apk");
these lines can be added below the
Code:
mount("MTD", "data", "/data");
line... make sure filenames correct because they are case sensitive.
Click to expand...
Click to collapse
copy the extract_package line that references "system" and change "system" to "data" in all cases, or if you have no need to copy anything to system then just change all "system" cases to "data" rename the "system" folder to "data" then add your files as necessary...
I am not sure i understand. Let me try and clarify what i am in trying to do. I am trying to build a flashable zip that contains an apk that i want to essential be installed in data/app directory. thats it.
What i see from the script below is that you have everything covered, system and data, so i am assuming if nothing is in the folder as system then it will be skipped over, correct
ui_print("");
ui_print("");
ui_print("Clearing dalvik cache ...");
delete_recursive("/data/dalvik-cache");
mount("MTD", "system", "/system");
mount("MTD", "data", "/data");
ui_print("");
ui_print("");
ui_print("Installing files to system ...");
package_extract_dir("system", "/system");
unmount("/system");
ui_print("");
ui_print("");
ui_print("Installing files to data ...");
show_progress(0.700000, 50);
package_extract_dir("data", "/data");
unmount("/data");
show_progress(10.000000, 1);
ui_print("Done.");
jgrimberg1979 said:
I am not sure i understand. Let me try and clarify what i am in trying to do. I am trying to build a flashable zip that contains an apk that i want to essential be installed in data/app directory. thats it.
Click to expand...
Click to collapse
oh ok... sorry... yeah I think for anything that goes to data, there needs to be an install command try adding install("/data/app/filename.apk"); for each file, after the package_extract_dir("data", "/data"); function... not sure if that is correct, but maybe?
Hi everyone,
I was wondering if someone could point me in the right direction to create a flashable ROM from *SCRATCH*. I have googled everything I can think of and everyone seems to have the same answer -- take someone else's zip file and just replace the files with your own, then tweak the updater-script if necessary.
This seems kind of bogus to me, but perhaps I don't quite understand edify scripting. Certainly doing this with amend scripting would work, but that was deprecated a long time ago so I would like to use edify. I think the root of the problem is that I don't understand what the update-binary file is all about.
Can someone please explain how to create a zip without just using someone else's and tweaking it? I recently updated my framework-res.apk file and put new battery icons and new charging animation in it. Then I pushed it back over to my phone with adb and it works great. I would really like to know how to create a flashable zip from this. Sure, I could just download someone else's zip file and then swap out their framework-res.apk file with mine but that doesn't teach me the real, underlying process.
I am a developer for my day job so I'm not new to this type of stuff, but I am new to Android development. I can create the directory structure necessary and place my signed apk file where it needs to go. Furthermore I can write the updater-script file myself (in edify syntax). But then I need to somehow generate the update-binary file before creating the final, flashable zip and signing it.
So how exactly do I create the update-binary file? Do I need to run my updater-script file through a compiler or something? Or maybe the update-binary file is universal for every flashable zip (though if this were the case, then why have the file in every zip -- just put it on every phone and then you don't need to bloat every flashable zip file with it).
Can someone please explain? Also, if you can do it without mentioning or requiring any Windows specific tools that would be great. I run Ubuntu so most of the Windows tools are useless to me (yes I know I could run a virtual machine, or use Wine, etc.). I prefer to do everything with Linux or some platform-independent way.
Thanks!
I use linux too (gentoo) and I make mine pretty much from scratch. Just create a working directory somewhere (I use /usr/src/[my_package_name]/) then create a directory layout just like you'd want to see on the android device. For your example make a directory called "system" and then "system/framework" then copy your framework-res.apk to system/framework/. Now make a META_INF directory, and add "com" then "google" then "android" (so you have [my_package_dir]/META_INF/com/google/android/ ). Now copy the updater_binary (this is basically the command interpreter for edify scripts--amend commands are built-in to the recovery system). Now make your script. FOr your example above, your realy only need a few commands: mount the system dir, then copy the package file(s) over:
Code:
mount("ext3", "EMMC", "/dev/block/mmcblk0p25", "/system");
package_extract_dir("system", "/system");
You'll need to know the details for the specific device to know what arguments to use for the mount command. The above is for an Inspire or DesireHD.
Now just zip it all up (from your base package's directory):
Code:
zip -r -o my_package_file.zip META_INF/ system/
the "-r" means "recursive" and "-o" tells it what output file to use. The remaining arguments are the files (or directories in this case) to zip up.
That's great information...actually more detailed than what I needed but it's always better to have too much than too little. You answered my main question though which is what is the point of the update-binary file. If it's an interpreter for edify scripts then that makes total sense that it would be included in every zip (and furthermore be the same in every zip). I still think it's a bit of a waste though (just build that interpreter into the Android kernel itself so that people don't have to copy it around everywhere), but I'm not the one in charge of this stuff.
I guess I'm off to create a zip of my battery icons then. I'm on an Evo by the way, and if I remember correctly /system is mounted on /dev/block/mtdblock3. No big deal though, I can always cat /proc/mounts in a shell to find out.
Thank you very much!
P.S. You can save a few keystrokes on the zip command by dropping the -o and even dropping the .zip extension. Just try:
Code:
zip -r my_package_file *
Hi all! This is a guide from PIRATEPARTY about the creation of a simple UPDATE.ZIP to flash on your Android phone, in recovery mode.
I've created a repository on GITHUB where you can download the "update.zip" that we'll use and modify.
So, this is the repository: update.zip--for-Android-Devices-
You can download it as ZIP archive and rename it as update.zip .
So, we have now the most important file, that we're going to modify:
All the apps that you want to insert in the archive and install on the phone, must have the .apk estension and you have to put them in /data/app . Then, if you want also the app data files, you have to take these files from your phone, going with a rooted file manager (i suggest Root_Explorer) to /data/data , copying the app folder and pasting it in /data/data of the UPDATE.ZIP.
So we have all the apps and datas that we want. Now, we have to write the script.
Let's go to META-INF/com/google/android/ and open 'updater-script' with a simple text editor.
The only lines that you have to modify are:
Code:
set_perm(1000, 1000, 0644, "/data/app/[PACKAGE].apk");
set_perm_recursive(1000, 1000, 0777, 0777, "/data/data/PACKAGE_DATA_FOLDER");
delete("/data/dalvik-cache/[email protected]@[PACKAGE][email protected]");
For each app you have to write these lines. This is an example if you want to put ROOT_EXPLORER.APK in the UPDATE.ZIP:
Code:
set_perm(1000, 1000, 0644, "/data/app/ROOT_EXPLORER.APK");
set_perm_recursive(1000, 1000, 0777, 0777, "/data/data/ROOT_EXPLORER_DATA_FOLDER");
delete("/data/dalvik-cache/[email protected]@ROOT [email protected]");
That' all. But if you want to delete some apps from your phone, you have to write between
Code:
ui_print("| 80% Installing Applications |");
and
Code:
package_extract_dir("data", "/data");
this line:
Code:
delete("/APK_DIR/APP.APK");
IT'S IMPORTANT TO LEAVE AN EMPTY LINE AT THE END OF THE SCRIPT, OTHERWISE THE ZIP WON'T WORK!
You can easily find the name of the app going with Root Explorer to /system/app and searching the same app.
If you also want to add your modified Apps, you've to sign them with a simple app: Auto-Sign, putting them in /auto-sign/update/app and renaming it to Launcher.apk .
You can download AUTO-SIGN from the attachements!
With it you can sign your apks or your zip. So, finally, when you'll finish your zip, you'll have to put it in Auto-Sign folder ("/auto-sign").
Then, open Auto-Sign, choose your zip or apk, and click AUTO-SIGN. It will create a new apk or zip, name as SIGNED-apk/zip.
Now, you only have to put the update.zip on your sd-card and flash it! Have fun guys!
mackief,
Thanks for your tutorial. I wrote a removal script for GB that deletes everything i don't use in my ROM. I recently moved to ICS and that very script is still working but, each time, during restart, I lose root rights.
Any idea where it could come from?
What rom are u using?? What device??
I think that the problem is about the rom, cause you said that u didnt have problem in previous rom and you used the same script...
So, to find the problem, i have to know the rom, the device, and the script.
Can you post the script here?
mackief,
Sorry for having been so long to answer, I was not monitoring the thread
I use nightly CM9 roms for my Note (N7000). You'll find attached my latest script that still bothers me.
If you can have a look at it, it would be nice.
good lession for tweaking my one x
vua777 said:
good lession for tweaking my one x
Click to expand...
Click to collapse
I'm glad do help you!
The_Steph said:
mackief,
Sorry for having been so long to answer, I was not monitoring the thread
I use nightly CM9 roms for my Note (N7000). You'll find attached my latest script that still bothers me.
If you can have a look at it, it would be nice.
Click to expand...
Click to collapse
I read your script, but i think that the only problem is about the root app: Superuser and his components. So, check out if some elements that you want to delete are associated to Superuser, and dont delete superuser.apk .
However, usually, in CM9 there are some apps that you CANT and HAVE NOT to delete. I suggest to you to read this file: REMOVABLE APPS
So, Superuser gives you root rights, so dont delete it.
Dont delete the list of apps that is on the link above.
The last suggestion is that you have to check if you're deleting something else that can create bugs with superuser and his working.
Write me if you want to know something else or also if these solutions arent useful: i'll help you! Bye!
Interesting guide. I am curious though, you have it setting permissions but have you tried it without doing so? I ask because I made a script for CWM which copies my apk's to data/app/ and I don't set permissions and have no issues. In theory you shouldn't need to, the apk should retain the proper permissions even when copied. As well, why not set the permissions for the entire contents of the folder, ie, set the permission recursively like you do for data/data and have it run at the end of the script once everything is copied?
Lastly, one thing to note with this method of installing apps is that your first boot will take awhile, the ROM has to create the Dalvik for all the apps you just flashed, I hadn't considered that when i first ran my script and thought something was wrong.
Волк said:
Interesting guide. I am curious though, you have it setting permissions but have you tried it without doing so? I ask because I made a script for CWM which copies my apk's to data/app/ and I don't set permissions and have no issues. In theory you shouldn't need to, the apk should retain the proper permissions even when copied. As well, why not set the permissions for the entire contents of the folder, ie, set the permission recursively like you do for data/data and have it run at the end of the script once everything is copied?
Lastly, one thing to note with this method of installing apps is that your first boot will take awhile, the ROM has to create the Dalvik for all the apps you just flashed, I hadn't considered that when i first ran my script and thought something was wrong.
Click to expand...
Click to collapse
At first, i have to say to u that permissions can be not specified: i think that all the files that u put in a folder have the same permission of the folder. I set permissions only for safety.
Then, about the first boot duration, there's nothing wrong.
The system only take a while to put into effects the changes, creating the Dalvik for example.. Don't worry: it's normal!
I know it's building dalvik, it simply hadn't occurred to me initially that that was the reason for it not booting. A file can have a different permission than the folder, but I think it's only that you can have the folder r/w and a file r/o. Then, on your script you can just set permissions recursively and save yourself setting permission for each app/file individually.
Sent from my LG-P999 using xda premium
Yeah! You can just do it!
Before CWM 5, I used to have a script that would let me add lots of files without individual lines for each.
It worked similar to gapps, where files are separated by commas.
Any ideas?
I will be adding sound files to system/media/audio/alarm.
What are symlinks?
Sent from my MB525 using Tapatalk 2
hermeticist said:
Before CWM 5, I used to have a script that would let me add lots of files without individual lines for each.
It worked similar to gapps, where files are separated by commas.
Any ideas?
I will be adding sound files to system/media/audio/alarm.
Click to expand...
Click to collapse
U can easily write the package_extract command:
Code:
package_extract_dir("???", "/???");
You write the folder, and then the android folder when you want to extract the script package.
Then you set the permission of the folder and all is done!
pjgowtham said:
What are symlinks?
Sent from my MB525 using Tapatalk 2
Click to expand...
Click to collapse
Symlinks are Simbolic Links, so they link a folder to another folder, for example, a linked folder...
In Windows, you can create a link on the desktop and you can change the name of the linked icon, but it is anyway connect to the same file, with different name.
So, the symlinks are files that connect with other files. When the os see this symlinks, it read the element info to which it is connected??
It's not difficult to understand. I suggest to you to read this: SymLinks
Hope i've helped u all! If it doesnt, ask me again!
mackief said:
U can easily write the package_extract command:
Code:
package_extract_dir("???", "/???");
You write the folder, and then the android folder when you want to extract the script package.
Then you set the permission of the folder and all is done!
Click to expand...
Click to collapse
Thanks.
I'm a little unclear about setting permissions though. Would you mind explaining?
Thanks i understood
Sent from my MB525 using Tapatalk 2
hermeticist said:
Thanks.
I'm a little unclear about setting permissions though. Would you mind explaining?
Click to expand...
Click to collapse
So, if u want to set folder permissions, this is the code:
Code:
set_perm_recursive(1000, 1000, 0777, 0777, "/data/data/PACKAGE_DATA_FOLDER");
And these permissions are for a 'read-only' folder.
If u want to set file permissions, this is the code:
Code:
set_perm(1000, 1000, 0644, "/data/app/[PACKAGE].apk");
Also these permissions are for a 'read-only' file.
So do u need something else??
Hope u understood!
OK, here's one I can't seem to figure out, I want to copy data/app to my SD card. I tried(with /data mounted):
run_program("/sbin/busybox", "mkdir", "/sdcard/app/");
run_program("/sbin/busybox", "cp", "r", "/data/app/", "/sdcard/app/");
it fails with status 6, and log shows syntax error. I'm at a loss.
You're telling it to copy a file named "r". Change it to "-r".
I tried that already, I actually changed it to that, I played with my code a few times before posting.
Here is the last version I tried: http://db.tt/10DQzTQM
Sent from my LG-P999 using xda premium
nice tuto thank you very much for it
please i am noobe here
i have a unpadte to make but i don't know how here the structure of it
how to do the script please
Description:
I developed this program so that i can build my script fast and easily with clicks of button so i thought of sharing my program. This program is designed to auto make your updater-script. You can edit a updater-script or build your own. It has a Graphical interface and is made on Java.
It allow the user to check some boxes and it will build a script.
For beginners they should take a look at ASC by Octanium91 its better than my program and might work better for you.
THREAD NAVIGATION:
1.Descrption,Features,Credits
2.Screenshots
3.Download & Installation,Usage
Click to expand...
Click to collapse
FEATURES
Auto build an updater-script of your choice
Edit an updater-script
Good for those who are lazy don't want to make a script (like me )
Now Supports ext3,ext4.yaffs2 mounting (change \mountpoint )
Based on JAVA
Version Information:
Developed By: Ayan
Version: 1.0.3
Stage: Beta
Bugs
1. Select Rom button does not work
2. Can view updater-script but cannot save.
3. updater-script tested on twrp, CWM, philz recovery thanks to nashj1975.
4.You tell me.
CREDITS To (Do not forget to thank them.)
1. Octanium91 for his android script creator.
2. Karadorde for his great tutorial to write updater-script.
3. coolexe for his script syntax
Mail me at [email protected] for any feedbacks or tell me more mountpoint so that i can add them.
__________________________________________________ __________________________________________________
SCREENSHOTS
__________________________________________________ __________________________________________________
DOWNLOAD
UPDATER-SCRIPT maker v1.0(mediafire)UPDATER-SCRIPT maker v1.0.3(mediafire)
INSTALLATION,USAGE1. Download Java from here.
2. Download updater-script maker.
3. Extract to any location.
4. Run Updater-script.jar
Code:
[COLOR="Teal"][SIZE="3"][COLOR="DarkRed"]I don't take responsibility of any negative things like, boot looping, bricked device,
broken SD card, your kitten run away with neighbors cat or your phone became a zombie
and a next world war caused by Tool above...[/COLOR][/SIZE][/COLOR]
Using updater-script maker
HOW TO USE
Don't use "auto build" if you have different mountpoint
You can use the "select updater-script"
You can use the auto-build for ext3,ext4 ;just change the mountpoints.
Using Auto Build
1. Tick your desired boxes .
Code:
You can easily choose between Rom and flashable zip
2. Click on 'Auto Build' button.
3. Choose your rom folder then select open
Code:
[COLOR="Sienna"]Don't use open button to view folder[/COLOR]
if you have no folder then choose desktop
4.Updater-script will be generated and will be previewed
Code:
updater-script is not yet saved, it can be edited
5.After doing any changes press save button
Code:
[B]NOTE:[/B] You can select your save location
Using Select Updater Script
1. Click on 'Select Updater Script'.
2. Choose your updater-script.
3. Edit the updater-script.
4. Copy-paste it to Notepad++ You can save the updater-script to anywhere.
5. Save it as updater-script.
Changelog
12th June 2015-Initial release UpSAM v1.0.0
17th June 2015-UpSAM v1.0.3 release
Included a lot of things
Changed .jar to .exe don't be afraid
Reserved
UpSAM v1.0.1 completed
will release UpSAM v1.0.3 directly
You can send me feedback here.
I've always wanted something like this, I tried ACS but I didn't understand it. Thank you
Thanks mate press the thank button if i helped you.
nashj1975 said:
I've always wanted something like this, I tried ACS but I didn't understand it. Thank you
Click to expand...
Click to collapse
Thanks mate press the thank button if i helped you.
@ayan312002 I tried your tool and it works . I forgot to edit the mountpoints since i have an ext4 emmc device but it worked either way . Thanks and also it works with cwm and philz recovery. :highfive:
EDIT: I've added my mountpoints here they are:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/data");
mount("ext4", "EMMC", "/dev/block/mmcblk0p8", "cache");
mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/custpack");
Those mountpoints are for an MT6572 device.
If I'm Porting CM 14.1 ROM To CM 11 Base ROM, Will This Work Fine?