[SOLVED] Help modifying (flashing) theme files. - Motorola Droid X2

Alright, I'm wanting to modify the theme of my rom (eclipse 2.0.2 to be exact). I'll explain my steps below, but the problem I'm having is when flashing the update.zip from my SD card during BSR, I get "E: There is a syntax error in the update" and nothing happens.
Here's my steps. I'm using APK manager 4.9, trying to modify Eclipse 2.0.2.
1. I've installed APK Manager and it's running fine.
2. I grab "framework-res.apk" from Eclipse /system/framework directory and place it inside APKManager's "place-apk-here-for-modding" dir.
3. I run APKManager and choose option 9 (Decompile APK)
4. Once decompiled, I edit the files inside APKManager's "project" dir.
5. I then run APKManager and choose option 11 ("Compile APK"). This places "unsignedframework-res.apk" in the "place-apk-here-for-modding" dir.
6. I take this new file, rename it to "framework-res.apk" and place it in a zip file, along with the META-INF. Here is my dir structure inside the .zip:
Code:
/META-INF/com/google/android/update-script
/system/framework/framework-res.apk
7. I place the following code inside "update-script"
Code:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:framework
show_progress 0.1 10
8. I then sign the .zip using "Testsign" (http://forum.xda-developers.com/showthread.php?t=538020)
9. I now place the newly signed .zip onto my sd card.
10. I reboot my phone into BSR, clear cache/dalvik cache, and attempt to install update from zip.
11. After selecting my .zip and starting the update process, I get the syntax error.
Any ideas? What am I doing wrong?
-------------------------
UPDATE
-------------------------
This topic is solved!
To make this even simpler, download Framework Flasher and easily create flashable update.zip files! http://forum.xda-developers.com/showthread.php?p=21113455
The structure of the files must be like the following:
update.zip/system/framework/framework-res.apk
Store file here
update.zip/META-INF/com/google/android/updater-script
Code:
ui_print("Installing...");
show_progress(0.1, 0);
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);
set_perm_recursive(0, 0, 0755, 0644, "/system/framework/framework-res.apk");
ui_print("Done!")
run_program("/sbin/busybox", "umount", "/system");
update.zip/META-INF/com/google/android/update-binary
You will need to pull this from a ROM or Theme .zip
Thanks!

Would this be better off posted in another Droid x2 forum? Or is this the correct forum? I'm still needing help with this. I just can't seem to get it to work for some reason. Thanks again!
Sent from my DROID X2 using XDA App

This is the correct forum. Hopefully one of our fantastic themers decide to poke their head in and answer but to me it sounds like a problem while creating your zip file.
Sent from my DROID X2 using xda premium

Not sure if this is your issue but I'm pretty sure there's an update to APK Manager. I'm also playing around with theming and I believe the version I have is 5.

Yeah I definitely think the problem is due to either the zip sign our the update-script file.
As for updating apk manager, I'll try it, but I read somewhere that apk manager has bugs and to stick with 4.9. I did however update apktool.jar to the latest version.
Sent from my DROID X2 using XDA App

Don't rename the file in step 6. Do option 12 to sighn the apk. That will create sighnedframework-res. Rename that file and put it in your zip.
I use version 5. Think the option is still 12 to sign the file.
EDIT: Sorry I see step 8 where you sign the apk. I missed that. Never used 4.9 myself.
Sent from my DROID X2 using Tapatalk

