what mmcblk to mount for data extraction for updater.script - ONE Q&A, Help & Troubleshooting

i am trying to custom some gapps, so i can install some apps i want, what mmcblk0 is used to mount data folder so i can install some data/app apps through updater.script
thank u

Bradl79 said:
i am trying to custom some gapps, so i can install some apps i want, what mmcblk0 is used to mount data folder so i can install some data/app apps through updater.script
thank u
Click to expand...
Click to collapse
You need this:
1. Make sure you have the folder data/app in the root of the zip file with included .apk
2. Make a backup
Add this in the updater-script
3. mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/data", "/data");
4. package_extract_dir("data", "/data");
5. set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
6. unmount("/data");
Save the edited updater-script and put it back in the zip and install it ....make a backup before!!!
Make sure you edited the updater-script correctly!
The 3 lines are sorted by number 3-6.
I hope i helped you

Thank u so much

Related

Need some scripting advice

Hoping someone with some scripting experience on the Nexus S can look at this and answer my question. Moving to the Nexus S 4G from the Epic. If I wanted to install apps to /data or copy files to /sdcard during flash the lines below would accomplish this. However, on the Nexus S, it doesn't seem to work. I HAVE searched but can't find the answer. I have noticed that no one seems to incorporate this in any of the updater-scripts I have seen here. I realize the Nexus is different than the Epic by it's very nature but I'm still wondering if this is possible and if so, how? Thanks in advance for your time.
package_extract_dir("data", "/data");
package_extract_dir("sdcard", "/sdcard");
set_perm (1000, 1000, 0771, "/data/app");
Click to expand...
Click to collapse
You need to mount those partitions first
When mounting, use:
data: /dev/block/platform/s3c-sdhci.0/by-name/userdata
Code:
mount("ext3", "EMMC", "/dev/block/platform/s3c-sdhci.0/by-name/userdata", "/data");
sdcard: /dev/block/platform/s3c-sdhci.0/by-name/media
Code:
mount("vfat", "MTD", "/dev/block/platform/s3c-sdhci.0/by-name/media", "/sdcard"); (I think)
dsixda said:
You need to mount those partitions first
When mounting, use:
data: /dev/block/platform/s3c-sdhci.0/by-name/userdata
Code:
mount("ext3", "EMMC", "/dev/block/platform/s3c-sdhci.0/by-name/userdata", "/data");
sdcard: /dev/block/platform/s3c-sdhci.0/by-name/media
Code:
mount("vfat", "MTD", "/dev/block/platform/s3c-sdhci.0/by-name/media", "/sdcard"); (I think)
Click to expand...
Click to collapse
I wanted to take a second and thank you very much. You were right on the money. This is a bit of a change from the Epic for me. I appreciate you taking the time to help me out.
Medic Great to see you over here enjoy your NS4G, your really going to dig this phone.

[Guide] Edify Script Tutorial - Replacing the Google Market

