Hi,
At first I want to cook the pdamobiz customized AKU23 rom to make it clean, so I read this thread http://forum.xda-developers.com/viewtopic.php?t=34171 and decided that I need to convert the nbf file found in the rom package to nba first.
So I tried using xda3nbftool and got the following result:
Code:
E:\makerom>xda3nbftool
Usage: xda3nbftool [-u] { -c | -e | -d } inputfile outputfile password
-c : calculate crcsum of file
-u : updates the calculated checksum
-e : encrypt inputfile
-d : decrypt inputfile
-x : xor inputfile with password ( should be a number )
-t : automatically find the xor key, with -x auto decrypt
-sd : change devicetype
-so : change operatorname
-sl : change language
-sv : change version
-v : verbose
HimaUpgradeUt v0400, v0500 use password HTC
HimaUpgradeUt v0600 uses password 921211
HimaUpgradeUt v0910 uses xor with 0x89124137, 0x25863614 or 0x12345678
HimaUpgradeUt v1000 uses xor with 0x20040304, 0x20040305 or 0x20040306
E:\makerom>xda3nbftool -t -x nk.nbf nk.nba
NK.nbf: Permission denied
ms_.nbf: No such file or directory
Radio_.nbf: No such file or directory
E:\makerom>
Then I tried typhoon nbf tool v0.4, thinking maybe with it I can dump the OS part. But I only found options to dump rom into .n_d or .n_e format, still not the nba file I wanted.
And then I read a thread saying we can use typho5 to extract the nbf file into several nb files and then use winimage to edit it...
Now I am completely lost! Please tell me by which way I can remove those utilities I don't want from the OS rom, would you?
Related
Hi Guys Please Help Me If U Can......Thanx
Well the directions say that
The nbf file is configured for operator ID O2 and language ID WWE.
If you need to change these, carry out all the steps below.
The Step-by-Step Install or Upgrade Procedures:
1. Extract the decrypted versions of the nbf files
by entering the following commands at the command prompt:
xda2nbftool -x NK.nbf NK.nba 0x20040304
xda2nbftool -x Radio_.nbf Radio_.nba 0x20040306
2. Modify the operator ID in the nbfs to the value you require by entering the following commands at the command prompt substituting <operator> with the required value:
xda2nbftool -sd PH10 -so <operator> -sl WWE NK.nba
xda2nbftool -sd PH10 -so <operator> -sl WWE Radio_.nba
3. Update the crc values for each of the decrypted files
by entering the following commands at the command prompt:
xda2nbftool -c -u NK.nba
xda2nbftool -c -u Radio_.nba (optional, only if you are installing radio ROM)
4. Encrypt the files back into the nbf files by entering
the following commands at the command prompt:
xda2nbftool -x NK.nba NK.nbf 0x20040304
xda2nbftool -x Radio_.nba Radio_.nbf 0x20040306
First Of All I Dont Know How To Get To The Command Prompt........am i suppose to start command prompt on my comp or on my pda?????? i dont understand.........please explain it to me if u can.........thanksa lot......
press start button on the pc
pick RUN
type CMD
press ok
hi!!
i downloaded llbasha-WM5-AKU35pp16c3 rom
i want extract os.nb file from nk.nbf with typho5 utility (typhoonbftool_v5),i got this error:
unknow header format, and it abort work.
other way:
i want extract os.nb file from nk.nba with prepare_imgfs, and i got this error:
searching for IMGFS start.......Not found!!!
anybody know if it can extract some file from a rom already cooked ???
thank in advance
use xda2nbftool
open command prompt -> xda2nbftool.exe -c nk.nbf nk.nba 0x20040304 press enter.
Hi,
I'm trying to extract XIP part of an orange rose rom here :
http://forum.xda-developers.com/showthread.php?t=450221
I know how to obtain OS.nb with nbhextract, but i don't know how to find "rom begin".
If i use nbsplit to obtain os.nb.payload, i don't know what option i must use.
And after, if i use "kaiser" option with nbsplit, i don't know how to extract xip with rommaster, and what "begin" option i can give.
How i can find it ?
Thanks.
No idea please ?
I always have this problem.
Thanks.
try this:
Code:
RomMaster.exe -x -w 5 -b 0x320000 OS.nb.payload -o xip.bin
good luck
Hi,
I was able to :
nbsplit.exe -kaiser OS.nb
and :
RomMaster.exe -x -w 5 -b 0x320000 OS.nb.payload -o xip.bin
and :
dump xip.bin with XIPPort
I obtained :
OUT and files usually found in xip.bin
BUT, how i can find this start adress 0x320000 ?
This value is for kaiser, but i don't konw if it's ok with others devices.
And how i can know if "kaiser" value is good with nbsplit ?
Thanks.
moved to Q&A section. please post your questions in the Q&A section next time.
fireburned said:
Hi,
I was able to :
nbsplit.exe -kaiser OS.nb
and :
RomMaster.exe -x -w 5 -b 0x320000 OS.nb.payload -o xip.bin
and :
dump xip.bin with XIPPort
I obtained :
OUT and files usually found in xip.bin
BUT, how i can find this start adress 0x320000 ?
This value is for kaiser, but i don't konw if it's ok with others devices.
And how i can know if "kaiser" value is good with nbsplit ?
Thanks.
Click to expand...
Click to collapse
Read the last few sentences of my post. It may be the long way to go about it, but it works for me.
http://forum.xda-developers.com/showpost.php?p=2846121&postcount=58
KMFM$ said:
Read the last few sentences of my post. It may be the long way to go about it, but it works for me.
http://forum.xda-developers.com/showpost.php?p=2846121&postcount=58
Click to expand...
Click to collapse
I always have a problem.
I want to extract XIP from this rom :
http://forum.xda-developers.com/showthread.php?t=450221
I tried this :
Code:
nbhextract.exe *.nbh
I obtain :
03_OS.nb => renamed to OS.nb
I tried :
Code:
ImgfsFromNb.exe OS.nb imgfs.bin
ImgfsFromNb 2.1rc2
ImgFs partition starts at 0x00000000 and ends at 0x00000000
Dumping IMGFS at offset 0x006c6c00 (size 0xff939400)
Done!
How i can use nbsplit ?
How i can extract XIP ?
I don't know how i can use nbsplit to obtain OS.nb.payload and OS.nb.extra
I tried rommaster to extract XIP (but it doesn't works because i don't use OS.nb.payload i think) :
Code:
RomMaster.exe -x -w 5 -b 0x006c6c00 OS.nb -o xip.bin
[Info] It is a common ROM.
[Error] File is damaged, end address small than start address.
[Error] File is damaged, end address small than start address.
Could you help me please ?
Bye.
No idea, please ?
I have successfully dumped the ROM from my Brand New VZW Touch Pro 2 ... Here is how I did it. You will need itsutils to dump the ROM, and imgfstools to extract it.
Dump:
1) List partitions - Should show Part00 to Part03 - pdocread -l
2) Get Part00 address - pdocread -w -d FLASHDR -p Part00 -t -b 0x800 - Find the partition address (displayed as 0x######)
3) Dump Part00 - Use address from step 2 - pdocread -w -d FLASHDR -p Part00 -b 0x800 0 0x###### Part00.raw
4) Repeat steps 2 & 3 for Part01, Part02 and Part03 ... MAKE SURE YOU USE THE CORRECT ADDRESSES
Partitions:
Part00 - Core XIP? (May have something to do with AutoUpdate)
Part01 - XIP
Part02 - OS IMGFS
Part03 - User Storage (TFAT)
Extract XIP (Part00 and Part01 ... You will need bepe's dumpxip.exe from ervius visual kitchen):
1) Make sure there is not an XIP folder (if so, rename it) and run dumpxip Part00.raw
2) Rename XIP folder to XIP_00 (ren XIP XIP_00)
3) Make sure there is not an XIP folder (if so, rename it) and run dumpxip Part01.raw
4) Rename XIP folder to XIP_01 (ren XIP XIP_01)
Extract IMGFS (Part02):
1) imgfstodump Part02.raw - This will create a folder called dump, and extract the contents to it.
View User Storage (Part03):
1) Mount Image using DaemonTools Lite
To rebuild flashable ROM from DUMP (Currently OS Only, No radio or SPL):
1) You need a base_os.nb.payload for your device ... See below for details
2) Convert OS IMGFS (Part02.raw) to nb.payload (new-os.nb.payload) imgfstonb Part02.raw base_os.nb.payload new-os.nb.payload
3) Insert XIP (Part01.raw) into new-os.nb.payload implantxip Part01.raw new-os.nb.payload
4) Merge os-new.nb.payload into os-new.nb nbmerge -kaiser new-os.nb
5) Create os-new.nbh nbhutil, Select "Touch_Pro2" under "Target Device", change RHOD*** to RHOD500, click the ... box next to OS, and select new-os.nb, click Build NBH and select where to save NBH file.
How to get a base os.nb.payload:
1) Download a stock ROM and extract RUU_Signed.nbh
2) Extract RUU_Signed.nbh nbhextract RUU_Signed.nbh - This will list the files extracted ... The one you need is ##_OS.nb ... Copy as os.nb copy ##_OS.nb OS.nb
3) Split OS.nb to OS.nb.payload nbsplit -kaiser OS.nb
4) Create OS.imgfs.bin imgfsfromnb OS.nb.payload OS.imgfs.bin
5) Create empty directory called 'DUMP' (If a DUMP folder exists, rename it) mkdir DUMP
6) Create a blank IMGFS file imgfsfromdump OS.imgfs.bin blank_imgfs.bin
7) Create base_os.nb.payload imgfstonb blank_imgfs.bin OS.nb.payload base_os.nb.payload
Dump SPL and Radio
Does anyone know how to do this?
Oh my god I found the answer on "how to dump a rom from the TP2"!
Could someone rename the topic in something like "official guide" or stick it?
I think it could be useful for a lot of people..
dj13241 said:
How to get a base os.nb.payload:
1) Download a stock ROM and extract RUU_Signed.nbh
2) Extract RUU_Signed.nbh nbhextract RUU_Signed.nbh - This will list the files extracted ... The one you need is ##_OS.nb ... Copy as os.nb copy ##_OS.nb OS.nb
3) Split OS.nb to OS.nb.payload nbsplit -kaiser OS.nb
4) Create OS.imgfs.bin imgfsfromnb OS.nb.payload OS.imgfs.bin
5) Create empty directory called 'DUMP' (If a DUMP folder exists, rename it) mkdir DUMP
6) Create a blank IMGFS file imgfsfromdump OS.imgfs.bin blank_imgfs.bin
7) Create base_os.nb.payload imgfstonb blank_imgfs.bin ##_OS.nb.payload base_os.nb.payload
Click to expand...
Click to collapse
Aloha Man,
- i'm trying to use your tutorial to Dump and Rebuild an HTC ROSE (S740) ROM
- i'm at the point where i've downloaded the RUU_Signed, and folowed the above procedure until step 7
- in step 2, i've replaced ## in ##_OS.nb with 03, witch is the number of the file after nbhextract
- i can't find 03_OS.nb.payload and at step 7, the command spits out and error :
" ImgfsTools 2.1rc2>imgfstonb blank_imgfs.bin 03_OS.nb.payload base_os.nb.payload
ImgfsToNb 2.1rc2
Using bigstorage mode
Input file 03_OS.nb.payload cannot be opened. Exiting "
Should i rename
OS.nb.payload to 03_OS.nb.payload or change the syntax on the command input file accordingly ?
tks again alot for your help !
UrbanWarrior said:
Aloha Man,
- i'm trying to use your tutorial to Dump and Rebuild an HTC ROSE (S740) ROM
- i'm at the point where i've downloaded the RUU_Signed, and folowed the above procedure until step 7
- in step 2, i've replaced ## in ##_OS.nb with 03, witch is the number of the file after nbhextract
- i can't find 03_OS.nb.payload and at step 7, the command spits out and error :
" ImgfsTools 2.1rc2>imgfstonb blank_imgfs.bin 03_OS.nb.payload base_os.nb.payload
ImgfsToNb 2.1rc2
Using bigstorage mode
Input file 03_OS.nb.payload cannot be opened. Exiting "
Should i rename
OS.nb.payload to 03_OS.nb.payload or change the syntax on the command input file accordingly ?
tks again alot for your help !
Click to expand...
Click to collapse
You are correct ... Step 7 should should not have the ##_ ... I have corrected the instructions above in my previous post. The command should be:
Code:
imgfstonb blank_imgfs.bin OS.nb.payload base_os.nb.payload
dj13241 said:
To rebuild flashable ROM from DUMP (Currently OS Only, No radio or SPL):
1) You need a base os.nb.payload for your device ... See below for details
2) Convert OS IMGFS (Part02.raw) to nb.payload (new-os.nb.payload) imgfstonb Part02.raw os.nb.payload new-os.nb.payload
3) Insert XIP (Part01.raw) into new-os.nb.payload implantxip Part01.raw new-os.nb.payload
4) Merge os-new.nb.payload into os-new.nb nbmerge -kaiser os-new.nb
5) Create os-new.nbh nbhutil, Select "Touch_Pro2" under "Target Device", change RHOD*** to RHOD500, click the ... box next to OS, and select new-os.nb, click Build NBH and select where to save NBH file.
How to get a base os.nb.payload:
1) Download a stock ROM and extract RUU_Signed.nbh
2) Extract RUU_Signed.nbh nbhextract RUU_Signed.nbh - This will list the files extracted ... The one you need is ##_OS.nb ... Copy as os.nb copy ##_OS.nb OS.nb
3) Split OS.nb to OS.nb.payload nbsplit -kaiser OS.nb
4) Create OS.imgfs.bin imgfsfromnb OS.nb.payload OS.imgfs.bin
5) Create empty directory called 'DUMP' (If a DUMP folder exists, rename it) mkdir DUMP
6) Create a blank IMGFS file imgfsfromdump OS.imgfs.bin blank_imgfs.bin
7) Create base_os.nb.payload imgfstonb blank_imgfs.bin OS.nb.payload base_os.nb.payload
Click to expand...
Click to collapse
Aloha again,
i need some further clarifications if u are so kind :
- i've properly finished the "How to get a base os.nb.payload" section, so now i have a "base_os.nb.payload" file
- going back to point 2 of the section "To rebuild flashable ROM from DUMP (Currently OS Only, No radio or SPL)", i've succesfully executed points 2 and 3 , but when i go to try point 4 nbmerge spits out the following error :
"NBMerge 2.1rc2
Could not open input file os-new.nb.payload"
My Questions :
- where do u use the "base_os.nb.payload" file that's created at the "How to get a base os.nb.payload" step ? since the file is called "base_os.nb.payload" and in the command syntax description u call it : "base os.nb.payload"
- until point 4 of the "To rebuild flashable ROM from DUMP (Currently OS Only, No radio or SPL)" section in the syntax u use the name "new-os.nb.payload" for the file,
- from point 4 on u use the term "Merge os-new.nb.payload into os-new.nb" -> so os-new.nb.payload , and NBmerge is expecting "Could not open input file os-new.nb.payload" but until point for we've created a file called "new-os.nb.payload"
- shouldn't the syntax for the commands from point 2 thru 4 be what NBMerge is expecting ? meaning "os-new.nb.payload"
thanks again for your help!
When I get home from work today, I will run through the steps and eliminate any errors I find.
UrbanWarrior, I have updated the 'Build a Flashable ROM' section step 2 ... I changed the reference to 'os.nb.payload' to 'base_os.nb.payload' ... Let me know if you run into any other issues.
I was trying the steps for my HTCJade to dump my stock ROM. Things were going smoothly however, the step
"Insert XIP (Part01.raw) into new-os.nb.payload implantxip Part01.raw new-os.nb.payload"
fails with an error "XIP File not Specified!"
I noticed that the mentioned step is not following tha syntax of the command:
Usage: implantxip -XIP <xip.bin> -PAYLOAD <.nb.payload> [-ImgStart <hexvalue>] [
-uldr [tryremove] ] [-PP <MbValue>] [-NoCert]
The command expects "xip.bin" but i am giving the argument as Part01.raw as per the step.
What to do? Can anybody help.
svaym said:
I was trying the steps for my HTCJade to dump my stock ROM. Things were going smoothly however, the step
"Insert XIP (Part01.raw) into new-os.nb.payload implantxip Part01.raw new-os.nb.payload"
fails with an error "XIP File not Specified!"
I noticed that the mentioned step is not following tha syntax of the command:
Usage: implantxip -XIP <xip.bin> -PAYLOAD <.nb.payload> [-ImgStart <hexvalue>] [
-uldr [tryremove] ] [-PP <MbValue>] [-NoCert]
The command expects "xip.bin" but i am giving the argument as Part01.raw as per the step.
What to do? Can anybody help.
Click to expand...
Click to collapse
i had the same problem. i just did "implantxip -XIP Part01.raw -PAYLOAD new-os.nb.payload"
Since I tend to modify roms before flashing them to my phone, and sometimes want to do so away from a computer, I ended up writing this. It's an ash script that uses the openssl binary found on most custom roms, and infozip. The sdk test/platform/media/etc keys are included. Usage:
Usage: signapk (options) [command] (files)
commands:
sign FILE sign a .zip or .apk
sign FILE1 FILE2 create a signed copy of FILE1 as FILE2
cert FILE(s) print cert info on FILE's signer
certinfo FILE print detailed cert info on FILE's signer
cmp FILE compare signer of FILE with default/selected cert
cmp FILE1 FILE2 compare signer of FILE1 to signer of FILE2
options:
-k, --key FILE key to sign with
-c, --cert FILE cert to sign with
if -c or -k are not files then they are considered
aliases to builtins (ie -k testkey or -c platform)
-f, --force sign even if cert differs from original
-t, --tmp DIR use DIR for tempdir instead of '/cache'
-d, --debug output debugging
-V, --version print 'signapk v0.3.1'
exit codes:
1: read error (file 1) 2: read error (file 2)
3: write error 4: ssl error
5: zip write error 9: key error
8: sign: cert mismatch 10: cmp: cert mismatch
128: script error 255: user error
Installation:
unpack somewhere. If needed, edit the variables at the top of the script. By default it uses /cache/ for 4 small temporary files.
Faq:
* Why did you include a busybox and openssl? * Some roms don't include the openssl utility. Busybox's unzip refuses to deal with zipaligned apks on alot of roms, because it wasn't compiled with ENABLE_DESKTOP. Busybox's ash is missing things that the script needs, on some roms. The script will use whatever the rom provides, if these binaries are not present. Good luck.
* How do I change the cert? * see signapk --help for cert/key selection flags
* Can I use this in my MarketAppThingy? * Sure, and please let me know. If it's a paid MarketAppThingy, consider sending me a free copy.
Changelog:
release 3: cmp function, key selection, documented exit codes that make sense, and paranoia. Includes trimmed down busybox and openssl binaries. If these are present, script will reload itself to run in it's busybox ash interpreter to avoid broken busybox compiles, and can run without using anything provided by the rom. In theory this means no compatibility issues, but is limited to ARM devices.
release 2: Apparently it's valid to have ANYNAME.SF/ANYNAME.RSA or ANYNAME.DSA. signapk cert and certinfo now handles this. The sign function will blindly write to CERT.SF and CERT.RSA as this is the behavior of the standard SignApk.java. This may be fixed later.
If you don't wanna signup to download attachment, snag this from http://code.google.com/p/signapk/downloads/list
very, very useful. I'm testing this now Signing stuff was always way too complicated.
Cool. Can't wait for someone to make a market app that creates a simple ui to edit update.zips before flashing. Hint hint
I put the files in /system/signapk (new folder)
When i run the script I get the error below. The test file is an unsigned apk exported from eclipse.
Code:
# ./signapk sign /sdcard/unsigned.apk
./signapk sign /sdcard/unsigned.apk
Checksumming /mnt/sdcard/unsigned.apk:
res/layout/main.xml AndroidManifest.xml
resources.arsc res/drawable-hdpi/icon.png res/drawable-ldpi/icon.png res/drawable-mdpi/icon.png classes.dex
[COLOR="Red"]unable to write 'random state'
./signapk: line 132: ./signapk.zip: not found[/COLOR]
#
Any idea what needs changing to fix this?
update: When I used the full path it worked.
Code:
# /system/signapk/signapk sign /sdcard/unsigned.apk
/system/signapk/signapk sign /sdcard/unsigned.apk
Checksumming /mnt/sdcard/unsigned.apk:
res/layout/main.xml AndroidManifest.xml
resources.arsc res/drawable-hdpi/icon.png res/drawable-ldpi/icon.png res/drawable-mdpi/icon.png classes.dex
unable to write 'random state'
adding: META-INF/MANIFEST.MF (deflated 49%)
adding: META-INF/CERT.SF (deflated 48%)
adding: META-INF/CERT.RSA (deflated 33%)
# /system/signapk/signapk cert /sdcard/unsigned.apk
/system/signapk/signapk cert /sdcard/unsigned.apk
/sdcard/unsigned.apk 936EACBE07F201DF SDK Test Key
Was playing around with app inventor and came up with this:
edit: AppInventor does not generate java code and it cannot be worked on further in anything else (i.e eclipse)
I was really hoping I would atleast get the activity xml
Heya, the latest is at http://code.google.com/p/signapk/downloads/list and should fix the zip error. signapk-bb, signapk-zip, and signapk-openssl are static, trimmed down versions of utilities required by the script, and should be extracted to the same directory as the script. If they are not present it will try to use stuff in $PATH
Just throwing it (the obvious) out there that this could enable a new generation of morphs for /data apps
Copy apk,uninstall,morph, install
Hmmmm....
britoso said:
Just throwing it (the obvious) out there that this could enable a new generation of morphs for /data apps
Copy apk,uninstall,morph, install
Click to expand...
Click to collapse
How can i get this to work with a morph and to edit the updater-script?
Someone explain the commands with example...
Another noob question is .. it is for android or pc...
Edit:- Made my own mod here https://forum.xda-developers.com/t/...-apk-zip-within-android.3835975/post-81324327
below code works with latest(1.32.0) busybox
Bash:
#!/system/bin/sh
# depends unzip printf zip openssl
# put zip openssl busybox in PATH
# Usage:-
# Sign.sh key.pk8 key.x509.pem in.zip out.zip
ordie() {
if [ $? -ne 0 ]; then
IFS=" "
$BB printf "$1\n"
exit $2
fi
}
PKEY="$1"
CERT="$2"
ORIG="$3"
TARGET="$4"
BB=busybox
cat "$ORIG" > "$TARGET"; ordie "Cannot write to $TARGET" 3
$BB printf "Checksumming $ORIG:\n"
TMP=$HOME
TMPDIR="$TMP/sign-$$"
TMPPKEY="$TMPDIR/tmp.pkey"
mkdir -p "$TMPDIR/META-INF"; ordie "" 3
$BB printf "Manifest-Version: 1.0\r\nCreated-By: 1.0 (Android SignApk)\r\n\r\n" > "$TMPDIR/META-INF/MANIFEST.MF"
ZIPls=$($BB unzip -qql "$ORIG"); ordie "$ORIG: unzip error" 1
OLDIFS=$IFS
IFS=${IFS:2:2}
for i in $ZIPls; do
IFS=$OLDIFS
set -- $i
if [ "$#" -ge 3 ] && [ "$1" != "0" ]; then
file="${i:30}"
case "$file" in META-INF/MANIFEST.MF|META-INF/CERT.SF|META-INF/CERT.RSA) continue;; esac
$BB printf "$file "
hash=$($BB unzip -p "$ORIG" "$file" | openssl sha1 -binary | openssl base64); ordie "$ORIG: unzip error" 1
ret="Name: $file\r\nSHA1-Digest: $hash\r\n\r\n"
$BB printf "$ret" >> "$TMPDIR/META-INF/MANIFEST.MF"
hash=$($BB printf "$ret" | openssl sha1 -binary | openssl base64)
$BB printf "Name: $file\r\nSHA1-Digest: $hash\r\n\r\n" >> "$TMPDIR/META-INF/CERT.SF.temp"
fi
done
$BB printf "\n"
mfhash=$(cat "$TMPDIR/META-INF/MANIFEST.MF" | openssl sha1 -binary | openssl base64)
$BB printf "Signature-Version: 1.0\r\nCreated-By: 1.0 (Android SignApk)\r\nSHA1-Digest-Manifest: $mfhash\r\n\r\n" > "$TMPDIR/META-INF/CERT.SF"
cat "$TMPDIR/META-INF/CERT.SF.temp" >> "$TMPDIR/META-INF/CERT.SF"
openssl pkcs8 -inform DER -nocrypt -in "$PKEY" > "$TMPPKEY"; ordie "" 4
cat "$TMPDIR/META-INF/CERT.SF" | openssl smime -sign -inkey "$TMPPKEY" -signer "$CERT" -binary -outform DER -noattr > "$TMPDIR/META-INF/CERT.RSA"; ordie "" 4
cd "$TMPDIR"
zip "$TARGET" META-INF/MANIFEST.MF META-INF/CERT.SF META-INF/CERT.RSA; ordie "" 5
cd - > /dev/null
rm -r "$TMPDIR"