[TUTORIAL] Create your own UPDATE.ZIP - Android Software Development

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

Related

Full Charge Popup!? Please help

Can anyone put this in a cw flashable zip or have one already? I need to get rid of the stupid popup that tells me my battery is full. It wakes me up and it seems to keep my alarm clock from going off sometimes!?
1. decompile/de-odex services.jar/odex
2. open "com\android\server\status\StatusBarPolicy.smali" in a text editor
find ".method private showFullChargePopup()V" about line 2779
and remove the entire method all of it from ".method private showFullChargePopup()V"
to .end method
and delete this line at about line 3441
invoke-direct {p0}, Lcom/android/server/status/StatusBarPolicy;->showFullChargePopup()V
3. save, compile and re-odex as necessary
Click to expand...
Click to collapse
What ROM version and theme? The services.jar file changes between roms and themes.
Blackhole 3.0 DL09
Oh my god! If you could also do this for me, or just tell me how or something ( I have no idea what the dedeoxin' does or anything) I would be forever thankful! haha
I have DJ05 Superclean JT rom
Its just an simple apk you can get rid of via root explorer or titanium backup or whatever.
In titanium its called FullBatPopupApp 1.0, I have removed it with no ill effects. The name of the apk in /system/app/ is FullbatPopup.apk
Sent from my SCH-I500 using Tapatalk
1. You need to have java installed for this. You will also need smali/baksmali
2. Open command prompt or linux terminal with your phone plugged in. Also navigate to or create a directory to perform the work in.
3. Once in your working directory, run:
Code:
adb pull /system/framework/services.jar
3a. If your system isn't de-odexed, you may need to pull an odex file as well
4. Take the smali/baksmali files you downloaded earlier and put them in the same directory that your services.jar file is in.
5. Run the following (assumes windows command prompt):
Code:
java -jar baksmali-<version>.jar services.jar
5a. If your system is not deodexed, you will likely need to deodex the system/services.jar for this to work.
6. Open the file required for the edit and make the needed changes.
7. Run the following (again, assuming windows command prompt):
Code:
java -jar smali-<version>.jar out -o classes.dex
8. Replace the classes.dex file within services.jar with the new classes.dex file
9. Push the file to /system/framework with adb, then reboot:
Code:
adb push services.jar /system/framework/services.jar
adb reboot
9a. You may need to remount the /system partition as rw to push the file.
10. On restart, the phone will take longer to boot, but assuming the changes were made properly you should be good.
I left out some information for the "a" steps on purpose. If you cannot do these steps yourself, or find how to do them, you likely shouldn't be doing this on your own. As always, backup your phone/data before trying this, and I am not responsible for any lost data, non-booting phones, or bricked devices. If you are unsure of what you are doing, then don't do it.
n0yd said:
Its just an simple apk you can get rid of via root explorer or titanium backup or whatever.
In titanium its called FullBatPopupApp 1.0, I have removed it with no ill effects. The name of the apk in /system/app/ is FullbatPopup.apk
Sent from my SCH-I500 using Tapatalk
Click to expand...
Click to collapse
Removing that does nothing, already did it and I still get the popup.
Or just find the post with the hidden menu dialer codes and turn it off that way.........
Sent from my SCH-I500 using XDA App
Even the hidden dialer menu does not always work either. Plus I thought the hidden menu was not accessible in DJ05/DL09? Maybe this is with certain roms?
yea I hate that popup. Ive removed the apk also and still it keeps popping up. A fix would be greatly appreciated!!!
The dailer codes worked for me. Using Blackhole 3.0. Just make sure you include the Hidden Menu when building your rom.
Sent from my SCH-I500 using XDA App
imnuts said:
Removing that does nothing, already did it and I still get the popup.
Click to expand...
Click to collapse
Weird, I never noticed. Thanks for letting me know
Sent from my SCH-I500 using Tapatalk
+1 on getting rid of this stupid pop up.
Man I hate that thing.
I posted instructions on how to do it. I'm not going to do the mod for everyone, so do it on your own, or ask the rom builder to include the change in the rom. There are to many roms and themes out there to try and accomplish this for every possible combination.
Hidden menu method would not work for me on dj05.
Changed it to disabled and it still pops up
I just went in with root explorer and mounted system/app as RW, renamed FullBattPopup.apk to FullBattPopup.apk.OLD and it did not get recreated after a reboot. I guess I'll have to wait till a full charge to see if it comes back.
I just used Titanium Backup to freeze FullBatPopupApp.
Will report back after I change my phone....
Sent from my Samsung Fascinate
Pfredd said:
I just used Titanium Backup to freeze FullBatPopupApp.
Will report back after I change my phone....
Sent from my Samsung Fascinate
Click to expand...
Click to collapse
As I figured, freezing didn't remove the popup.
I went ahead and edited the services file, as specified earlier in this post. I followed the procedure provided by imnuts and did the edits as specified in the post by Nimhlan.
It appears to work like a charm. No more Full battery popups!
I would post my edited file, but I suspect it is dependent on what kernel/ROM you are running....
Do you download the smali 1.26.jar & baksmali 1.26 jar or just the baksmali & smali file in the link provided.
ellisz said:
Do you download the smali 1.26.jar & baksmali 1.26 jar or just the baksmali & smali file in the link provided.
Click to expand...
Click to collapse
You need the *.jar files. However, I tried making the edit and I still get the popup.

[DEV][TOOL] easyFLASHABLEzipBUILDER v1.0

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?

[Tool][TLC]UpdatezipCreator

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?

[Script] VERY simple application backup script for ROM upgrades [not for newbies]

Hi,
I'm new to the business and I spent some time to learn the environment trying different applications and different approaches for almos every action I took. Today, I have not much bigger knowledge, but I finally decided to take few things in my own hands because existing software is not fulfilling my wishes.
I started with this simple script which eases the pain of reinstalling all applications after ROM upgrade. There are few such tools already, but I found those quite bloated with unnecessary thing for my own approach.
With this script I assume:
1. There is/was SSHDroid installed (or any tool with busybox and you can access shell command line) both in old and new ROMs and your ROM have bash installed in /system/bin/.
2. Backup/restore operation includes only INTERNALLY installed applications, it completely ignores SYSTEM and SDCARD installed ones.
3. This is TEMPORARY backup so it should be as fast as possible not caring about occupied space (!). Althought I added -zip parameter to enable compression if you are running out of space on your sd.
4. Installed ROM is clean with no additional apps installed (excluding those needed by the script)
5. You have basic knowledge about bash scripting, because I take NO RESPONSIBILITY of the script behavior or data loss it can do.
So, basically it is simple. It runs like this:
1. On old ROM type: sbackup -backup
2. Flash your ROM
3. On new rom type: sbackup -restore
Just like that. The applications data is tar'ed in one file per application so if you want to get rid of any, just delete it from backup directory. The directory name is same as script name on sdcard but you can change it adding a parameter without a '-' sign at runtime (first non-option parameter is treated as backup directory path). The file is zipped because this forum disallows files without an extension so... it is zipped ;D
It was tested on my fresh LeeDroid 3.3.3 GB AFTER i installed some apps. I backed them up and then restored. All seems to be perfect right now, but I will test it more thoroghly very soon because I'm planninig to have CM7 based ROM too just to choose that I need Sense or not (two nandroids for fast switch weekly ;P).
With this script and MyBackup functionality of backing up contacts, sms, history and similar it should be quite complete approach to restore all the data needed on the fresh ROM. In the future maybe I will look at the MyBackup part too. Maybe.
Feel free to comment, use, suggest or anything you like, and have fun ;P.
How do I run this script? Do i run it from sdcard or from system /bin? When i do it from system bin it says cannot create directory. When i run it from sdcard/sbackup it says permissions denied?
Sent from my ADR6400L using Tapatalk
jgrimberg1979 said:
How do I run this script? Do i run it from sdcard or from system /bin? When i do it from system bin it says cannot create directory. When i run it from sdcard/sbackup it says permissions denied?
Sent from my ADR6400L using Tapatalk
Click to expand...
Click to collapse
And thats why I mentioned in topic about not being a newbie (and I meant not forum newbie but more a linux newbie). The thing is, it's a simple script - without any user-proof capabilities, comments inside or something BUT...
But ok, I will try to help you run it. First of all, you have to set permissions to the script. It has to have executable permission to be run by the system (and I mean filesystem permission). This can be done by chmod instruction of busybox. Most of the times it's done like this:
chmod 755 filename
This is a reason of not running form sdcard if your sdcard is NOT ext filesystem (it is usually windows fat filesystem not to generate problems with reading it under windows).
Second thing to run is to have /system/bin/bash because first line of the script (a comment like this: #!/system/bin/bash) instructs busybox to execute script using bash. This can be simply changed by modifying this line, but you have to remember that changing the shell executing script have consequences. Differens shells have sometimes different syntax, althoght i wrote this script simply so it should run on most of them, especially sh.
Third thing is to have write permissions to the directory in which the backup will be created. In original version of the script it is /sdcard, because backup is made in /sdcard/sbackup. So, you have to check it (second error - problems with creating directory).
And a last tip - it can be run from ANYWHERE. Even if your partition does not alolow executing, you can do it like this:
bash-3.2# /sdcard/test
bash: /sdcard/test: /system/bin/bash: bad interpreter: Permission denied
bash-3.2# . /sdcard/test
OK
bash-3.2#
First try does not succeded, but second did. The trick is a dot which means to execute file with a shell not caring about why or permissions.
And thats most simple introduction I could write. It applies to ANY script you want to run.
Please anyone - if you want me to help, paste your results here because without a precise error message it can be very hard to deduce what caused for example permission denial or anything usual.
For now, I won't add any more error handling, but if there will be more users caring about, I will add it.

Auto mount or symlink at boot

Hello, is it possible to do that ?
Regards
Sure, you have a few options.
The best way (hardest):
-requires root and knowledge of the boot.img and ramdisk partitions of Android
-create the symlink or mountpoint by adding the necessary lines the /init.rc file.
Next best way (not hard if you have init.d support):
-requires root
-requires init.d support
-simply write a script to create your symlink/mountpoint, name it appropriately, and place it in the /system/etc/init.d directory.
-with init.d support, this will automatically run the script at boot and set the parameters you've outlined in said script.
The "other" method (avoid this if possible since it relies on loading an app on boot):
-requires root
-download Script Manager from the play store
-write a script to create your mountpoint or symlink
-configure Script Manager to execute the script on boot.
Hello
I found /init.rc, also found init.00.rc and init.01.rc, but i guess we are talking about the first one (init.rc)
I wasn't able to edit it with a text editor on my tf101, do i need something i don't have to edit it ? Or notepadd++ will be enough ?
In case i fail completly with this, is tasker able apply the line for me too ?
Thanks you for your time.
Regards
Magissia said:
Hello
I found /init.rc, also found init.00.rc and init.01.rc, but i guess we are talking about the first one (init.rc)
I wasn't able to edit it with a text editor on my tf101, do i need something i don't have to edit it ? Or notepadd++ will be enough ?
In case i fail completly with this, is tasker able apply the line for me too ?
Thanks you for your time.
Regards
Click to expand...
Click to collapse
The /init.rc can't be directly modified that way. Everything in the root filesystem "/", as well as the kernel zImage, are loaded at boot from the boot.img image. Therefore, any changes you make will just be reverted when you reboot because it reloads the original from the boot.img image. In order to modify /init.rc, you must pull your boot.img and then extract the files from it. Now you can add the necessary lines to it. After that, you re-combine everything back into the boot.img, and push it back to your device.
If all that sounds unfamiliar to you, you will have some reading to do. Most of this will need to be done on a linux machine too.
What ROM are you running? If you have init.d support, that would be the most straightforward way to accomplish your goals.
I'm running asus' rom .24 on a tf101
I don't know if it support init.d, didn't found this file on my device.
Regards
You can also use an app from here, XDA, called directory bind. It all depends what you're looking to do with those symlinks.
Sent from my Sprint Evo View 4G (PG41200) using Xparent Purple Tapatalk 2
Hello, i plan to move game data to sdcard and symlink it to the old internal place.
Also plan to symlink some folders to the movie folder
Regards
Then directory bind app is designed for just your need. All these solutions require rooting your device.
Sent from my HTCEVOV4G using Xparent Purple Tapatalk 2
I will look at this, thanks.
Directory bind run during boot or after boot ?(little delay before things get re symlinked ?)
Regards

Categories

Resources