Return to Contents Page - doubleshot Developers Reference
This guide will teach you how to write an Edify script that replaces the Google market with a different version.
Big thanks to charlieb620 for posting the new market .apks with different color schemes, see the thread Here for more market colors.
The Google market is a great example for a guide on how to replace an app, because not only is it a system app but it's one with a lot of dependencies and will teach you how to deal with this. This is also an app you can't just install an .apk file for, you have to take specific steps to install it.
If you were going to just install a new Google market, you would have to:
Stop all apps that require market licensure to work, halt the market processes, delete the old vending.apk. Then you have to delete the market data directory at /data/data/com.android.vending and find the dalvik-cache file that belongs to the market ( [email protected]@[email protected] ) and delete that too.
Then you rename the new market .apk file to Vending.apk and use root explorer to copy it into your /system/app directory. Once there, you long-press on the Vending.apk file and select 'permissions' from the menu that pops up.
Change the permissions to read/write for owner, read for group, read for others, and nothing for the bottom 3 check boxes. Now it reads rw-r--r-- like all the other apps in the /system/app directory.
Then you reboot your phone and it should work, but you should clear the whole dalvik-cache in recovery, and you should clear cache in recovery too, so all the dependencies on the market get rebuilt the right way.
Click to expand...
Click to collapse
Who want's to deal with all that, and still have it maybe not work right?
No, the right way to replace the market is while the system is down, so doing it as an update you flash through clockworkmod is really the correct answer.
I will assume a windows computer from here on out - that's what I have.
Let's walk through this, and start by listing what you need to begin:
1 - A program you can write the script in. notepad++ is preferred.
2 - A tool to sign your update package. This one is the one i've been using. XDA link. Must be in your main directory, C:
3 - The right update-binary file to work with the MT4GS. I attached the one i've been using to this thread. Thank computerkid23 for that. Go into your signing tool and go to:
/update/META-INF/com/google/android/
...and replace the update-binary with the new one. Here also:
update-binary
Download Link
MD5: f570141f6c8cf7273a58228d0241704d
Size: 190.04 KB
Or you could hit post 10 of this thread for a flashable zip template file.
4 - Some knowledge of Edify scripting. I wrote up some notes that covers some of it, but also links to other threads around XDA with Edify script information. Read up on it, my link Here
5 - A new market .apk file to play with. Here is where ours came from, and it's called Dark.apk
6 - winrar
7 - A MT4GS phone to test your script on, before releasing it to the community.
Now that that we have that all taken care of, let's get started:
1 - Go to the flashable zip builder folder, go to the update folder, then system, and then make a new folder called app
2 - In this new folder, place the new market.apk and rename it to Vending.apk - the capital V is important.
3 - go back up 2 levels to the update folder, and then go to /META-INF/com/google/android/ and open updater-script in Notepad++
4 - Select all and then delete all the text in the updater-script file. Once done, move on to the next part of the guide.
Writing the script:
Since this is my tutorial, i'm going to pass on a concept that means a lot to me - which is formatting the printed output on the screen during installation to be useful. 23 lines down of 40 characters wide is our window to work with.
We will also be using the printed output to the screen to keep the user updated instead of using a progress bar, it's nice to keep them from thinking their phone froze.
Start out by typing these 3 lines of code:
Code:
ui_print("");
ui_print("MT4GS - Market Update Install");
ui_print("");
The ui_print("") command will print to the screen anything between the quotes in the parenthesis. After about 40 characters it will split your text to a new line, wherever the break happens. Could be in the middle of a word.
The second line is the title of our script. When the script is done running, in clockworkmod 4.0.0.9, this will be at the very top of the screen on the phone.
The third line will print blank, just like the first, and seperates our text output to make it easier to read on the MT4GS screen.
The ; character tells the phone to read the next line of code.
Next, we'll type in this code:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p22", "/system");
ui_print("Removing old market ...");
delete("/system/app/Vending.apk");
unmount("/system");
ui_print("");
The mount command will make a partition ready to do things to. Unmounted partitions can be formatted, for anything else they need to be mounted. The way this mount command is written mounts the /system partition specifically on the MT4GS phone.
Next we print a line saying what we are about to do.
Then we do it, which is to delete the old Vending.apk - this is the market app.
Then we unmount the /system partition, since we are done with it for now. This is a good practice to get into, in my opinion, because you won't forget to unmount the partition when you are done with it and you won't accidentally do something to it while you aren't using it.
Lastly, we print a blank line of text to keep things clean on the output screen. We are up to 5 lines of printed text so far.
Next, we'll type in this code:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/data");
ui_print("Wiping old market data ...");
delete_recursive("/data/data/com.android.vending");
ui_print("");
ui_print("Wiping dalvik-cache ...");
delete_recursive("/data/dalvik-cache");
unmount("/data");
ui_print("");
Again, mounted the /data partition, called for specifically for the MT4GS phone.
Next we print a line saying what we are about to do.
Then we do it, which is to delete the old market /data directory located at /data/data/com.android.vending
Then we print a blank line of text, and another line saying what we are about to do.
Then we do the next thing, which is to wipe the dalvik cache. It's located at /data/dalvik-cache, so we are just going to delete the whole folder. A new one will be generated by Android on the next boot. This is the same as if you did it from the clockworkmod menu.
Then we unmount the /data partition, since we are done with it.
Lastly, we print a blank line. We are up to 9 printed lines so far.
Next, we'll type in this code:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/cache");
ui_print("Wiping cache ...");
delete_recursive("/cache");
unmount("/cache");
ui_print("");
Again, mounted the /cache partition, called for specifically for the MT4GS phone.
Next we print a line saying what we are about to do.
Then we do it, which is to wipe the /cache. We just wipe the whole partition with the delete recursive command, it's the same as if you did this from the clockworkmod menu.
Then we unmount the /cache partition, since we are done with it.
Lastly, we print a blank line. We are up to 11 printed lines so far.
Next, we'll type in this code:
Code:
mount("ext4", "EMMC", "/dev/block/mmcblk0p22", "/system");
ui_print("Installing new market ...");
package_extract_dir("system", "/system");
set_perm(0, 0, 0644, "/system/app/Vending.apk");
unmount("/system");
ui_print("");
ui_print("...Finished.");
Again, mounted the /system partition. Notice it's the second time we've mounted the same partition. This time, we are going to put on instead of taking away.
Next we print a line saying what we are about to do.
Then we do it, which is to copy the contents of the /system/app folder included in our script to the /system/app folder on the phone. This puts the new Vending.apk file where it is supposed to be.
Then we set the permissions for the new Vending.apk file, this is a very important step. This makes the permissions description on the file read rw-r--r-- like the rest of the files in the /system/app folder.
Then we unmount the /system partition.
Then we print a blank line, and then the last line which says we are done. This puts us at 14 lines, we still need 9 more.
Since we still ned 9 more lines to fill the output screen so that your script output is all the user sees when it's done, heres what I did:
Code:
ui_print("");
ui_print("New Market application provided by:");
ui_print("");
ui_print("charlieb620 at XDA");
ui_print("");
ui_print("Press your hardware back button, then");
ui_print("select 'reboot system now' from the main");
ui_print("menu to continue.");
ui_print("");
I credited the person who provided the market .apk file, then told the user what to do next now that the script is done.
I am sure you could find a useful way of using any blank space you have, or managing the 23 lines of print you get when it's over.
Reading through my notes thread that I linked should get you set in the right directions for any further information you need about commands or their syntax.
The only thing not covered in-depth yet in any of my guides are permissions as far as this script is concerned, but that's coming. Meantime, you can find the information you need by browsing through XDA.
We have successfully removed the old market, cleared all the temporary files that had old market information, installed the new market in the correct location, and then set the proper permissions for the file.
This script is now a self contained update, where all the user has to do is run this script and then reboot their phone. No need to format this, wipe that, it's all done for them by the script itself.
The last steps in the process to make our zip is to save the file we just edited, which looks like this:
Code:
ui_print("");
uiprint("MT4GS - Market Update Install");
ui_print("");
mount("ext4", "EMMC", "/dev/block/mmcblk0p22", "/system");
ui_print("Removing old market ...");
delete("/system/app/Vending.apk");
unmount("/system");
ui_print("");
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/data");
ui_print("Wiping old market data ...");
delete_recursive("/data/data/com.android.vending");
ui_print("");
ui_print("Wiping dalvik-cache ...");
delete_recursive("/data/dalvik-cache");
unmount("/data");
ui_print("");
mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/cache");
ui_print("Wiping cache ...");
delete_recursive("/cache");
unmount("/cache");
ui_print("");
mount("ext4", "EMMC", "/dev/block/mmcblk0p22", "/system");
ui_print("Installing new market ...");
package_extract_dir("system", "/system");
set_perm(0, 0, 0644, "/system/app/Vending.apk");
unmount("/system");
ui_print("");
ui_print("...Finished.");
ui_print("");
ui_print("New Market application provided by:");
ui_print("");
ui_print("charlieb620 at XDA");
ui_print("");
ui_print("Press your hardware back button, then");
ui_print("select 'reboot system now' from the main");
ui_print("menu to continue.");
ui_print("");
and then go back to the flashable zip builder folder, and then into the update folder. Select both META-INF and system folders, and zip in winrar. ZIP not RAR. Name your zip New_Market.zip
Now move this zip file up one level, to the main flashable zip folder. Drag it onto the DRAGandDROPsignONLY.bat file in the folder.
Wait until the dos prompt finishes and closes.
Go to the _out folder and get your new ready to install update, called New_Market_Signed.zip
That's it, just get that to the phone and flash in clockworkmod recovery.
Hope this was helpful!
*Unzip the update-binary to use.
*Go to charlieb620's Thread for ready-made install scripts for the rest of the market colors.
wow you really put a lot of work into your write ups lol =D. good job.
I don't think I've appreciated a single post on xda more than this one. Thank you. This is the kind of thing I love.
My goodness... you never cease to amaze me Blue. As a developer I've never had much patience for write-ups, so I can applaud your efforts! Learning the hard way blows (although does yield better lessons sometimes)!
On a side note, I applied the Dark Market update zip thinking that it applied the (regular) market... I wasn't really sure what "Dark" stood for. So I opened it and was surprised to see a - you guessed it - DARK version of the newest Market. Anyways, point being is that I opened it, checked it out, closed it and a few minutes later it was uninstalled and replaced with the regular (newest) Market. I like the regular Market, so it worked out for the best, but just figured I'd let you know.
nbetcher said:
My goodness... you never cease to amaze me Blue. As a developer I've never had much patience for write-ups, so I can applaud your efforts! Learning the hard way blows (although does yield better lessons sometimes)!
On a side note, I applied the Dark Market update zip thinking that it applied the (regular) market... I wasn't really sure what "Dark" stood for. So I opened it and was surprised to see a - you guessed it - DARK version of the newest Market. Anyways, point being is that I opened it, checked it out, closed it and a few minutes later it was uninstalled and replaced with the regular (newest) Market. I like the regular Market, so it worked out for the best, but just figured I'd let you know.
Click to expand...
Click to collapse
You know, it's funny - one of those little things that's a D'oh! moment.
When I first saw that, I thought you meant you just installed a different (or your stock) version of the market over it.
I browsed the thread again since I directed someone here and when I got to the bottom I just realized you were letting me know Google forced a market update when you connected to them. Funny I didn't read that right sooner.
Hi guys!
If i want to Freeze some app in updater-script, how could I do it?
What codes i have to use?
THanks!
Thank you blue! You might not know it but you just contributed to the cause of adding devs to the forum. :thumbup:
Achievement unlocked: knowledge acquired!
sent from a Nokia 3210
is there any syntax highlighter + editor for edify script.?
Notepad ++.....but I don't think it highlights
Template: flashable zip update
Return to Contents Page - doubleshot Developers Reference
nfs1mw said:
is there any syntax highlighter + editor for edify script.?
Click to expand...
Click to collapse
Not sure, I use notepad++ in windows and while my preference is ever for the lightest weight program notepad++ is too awesome to not use, it's the only editor of that type you need on windows pretty much.
If the regular windows notepad could do this stuff without destroying the files i'd use that instead, so i've never checked into anything that was like that in notepad++.
I taught myself html in a notebook with a pen way back when, and the advantages of writing the code down and typing it in beyond the memory exercise itself is not having to jog back and forth between another document on your screen(s) and keeping the actual machine in use more clutter free.
(that said - syntax highlighting and end-user formatting to code in editors is so nice...)
Besides, if the internet dies tomorrow your physical notebook that takes nothing more then opening up and looking at will still work. Then again, i'm anal about backups.
In linux I just use gedit.
----
Flashable Zip Template:
unsigned template zip download:
doubleshot_unsigned_flashable-update_template.zip
Download Link
MD5: 7591ff4996f84a394c46ae375c254a4c
Size: 125.64 KB
Edit before flashing.
signed template zip download:
doubleshot_signed_flashable-update_template.zip
Download Link
MD5: afc51c4bf34dcdd76d1d62061fa3ee5b
Size: 124.25 KB
Edit before flashing.
Zip Contains:
- Empty data folder.
- Empty system folder.
- Empty sdcard folder.
- META-INF folder set up, with the correct update-binary and a template updater-script file.
updater-script template:
- wipe cache
- wipe dalvik cache
- wipe data
- wipe system
- wipe sdcard
- extract whatever ends up in the system, data, sdcard folders.
- clean up
Pastebin of updater-script.​Edit before using, otherwise you will erase everything on the device...
...just delete what you don't want and go from there. I got tired of typing the same stuff in all the time so here ya go.
Compatible with all versions of CWM to date (April 2012) - CWM 4xx Recovery versions don't support format correctly and is why it's not here.
Current CWM is 5xx​
Need to sign it? On windows This one is great.
Want to fill those empty folders? Start with system and this thread:
doubleshot de-odexed system images
Is there anybody know this? Or is there anybody know where to ask this question?
in .zip file (for CWM) there is an updater-script file...
I want to delete some files but i dont want to write the exact names of the files... Is there any way to delete some thing like x*.* or t*.apk or talk*.* etc...
for example if i want to delete all the files which starts with "a" letter... How can i do this?
I know
delete("...");
delete_recursive("...");
commands... But i couldn't find out if there is any way to do this?
Thank you for your answers...
Thank you for taking the time to write this. I had some questions regarding editing updater-scripts (for a different device) and this helped me out a lot.
-h311s|DR0ID
.
Quick question, for a delete command can you use a wildcard?
Like this:
delete("/system/app/SamsungHub.*");
I only ask because some roms have .apk and some are .odex (for example). Looking to make one script work for any stock rom on my phone.
Also, according to my TWRP log I'm able to mount /system but /data threw an error:
mount: failed to mount /dev/block/mmcblk0p29 at /data: Device or resource busy
Looks right in the partition area:
Symlink_Path: /data/media/0
Symlink_Mount_Point: /sdcard
Primary_Block_Device: /dev/block/mmcblk0p29
Any thoughts why?
I don't know if there is an option for wild card, never tried. But it can't hurt just to throw in a remove line for both options, simple fix
Being you have an emulated SD, when flashing something from data I believe data partition is mounted by default and that's why it says busy. My best guess is you don't need to add the mount data command
Sent from my Nexus 4 using XDA Premium 4 mobile app

