I know people talk about this all the time... I found a lot of thread of how to create a flashable zip file.. But every thread has it different than others. So I have tried it several ways and still get errors...
I'm trying to make a flashable zip to push an apk to system/app and I decided to do this to test it out...
This is the update-script I have tested it with
run_program("/sbin/busybox", "mount", "/system");
delete("/system/app/FlashBarService.apk");
package_extract_dir("system", "/system");
run_program("/sbin/busybox", "unmount", "/system");
Ok what I figure is the run_program is to mount system with busybox. Every line i see that it have this on there.. Then Im trying to replace an app from system/app so I put in delete("/system/app/name of app");
then package_extract_dir("system", :/system"); is so recovery can extract and push the zip file
and again run_program to unmount... But recovery is giving me an error status 4
I also deleted that delete line and still got status 4.
Again this is another way I tried it to do it with
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/cache");
run_program("/sbin/busybox", "mount", "/data");
package_extract_dir("system", "/system");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/cache");
run_program("/sbin/busybox", "umount", "/data");
And this way too
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/data");
package_extract_dir("system", "/system");
run_program("/sbin/busybox", "unmount", "/system");
run_program("/sbin/busybox", "unmount", "/data");
And till got status 4.
Inside my xxx.zip I have it set up this way META-INF/com/google/android
And other folder on root system/app
I have a GS3.
Like I said I have followed several threads about this and all looks different and none worked.
I know this is supposed to be the easies thing to do when it comes to android. But I just need to be directed to the right path.
Can somebody with more experience with this help me out?
Status 4 means that you have a syntax error somewhere... (yep, you have a syntax error or you're using notepad or wordpad to edit the files. That's it).
The best guide I ever seen out there is this one, take a look at it.
I use notepad++ to edit any android related files like build.prop. Thanks will look at that
Sent from my SGH-T999 using Tapatalk 4 Beta
Anyone?
gypsy214 said:
I use notepad++ to edit any android related files like build.prop. Thanks will look at that
Sent from my SGH-T999 using Tapatalk 4 Beta
Click to expand...
Click to collapse
Yeah. Notepad++ is best for this type of Editing in Windows.
Have you chosen the correct format in settings?
Edit>>EOL Conversions>>UNIX Format
The problem may be that windows use CR(carriage return) while unix(Android) uses LF (line feed) for a new line character.
You can also try to mount the system manually(there is option in CWM for that) & may be leave only the "package_extract_dir("system", "/system");" in the updater script.
Also, post the zip file here, so that problem can be easily identified.
GobletSky31689 said:
Yeah. Notepad++ is best for this type of Editing in Windows.
Have you chosen the correct format in settings?
Edit>>EOL Conversions>>UNIX Format
The problem may be that windows use CR(carriage return) while unix(Android) uses LF (line feed) for a new line character.
You can also try to mount the system manually(there is option in CWM for that) & may be leave only the "package_extract_dir("system", "/system");" in the updater script.
Also, post the zip file here, so that problem can be easily identified.
Click to expand...
Click to collapse
Will do.. But it works when I use notepad++ to add ui_print.
Related
I modded a flashable zip and now it won't let me flash it.
When I try to flash I get
E:Error in /tmp/sideload/package.zip
(Status 6)
I have edited the update script, and don't know how to edit the update binary if that could be it. I am able to flash other zips though. I've tried removing things and adding things. The funny part is that another modded update zip I made a few days ago worked perfectly fine. Any ideas guys? What does Status 6 mean? Why does it give me the tmp/sideload/package.zip thing? Do I need to go back to factory (PLEASE SAY I DONT )
EDIT: I think it was just that zip.
According to AssassinsLament, the issue is probably your update-binary file (assuming you're already using edify: updater-script), which you can compile in AOSP or use the version AssassinsLament provides as the latest attached in his post here:
http://forum.xda-developers.com/showpost.php?p=16409219&postcount=24
also, you can get a more detailed log in recovery, cat /tmp/recovery.log and pastebin that. with the more detailed recovery log, we will be able to determine more precisely the issue you're experiencing, but as a general solution, updating the update-binary file *should* work. if not, pastebin your /tmp/recovery.log.
hope that helps!
joeykrim said:
According to AssassinsLament, the issue is probably your update-binary file (assuming you're already using edify: updater-script), which you can compile in AOSP or use the version AssassinsLament provides as the latest attached in his post here:
http://forum.xda-developers.com/showpost.php?p=16409219&postcount=24
also, you can get a more detailed log in recovery, cat /tmp/recovery.log and pastebin that. with the more detailed recovery log, we will be able to determine more precisely the issue you're experiencing, but as a general solution, updating the update-binary file *should* work. if not, pastebin your /tmp/recovery.log.
hope that helps!
Click to expand...
Click to collapse
Thanks! That's exactly it!, I wasn't touching the update binary (i dont know how).
EDIT: So how exactly do I update the binary? Or do I just copy the one from assassinlaments post into the update zip.
What are you trying to flash?
il Duce said:
What are you trying to flash?
Click to expand...
Click to collapse
Modded framework, sysui and a few other apks to the system partition.
Sent from my PG86100 using Tapatalk
fowenati said:
Modded framework, sysui and a few other apks to the system partition.
Sent from my PG86100 using Tapatalk
Click to expand...
Click to collapse
Make sure you're not using Wordpad or anything like that to edit the updater-script. You need to use something that encodes the file with Unix encoding. Also, it shouldn't be the update-binary, you would get a sideload error. Check to make sure you're not missing a "," or ";" or little things like that somewhere. Also, if you open the file /cache/recovery/last_log when you reboot (or I think there is a /cache/recovery/recovery.log while you're in recovery [just cat that file]) it will tell you what the error is and the line location of any errors in your updater-script
-viperboy- said:
Make sure you're not using Wordpad or anything like that to edit the updater-script. You need to use something that encodes the file with Unix encoding. Also, it shouldn't be the update-binary, you would get a sideload error. Check to make sure you're not missing a "," or ";" or little things like that somewhere. Also, if you open the file /cache/recovery/last_log when you reboot (or I think there is a /cache/recovery/recovery.log while you're in recovery [just cat that file]) it will tell you what the error is and the line location of any errors in your updater-script
Click to expand...
Click to collapse
Yeah I made sure it was in UTF 8, (using text wrangler). I'm gonna check the log right now.
fowenati said:
Yeah I made sure it was in UTF 8, (using text wrangler). I'm gonna check the log right now.
Click to expand...
Click to collapse
Send me your .zip too if you want and I will take a look at it in the morning!
-viperboy- said:
Send me your .zip too if you want and I will take a look at it in the morning!
Click to expand...
Click to collapse
Alright! Here it is!
This one doesnt give me a tmp/sideload/package.zip error, but when it finshes installing it doesn't really install. It wont give an error, but nothing happens.
http://dev-host.org/65j7ve7q0a2f/SupraMOD.zip
fowenati said:
Alright! Here it is!
This one doesnt give me a tmp/sideload/package.zip error, but when it finshes installing it doesn't really install. It wont give an error, but nothing happens.
http://dev-host.org/65j7ve7q0a2f/SupraMOD.zip
Click to expand...
Click to collapse
A few things... you don't even have an updater-binary. You NEED to have that. For the updater-script, you have:
Code:
ui_print("SupraROM v1.2.1 Upgrade-Beta");
show_progress(0.1, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
show_progress(0.2, 0);package_extract_dir("system", "/system");
show_progress(0.3, 0);
unmount("/system");
show_progress(0.4, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
show_progress(0.5, 0);
package_extract_dir("system", "/system");
unmount("/system");
ui_print("Done Flashing");
You are mounting and unmounting twice and trying to extract the same package. Also, show progress is a pain in the ass and I doubt the way you have it shows a progress bar. Do it like this:
Code:
ui_print("SupraROM v1.2.1 Upgrade-Beta");
run_program("/sbin/busybox", "mount", "/system");
ui_print("");
ui_print("Installing files...");
package_extract_dir("system", "/system");
set_perm_recursive(0, 0, 0755, 0644, "/system");
ui_print("");
ui_print("Done!");
unmount("/system");
And add in this updater-binary...
http://dl.dropbox.com/u/6621763/update-binary.zip
That should take care of it
-viperboy- said:
A few things... you don't even have an updater-binary. You NEED to have that. For the updater-script, you have:
Code:
ui_print("SupraROM v1.2.1 Upgrade-Beta");
show_progress(0.1, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
show_progress(0.2, 0);package_extract_dir("system", "/system");
show_progress(0.3, 0);
unmount("/system");
show_progress(0.4, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
show_progress(0.5, 0);
package_extract_dir("system", "/system");
unmount("/system");
ui_print("Done Flashing");
You are mounting and unmounting twice and trying to extract the same package. Also, show progress is a pain in the ass and I doubt the way you have it shows a progress bar. Do it like this:
Code:
ui_print("SupraROM v1.2.1 Upgrade-Beta");
run_program("/sbin/busybox", "mount", "/system");
ui_print("");
ui_print("Installing files...");
package_extract_dir("system", "/system");
set_perm_recursive(0, 0, 0755, 0644, "/system");
ui_print("");
ui_print("Done!");
unmount("/system");
And add in this updater-binary...
http://dl.dropbox.com/u/6621763/update-binary.zip
That should take care of it
Click to expand...
Click to collapse
thanks I got it working
I followed this tutorial: http://fokke.org/site/content/howto-create-android-updatezip-package
...on making update.zip files.
It only says opening... installing... then installation aborted.
I followed the directions to the letter.
It doesn´t even go so far as to do the ui print from step one.
Code:
ui_print("Android Security Enhancements");
ui_print("By: Michiel Fokke - fokke.org/android");
show_progress(1.000000, 0);
ui_print(" Mounting /system");
mount("MTD", "system", "/system");
set_progress(0.100000);
So I don't think it runs any of the code at all.
I signed it and everything... no dice.
Any idea what the problem could be?
Now I've got the exact text in front of me from CWM Recovery:
Code:
--Installing: /emmc/Updates/update.zip
Finding update package....
Opening update package...
Installing update..
E:Error in /emmc/Updates/update.zip
(Status 0)
Installation aborted.
And here´s the exact text of my update.zip:
Code:
ui_print("Simple Font Change");
ui_print("By: Team Rainless");
show_progress(1.000000, 0);
ui_print(" Mounting /system");
mount("MTD", "system", "/system");
set_progress(0.100000);
ui_print(" Extracting files to /system");
package_extract_dir("system/fonts/Clockopia2.ttf", "/system/fonts");
set_progress(0.200000);
ui_print(" Setting permissions to 0644...");
set_perm(0,0,0644,"/system/fonts/Clockopia2.ttf");
set_progress(0.400000);
ui_print(" Unmounting /system");
unmount("/system");
set_progress(0.900000);
ui_print("Update complete. Hope this worked!");
set_progress(1.000000);
Should I perhaps post this in the dev forum instead?
It's really not a general or easy question...
TeamRainless said:
Now I've got the exact text in front of me from CWM Recovery:
Code:
--Installing: /emmc/Updates/update.zip
Finding update package....
Opening update package...
Installing update..
E:Error in /emmc/Updates/update.zip
(Status 0)
Installation aborted.
And here´s the exact text of my update.zip:
Code:
ui_print("Simple Font Change");
ui_print("By: Team Rainless");
show_progress(1.000000, 0);
ui_print(" Mounting /system");
mount("MTD", "system", "/system");
set_progress(0.100000);
ui_print(" Extracting files to /system");
package_extract_dir("system/fonts/Clockopia2.ttf", "/system/fonts");
set_progress(0.200000);
ui_print(" Setting permissions to 0644...");
set_perm(0,0,0644,"/system/fonts/Clockopia2.ttf");
set_progress(0.400000);
ui_print(" Unmounting /system");
unmount("/system");
set_progress(0.900000);
ui_print("Update complete. Hope this worked!");
set_progress(1.000000);
Click to expand...
Click to collapse
TeamRainless said:
Should I perhaps post this in the dev forum instead?
It's really not a general or easy question...
Click to expand...
Click to collapse
This is the right section as it's not development as such but a development question which the dev thread isn't for. This covers all really and you'll always get someone read and come and answer.
Anyway just the first thing I've noticed is your mount instruction looks completely wrong to me and have never seen it like that. I've never read those instructions before but they don't look too great. Also I thought the extract should be ("label", "location").
This is what is common across all the zips I use:
Mount command:
Code:
run_program("/sbin/busybox", "mount", "/system");
Package extract:
Code:
package_extract_dir("system", "/system");
package_extract_file("Clockopia2.ttf", "/system/fonts")
I may be wrong about the extract but also don't forget to unmount the system in the same way:
Code:
run_program("/sbin/busybox", "unmount", "/system");
I only really modify zips as opposed to create whole new ones but give it a go as yours isn't working at the moment.
Hope it helps or someone clarifies this for me too.
AvRS said:
This is the right section as it's not development as such but a development question which the dev thread isn't for. This covers all really and you'll always get someone read and come and answer.
Anyway just the first thing I've noticed is your mount instruction looks completely wrong to me and have never seen it like that. I've never read those instructions before but they don't look too great. Also I thought the extract should be ("label", "location").
This is what is common across all the zips I use:
Mount command:
Code:
run_program("/sbin/busybox", "mount", "/system");
Package extract:
Code:
package_extract_dir("system", "/system");
package_extract_file("Clockopia2.ttf", "/system/fonts")
I may be wrong about the extract but also don't forget to unmount the system in the same way:
Code:
run_program("/sbin/busybox", "unmount", "/system");
I only really modify zips as opposed to create whole new ones but give it a go as yours isn't working at the moment.
Hope it helps or someone clarifies this for me too.
Click to expand...
Click to collapse
Figured it out:
The update-binary was bogus.
And that guide... like ALL the guides on making update.zips... SUCKS.
I'm going to write my own guide now.
Thanks for the help.
TeamRainless said:
Figured it out:
The update-binary was bogus.
And that guide... like ALL the guides on making update.zips... SUCKS.
I'm going to write my own guide now.
Thanks for the help.
Click to expand...
Click to collapse
At least you figured it out. I'm also in the process of writing (just not got round to finishing) a CWM guide but not how to create them so that would work out nicely if you created one.
Please help ...
I need to create a zip file flashlable
system / app
SystemUI.apk
Phone.apk
HtcDialer.apk
and another app
..............
/ framework
com.htc.resources.apk
framework-res.apk
here only those
my working
Hi
Ashle said:
Please help ...
I need to create a zip file flashlable
system / app
SystemUI.apk
Phone.apk
HtcDialer.apk
and another app
..............
/ framework
com.htc.resources.apk
framework-res.apk
here only those
my working
Click to expand...
Click to collapse
If you are only using System apks, then there is a Play Store App for that.
App2Zip
Search it.
I need to create a system app updater script and the framework / framework-res.apk, com.htc.resources.apk
My not working
mount("MTD", "system", "/system");
ui_print("started. . . .");
ui_print("flashable zip");
ui_print("");
ui_print("");
ui_print("");
ui_print("");
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/busybox", "mount", "/cache");
package_extract_dir("system", "/system");
delete("/system/app/HtcContacts.odex");
delete("/system/app/HtcContactWidgets.odex");
delete("/system/app/HtcDialer.odex");
delete("/system/app/Phone.odex");
delete("/system/app/SystemUI.odex");
delete("/system/framework/com.htc.resources.odex");
delete("/system/framework/framework-res.odex");
set_perm(0, 0, 0644, "/system/framework/framework-res.apk");
set_perm(0, 0, 0644, "/system/framework/com.htc.resources.apk");
unmount("/system");
unmount("/cache");
unmount("/data");
ui_print("Done. Reboot!");
Click to expand...
Click to collapse
Ashle said:
I need to create a system app updater script and the framework / framework-res.apk, com.htc.resources.apk
My not working
Click to expand...
Click to collapse
1. mount("MTD", "system", "/system"); is wrong for DX as DX is using EMMC instead of MTD
The correct one is mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/system");
2. You don't need mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/system"); when you have run_program("/sbin/busybox", "mount", "/system");
3. There is no such thing as com.htc.resources.odex and framework-res.odex as there is no smali in these files
4. You don't need set_perm(0, 0, 0644, for system/app and system/framework
5. Why do you want to delete those odex files ? Most of the time, a stock odex ROM will not boot when you mix with deodexed files because the boothclass is broken
ckpv5 said:
1. mount("MTD", "system", "/system"); is wrong for DX as DX is using EMMC instead of MTD
The correct one is mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/system");
2. You don't need mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/system"); when you have run_program("/sbin/busybox", "mount", "/system");
3. There is no such thing as com.htc.resources.odex and framework-res.odex as there is no smali in these files
4. You don't need set_perm(0, 0, 0644, for system/app and system/framework
5. Why do you want to delete those odex files ? Most of the time, a stock odex ROM will not boot when you mix with deodexed files because the boothclass is broken
Click to expand...
Click to collapse
Yes .... :thumbup: :thumbup:
Edit SuperSense5 rom...
Change battery icon not working...
Icon wifi,data......,icon picture call contact,frame,....ok
Sent from my HTC Desire X using xda app-developers app
Hello XDA Members! I Have Developed A Custom ROM. I Have Create A updater-script. It Showing "Process Ended With Error:255". Here Is My updater-script.
Code:
ui_print(">>> ZenMod Xperia <<<");
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
ui_print("Installing ZenMod");
ui_print("Please wait...");
show_progress(1.34,175);
package_extract_dir("system", "/system");
unmount("/system");
ui_print("Flashing Kernel...");
package_extract_file("boot.img", "/dev/block/platform/msm_sdcc.1/by-name/boot");
ui_print("Finished!");
show_progress(1.000000, 0);
Anybody Know How To Fix It?. If Anybody Know Please Help Me...
in recovery , that command row make the mistake ???
And where are the symlinks????
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system"); <- What's the purpose of "0" in here?
Everything else looks fine though.
Copy the logcat of TWRP and upload, so you could help more
lol u need symlinks, permitions and much more and also add get device prop..lol updater script cant be this much short...
Harsh_1998 said:
lol u need symlinks, permitions and much more and also add get device prop..lol updater script cant be this much short...
Click to expand...
Click to collapse
lol why would he add symlinks and permissions uselessly?
and for the device prop it's a good practice to add it but not so necessary.
Updater-script can be shorter than this.
http://forum.xda-developers.com/showthread.php?t=1931585
EDIT: This guide is now not necessary, there is a mod of the app for system_root phones, and probably soon there will be official support.
Modded app (install on the rom before making backups):
https://forum.xda-developers.com/re...igrate-root-fixed-version-unofficial-t3944054
This guide is still valid, for those who have already done the backups, but they are not working.
How to make Migrate app backups compatible with our rom(and other AB roms)
I am not affiliated in anyway to this app. This is only a guide for those who want to use it to switch their apps between roms.
You are responsible if you miss anything and screw up your rom. I will not be offering any extra support.
Make sure to read and understand everything carefully before you proceed.
App:
https://play.google.com/store/apps/details?id=balti.migrate
1. Open the zip with winrar or 7zip
2. Inside the folder META-INF\com\google\android, extract the file updater-script
3. Open it with notepad/notepad++ or another text editor(if you know what you are doing)
4. Find these lines at the beginning:
Code:
ui_print("Mounting partition...");
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
ifelse(is_mounted("/data") && is_mounted("/system"), ui_print(""), ui_print("Mounting using self busybox...") && run_program("/tmp/mount_using_self_busybox.sh", "m"));
ifelse(is_mounted("/data") && is_mounted("/system"), ui_print("Mounted!"), abort("Mount failed! Exiting..."));
package_extract_file("prep.sh", "/tmp/prep.sh");
5. Change them to:
Code:
ui_print("Mounting partition...");
run_program("/sbin/busybox", "mount", "/system_root");
run_program("/sbin/busybox", "mount", "/data");
ifelse(is_mounted("/data") && is_mounted("/system_root"), ui_print(""), ui_print("Mounting using self busybox...") && run_program("/tmp/mount_using_self_busybox.sh", "m"));
ifelse(is_mounted("/data") && is_mounted("/system_root"), ui_print("Mounted!"), abort("Mount failed! Exiting..."));
package_extract_file("prep.sh", "/tmp/prep.sh");
6. Find these lines at the end:
Code:
ui_print(" ");
ui_print("Unmounting partitions...");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/data");
ifelse(is_mounted("/data") && is_mounted("/system"), ui_print(""), run_program("/tmp/mount_using_self_busybox.sh", "u"));
ui_print(" ");
ui_print("Finished!");
7. Change them to:
Code:
ui_print(" ");
ui_print("Unmounting partitions...");
run_program("/sbin/busybox", "umount", "/system_root");
run_program("/sbin/busybox", "umount", "/data");
ifelse(is_mounted("/data") && is_mounted("/system_root"), ui_print(""), run_program("/tmp/mount_using_self_busybox.sh", "u"));
ui_print(" ");
ui_print("Finished!");
8. Repack the file to the original position
9. Redo all of this for every migrate zip you have
Just a quick question. I don't have Mi 9 SE. So I rely on inputs from users so that I can issue a fix.
After changing this, does the helper app work as expected? Because someone told me that helper can't seem to find the migrate cache directory.
Thanks for the information.
For me it worked. If you need to make tests, contact me(I am on beta channel for your app in play store too)
redispade said:
For me it worked. If you need to make tests, contact me(I am on beta channel for your app in play store too)
Click to expand...
Click to collapse
Is it still working for you ? I tried these steps and I could not get it working. I am thinking to replace "system" as "system_root" in the updater script.
basically replace this:
Code:
ui_print("Unpacking helper");
package_extract_dir("system", "/system");
package_extract_file("helper_unpacking_script.sh", "/tmp/helper_unpacking_script.sh");
set_perm_recursive(0, 0, 0777, 0777, "/tmp/helper_unpacking_script.sh");
run_program("/tmp/helper_unpacking_script.sh", "/system/app/helper", "12");
set_perm_recursive(0, 0, 0777, 0777, "/system/app/MigrateHelper");
with this:
Code:
ui_print("Unpacking helper");
package_extract_dir("system_root", "/system_root");
package_extract_file("helper_unpacking_script.sh", "/tmp/helper_unpacking_script.sh");
set_perm_recursive(0, 0, 0777, 0777, "/tmp/helper_unpacking_script.sh");
run_program("/tmp/helper_unpacking_script.sh", "/system_root/app/helper", "12");
set_perm_recursive(0, 0, 0777, 0777, "/system_root/app/MigrateHelper");
The part you are modifying is for the helper apk. If it gives errors, you have done something wrong. If you want to replace that part, replace it with /system_root/system
Sent from my Mi 9 SE using Tapatalk
redispade said:
The part you are modifying is for the helper apk. If it gives errors, you have done something wrong. If you want to replace that part, replace it with /system_root/system
Sent from my Mi 9 SE using Tapatalk
Click to expand...
Click to collapse
Thanks for the quick response. I tried your changes only once again before doing my change and it somehow worked.