hedwig34 said:
Don't rename the file in step 6. Do option 12 to sighn the apk. That will create sighnedframework-res. Rename that file and put it in your zip.
I use version 5. Think the option is still 12 to sign the file.
EDIT: Sorry I see step 8 where you sign the apk. I missed that. Never used 4.9 myself.
Sent from my DROID X2 using Tapatalk
Click to expand...
Click to collapse
Thanks for that reply. I've since downloaded APKManager v5 and signed the APK like you said. I signed the .zip as well. However, I still ended up getting the syntax error.
After more research, I learned the differences between update-script and updater-script. So, I've converted to use the newer method (updater-script).
Inside my updater-script:
Code:
show_progress(1.000000, 0);
mount("yaffs2", "MTD", "system", "/system");
set_progress(0.200000);
package_extract_dir("system", "/system");
set_progress(0.400000);
set_perm(0,0,0644,"/system/framework/framework-res.apk");
set_progress(0.500000);
unmount("/system");
set_progress(0.900000);
ui_print("Update complete. FINALLY");
set_progress(1.000000);
I'm no longer getting the syntax error like before, but now, all I see is the following messages:
Code:
Finding update package...
Opening update package...
Installing update...
THEN IT JUST FREEZES. I end up having to remove my battery and reboot my phone.
Why is this so hard for me?

I do believe its your update script it does not look right at all to me but I'm not using same device will have a look later when I get up
sent from my dhd

leith51 said:
I do believe its your update script it does not look right at all to me but I'm not using same device will have a look later when I get up
sent from my dhd
Click to expand...
Click to collapse
Well, after even more research, I've learned some more. I've ditched the UPDATE-SCRIPT idea since updater-script is the preferred method of flashing.
In order to run updater-script, you need the "update-binary" files as well. As far as I know, all this file does is interpret the updater-script so it can be read. So I grabbed update-binary from a theme .zip that was posted on these forums and am using that.
Along with that, here is my modified updater-script
Code:
show_progress(0.200000, 10);
ui_print("Installing...");
mount("MTD", "system", "/system");
show_progress(0.500000, 40);
package_extract_dir("system", "/system");
show_progress(0.100000, 10);
ui_print("Done!");
unmount("/system");
This code seems to be working, but not 100% yet. I was getting status 6 errors until I converted the newline characters from windows to unix. Now that I've done that, I'm getting Status 7 errors.
So that's where I stand now. With a Status 7 error. Below is my updated .zip structure just for clarification:
Code:
/META-INF/com/google/android/(updater-script and update-binary)
/system/framework/(framework-res.apk)
I'm getting close, but not quite there.

i also am trying to figure this out, i hope you figure it out man

try this script
ui_print("Installing...");
show_progress(0.1, 0);
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);
set_perm_recursive(0, 0, 0755, 0644, "/system/framework/framework-res.apk");
ui_print("Done!")
run_program("/sbin/busybox", "umount", "/system");
if this does not work let me know also like i said i dont have the device so are you you sure its mtd and not emmc ?

leith51 said:
try this script
ui_print("Installing...");
show_progress(0.1, 0);
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);
set_perm_recursive(0, 0, 0755, 0644, "/system/framework/framework-res.apk");
ui_print("Done!")
run_program("/sbin/busybox", "umount", "/system");
if this does not work let me know also like i said i dont have the device so are you you sure its mtd and not emmc ?
Click to expand...
Click to collapse
Wow thanks! The busybox method worked flawlessly, no problem.
I'll update my original post in this topic to help whoever is needing help with this. I also created a script that will automate this entire process for you! Check the original post in this topic for all the details.
Thanks to everyone that helped!

Hi community,
Sorry for bumping this old thread but I'm having some issues when trying this stuff, I created the update.zip file but can't flash it.
The error I get with flashboot is
$ fastboot update update.zip
ERROR: could not clear input pipe; result e000404f, ignoring...
ERROR: could not clear output pipe; result e000404f, ignoring....
archive does not contain 'android-info.txt'
error: update package 'update.zip' has no android-info.txt
And
$ adb sideload upload.zip
shows error installation aborted on the device
This is the only thread that I've seen when users are reporting that the operation was successfully accomplished, although my device is different that's why I'm posting here.
Any help or comment is appreciated,
King regards.

Related

[Q] Can't flash Modded Update.zip

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

[Q] Update.zip (that I created) Aborts

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.

Dumb question.. How to make a update.zip

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.

[Request] S Duos updater script