[HOWTO] Patch Your ROM or Make A CWM-Flashable zip.

First, Make a new folder.
In that you put a META-INF copied from some Theme.
And, Make the folders where you want your apps and tweaks to be placed.
Like you may want some apps to go to /system/app...So, Create a folder called system and inside that create a folder called App and paste the application there.
Now, Changes in updater script.
On an ext4 system, I did this.
Remvoe eevrything in the updater-script. Delete eveything.
Now, add these lines
Code:
run_program("/sbin/busybox", "mount", "-t", "auto", "/dev/block/stl9", "/system");
mount("ext4", "system", "/system");
Meaning of the code:
This mounts the system, grants root permission.
Now that system is mounted, We should tell CWM to copy the folder and replace the contents. So, Add these lines:
Code:
package_extract_dir("system", "/system");
Now, Replace the name of the folder you wanna replace and make multiple lines in the same format. (replace in package_extract_dir("yourfoldername","/yourfoldername")
For prinitng the process, add
Code:
ui_print("Installing -NAMEOFYOURROM-PATCH...");
Add this above the extract COMMAND.
Now, Put this into a Zip...Using Win-zip.
When you open the zip you should see META-INF and other folders.
Zip it in that manner.
And, Download Auto-Sign from this place.
Re-name the zip to UPDATE and put it in the autozip folder.
Sign it and you are done!
PRESS THE THANKS...GIVES ME ENCOURAGEMENT. PLEASE.
Thanks a lot ..
was waitting for it ...
but what about symlinking ??
asad007 said:
Thanks a lot ..
was waitting for it ...
but what about symlinking ??
Click to expand...
Click to collapse
Just write:
symlink("<target>", "<based-dir>")
Sent from my GT-S5660 using Tapatalk
If i wanna replace some apps in /system/apps, i add the following code?
run_program("/sbin/busybox", "mount", "-t", "auto", "/dev/block/stl9", "/system");
mount("ext4", "system", "/system");
package_extract_dir("system", "/system");
Click to expand...
Click to collapse
lomash said:
If i wanna replace some apps in /system/apps, i add the following code?
Click to expand...
Click to collapse
package_extractdir - line and line with mount is enough. You don´t need the line above
you mean this?
mount("ext4", "system", "/system");
package_extract_dir("system", "/system");
Click to expand...
Click to collapse
lomash said:
you mean this?
Click to expand...
Click to collapse
exactly

[Q] Is it possible to flash a kernel without CWM? Android/Ubuntu Dualboot on SBKv2

For the purpose of dualbooting between Ubuntu and Android on a sbkv2 device, I was wondering if it would be safe to overwrite the kernel partition (/dev/mmcblk0p4, apparently?) while booted into either Android or Ubuntu, skipping cwm entirely. This would probably be followed by an immediate reboot in any case.
From dissecting an update.zip it seems like mmcblk0p4 is where the kernel is written to. I'm just not totally sure that the partition numbers don't change for some reason (?) between cwm and android. Is it the right partition? Has anyone tried this?
It's possible to do and not too hard, boot into android. (Cwm just makes it easier on you.)
Here's the flash update-script from Guevor's kernel:
Code:
show_progress(0.100000, 0);
run_program("/sbin/busybox", "mount", "/system");
show_progress(0.300000, 0);
ui_print("Modules...");
delete_recursive("/system/lib/modules");
package_extract_dir("system", "/system");
show_progress(0.200000, 10);
show_progress(0.100000, 0);
unmount("/system");
ui_print("Kernel..");
package_extract_file("kern.blob", "/tmp/kern.blob");
run_program("/sbin/busybox", "dd", "if=/tmp/kern.blob", "of=/dev/block/mmcblk0p4");
delete("/tmp/kern.blob");
Put the modules somewhere on your Tf, and also the 'blob' file (Preferably somewhere easy like /sdcard/)
So take the modules out of /system/lib and put them in /system/lib/modules (Cut and paste with a root explorer)
Then run the dd command to flash the kernel:
dd if=/where/you/put/the/blob/file/on/yourtf of=/dev/block/mmcblk0p4
Note that the blob has no file extension and doesn't need one.
Worked going from Android to Ubuntu, but not in the other direction. I was still able to get into cwm so whatever. Thanks for the advice.
Mmcblk0p4 is the staging partition. If it still works, I suppose it would be possible, but you would need to know what the partition name is. It should be listed in whatever flash.cfg file you used to reformat for ubuntu. Once you know the name, you can use the blob tools to pack up the boot.img(LNX on stock partition tables) and *maybe* flash via staging.
sent while running with scissors
Oh, I should clarify that I didn't repartition for ubuntu. I'm using a loop mounted filesystem on the internal storage.

[Q] Modify Superuser to Supersu in updater-script

How do you change Superuser to SuperSU in the update.zip for rooting the Xperia J??
Since i found out that SuperSU > Superuser I've been trying to replace the app in the updater-script so that when i root my phone by flashing through cwm the superuser app is SuperSU instead of Superuser.
Simply changing the app in /system/app from Superuser to SuperSU and changing the updater-script
set_perm(0, 0, 0644, "/system/app/Superuser.apk");
to
set_perm(0, 0, 0644, "/system/app/SuperSU.apk");
would result in an error.

Categories

Resources