Related
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.
Hello guys! Hope you can help me with this.
I want to include some apps in my rom, but this app CANT be in the normal /system/app I want that they install as usar app every time i flash. It upose -i read it- that i should create a folder called "data" in the Root of my ROM. So i will have 3 folders: /META-INF/ /system/ and /data/
Along with this i have to edit with notepad++ the updater-script in the directory META-INF\com\google\android and add just below the line package_extract_dir("system", "/system"); the following:
format("yaffs2", "MTD", "userdata");
mount("yaffs2", "MTD", "userdata", "/data");
package_extract_dir("data", "/data");
set_perm(1000, 1000, 0771, "/data");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
And save the file. So i just have to put the .apk files in the /data/ and they will appear like *****in' magic every time i flash... But no, is not working .
Where is the error or what is the right wat to do it? Thanks
And yeah, english is not my native language
mauriciognr said:
Hello guys! Hope you can help me with this.
I want to include some apps in my rom, but this app CANT be in the normal /system/app I want that they install as usar app every time i flash. It upose -i read it- that i should create a folder called "data" in the Root of my ROM. So i will have 3 folders: /META-INF/ /system/ and /data/
Along with this i have to edit with notepad++ the updater-script in the directory META-INF\com\google\android and add just below the line package_extract_dir("system", "/system"); the following:
format("yaffs2", "MTD", "userdata");
mount("yaffs2", "MTD", "userdata", "/data");
package_extract_dir("data", "/data");
set_perm(1000, 1000, 0771, "/data");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
And save the file. So i just have to put the .apk files in the /data/ and they will appear like *****in' magic every time i flash... But no, is not working .
Where is the error or what is the right wat to do it? Thanks
And yeah, english is not my native language
Click to expand...
Click to collapse
If you want the app to be a system app, have you tried extracting the library files in the .apk? Open the .apk using WinRAR (an .apk is real
y like a .zip file) and open the folder 'lib' (if there is one). The folder within should be called something like 'armv7a' or 'armv6'. If your device is an ARMv6 device (search it up) the app may be incompatible with your device if there is no matching 'armv6' folder. If there is, open the folder and extract the .so file(s) and put them under /system/lib/ on your device, either with a root file browser, or with a .zip via CWM, Anyways, what app are you trying to install
?
Codename13 said:
If you want the app to be a system app, have you tried extracting the library files in the .apk? Open the .apk using WinRAR (an .apk is real
y like a .zip file) and open the folder 'lib' (if there is one). The folder within should be called something like 'armv7a' or 'armv6'. If your device is an ARMv6 device (search it up) the app may be incompatible with your device if there is no matching 'armv6' folder. If there is, open the folder and extract the .so file(s) and put them under /system/lib/ on your device, either with a root file browser, or with a .zip via CWM, Anyways, what app are you trying to install
?
Click to expand...
Click to collapse
Thanks for reply, but I already know that and already did it. Due to my phone have REALLY little rom memory. So my dream was to allow some apps to be instaled along with the rom.zip but as a user app. Im sick and tired already have almost a week like 6 hours day making my mod of a rom and now that is ready and sexy i cant "transfer the data folder from de rom.zip to data. Thanks for replay.
Have you looked into dsixda's kitchen? It will load your ROM and add in the bits needed to do what you want. The only downside is it isn't really updated anymore. You could also find a mod that flashes user apps in your phone's respective forum, then open it up and look at the updater-script.
Sent from a Toasted Devil
netwokz said:
Have you looked into dsixda's kitchen? It will load your ROM and add in the bits needed to do what you want. The only downside is it isn't really updated anymore. You could also find a mod that flashes user apps in your phone's respective forum, then open it up and look at the updater-script.
Click to expand...
Click to collapse
Now here I am with identical problem. In my case,
A. There is no forum with other mods for the TV Stick I am coding.
B. Dxixda's Kitchen chocked up with the AMLOGIC Kernel and refused to help further.
So here's my problem that, I have been breaking my head on this for a week now.
I have a TV Stick with android ICS 4.0.4, and has "yafss2" format. I have attached the mountpoint info, partition info and my updater script.
I am trying to mount the /Data Partition so that I can copy a test APK to /Data/App folder for now. Eventually I need to copy other stuff like app data to /data/data.
Although edify script requires the format
mount(type, device, mountpoint);
I need to do
mount("yafss2","MTD", "/dev/block/mtdblock7", "/data");
for some reason, otherwise the AMLOGIC Recovery gives error of missing parameter.
Anyway, even after following that format, its not working.
The subsequent "package_extract_dir" operation is not successful and I can see the files are not getting copied.
I'd dearly appreciate any pointers and advice.
may be you should set the permission on the /data instead of on the /system/app in you updater script.
hope this can help....
tepar said:
may be you should set the permission on the /data instead of on the /system/app in you updater script.
hope this can help....
Click to expand...
Click to collapse
I should have commented out that statement. I realized it after I posted. No it doesn't really matter anyway. The files didn't get copied to there's no permissions to set.
First I am no Real Developer. So read an test what I say.
In fact this may be a known issue for real developers.
This belongs to GT-P5210
I found my self installing various Zip files in recovery mod that Failed!
After carefully study various ZIP files that work and comparing them with the ZIP files that does not, I found that the ones that work have the "update-binary" with size of 322,688 bytes and the ones that fail have only 194,636!
Tis is for those of you like me that are starting to learn how to develop.
Get an update file that work in P5210: For example go and get
Code:
http://roms.bindroid.com/downloads/viewcategory/11-stock
and download the file : no_bloatware_stock_rom.zip
Now using 7zip or any other compressor, go ahead and decompress the file. You will see the following folders: META-INF\com\google\android
Inside android there is a binary called: update-binary
that I understand interprets the commands inside the script called: updater-script
Is this update-binary the one I am talking about. This is 322,688 bytes!
- - - - - - - - - - - - - - - - - - - - -
Now lest download a zip file that does not work in our P5210.
I been studying a way to back up our partitions. So I been reading on:
Online Nandroid / Nandroid Backup without re-booting
http://forum.xda-developers.com/showthread.php?t=1620255
At the bottom of the first post is the link to the program. This program is install on a rooted device via zip file on recovery mode.
Here is a direct link for "onandroidv9.20.zip" so you to follow me.
http://forum.xda-developers.com/attachment.php?attachmentid=2389865&d=1384355365
Try to install using TWRP by saving the file onandroidv9.20.zip on your Internal memory using the PC.
In TWRP then you will do Install and then search /emmc for onandroidv9.20.zip. Select the file and install.
You will see:
Code:
Updating partition details...
Installing '/emmc/onandroidv9.20.zip' ...
Check for MD5 file ...
Skip MD5 check: no MD5 file found.
[COLOR="Red"]E:Error executing updater binary in zip '/emmc/onandroidv9.20./onandroidv9.20.zip'
Error flashing zip '/emmc/onandroidv9.20./onandroidv9.20.zip'[/COLOR]
Injecting TWRP into boot Image...
TWRP Injection complete.
Updating partition details...
[COLOR="Red"]FAILED[/COLOR]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
So then I thought this has to be with the issue our P5210 is x86. And for sure my friend DutchDanny compiled that "update-binary" special for us.
So since this files have no signature I decide to copy the "update-binary" from the DutchDanny Files and replace the one inside onandroidv9.20.zip and I rename this modified file onandroidv9.20x86.zip
Then I try to install it in TWRP and guess what!!!! Yes it install without any issue.
So this "update-binary" that I saw first on DutchDanny files is been copied on all roms that we see posted here. So this is known to our real developers.
But I thought it should be shown, so that we can force the Failing Zip Files to work in P5210.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Now Here is an Interesting Thing.......
Our GT-P5210 is x86. Not : armeabi or armeabi-v7a nor mips!!!!!
But most of all application in the market are armeabi or armeabi-v7a. They do not have a x86 version.
But when you are running Android normally yesssssss all apks work fine. So how is that possible?
Some people has claim that there are a secondary armeabi processor inside or x86 device. Others think there is emulation!! I do not know.
But I know I had side load many apks really old at the beginning of Android when there was no x86 and they most all work. A few exceptions.
For example MXPlayer requires a special MXPlayer Code Pack. And if you look inside MXPlayer apk that there is a folder "lib" that have sub folders "x86, armeabi or armeabi-v7a and mips". With the applicable libraries that for sure are compiled for each different processor.
If you go into MX Player Codec (x86).apk in lib you will see only "Lib\x86" as expected. It is to be used only in x86.
What I a saying, It is possible that our P5210 have some sort of way of ruining armeabi code while ruining normally. But there are things that require true x86 code like some libraries. This only while you are ruining normally the OS. And I expect that when in Recovery this does not apply making many zip designed for armeabi to fail.
I hope this is useful for you.
Edited:
Correction: There is no second CPU but in fact allmost all apps run under Java Dalvik and libraries via emulation ( houdini library) please see below.
Wow, good info! It also makes me realize just how much I have to learn.
Wow, good troubleshooting. Thank you for taking the time and putting this on paper. I hope with more research somone will crack this x86 product.
Sent from my GT-P5210 using xda app-developers app
imagelost said:
Wow, good troubleshooting. Thank you for taking the time and putting this on paper. I hope with more research somone will crack this x86 product.
Sent from my GT-P5210 using xda app-developers app
Click to expand...
Click to collapse
Next see my post for more info in our OS , x86, armeabi and Java Virtual Machine (Dalvik)
http://forum.xda-developers.com/showpost.php?p=49316921&postcount=51
http://forum.xda-developers.com/showpost.php?p=49324166&postcount=54
Sorry for the slight OT post but the tab 3 10.1 has an intel X86 processor. It is able to run native android apps (compiled for ARM) using something called libhoudini
http://commonsware.com/blog/2013/11/21/libhoudini-what-it-means-for-developers.html
This is just my understanding. sorry if anythin gi've said is wrong.
Thanks
I kow there are many old developers that do not think like me. But I am greatfull of any information that gets to be publis here.
I searched for moths for the answer of how this P52xx where managing old ARM base apk and compiled libraries. No one gave published here an anser . Just A few day I relize that most work becouse of Java Dalvic, and that the libs where handle by this houdini magic.
But please understand that this update.zip are build to run in recovery mode. It is our understanding that there is no houdini magic runing on recovery mode. Thanksfull most is dome on script, but those scrit are translated by update-binary. As I understand this update-binary the is recquired to be compiled for x86. Since no houdini is availabe in recovery mode.
I have to make also clear, that it is my understanding that if an update.zip uses more binary files, they also may be required to be compiled for x86. We can mention busybox, toolbox but may be more!! So if you have an update.zip that keep failng, Bring the atention to the developer and ask him politely to understand that our tablets require this binaries compiled for x86.
Sory for the spelling errors I have no dictionary where I am at know.
Thank you a lot
Thanks a lot OP!that was really heplful thread:good::good::good:,i thought the problem was to rename the update-script to update-binary and delete the other 'update-binary'.
LYandroid;49475925... said:
i thought the problem was to rename the update-script to update-binary and delete the other 'update-binary':
Click to expand...
Click to collapse
I am no expert, but :
update-binary : is the program that interprets the instructions place in the "script", then execute them. Once compiled it never changes excepts for updates or improvements.
update-t or updater-script : is just a script, where we place our set of instructions to perform a task. This change all the time since it will contains different instructions, for every different task we desire to do.
You can not rename one to the other, they are two different things. Normally you need both the binary and the script. But I have seen binaries that do not require the script, I guess they are compile specially to include in them the commands!
I have a motorola xt890 "Razr i" who has also an intel processor atom z580 x86, some developers also try to port first cm for our devices, we already have a build that boot and everything its awesome, but hasnt have sound , also about the updater script, there is a special one for the x86 architechture, some devs on our forum have it already
Maybe you should check the info about, its on the Motorola Razr I development forum from here.
Enviado desde mi XT890 mediante Tapatalk
Thanks for the info on changing the update-binary. I also had to change the line in my updater-script that was trying to run busybox from /sbin to /system/xbin.
Sent from my SM-N900V using XDA Premium HD app
I am trying to install this script with TWRP using your method, but it seems failed.
http://forum.xda-developers.com/showthread.php?p=49903814
would you mind to try it?
I downloaded the script installation zip, changed the update-binary, and it gave an error before executing any of the updater-script. When I changed all lines in the updater-script trying to run programs in busybox from /sbin to /system/xbin, most of the updater-script executed. The one error was my fault in syntax. I know my busybox is installed to /system/xbin, but I don't know anything about busybox itself and it's symlinks. Where is everyone else's busybox installed? Is the location of busybox simply another difference with x86 android builds or am I missing some symlink?
Sent from my SM-N900V using XDA Premium HD app
I been busy. Sorry for the delay.
I am not sure of what I am about to say but here is my understanding. Please keep in mind I am also learning.
1) busybox is an added User binary file that we add to the Android system partition. Most of us did not actually added it ourself, we use an application to add it to Android "system" partition. So when we boot to Android OS it is then there ready for us.
2) But In linux (Yes Android Java Dalvik run on top of Linux) where the User place his own binaries is not well define or implemented. So you will find time after time a problem similar to this situation.
3) So, I confessed I am not sure where busybox binary should really be. I know that normally I will see the Real busybox is in one place and find simlinks ( shorcuts) in the rest of those locations.
4) Now it is important to keep in mind that the folders: /sbin, /xbin, /system, /system\bin, /system/xbin not necessary are the same when you boot in Android OS or when you boot in Recovery!!!!!! Read this 2 or 3 times!!! It is important.
5) In the case of Recovery Partition busybox is there because the developer that created that partition did it for us. Clearly where it is will depend on what the recovery partition's developer decided to place it. I do not know right now where is in CWM that DutchDanny made since I no longer have that in my Tablet. Latter I can try to inspect the recovery.img and tell you.
6) Where is busybox in my P5210:
* I am inspecting my TWRP and I can see that we have a "/bin/busybox". And I do not see folders "xbin" neither in "/xbin" nor in "\system\xbin".
* I am currently testing rom "Bindroid One ver 2.01". In this OS I can see only "/system/xbin/busybox". I have no sysmlinks! Interesting, Not important to me. Keep in mind that I am testing I had no need for it or installing any application that may had require it.
@chchia & @themoneyman It seems both of you are talking about same script but i can be wrong?
Butt....... lets look at the script anyway.
Code:
ui_print(" ");
ui_print("================================");
ui_print("********************************");
ui_print(" ");
ui_print(" T w e a k D r y p t ");
ui_print(" ");
ui_print(" by ");
ui_print(" ");
ui_print(" Team T.D.T ");
ui_print(" ");
ui_print("********************************");
ui_print("================================");
ui_print(" ");
ui_print("Mounting /system /data /cache");
ui_print("");
run_program("/sbin/mount", "/system");
run_program("/sbin/mount", "/data");
run_program("/sbin/mount", "/cache");
show_progress(1, 15);
run_program("/sbin/sleep", "5");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/90userinit","/tmp");
run_program("/sbin/busybox","mv","-f","/system/etc/init.d/00banner","/tmp");
ui_print("");
ui_print("Deleting old files,please wait..");
ui_print("");
delete_recursive("/data/tombstones");
delete_recursive("/data/dalvik-cache");
delete_recursive("/data/boot-cache");
delete_recursive("/data/resource-cache");
delete("/data/system/batterystats.bin");
delete("/system/etc/init.d/00syscleaner");
delete("/system/etc/init.d/01batterytweaker");
delete("/system/etc/init.d/02netweakz");
delete("/system/etc/init.d/03ram_optimize");
delete("/system/etc/init.d/11sdspeedfix");
delete("/system/etc/init.d/05zipalign");
delete("/system/etc/init.d/06gpurender");
delete("/system/etc/init.d/07zipaligndata");
delete("/system/etc/init.d/08kernelTweak");
delete("/system/etc/init.d/09cron");
delete("/system/etc/init.d/10TouchscreenSensitivity");
delete("/system/etc/init.d/04sqlite3");
delete_recursive("/system/etc/init.d");
delete_recursive("/system/etc/cron");
run_program("/sbin/sleep", "5");
ui_print("Installing scripts ");
ui_print("");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
show_progress(0.200000, 40);
run_program("/sbin/busybox","mv","-f","/tmp/50selinuxrelabel","/system/etc/init.d");
run_program("/sbin/busybox","mv","-f","/tmp/90userinit","/system/etc/init.d");
run_program("/sbin/busybox","mv","-f","/tmp/00banner","/system/etc/init.d");
ui_print("Fixing permissions");
ui_print("");
set_perm_recursive(0, 2000, 0777, 0777, "/system/etc/init.d");
set_perm(0, 0, 0777, "/system/bin/uninstall");
set_perm(0, 0, 0777, "/system/bin/scan");
set_perm(0, 0, 0777, "/system/bin/tweakd");
set_perm(0, 0, 0777, "/system/xbin/sqlite3");
set_perm(0, 0, 0777, "/system/xbin/openvpn");
set_perm(0, 0, 0777, "/system/xbin/zipalign");
set_perm(0, 0, 0777, "/system/lib/libncurses.so");
set_perm(0, 0, 0777, "/system/lib/libsqlite.so");
set_perm(0, 0, 0777, "/system/lib/libsqlite_jni.so");
set_perm(0, 0, 0777, "/system/etc/init.d/01syscleaner");
set_perm(0, 0, 0777, "/system/etc/init.d/02cpu_kernel_gov");
set_perm(0, 0, 0777, "/system/etc/init.d/03sqlite3");
set_perm(0, 0, 0777, "/system/etc/init.d/04zipalign");
set_perm(0, 0, 0777, "/system/etc/init.d/05zipaligndata");
set_perm(0, 0, 0777, "/system/etc/init.d/06cron");
set_perm(0, 0, 0777, "/system/etc/init.d/07storage");
set_perm(0, 0, 0777, "/system/etc/init.d/08batterytweak");
set_perm(0, 0, 0777, "/system/etc/init.d/09VM");
set_perm(0, 0, 0777, "/system/etc/init.d/10Ksm");
set_perm(0, 0, 0777, "/system/etc/init.d/11Touch_Sens");
set_perm(0, 0, 0777, "/system/etc/hosts");
set_perm(0, 0, 0777, "/system/etc/gps.conf");
set_perm(0, 0, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
set_perm_recursive(0, 2000, 0777, 0777, "/data/tweakdrypt");
run_program("/sbin/sleep", "3");
ui_print("Unmounting partitions...");
ui_print("");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
run_program("/sbin/umount", "/cache");
ui_print("Installation Completed !!!!");
ui_print("");
ui_print("| Reboot System Now |");
themoneyman said:
... I also had to change the line in my updater-script that was trying to run busybox from /sbin to /system/xbin....
Click to expand...
Click to collapse
Wao!!! to me this is strange since I have not seen or recall a "\system\xbin" folder in the Recovery. But I may be wrong. But I may bee misunderstanding you too. I will explain.
in the updater-script there are line that are to be run at recovery. For example:
line 21
Code:
run_program("/[COLOR="Blue"]sbin[/COLOR]/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");"
You see zip installation files is executed in Recovery. Waooo here is what happen, think In this:
I am going to assume that you are wrong. There is no \system\xbin folder in Recovery. So if there is no folder much less a bussybox in that folder.....
So in order for the previos code line to execute busybox in recovery will have to be in "/sbin/busybox". But you said it work for you in "/system/xbin". To me it should not work. But lets see.
You are sugesting to change "/sbin" fir "/systen/xbin" line 21 should look like:
Code:
run_program("[COLOR="Red"]/system/xbin[/COLOR]/busybox","mv","-f","/system/etc/init.d/50selinuxrelabel","/tmp");"
Normally if you try to execute that las one, It wont work because there is no folder "/system/xbin" in recovery.
But look at Line 16
Code:
run_program("/sbin/mount", "/system");
Because this script mount the Android /system partition now all files that should only be available at Android are ready to be use in the Recovery!!! End result: What you are doing works in this particular script Only because the Android /system partition is mounted!!! But keep an eye in other script that may not mount /system before using /xbin/busubox!!!!
chchia said:
I am trying to install this script with TWRP using your method, but it seems failed.
http://forum.xda-developers.com/showthread.php?p=49903814
would you mind to try it?
Click to expand...
Click to collapse
Uff, I do not have time for this now I am really busy. I downloaded as you see I posted the script.
Here is what I think is the problem
Unzip "TDT_V4.1_(jb_kk).zip" ( I am assuming you are using jb in your tablet)
You will see in it: data , META-INF, system and a readme.txt
Browse those folders.
You will see there are binaries there!!!!!
now read the script /META-INF/com/google/android/updater-script (yes the same I show before)
line 49 reads
Code:
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
What those line do is copy and overwriting ALL the binaries inside the packages system and data folders and deposit them in your Android partitions!!!!
Here is the sad part for all us users of a x86 device. Our original binaries where compile and optimize for x86 device. The binaries this developer and many other you will try to use in the future most likely where not made for x86!!! Copying over our original binaries may be wrong!!!!!!!
In fact I am learning with your request. I never thought on this problem we have. Waoooo!
My best suggestion is go to the developer and ask him to create this packakes for an x86 device. All binaries should be compile specialy for x86......
In any case: Guys PLease report to us if this package "TDT_V4.1_(jb_kk).zip" was finally installed? Did it work?
Whats the easiest way to install a rom on the device. Because what the op states its a sht load of steps just to get one zip to install
Sent from my SM-N900T using Tapatalk
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
Disclaimer
I will not be responsible if you screw up with your device.
Do make a Nandroid backup first.
Before we start
Downloads
WinRAR
Notepad++
Template Zip
Lets get started
I have provided you with the template zip inside which by making changes we can create our flashable zips. All necessary files are inside Template zip
Open up the template zip. There you will see two folders "META-INF" and "system". [In "META-INF" all the coding stuff resides and in "system" all your apps and media files resides.]
META-INF
In META-INF have one folder "com" and three files [We don't have to edit these three files]
Now open "com" folder and inside it open "google" folder then "android" folder.
Now inside "android" folder you will see two files "update-binary" [We don't have to edit this file, leave it as it is.] and "updater-script"[It is the file which is used to tell custom recovery what to do with the flashable zip ].
We have to edit "updater-script" file by using notepad++. [Scroll below to see how to edit updater-script]
System Folder
It is the folder where all of your apks, zips, libs reside.
Inside System Folder make folders as following:
If you want to flash an app and make it system app create "app" folder and if not a system app make "priv-app" folder. You can also make "lib" folder along with "app" folder if your apps uses libs.
If you want to flash a bootanimation or ringtones etc make "media" folder.
If you want to flash something else ask it below.
How to edit "updater-script"?
What is updater-script?
updater-script is a file written in edify script language which instructs the recovery to perform certain tasks.
updater-script is located in /META-INF/com/google/android/updater-script in flashable zip
Some basic rules:
Every statement must end with a semicolon (; )
Comments must start with #
Strings must be delimited by double quotes (” “)
Commands
Now i will try to explain commands used in updater-script in very easy language or noob language.
Code:
format("yaffs2", "MTD", "system", "/system");
The above command is used to format the specified partition
Syntax explanation:
format - The main command to direct the recovery to format using the following parameters
"yaffs2" - Filesystem type used in the device
"MTD" - Type of the partition used in the file system
"system" - Name of the partition to be formatted
"/system" - Location of the partition to be formatted
======================================================================================================
Code:
ui_print("Format Completed");
The above command directs the recovery to display the following text enclosed in double quotes in the user interface (display).
After successful formatting it displays "Format Completed" in the device screen.
======================================================================================================
Code:
mount("yaffs2", "MTD", "system", "/system");
The mount command directs the recovery to mount the following file system and the following partition
The text syntax is same as format command as instead of formatting it mounts.
======================================================================================================
Code:
package_extract_dir("system", "/system");
This command searches for the directory (folder) named "system" in the root of the zip file and copies all the content of the "system" folder from the zip file into the "/system" partition which is already mounted by the previous mount command ie it copies all the folder items inside system folder like apps, media etc as explained above.
======================================================================================================
Code:
package_extract_file("autoroot.sh", "/tmp/autoroot.sh");
This command searches for the file named "autoroot.sh" in the root of the zip file and copies the file to "/tmp" folder and names it as "autoroot.sh" (here it does not change the name)
======================================================================================================
Code:
symlink("mksh", "/system/bin/sh");
The above command creates a symlink.
What is symlink?
Symlink is nothing but shortcuts, for example if a file is required in two different places instead of copy pasting the file in two different locations, the file is copied to one of the two locations and in the other location a shortcut to the file(symlink) is created. The source and the symlink can have different names (actually this is the prime use of symlinks).
Let me explain it in a noob friendly manner.
Take the above symlink, it creates a shortcut(symlink) for the command "mksh" and places it in the path of the operating system. The shortcut(symlink) directs to the file "/system/bin/sh" , so whenever the os gets a request to execute the "mksh" command, the actual
binary that gets excuted will be "/system/bin/sh" .
Creating symlinks saves a lot of space because instead of copying the whole file and placing it in requiered places we are just creating shortcuts which directs to the source file which can be placed anywhere in the file system (generally placed in the path of the os).
======================================================================================================
Code:
set_perm_recursive(0, 0, 0755, 0644, "/system");
The above command is used to set permission recursively for the files and folders present inside a folder (in this case for "/system" folder).
Explanation of syntax:
0 - uid - It defines that the following permission is set for the user id 0 .
0 - gid - It defines that the following permission is set for the group id 0 .
0775 - Dirmode - It defines that 0775 permission to set to directories contained within the specified directory.
0644 - Filemode - t defines that 0644 permission to set to files contained within the specified directory.
"/system" - Target directory to set the above mentioned permissions.
======================================================================================================
Code:
set_perm(0, 3003, 06755, "/system/bin/ip");
The above command is used to set permission for a individual file (in this case for "/system/bin/ip" file).
syntax explanation:
0 - uid - It defines that the following permission is set for the user id 0 .
3003 - gid - It defines that the following permission is set for the group id 3003 .
06775 - It defines that 06775 permission to set to the specific file.
"/system/bin/ip" - Target file to set the above mentioned permissions.
Other Permission commands:
Use to push new files to /data partition and /system partition.
ui_print(“Setting permissions…”);
set_perm_recursive(1000, 1000, 0771, 0644, “/data/app”);
set_perm_recursive(0, 0, 0755, 0644, “/system”);
set_perm_recursive(0, 0, 0777, 0777, “/system/etc/init.d”);
set_perm_recursive(0, 2000, 0755, 0755, “/system/bin”);
set_perm(0, 3003, 06755, “/system/bin/ip”);
set_perm(0, 3003, 02750, “/system/bin/netcfg”);
set_perm(0, 3004, 02755, “/system/bin/ping”);
set_perm(0, 2000, 06750, “/system/bin/run-as”);
set_perm_recursive(1002, 1002, 0755, 0440, “/system/etc/bluetooth”);
set_perm(0, 0, 0755, “/system/etc/bluetooth”);
set_perm(1000, 1000, 0640, “/system/etc/bluetooth/auto_pair_devlist.conf”);
set_perm(1002, 1002, 0440, “/system/etc/dbus.conf”);
set_perm(1014, 2000, 0550, “/system/etc/dhcpcd/dhcpcd-run-hooks”);
set_perm(0, 2000, 0550, “/system/etc/init.goldfish.sh”);
set_perm_recursive(0, 0, 0755, 0555, “/system/etc/ppp”);
set_perm_recursive(0, 2000, 0755, 0644, “/system/vendor”);
set_perm_recursive(0, 2000, 0755, 0644, “/system/vendor/etc”);
set_perm(0, 2000, 0755, “/system/vendor/lib”);
set_perm(0, 2000, 0755, “/system/vendor/lib/hw”);
set_perm_recursive(0, 2000, 0755, 0755, “/system/xbin”);
set_perm(0, 0, 06755, “/system/xbin/su”);
set_perm(0, 1000, 0755, “/system/xbin/busybox”);
======================================================================================================
Code:
unmount("/system");
This command just unmount the system.
======================================================================================================
iflesh Command:
Code:
Ifelse(condition),(do_this),(else_do_this);
Example:
Code:
ifelse mount("yaffs2", "MTD", "system", "/system") == "system", ui_print("Mounted!"), ui_print("Mount Failed!");
Ifelse command can be explained simply as asking the system to do something based on the result of a condition.
From example:
The ifelse command would attempt to mount the MTD partition named "system" to "/system".
If the mounting process succeeds (the condition), the script will display "Mounted!", else it will display "Mount Failed!"
======================================================================================================
Code:
abort()
It just abort's the script execution.
Note: It is usually paired with some other command for example the getprop command or with ifelse. Independently specifying abort() in the updater-script will kill the script abruptly right there so use this command carefully.
======================================================================================================
Code:
show_progress(fraction,duration)
Code:
show_progress(0.2,5);
fraction = a fraction of the bar (more on that in a moment)
duration = seconds
The "seconds" part just means how long the progress bar should take to fill up to the new level. It will not delay your script in any way: it will only take this much time if something else in the script is also taking that much time.
For example, if you run this snippet, you can watch the progress bar partially fill up pieces at a time. Each piece will take 5 seconds to fill, then pause for 2 seconds before the next piece starts (sleep command is for 7, so after the progress bar is done its 5 seconds of movement, there are 2 seconds of sleep left until the next command)
======================================================================================================
ALWAYS LEAVE TWO BLANK LINE AT THE END OF THE update-script (if the code contains 50 lines then 52 lines should be visible in the notepad++ including two blank line after the end of the script)
======================================================================================================
HOPE I HELPED YOU GUYS..... IF I MISS SOMETHING PLEASE LET ME KNOW.... AND DON'T FORGET TO PRESS THANKS....:good:
For More Info visit: http://forum.xda-developers.com/wiki/Edify_script_language
Reserved
Reserved
Excellent guide!!, thanks , it will help me a lot.
xxkirianxx said:
Excellent guide!!, thanks , it will help me a lot.
Click to expand...
Click to collapse
Its good that it helped you!!!
If I want to remove system folder and data folder so is it possible without any wrong effects
Sent from my Symphony V80 using XDA-Developers mobile app
lkdevil said:
If I want to remove system folder and data folder so is it possible without any wrong effects
Sent from my Symphony V80 using XDA-Developers mobile app
Click to expand...
Click to collapse
Whole system folder or a folder inside /system
META-INF Folder
hi. @TheRoyalSeeker
we only edit what in "updater-script" ( to make it flashable via recovery )
now my question is :
1. is (update-binary) always suitable for all android platform - KK, LP, even MM ?
2. or is it (update-binary) always suitable for any devices ?
if no.. so..
I believe I can make "META-INF" Folder or "updater-script" by myself, but for "CERT.RSA" , "CERT.SF" , "MANIFEST.MF" and "update-binary" could you tell me how or from where can I take or pull those file ?
I'm stuck on those 4 files
if yes.. so..
I dont really bother anymore, I just download any "template.zip" which is containing those files, and only editing "updater-script"
thank you very much for your reply. I'm kindly appreciate anyhelp.
maz izaackovich said:
hi. @TheRoyalSeeker
we only edit what in "updater-script" ( to make it flashable via recovery )
now my question is :
1. is (update-binary) always suitable for all android platform - KK, LP, even MM ?
2. or is it (update-binary) always suitable for any devices ?
if no.. so..
I believe I can make "META-INF" Folder or "updater-script" by myself, but for "CERT.RSA" , "CERT.SF" , "MANIFEST.MF" and "update-binary" could you tell me how or from where can I take or pull those file ?
I'm stuck on those 4 files
if yes.. so..
I dont really bother anymore, I just download any "template.zip" which is containing those files, and only editing "updater-script"
thank you very much for your reply. I'm kindly appreciate anyhelp.
Click to expand...
Click to collapse
"update-binary" is pretty much universal and the only problem that might occur is with x86 devices.
For extracting "update-binary" and other files you can use your ROM's zip.
Use template zip, i don't think any problem will occur.
TheRoyalSeeker said:
Disclaimer
For More Info visit: http://forum.xda-developers.com/wiki/Edify_script_language
Click to expand...
Click to collapse
bundle of thanks brother i really really appricate your hard work, today XDA successfull coz XDA have your kind of peoples
brother its help me alot,
i want to know something , i extracted the lollipop rom , the format it system,img,ext4 ........now i change the some permissions
now i want to again repack the rom so how can i repack it? pack in img,ext4
and 2nd Q is that,
i create a zip file , from stock system,img,ext4 and after create with meta folder, during installation in end its says , end with error 7 etc
after i reboot so it take 5 minuts and after BB is unknown with null imei, why?
Mr Hassan said:
bundle of thanks brother i really really appricate your hard work, today XDA successfull coz XDA have your kind of peoples
brother its help me alot,
i want to know something , i extracted the lollipop rom , the format it system,img,ext4 ........now i change the some permissions
now i want to again repack the rom so how can i repack it? pack in img,ext4
and 2nd Q is that,
i create a zip file , from stock system,img,ext4 and after create with meta folder, during installation in end its says , end with error 7 etc
after i reboot so it take 5 minuts and after BB is unknown with null imei, why?
Click to expand...
Click to collapse
Sorry, but I don't know how to repack system.img.ext4, i have never made a rom before or edited yet, so i will be unable to help about that.
Error 7 generally occurs due to some wrong scripting in updater-script or by using incompatible update-binary.
You can share your updater-script here, so i can check it.
TheRoyalSeeker said:
Sorry, but I don't know how to repack system.img.ext4, i have never made a rom before or edited yet, so i will be unable to help about that.
Error 7 generally occurs due to some wrong scripting in updater-script or by using incompatible update-binary.
You can share your updater-script here, so i can check it.
Click to expand...
Click to collapse
thanks for reply, check it
Mr Hassan said:
thanks for reply, check it
Click to expand...
Click to collapse
Sorry for replying too late, I have been too much busy lately and that's why I haven't been using XDA since last 20 days.
I am sure you might have fixed the problem by yourself as it has been many days since you posted the above post.
Again just want to apologise for not being able to reply.
TheRoyalSeeker said:
Sorry for replying too late, I have been too much busy lately and that's why I haven't been using XDA since last 20 days.
I am sure you might have fixed the problem by yourself as it has been many days since you posted the above post.
Again just want to apologise for not being able to reply.
Click to expand...
Click to collapse
thanks for again your reply ,
now i,m in next step, kindly if you have time so please visit and share your experience
https://forum.xda-developers.com/android/help/repack-img-giving-error-odin-invalid-t3577719