The title says it all. Im just wondering if theres a program or plugin or anything to let me check the update script without the hassle of putting it on the phone and trying to install it.
Thanks in advance
EDIT for MOAR info.
I just make simple boot animations. I pulled this script from a theme install, and it worked fine.
ui_print("YOU ARE INSTALLING A BIGDX SERENITY THEME");
mount("MTD", "system", "/system");
show_progress(0.500000, 40);
package_extract_dir("system", "/system");
show_progress(0.100000, 10);
mount("MTD", "sdcard", "/sdcard");
package_extract_dir("sdcard", "/sdcard");
unmount("/sdcard");
unmount("/system");
ui_print("INSTALL OF BIGDX THEME COMPLETE!");
I tried to change it to this
ui_print("YOU ARE INSTALLING A BOOT ANIMATION");
mount("MTD", "system", "/system");
show_progress(0.500000, 40);
package_extract_dir("system", "/system");
show_progress(0.100000, 10);
unmount("/system");
ui_print("INSTALL OF BOOT ANIMATION COMPLETE!")
And im not sure why but its giving me hell, and I just want a way to trial/error without having to zip it all back up and install it.
Also, do I have to include the updater-binary? Thaat came in the original theme install
Hey guys, made an tutorial on how to make an CWM installable .zip
Requirements
Notepad++
An CWM/Feamod installable .zip for your device
Instructions:
1. Get yourself an CWM installable .zip for your device.
2. Extract the .zip
3. Go into the META-INF folder, delete CERT.RSA, CERT.SF and MANIFEST.MF.
4. go to META-INF/com/google/android
5. Right-Click on updater-script and select Notepad++
6. You see an script. Edit it. If you want to extract the folder (zip)/system/media/audio/ui use this script:
Code:
package_extract_dir("system/media/audio/ui", "/system/media/audio/ui");
ui_print("text"); means the text shown when you install the .zip in CWM.
run_program("text"); means that CWM runs a program
delete("/system"); means that you delete /system
package_extract_dir("framework", "/system/etc"); means that the files in /system/framework are extracted in /system/etc (on the device)
Make the script. My script for my iPhone Sounds is
ui_print("iPhone-Sounds by FlorisNL");
Code:
show_progress(1.000000, 0);
mount("ext4", "/dev/block/mmcblk0p15", "/system");
set_progress(0.400000);
package_extract_dir("system/media/audio/ui", "/system/media/audio/ui");
set_progress(0.800000);
unmount("/system");
set_progress(0.900000);
ui_print("Installed Iphone-Sounds. Enjoy.");
set_progress(1.000000);
When your done, create an .zip with 7z. and test it. If you still got problems, feel free to post it in this topic.
(Sorry for my poor english sometimes ;p)
Floris
No need to make CWM flashable mod for audio files.
Put ogg/m4a/mp3 files in
sdcard/Alarms
sdcard/Notifications
sdcard/Ringtones
Reboot and media scanner will make them available in Settings > Sounds.
sdcard/Ringtones/.nomedia <- (0 size file)
Reboot and media scanner skip the folder sdcard/Ringtones
But I want to know. And im not porting ringtones only but also lock sounds, camera shutter sound, etc.
Sent from my GT-I9001 using xda premium
Then you must promise not to include aiPhaun sounds... :*
I don't want to be held responsible for distributing that to Android platform :\
O-T said:
Then you must promise not to include aiPhaun sounds... :*
I don't want to be held responsible for distributing that to Android platform :\
Click to expand...
Click to collapse
Lol ok, it was just an idea. I just like the shutter sound and the lock sounds of the iphone but I prefer Android.
Just take a normal zip for your device, extract it, look at the file in META-INF\com\google\android --> updater-script (edit only with notepad++ under windows os, otherwise with normal notepad or other software the line endings might get converted from UNIX style to windows style which will not work!)
Files to be copied will most likely be in a folder structure like \system\YourFile.
Be sure to remove in \META-INF files CERT.RSA, CERT.SF and MANIFEST.MF.
Those are the files that gurantee the file is correct and integer ("signed zip") will become invalid after repacking.
Then pack everything with 7zip (with format .zip and lightest compression) and make sure that when you open up your zip META-INF is in the zip root.
More information on updater-scripts can be found on XDA or google with search for edify script.
What do you exactly mean with a zip for your device? Another mod?
Sent from my GT-I9001 using xda premium
Yes. For example, this is the start of crybert's AIO package script for 9001.
Code:
ui_print(" AIO - Package v1 by crybert ");
ui_print("**********************************");
ui_print(" root ");
ui_print(" busybox ");
ui_print(" init.d ");
ui_print(" custom bootanimation ");
ui_print(" FeaModRecovery 1.4 ");
ui_print("**********************************");
ui_print(" Credits: ");
ui_print(" manveru0 - FeaModRecovery ");
ui_print(" KeksKlip - Root ");
ui_print(" ");
ui_print("**********************************");
show_progress(1.000000, 0);
ui_print("Preparing device");
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/system");
package_extract_dir("system", "/system");
set_progress(0.200000);
ui_print("Activating SuperUser");
set_perm(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_progress(0.400000);
wintel_mac said:
Yes. For example, this is the start of crybert's AIO package script for 9001.
Code:
ui_print(" AIO - Package v1 by crybert ");
ui_print("**********************************");
ui_print(" root ");
ui_print(" busybox ");
ui_print(" init.d ");
ui_print(" custom bootanimation ");
ui_print(" FeaModRecovery 1.4 ");
ui_print("**********************************");
ui_print(" Credits: ");
ui_print(" manveru0 - FeaModRecovery ");
ui_print(" KeksKlip - Root ");
ui_print(" ");
ui_print("**********************************");
show_progress(1.000000, 0);
ui_print("Preparing device");
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/system");
package_extract_dir("system", "/system");
set_progress(0.200000);
ui_print("Activating SuperUser");
set_perm(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_progress(0.400000);
Click to expand...
Click to collapse
This is my script how it's now. It is installing but its not replacing the Lock.ogg - Unlock.ogg - TW_Unlock.ogg files... Can you help me?
Code:
ui_print("iPhone-Sounds by FlorisNL");
show_progress(1.000000, 0);
mount("MTD", "/system/media/audio/ui", "/system/media/audio/ui");
set_progress(0.400000);
package_extract_dir("system/media/audio/ui", "/system/media/audio/ui");
set_progress(0.800000);
unmount("/system/media/audio/ui");
set_progress(0.900000);
ui_print("Installed Iphone-Sounds. Enjoy.");
set_progress(1.000000);
My Folder:
Code:
system/media/audio/ui/Lock.ogg TW_Unlock.ogg Unlock.ogg
Code:
META-INF/com/google/android/updater-binary and updater-script
Mount command seems wrong.
Sent from my GT-I9001 using XDA App
FlorisNL said:
This is my script how it's now. It is installing but its not replacing the Lock.ogg - Unlock.ogg - TW_Unlock.ogg files... Can you help me?
Code:
ui_print("iPhone-Sounds by FlorisNL");
show_progress(1.000000, 0);
mount("MTD", "/system/media/audio/ui", "/system/media/audio/ui");
set_progress(0.400000);
package_extract_dir("system/media/audio/ui", "/system/media/audio/ui");
set_progress(0.800000);
unmount("/system/media/audio/ui");
set_progress(0.900000);
ui_print("Installed Iphone-Sounds. Enjoy.");
set_progress(1.000000);
My Folder:
Code:
system/media/audio/ui/Lock.ogg TW_Unlock.ogg Unlock.ogg
Code:
META-INF/com/google/android/updater-binary and updater-script
Click to expand...
Click to collapse
Folders are ok.
script:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/system");
package_extract_dir("system", "/system");
All the rest is unneeded ui stuff. Nice to look at, not necessary...
Thank you so much! I did it http://forum.xda-developers.com/showthread.php?t=1502660 here is the result so far
Sent from my GT-I9001
Hi Floris,
Thanks for changing this into a tut, good job!
Regards,
Nika.
And be sure if you extracted the zip to a directory, when you zip back, zip what's INSIDE the folder and not the folder... yeah, I did that...
The updater-script must also be in UNIX format (definitely, but that mistake I didn't make... )
With CWM 6.0.4.4 you can zip with the "Ultra" compression in 7-zip and CWM will manage to open it.
Hi, can anyone help me with this
trying to create own package which CWM still fails to install
gives error E: failed to open update.zip (bad)
Aborted
Q1: Am I require to use 7zip and lightest compression?
Q2: what actually does the mount("ext4", "...) command do and is it required to use?
Q3: if I want to put custom apk file into /system/app/ and set rw-r-r permissions for it, which command do I use?
bflmpsvz said:
Hi, can anyone help me with this
trying to create own package which CWM still fails to install
gives error E: failed to open update.zip (bad)
Aborted
Q1: Am I require to use 7zip and lightest compression?
Q2: what actually does the mount("ext4", "...) command do and is it required to use?
Q3: if I want to put custom apk file into /system/app/ and set rw-r-r permissions for it, which command do I use?
Click to expand...
Click to collapse
A1: I always just zipped it, never looked at the compression quality. Just make sure to make a ZIP and not RAR or 7Z
A2: It mounts your system so you can write to it. Make sure to use an example mount command from a working ZIP of someone else for your specific device. The mount command is different in every device. On some recoveries with rooted ROMs you can use:
Code:
run_program("/sbin/busybox", "mount", "/system");
A3: For instance something like this:
Code:
show_progress(1.000000, 0);
ui_print(" Mounting SYSTEM...");
run_program("/sbin/busybox", "mount", "/system");
set_progress(0.100000);
ui_print(" Extracting files to SYSTEM...");
package_extract_dir("system", "/system");
set_progress(0.400000);
ui_print(" Setting /system/app/NAME.apk permission to 644...");
set_perm(0, 0, 644, "/system/app/NAME.apk");
set_progress(0.600000);
ui_print(" Unmounting SYSTEM...");
unmount("/system");
set_progress(0.900000);
ui_print("Install complete...");
set_progress(1.000000);
Why not use ADB for something like this (from your PC)?
Code:
adb remount
adb push NAME.apk_here /system/app/
adb shell chmod 644 /system/app/NAME.apk
adb reboot
Regards,
Nika.
Nice. I've found the error source - some files names had international accents. Now install passes to the end.
But another problem I have is that my files aren't mirrored into system.
Is package_extract_dir("system", "/system") recursive or do I have process every nested folder in it for extraction?
system\fonts
system\media\audio\alarms
system\media\audio\notifications
system\media\audio\ringtones
system\etc
system\bin
system\app
My script
Code:
ui_print("Integrating own fonts, sounds and customizations into system");
show_progress(1.000000, 0);
set_progress(0.000000);
package_extract_dir("system", "/system");
set_progress(1.000000);
ui_print("Installed custom files. Enjoy.");
Finishes successfully but when I boot into OS, the files aren't in place, and I install this zip as last package.
Looks to me like you're not mounting system. It therefore cannot add the files. Yes, with package_extract_dir it recursively extracts all files...
Verstuurd vanaf mijn E380 met Tapatalk
---------- Post added at 07:56 PM ---------- Previous post was at 07:52 PM ----------
BTW, in most cwm you can also mount system from the menu. Try that first and then run your script. Again, mounting system is required when you want to copy file to it. Figure out what command to use for your specific rom... Possibly also checkout how they do it for gapps and other generic installable zips...
Verstuurd vanaf mijn E380 met Tapatalk
Hi Guys, for starters I have a CM7 Mirage-kang Build for NC, now been having some issues with Superuser lately and found out that it has problems with the SU Binary, so I went to their website and downloaded the SU Binary Flashables from 3.0.3.2 to the latest 3.1.1 and went ahead and checked the zips before flashing.
While checking the updater script of SU Binary I found out that it puts the SU Binary into "/system/bin" rather that "/system/xbin". So went ahead and edited the Flashable in order for the SU Binary to be put into "/system/xbin".
Now question is do I still need to do a symlink from "/system/xbin" to "/system/bin" for CM7? Because I'm not sure how CM handles App request for the Su Binary.
Posted here is the original and my edited updater script of Su Binary 3.0.3.2.
Original Code:
Code:
ui_print("***********************************************");
ui_print(" su binary 3.0.3.2 for Android 2.0-3.2");
ui_print("***********************************************");
show_progress(1.000000, 0);
ui_print(" Mounting SYSTEM...");
run_program("/sbin/busybox", "mount", "/system");
set_progress(0.100000);
ui_print(" Deleting SYSTEM:bin/su...");
delete("/system/bin/su");
set_progress(0.200000);
ui_print(" Deleting SYSTEM:xbin/su...");
delete("/system/xbin/su");
set_progress(0.300000);
ui_print(" Extracting files to SYSTEM...");
package_extract_dir("system", "/system");
set_progress(0.400000);
ui_print(" Setting SYSTEM:bin/su permissions to 06755...");
set_perm(0, 0, 06755, "/system/bin/su");
set_progress(0.500000);
ui_print(" Creating SYSTEM:xbin/su symbolic link...");
symlink("/system/bin/su", "/system/xbin/su");
set_progress(0.600000);
ui_print(" Unmounting SYSTEM...");
unmount("/system");
set_progress(0.900000);
ui_print("Install complete. Enjoy!");
set_progress(1.000000);
Edited Code:
Code:
ui_print("***********************************************");
ui_print(" su binary 3.0.3.2 for Android 2.0-3.2");
ui_print("***********************************************");
show_progress(1.000000, 0);
ui_print(" Mounting SYSTEM...");
run_program("/sbin/busybox", "mount", "/system");
set_progress(0.100000);
ui_print(" Deleting SYSTEM:bin/su...");
delete("/system/bin/su");
set_progress(0.200000);
ui_print(" Deleting SYSTEM:xbin/su...");
delete("/system/xbin/su");
set_progress(0.300000);
ui_print(" Extracting files to SYSTEM...");
package_extract_dir("system", "/system");
set_progress(0.400000);
ui_print(" Setting SYSTEM:xbin/su permissions to 06755...");
set_perm(0, 0, 06755, "/system/xbin/su");
set_progress(0.500000);
ui_print(" Creating SYSTEM:bin/su symbolic link...");
symlink("/system/xbin/su", "/system/bin/su");
set_progress(0.600000);
ui_print(" Unmounting SYSTEM...");
unmount("/system");
set_progress(0.900000);
ui_print("Install complete. Enjoy!");
set_progress(1.000000);
Credit:
Thanks to ChainsDD for providg FAQs and Flashable Zips for SU Binaries.
UPDATE
Turns out CM7 doesn't have symlinks for SU Binary in "/system/bin/" so don't need one.
Hello community,
i have question about permission as my script does not want to execute and hope you will be able to resolve my problem. Thank you so much
Here is the script:
set_progress(0.0);
ui_print(" ");
ui_print("*************************************");
ui_print("S5 Neo 3MinitBattery Lollipop Remover");
ui_print("Made by wilmans2m");
ui_print("************************************");
ifelse(is_mounted("/system") == "/system", unmount("/system"));
ifelse(is_mounted("/cache") == "/cache", unmount("/cache"));
ifelse(is_mounted("/data") == "/data", unmount("/data"));
ui_print("Mounting Partitions...");
package_extract_file("/tmp/busybox", "/tmp/busybox");
set_perm(0, 0, 755, "/tmp/busybox");
run_program("/tmp/busybox", "mount", "/system");
run_program("/tmp/busybox", "mount", "/data");
run_program("/tmp/busybox", "mount", "/cache");
set_progress(0.02);
ui_print("--> Removing 3MinitBattery mod");
package_extract_dir("system", "/system");
delete_recursive("/data/app/com.three.minit.minitbatterysettings-1");
delete_recursive("/data/app/com.three.minitbatteryresources-2");
set_progress(0.6);
ui_print("Wiping cache, dalvik, system");
format("ext4", "EMMC", "/dev/block/platform/13540000.dwmmc0/by-name/CACHE", "0", "/cache");
run_program("/sbin/sleep", "2");
delete_recursive("/cache");
run_program("/sbin/sh", "-c", "rm -fR /data/dalvik-cache");
set_progress(0.8);
run_program("/tmp/busybox", "umount", "/system");
run_program("/tmp/busybox", "umount", "/data");
run_program("/tmp/busybox", "umount", "/cache");
ui_print(" ");
ui_print("Remove complete");
ui_print(" ");
set_progress(0.999992);
run_program("/sbin/reboot")
Hello,
I made my own bloatkill script, but when I flashed it an error appeared.
Here are the errors:
On TWRP 3.2 : error executing updater binary
On TWRP 2.7.8 error executing updater binary
On latest Philz Recovery: update update-binary (error: 11)
When somebody tell me how to add data, i can add the bloatkill.zip and the recovery log.
Here's a part of the log with the error:
I:Zip does not contain SELinux file_contexts file in its root.
I:Legacy property environment initialized.
Prozess Updater endete mit Meldung: 11
I:Legacy property environment disabled.
Fehler beim Installieren von ZIP '/external_sd/Neuer Ordner/bloatkill (1).zip'
Partitions-Informationen werden aktualisiert...
Iata backup size is 7810MB, free: 3045MB.
I:Unable to mount '/usbstorage'
I:Actual block device: '', current file system: 'vfat'
...Fertig
Here's the updater-script:
ui_print("Useless stuff cleaning start");
ui_print(" ");
ui_print("Partitions mount");
#Properly unmounting to avoid issues
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/cache");
run_program("/sbin/busybox", "umount", "/data");
#Then mounting
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/cache");
run_program("/sbin/busybox", "mount", "/data");
ui_print(" ");
ui_print("Useless system app removal");
delete("/system/app/Books/Books.apk");
delete("/system/app/Chrome/Chrome.apk");
delete("/system/app/Drive/Drive.apk");
delete("/system/app/Dropbox/Dropbox.apk");
delete("/system/app/GeoLookout/GeoLookout.apk");
delete("/system/app/Gmail"/Gmail2.apk");
delete("/system/app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk");
delete("/system/app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk");
delete("/system/app/Hangouts/Hangouts.apk");
delete("/system/app/Maps/Maps.apk");
delete("/system/app/Music2/Music2.apk");
elete("/system/app/Newsstand/Newsstand.apk);
delete("/system/app/Photos/Photos.apk");
delete("/system/app/PlusOne/PlusOne.apk");
delete("/system/app/SBrowser_4_Latest/SBrowser_4_Latest.apk);
delete("/system/app/SecMemoDL/SecMemoDL.apk");
delete("/system/app/SmartRemote_KL/SmartRemote_KL.apk");
delete("/system/app/SamsungIME");
elete("/system/app/Videos/Videos.apk);
delete("/system/priv-app/S-Voice_Android_phone/S-Voice_Android_phone.apk");
delete("/system/priv-app/SecMyFiles2014/SecMyFiles2014.apk");
delete("/system/priv-app/SFinder_v4/SFinder_v4.apk");
delete("/system/priv-app/TouchWizHome/TouchWizHome.apk");
delete("/system/priv-app/VoiceNote/VoiceNote.apk");
ui_print(" ");
ui_print("Copy Apps")
package_extract_dir("system", "/system");
ui_print(" ");
ui_print("Unmounting partitions");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/cache");
run_program("/sbin/busybox", "umount", "/data");
ui_print(" ");
ui_print("Finish");
Thread closed as oer op request