Can someone make for me a flashable zip to replace the system/app
And system/framework
Folders with another folders from my choice
Cuz I have deodexed them but
I don't have android sdk to push them through abd
Thanks in advance
Sent from my GT-S7562 using xda premium
Does your device have a custom recovery? Do you know the mount points?
You don't need the full SDK for adb, and depending on what all you are replacing you could do it with a root file explorer or a terminal emulator
Sent from my Nexus 4 using Tapatalk 2
I do have cwm recovery
But what is this mount points ??
Anyway
I think if I changed this files through root explorer or terminal emulator
The phone will freeze in the process
And won't boot again
Cuz while the system is on the android will be running this apps and changing them while the phone is on will cause the phone to stop working before the process finish
Sent from my GT-S7562 using xda premium
depending on what your flashing could make your phone freeze true but you didnt really explain what your are in need of flashing.
adding a system app wont harm anything, changing the framework-res.apk will, but again i dont have all the info on what your trying to flash so its all a guess
by mount points i mean location of system partition etc, but you can try to bypass this
here is an example of what your updater script should look like (again just guessing being i would need more detail)
Code:
ui_print("Installing Mods..");
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation complete!");
probably would need to set permissions as well but again would need more info
About the mounting points I can mount it manually through the recovery
I need a zip to replace all the apks and jars in this directory
Maybe wiping the two directories
And placing a new ones
Sent from my GT-S7562 using xda premium
I want replace everything in the system/app and system/framework directories
I have deodexed everything inside them but I don't have android sdk to push them
Sent from my GT-S7562 using xda premium
well again, you dont need the whole sdk to have adb, which even for more than just this case its a handy tool to have, and you should have it if your modding androids
The script bellow will wipe /system/app and /system/framework and then drop your files in those place and set their permissions
just create a file called updater-script and put this in there (unix format) and grab an update-binary for your device and put both files in META-INF/com/google/android
then at the same level as META-INF, make a folder called system, in that folder have two more folders, app and framework, place files you want to flash in the proper folders
now zip it all up, sign it (or change sig check in recovery) and flash
Code:
ui_print("Installing Mods..");
ui_print("Deleting first..");
delete_recursive("/system/app");
delete_recursive("/system/framework");
ui_print("Mounting System..");
run_program("/sbin/busybox", "mount", "/system");
ui_print("Extracting Files..");
package_extract_dir("system", "/system");
ui_print("Setting Permissions..");
set_perm_recursive(0, 0, 0755, 0644, "/system/app");
set_perm_recursive(0, 0, 0755, 0644, "/system/framework");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation complete!");
Thanks gona try it and will report back
Sent from my GT-S7562 using xda premium
It worked thank you very much
Sent from my GT-S7562 using xda premium

Updater-Script Status 7 Error on Flash

Greetings XDA Forums! First time poster due to a very annoying problem I have with my Updater-Script.
Let me provide background knowledge:
I flashed the Sammy Deluxe Operation IVY Rom on my S4. It's essentially a 100% port of the S5 rom. It works better than my expectation and I was mentally blown away. However there was one annoyance. The hardware keys for the Context Menu and App Switcher were changed to emulate the S5 method. I didnt like it because now context menu is inaccessible. I tried doing the trick where I hold down the capacitive button to see if that works, but Im afraid that trick is a hardware coded trick that was only implemented on the S5. Not the S4 where its merely being emulated.
Adding to my state of annoyance, the ROM author wrote on the front page he wont change it back and dont even ask to change it back. Quote, he said this : "Please change it yourself. This is a S5 style ROM and I don’t understand what the problem is to adapt to new changings. If not, there is always the possibility for you to revert to the original softkey layout." I do understand why he would say that. Let me keep going.
I decided to fix it myself by visiting these 2 links
http://forum.xda-developers.com/showthread.php?t=2792460
This forum post shows you how to emulate the S5 Capacitive Context Menu Button on the S4 ( now the app switcher button )
So I did the reverse process of that. I decompiled the framework-res.apk, edited the boolean back to S4 Default ( which is what I want )
also set the key 139 ( Left Side Capacative ) back to Context Menu function. Recompiled the framework-res.apk.
The question is now is how to install my changes.
I made a flashable zip with updater script and everything. I followed this guide here so I can see the basic syntax and have an understanding of it.
http://forum.xda-developers.com/showthread.php?t=2377695
On doing so, the process of deleting the old framework-res.apk and putting the new one in works perfectly. However the command set_perm doesnt after copying the file to the /system/framework folder. During the flash everything else is good, but once it gets to set perm, Status 7 error is spewed by CWM and it says set_perm some changes failed
I double checked my parenthesis, my semi-colons, and my quotations.
I'm sure the problem is within the syntax of set_perm
Here is my code and I will attach it at the bottom as well for any additional help.
Code:
ui_print("framework-res fix by baboomerang");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(0.150000, 1);
ui_print("Removing old copy of framework-res");
ui_print("Removing old copy of Generic");
delete("/system/framework/framework-res.apk");
delete("/system/usr/keylayout/Generic.kl");
ui_print("Installation...");
show_progress(0.250000, 2);
package_extract_file("/system/framework/framework-res.apk", "/system/framework");
package_extract_file("/system/usr/keylayout/Generic.kl", "/system/usr/keylayout");
ui_print("Patching done");
show_progress(0.476000, 3);
ui_print("Using CHMOD 644 or rw r r");
ui_print("Uploading Stage 1 to diagnose which set perm broken");
set_perm(0,0,0644, "/system/framework/framework-res.apk");
ui_print("Uploading Stage 2 To diagnose which set perm broken");
set_perm(0,0,0644, "/system/usr/keylayout/Generic.kl");
show_progress(0.789000, 4);
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
show_progress(0.930000, 5);
ui_print("Cleaning Up...");
show_progress(0.999999, 6);
ui_print("Installation done..........");
ui_print("Now your s4 hardware keys should be back to normal");
It works all the way up to the UI PRINT Uploading Stage 1 to diagnose which set perm broken. Then it just stops with status 7 error.
I am finally requesting assistance or guidance on where to fix this problem. or HOW TO to be accurate.
Hello
Copy your apk at the same level of your updater script and try that :
assert(package_extract_file("framework-res.apk", "/system/framework/framework-res.apk"));
Thanks for the help but...
cyrillem28410 said:
Hello
Copy your apk at the same level of your updater script and try that :
assert(package_extract_file("framework-res.apk", "/system/framework/framework-res.apk"));
Click to expand...
Click to collapse
I see the purpose of that line of code you told me to add. Since I see that English isn't your best ( Don't worry, I understand ) I assume your telling me to put that line of yours above my package extract line code.
So like this:
Code:
ui_print("framework-res fix by baboomerang");
ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(0.150000, 1);
ui_print("Removing old copy of framework-res");
ui_print("Removing old copy of Generic");
delete("/system/framework/framework-res.apk");
delete("/system/usr/keylayout/Generic.kl");
ui_print("Installation...");
show_progress(0.250000, 2);
[B]
[I]package_extract_file("/system/framework/framework-res.apk", "/system/framework");
assert (package_extract_file("framework-res.apk", "/system/framework/framework-res.apk"));
package_extract_file("/system/usr/keylayout/Generic.kl", "/system/usr/keylayout");[/I][/B]
ui_print("Patching done");
show_progress(0.476000, 3);
ui_print("Using CHMOD 644 or rw r r");
ui_print("Uploading Stage 1");
set_perm(0,0,0644, "/system/framework/framework-res.apk");
ui_print("Uploading Stage 2");
set_perm(0,0,0644, "/system/usr/keylayout/Generic.kl");
On doing this I get from cwm:
Code:
-- Installing: /storage/sdcard1/framework-fix
by baboomerang.zip
Finding update package...
Opening update package...
Installing update...
framework-res fix by baboomerang
Mounting system...
Removing old copy of gramework-res
Removing old copy of Generic
Installation...
[I][B]assert failed: package_extract_file("framework
-res.apk", "/system/framework/framework-res.apk")[/B][/I]
E:Error in /storage/sdcard1/framework-fix by b
aboomerang.zip
(Status 7)
Installation aborted.
I get this when the assertion is below/after the original package_extract. I haven't tried the assertion before/above the original package_extract.
Btw thanks, I think Im getting closer.
EDIT: I am closer and got very close. But now I am here.
Code:
ui_print("framework-res fix by baboomerang");
ui_print("Mounting system...");
[I][B]mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/system");[/B][/I]
show_progress(0.150000, 1);
ui_print("Removing old copy of framework-res");
ui_print("Removing old copy of Generic");
delete("/system/framework/framework-res.apk");
delete("/system/usr/keylayout/Generic.kl");
ui_print("Installation...");
show_progress(0.250000, 2);
[I][B]package_extract_file("system/framework/framework-res.apk", "/system/framework");
package_extract_file("system/user/keylayout/Generic.kl", "/system/usr/keylayout");[/B][/I]
ui_print("Patching done");
show_progress(0.476000, 3);
ui_print("Using CHMOD 644 or rw r r");
ui_print("Uploading Stage 1");
set_perm(0,0,0644, "/system/framework/framework-res.apk");
ui_print("Uploading Stage 2");
set_perm(0,0,0644, "/system/usr/keylayout/Generic.kl");
show_progress(0.789000, 4);
[I][B]assert(package_extract_file("framework-res.apk", "/system/framework/framework-res.apk"),
package_extract_file("Generic.kl", "/system/usr/keylayout"));[/B][/I]
ui_print("Unmounting system...");
unmount("/system");
This fixes my issues. But I now get back to the part of Stage 1. Where it cant set the permissions.
Instead of using this:
Code:
package_extract_file("[I][B]/system[/B][/I]/framework/framework-res.apk", "/system/framework");
package_extract_file("[I][B]/system[/B][/I]/user/keylayout/Generic.kl", "/system/usr/keylayout");
I did this:
Code:
package_extract_file("[I][B]system[/B][/I]/framework/framework-res.apk", "/system/framework");
package_extract_file("[I][B]system[/B][/I]/user/keylayout/Generic.kl", "/system/usr/keylayout");
Reason for that is because I saw in the guide in my first post, their package_extract_file shows "system" since its coming from the zip itself there is no " / " folder behind it. its just the zip itself, meta inf and system folder. Even if that was added, it doesn't make any sense or wouldn't fit the flashable zip standard.
Fixed 100% working
Ok so thanks for the help, I fully fixed my script with a lot of experimenting.
Here's a summary of what I did
I changed
Code:
run_program("/sbin/busybox", "mount", "/system");
to
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/system");
also added
Code:
package_extract_dir("system", "/system");
before doing this below
Code:
package_extract_file("system/framework/framework-res.apk", "/system/framework");
package_extract_file("system/usr/keylayout/Generic.kl", "/system/usr/keylayout");
Next I used
Code:
set_perm_recursive(0, 0, 0755, 0644, "/system/framework", "/system/usr/keylayout");
to at least in a different way change the permissions of the files directly with no errors. the 0755 sets the framework folder itself of rwx rx rx then 0644 sets all the files inside to rw r r.
Then I continued to use
Code:
set_perm(0, 0, 0644, "/system/usr/keylayout/Generic.kl");
set_perm(0, 0, 0644, "/system/framework/framework-res.apk");
and somehow after all that it worked yay!
Finally, I did
Code:
assert(package_extract_file("system/framework/framework-res.apk", "/system/framework/framework-res.apk"),
package_extract_file("system/usr/keylayout/Generic.kl", "/system/usr/keylayout/Generic.kl"));
so at least the files are forced to be downloaded.
Im keeping this here so future viewers at least see or get an idea on how to fix it like I did. Cheers

Categories

Resources