I installed the MoDaCo Custom Rom r3.1 and it's perfect except for 1 tiny little thing: the default HTC contacts app has been renamed from 'People' to 'HTC People' (actually, from 'Contacten' to 'HTC Contacten' in my localized version of MCR).
I decided to unpack the HtcContacts.apk using apktool and replace all occurrences of 'HTC People' with just 'People'. Then, I repacked everything into an .apk and signed it with a key. Then, I pushed the new HtcContacts.apk to /system/app/ while in recovery mode. However, the new contacts app does not show up after booting ... might this be caused by using a random key for signing? If so, how should I sign this apk to make it work?
The whole thing should have been signed with test keys when it was de-odexed. The only other thing is that it could have been re-packed wrong, or you need to update the packages.xml.
I'm quite new to this odex stuff, so I don't know much about it. I'm usually 'just' a developer.
What's the deal with this 'test keys' stuff? Do you mean that I should find a specific key to sign the apk with?
No, I mean don't sign it again after you edit it.
-------------------------------------
Alias::NeO on HTC Desire
Well, that's what I tried first. To be more concise:
1. I flashed MCR r3.1 to my device and kept it in recovery
2. I took the HtcContacts.apk from the update zip that I used in step 1
3. I used apktool to unpack it, since all resources were in binary format in the apk itself
4. I edited the appropriate resources
5. I repacked everything into a fresh HtcContacts.zip
6. I pushed the new HtcContacts.zip to /system/app/
7. After the very first boot of MCR r3.1, the Contacts app was invisible in the app drawer
Since that obviously didn't work, I decided to sign the apk before pushing it to /system/app/ but that yielded the exact same result.
Do I need to sign the APK with the same key that is used for the other apks in /system/app?
alias_neo said:
No, I mean don't sign it again after you edit it.
Click to expand...
Click to collapse
You must resign files after any change made to them. If we wouldn't have to do it, then whole signing idea would have no sense.
franklinvv said:
What's the deal with this 'test keys' stuff? Do you mean that I should find a specific key to sign the apk with?
Click to expand...
Click to collapse
franklinvv said:
Do I need to sign the APK with the same key that is used for the other apks in /system/app?
Click to expand...
Click to collapse
Yes, and they were probably signed using testsigner tool. Did you used testsigner last time? If not, then try it.
Also looking into logcat would be helpful - to be sure, that problem is related to signing.
I'm not sure where to find the testsigner that you mention ... but I used some testsign.jar that I found somewhere. Using that jar, I get this:
I/PackageManager( 151): /system/app/HtcContacts.apk changed; collecting certs
E/PackageManager( 151): Package com.android.htccontacts has no signatures that match those in shared user android.uid.shared; ignoring!
Click to expand...
Click to collapse
Also, I read (almost) everywhere that that testsign stuff is used for signing update zips. Can I still use it for signing APKs?
franklinvv said:
Also, I read (almost) everywhere that that testsign stuff is used for signing update zips. Can I still use it for signing APKs?
Click to expand...
Click to collapse
I don't know. But some time ago I wanted to replace my framework-res.apk file and I had to create update.zip file and sign it using testsign tool. So I think you are right.
Brut.all said:
I don't know. But some time ago I wanted to replace my framework-res.apk file and I had to create update.zip file and sign it using testsign tool. So I think you are right.
Click to expand...
Click to collapse
Right about what? That I should put it in an update.zip? And if so, do I still need to sign the APK that I will put in the update.zip or is that unnecessary?
Are you flashing or pushing the file?
franklinvv said:
Right about what? That I should put it in an update.zip? And if so, do I still need to sign the APK that I will put in the update.zip or is that unnecessary?
Click to expand...
Click to collapse
I think you have to create update.zip with unsigned file, then sign update.zip file using testsign and install it from recovery.
eViL D: said:
Are you flashing or pushing the file?
Click to expand...
Click to collapse
I'm pushing it ... I will try flashing it now. (Never knew that there really was a difference between those 2 methods.)
Brut.all said:
I think you have to create update.zip with unsigned file, then sign update.zip file using testsign and install it from recovery.
Click to expand...
Click to collapse
I'm trying that right now.
Argh ... whatever I do, my update-script keeps yielding syntax errors!
This is all that I have in the update-script:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:app
show_progress 0.1 10
Click to expand...
Click to collapse
I put the HtcContacts.apk in a /system/app subdir.
When I try to flash the zip, it fails with 'E:Syntax error in update script', and /tmp/recovery.log tells me:
Install from sdcard...
Finding update package...
I:Update location: SDCARD:update-signed.zip
Opening update package...
I:Update file path: /sdcard/update-signed.zip
Verifying update package...
I:Verified META-INF/CERT.RSA
I:Verified META-INF/MANIFEST.MF
I:Verified META-INF/com/google/android/update-script
I:Verified system/app/HtcContacts.apk
Installing update...
line 1: syntax error at '0.1'
E:Syntax error in update script
Installation aborted.
I:Set boot command ""
Click to expand...
Click to collapse
I have NO idea what I'm doing wrong.
Try: "show_progress 0.100000 0". But I don't know much about update.zip creating.
If I try that, it tells me:
line 1: syntax error at 'show_progress'
Click to expand...
Click to collapse
Edit: I'm all out of ideas ... I think I'll have to give up.
Edit2: After playing around with the update-script and trying stuff with the show_progress lines, I finally removed the lines and that worked after the 2nd try.
Unfortunately, my own HtcContacts.apk STILL doesn't work ...
I/PackageManager( 328): /system/app/HtcContacts.apk changed; collecting certs
E/PackageParser( 328): Package com.android.htccontacts has no certificates at entry AndroidManifest.xml; ignoring!
I/PackageManager( 328): Failed verifying certificates for package:com.android.htccontacts
Click to expand...
Click to collapse
So the APK does need to be signed before putting it in the update.zip?
you don't need:
set_perm_recursive 0 0 0755 0644 SYSTEM:app
Thanks, I changed the update-script accordingly.
However, I ended up with this:
I/PackageManager( 190): /system/app/HtcContacts.apk changed; collecting certs
E/PackageManager( 190): Package com.android.htccontacts signatures do not match the previously installed version; ignoring!
Click to expand...
Click to collapse
And after the second boot, I get this:
I/PackageManager( 151): /system/app/HtcContacts.apk changed; collecting certs
E/PackageManager( 151): Package com.android.htccontacts has no signatures that match those in shared user android.uid.shared; ignoring!
Click to expand...
Click to collapse
So, I'm stuck now ... I have the feeling that Paul signed everything in the MoDaCo ROM with an unknown key?
Related
So I wanted VoiceDialer on my stock ADP1. I grabbed VoiceDialer.apk from JFv1.31_ADP1.zip and installed it using adb (sdcard mounted on computer, so it wasn't mounted on the phone). It runs, and I was quite satisfied with its recognition abilities, but when it comes to clicking "OK" to dial, it always crashes with a "force close" dialogue. Holding the "send" button does bring up the VoiceDialer program. My guess is I'm missing some sort of configuration somewhere. Does anyone know?
Make sure you grabbed the VoiceDialer.odex too, if there is one.
Koush said:
Make sure you grabbed the VoiceDialer.odex too, if there is one.
Click to expand...
Click to collapse
I didn't find any odex files (unless they would be in recovery.img, which I haven't yet learned how to open). These files are not created automatically?
Unzip a RC30 update.zip and look in \system\app\
On ADP1, the dex is created at runtime by the dalvikvm from the classes file inside the zip. On RC30, the dex files for the builtin apps are created ahead of time and stored alongside the apk. This prevents the system from using up \data partition space with dex files (As the ADP1 build does).
jashsu said:
Unzip a RC30 update.zip and look in \system\app\
On ADP1, the dex is created at runtime by the dalvikvm from the classes file inside the zip. On RC30, the dex files for the builtin apps are created ahead of time and stored alongside the apk. This prevents the system from using up \data partition space with dex files (As the ADP1 build does).
Click to expand...
Click to collapse
I was able to find a copy of VoiceDialer.odex as per your description, but if I understand you correctly, that will not solve my problem.
If the dev phone uses dex files instead, and these are created at runtime, then I would expect to find a dex file for VoiceDialer if everything is working properly. Indeed, the file "[email protected]@[email protected]" exists.
Any other hints as to why the application might crash after clicking "OK" to dial a number?
Yeah just grab the VoiceDialer.apk from JF's modified ADP1 build. It contains the classes.dex file required to run on ADP1 build.
jashsu said:
Yeah just grab the VoiceDialer.apk from JF's modified ADP1 build. It contains the classes.dex file required to run on ADP1 build.
Click to expand...
Click to collapse
That's what I did initially. That part all seems to work.
Doh, went around in a circle ;-) I thought we were talking about the RC30 version.
Yeah you'll have to ask JF about this since I think he compiled VoiceDialer from source for his ADP mod build. There is no odex file to look for.
jashsu said:
Yeah you'll have to ask JF about this since I think he compiled VoiceDialer from source for his ADP mod build.
Click to expand...
Click to collapse
Yeah, I'm sure JF could see the problem real quick. I'm real timid about bothering people, though - I was hoping he might swing by this thread by chance. What's considered appropriate on this forum: PM? E-mail? IM? Visitor Message?
IMSargon said:
Yeah, I'm sure JF could see the problem real quick. I'm real timid about bothering people, though - I was hoping he might swing by this thread by chance. What's considered appropriate on this forum: PM? E-mail? IM? Visitor Message?
Click to expand...
Click to collapse
Your best bet is IRC. A lot of us hang out in #android on Freenode.
IMSargon said:
So I wanted VoiceDialer on my stock ADP1. I grabbed VoiceDialer.apk from JFv1.31_ADP1.zip and installed it using adb (sdcard mounted on computer, so it wasn't mounted on the phone). It runs, and I was quite satisfied with its recognition abilities, but when it comes to clicking "OK" to dial, it always crashes with a "force close" dialogue. Holding the "send" button does bring up the VoiceDialer program. My guess is I'm missing some sort of configuration somewhere. Does anyone know?
Click to expand...
Click to collapse
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
JesusFreke said:
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
Click to expand...
Click to collapse
Yeah, I had the same problem (I've installed voice dialer using adb install)
Uninstalled in application manager, rebooted, remounted, pushed voicedialer.apk to /systemp/app, rebooted again, and it worked )
JesusFreke said:
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
Click to expand...
Click to collapse
It worked! Great! Thanks a ton!
------------------------------
Steps taken:
1. copy VoiceDialer.apk to phone
# adb push VoiceDialer.apk /sdcard/VoiceDialer.apk
763 KB/s (51125 bytes in 0.065s)
#
2. enter shell on phone, and gain root
# adb shell
$ su
#
3. mount the system partition as rewritable
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
#
4. copy VoiceDialer.apk to the proper system directory
# cat /sdcard/VoiceDialer.apk > /system/app/VoiceDialer.apk
#
5. make permissions match the other files
# chmod 644 /system/app/VoiceDialer.apk
#
6. reboot the phone
# reboot
------------------------------
For extra credit, does anyone understand why this happens? What does it tell us about how apps work and install?
adb pushing the apk directly bypasses the PackageManager. By using adb install, the package manager will run (as if the package was installed from the Market or Browser). There are various reasons the PackageManager might reject a package, including inability to run dexopt, incompatibility with existing data registered to an older version of an app, etc. A list of errors that would block an apk installation is here. Look at the constants starting with INSTALL_FAILED and INSTALL_PARSE_FAILED.
jashsu said:
adb pushing the apk directly bypasses the PackageManager. By using adb install, the package manager will run (as if the package was installed from the Market or Browser). There are various reasons the PackageManager might reject a package, including inability to run dexopt, incompatibility with existing data registered to an older version of an app, etc. A list of errors that would block an apk installation is here. Look at the constants starting with INSTALL_FAILED and INSTALL_PARSE_FAILED.
Click to expand...
Click to collapse
Interesting, but in this case the application did not fail to install. The installation went normally, and the application functioned normally up to the point where it attempted to interface with another application/subsystem (whatever dials the phone).
IMSargon said:
Interesting, but in this case the application did not fail to install. The installation went normally, and the application functioned normally up to the point where it attempted to interface with another application/subsystem (whatever dials the phone).
Click to expand...
Click to collapse
When you install it with adb install, it gets installed as a normal (non-system) application. This can be verified by checking /data/system/packages.xml:
Code:
<package name="com.android.voicedialer" codePath="/data/app/VoiceDialer.apk" [B]system="false"[/B] ts="1232083952000" userId="10029">
<sigs count="1">
<cert index="0" />
</sigs>
</package>
One of the permissions it requires is "android.permission.CALL_PRIVILEGED". Based on the info in frameworks/base/core/res/AndroidManifest.xml (in the git source):
Code:
<permission android:name="android.permission.CALL_PRIVILEGED"
android:label="@string/permlab_callPrivileged"
android:description="@string/permdesc_callPrivileged"
[B]android:protectionLevel="signatureOrSystem"[/B] />
You can see the protectionLevel is "signatureOrSystem", meaning that the application has to be a system application in order to use that permission. Since the voice dialer was not installed as a system application, it can't be assigned that permission.
To confirm this, I tried installing the voice dialer with adb install, and then took a look at the logcat output, which contains the following line:
Code:
01-15 23:32:32.903: WARN/PackageManager(56): Not granting permission android.permission.CALL_PRIVILEGED to package com.android.voicedialer (protectionLevel=3 flags=0x44)
However, when you copy the apk to /system/app, it gets installed as a system application, which can be verified again by looking at /data/system/packages.xml:
Code:
<package name="com.android.voicedialer" codePath="/system/app/VoiceDialer.apk" [B]system="true"[/B] ts="1232084484000" userId="10035">
<sigs count="1">
<cert index="0" />
</sigs>
</package>
So it is able to use the "android.permission.CALL_PRIVILEGED" permission. After coping the apk to /system/app, I checked the logcat output and there was no mention of not being able to grant the android.permission.CALL_PRIVILEGED permission, as expected.
Interestingly enough, copying the file to /system/app doesn't bypass the package manager. The package manager is watching both /data/app and /system/app for new files, and it automatically installs anything you copy into either location. It also does an uninstall when you delete an apk from either location.
JesusFreke said:
Interestingly enough, copying the file to /system/app doesn't bypass the package manager. The package manager is watching both /data/app and /system/app for new files, and it automatically installs anything you copy into either location. It also does an uninstalls when you delete an apk from either location.
Click to expand...
Click to collapse
I didn't know that. In that context it does make sense why it would disallow call permission if put into /data/app
Offtopic, but are you planning on creating a modified version of the newly released ADP1 "1.1" build?
Thanks, JF, your explanation makes the problem quite clear!
Hi all,
I'm trying to make an update.zip for users to install my app easily in recovery mode. It sounds trivial, and should basically just copy the apk into /data/app/.
Before I sign it, the zip contains (as shown by "unzip -t"):
Code:
data/app/com.keramidas.TitaniumBackup.apk
META-INF/com/google/android/update-script/update-script
The update-script is as follows:
Code:
show_progress 0.1 0
copy_dir PACKAGE:data DATA:
show_progress 0.1 10
Then I signed the update.zip with:
jarsigner -verbose -keystore my_keystore update.zip my_key
When I launch:
jarsigner -verify update.zip
I get "jar verified".
But in Clockwork recovery, my update.zip does not work - and signature verification is disabled, afaik.
EDIT: I have uploaded the update.zip there:
http://matrixrewriter.com/android/files/update.zip
Any ideas ?
Thanx in advance for any help
joel.bourquard said:
Hi all,
I'm trying to make an update.zip for users to install my app easily in recovery mode. It sounds trivial, and should basically just copy the apk into /data/app/.
Before I sign it, the zip contains (as shown by "unzip -t"):
Code:
data/app/com.keramidas.TitaniumBackup.apk
META-INF/com/google/android/update-script/update-script
The update-script is as follows:
Code:
show_progress 0.1 0
copy_dir PACKAGE:data DATA:
show_progress 0.1 10
Then I signed the update.zip with:
jarsigner -verbose -keystore my_keystore update.zip my_key
When I launch:
jarsigner -verify update.zip
I get "jar verified".
But in Clockwork recovery, my update.zip does not work - and signature verification is disabled, afaik.
EDIT: I have uploaded the update.zip there:
http://matrixrewriter.com/android/files/update.zip
Any ideas ?
Thanx in advance for any help
Click to expand...
Click to collapse
Hey Joel
Just curious has this been sorted yet? I would love a .zip so I can flash it after a new ROM when I don't have data.
FHL09 said:
Hey Joel
Just curious has this been sorted yet? I would love a .zip so I can flash it after a new ROM when I don't have data.
Click to expand...
Click to collapse
Hi dear Androlute overlord
Unfortunately no, I haven't got any hint on how to fix the zip file. Looking forward to having a working file!
I tweeted about it today, so I'm hoping someone will help...
Thanks
It's okay, the zip file works now. The update-script was misplaced
Hi Joel,
DO we have to sign the zip file created or would it be possible for your app to sign the file?
Thanks NSCXP2005
nscxp2005 said:
Hi Joel,
DO we have to sign the zip file created or would it be possible for your app to sign the file?
Thanks NSCXP2005
Click to expand...
Click to collapse
Hi,
The generated zip files are not signed - sorry.
I would love to incorporate the necessary signing code into my app, but unfortunately the signapk tool seems to require several Sun-only crypto classes, which don't exist on Android. If you know of a java implementation that can sign a zip file without using these Sun-only imports, please let me know and (as long as it's in the public domain) I'd be glad to include it in my app.
Thanks!
ok, Thanks.
Could you tell me how to sign the Update.zip that has been created by your app?
nscxp2005 said:
ok, Thanks.
Could you tell me how to sign the Update.zip that has been created by your app?
Click to expand...
Click to collapse
I have never really done it (or succeeded to do it), to be honest.
You need to use the "signapk" tool. I tried with Sun's standard "jarsigner" tool that comes with the JDK, but it wasn't considered as properly signed by the recovery image I have (Clockwork).
If you have more success than me, please let me know...
ok, thanks Joe, I hope you manage to find a way to sign the update.zip in the future.
Keep up the great work!!
EDIT Joel, I finally managed to flash your app in Recovery!!
Go here and look at the Update Maker made by DMzda
Update Maker
I hope you manage to implement this in to your update generator
I hope this helps
All the best
NSCXP2005
thanks to this page for teaching me: http://www.robmcghee.com/android/creating-an-android-update-zip-package/
note: although i am copying this from the page, this isnt a straight ctrl+c, ctrl+p from it. ive rewritten it with slightly more english. ok alot more.
before we start, grab ppcgeeks auto signer here, or nothing will flash anyway. its the easiest method since its drag, drop, and click.
also i recommend 7-zip but its not necessarily needed.
first step, make the folder structure.
ive included prebuilt updates to make it a little faster for you. they contain no actual files, just the appropriate folder structure and update script. they must be resigned if you add files and expect to flash them.
if what your looking for isnt included, make a folder and name it "workdir". this will contain your work.
this is just to make it easier to organize all your stuff. if you feel so inclined you can name it whatever you want, it doesnt really matter.
next youll need to make folders inside the workdir according to where your flashing stuff, ie if your flashing wallpapers youd need to make a structure that looks like this: "workdir/system/customize/resource"
next to make the update-script. this tells the system what to do.
first make this folder structure: "workdir/META-INF/com/google/android"
make sure you capitalize "META-INF"
now put a text file into the "android" folder and call it "update-script"
the easiest way to code it would be to copy this into it:
Code:
show_progress 0.1 0
copy_dir PACKAGE:(x) (X):
set_perm_recursive 0 0 0755 0644 (X):(y)
show_progress 0.1 10
replace the (x) with the directory in the root your flashing to in lowercase, ie system or data or sdcard.
replace the (X)'s with the same thing as (x) except in UPPERCASE such as SYSTEM or DATA or SDCARD.
replace the with the next directory in lowercase like media or app or customize.
note: if your adding to the root of (X) folder then leave this blank, no spaces or anything.
if your flashing an app it should look something like this:
Code:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:app
show_progress 0.1 10
after youve done that, save and close the file. now you need to take the extension off of the text file. simply delete the .txt at the end of the file.
if there is no extension showing, make sure you have "hide extensions for known file types" unchecked in tools> folder options> "view" tab.
second to last step! compress the workdir contents into a zip file, not the actual workdir though. it should look like this inside the zip: "update.zip/(folders)" not "update.zip/workdir/(folders)"
finally, sign the zip with the auto signer and put it into the root of the sd card.
boot into recovery and flash it up! with a bit of luck, it should work.
if you have any questions, problems, or concerns just post them. i have instant subscription to this thread and will be notified every 30 min when my evo fetches my mail.
Thanx for this thread!
Ok, my app should be installed in /system/app/
but is it possible to include in the same (app)update-script: delete /data/app/xxx.apk?
What directories do boot animations go into?
Awesome thread and thanks btw.
Foxwolfe said:
What directories do boot animations go into?
Click to expand...
Click to collapse
/data/local/
rori~ said:
Ok, my app should be installed in /system/app/
but is it possible to include in the same (app)update-script: delete /data/app/xxx.apk?
Click to expand...
Click to collapse
honestly, i couldnt tell you for sure but i dont see why you couldnt
Foxwolfe said:
Awesome thread and thanks btw.
Click to expand...
Click to collapse
thanks
I keep getting a syntax error. I am trying to flash silent.mp3 so i can select that in my notifications, because for some reason it does not have that option :/
can you let me know where I went wrong?
have tried both
set_perm_recursive 0 0 0755 0644 SYSTEM:media
set_perm_recursive 0 0 0755 0644 SYSTEM:notifications
but to no avail
what was the whole code in the update-script?
did you use the example i posted?
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:media
show_progress 0.1 10
daktah said:
what was the whole code in the update-script?
did you use the example i posted?
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:media
show_progress 0.1 10
Click to expand...
Click to collapse
yeah, sorry for not making it clear. Im kinda rote-learning this atm, I did a straight copy of your notifications script into my flashable-zip. when that didnt work I tried it with line3 modified as a stab in the dark.
what does the entire folder structure look like? if I am changing notifications is it /system/media/audio/notification where I put the files?
i believe it is
Code:
workdir.zip/
_system/
__media/
___audio/(files).mp3
_META-INF/
__com/
___google/
____android/update-script
if you still cant get it going i can assemble it for you
Just wanting to be sure here because Ive read the first post a few times and still can't tell. On the root of the update.zip I am supposed to create the folder structure that I want it to flash too. (ie. media/audio/ringtones) and then place the actual file that im flashing in that directory. (ie media/audio/ringtones/newring.mp3) At this point then the whole .zip dir would look like:
update.zip
__media/
_____audio/
_______ringtones/
__________newring.mp3
__META-INF/
_____com/
_______google/
___________android/
_______________update-script
_____CERT.RSA
_____CERT.SF
_____MANIFEST.MF
Then just sign the .zip and flash it... Is this correct?
You got it
Wow sounds real complex just to add an mp3 for a ringtone. I know if you create a file on sdcard
media/
audio
alarm
notifacation
And then put the file you want for what you want into the folder you want it for it will show in dropdown menu so you can select it.
Been trying to get googles auto app builder program to force download the sdk for devices so i can start there first. Want an app that forces mms to the sprint max of 5mb send limit and not stocks 2mb or handsents 1.2 limit. Will doing this according to thread give me an app that does this? What would i need to change? (guess you could make it faster than trying to teach me but still wonder)
jpwhre said:
Wow sounds real complex just to add an mp3 for a ringtone. I know if you create a file on sdcard
media/
audio
alarm
notifacation
And then put the file you want for what you want into the folder you want it for it will show in dropdown menu so you can select it.
Click to expand...
Click to collapse
thats true but installing saves space on the sd card and makes it load instantly instead of waiting for the sd card to be prepared
jpwhre said:
Been trying to get googles auto app builder program to force download the sdk for devices so i can start there first. Want an app that forces mms to the sprint max of 5mb send limit and not stocks 2mb or handsents 1.2 limit. Will doing this according to thread give me an app that does this? What would i need to change? (guess you could make it faster than trying to teach me but still wonder)
Click to expand...
Click to collapse
what? im lost lol
On wm arcsoft had a setting in the app that lets you change settings and change size limit to 500kb. You can also make these changes in regeditor. Android doesn't have a registory nor does there seam to be an app to install that will allow these changes. Wondering if your tutorial thread would allow the building of an app and what would i need to change to do this. Googles app builder program doesn't come preinstalled with any sdks and on a slow connection i can't get it to download.
if your saying building an app as in coding and assembling one then no as this is just a guide to make an installable zip to flash with ra or clockwork. youd need to use the sdk tools and such for that. but this guide should allow you to install pretty much anything into the nand from ringtones to apks and the like.
daktah said:
i believe it is
Code:
workdir.zip/
_system/
__media/
___audio/(files).mp3
_META-INF/
__com/
___google/
____android/update-script
if you still cant get it going i can assemble it for you
Click to expand...
Click to collapse
finally got adb to stop sh***ing itself. did it that way.
thanks for the help anyway.
so, i'm by no means an expert at this... but i was trying to make an update.zip for wallpapers. i've attached what i did, if you could take a peak at it and give me a pointer, that would be awesome!
path to my wallpapers...
using launcherpro
data/app/com.fede.launcher-1.apk/res/drawable-hdpi
data/app/com.fede.launcehr-1/apk/res/drawable-mdpi
granted, I'm trying to flash a theme, but it seems like the process and folder/file structure would be the same.
I've followed the steps one by one, but after flashing the .zip in recovery and rebooting, everything looks the exact same as it did before! I figured I would start with framewor-res, and see if I could get that to work before I started working on all the other images, but even after modifying all images, straightening out the .9.png's, and compiling everything correctly in Eclipse, I get nothing.
I have no effing clue what's going on, any ideas?
im on a mac, any suggestions for what i can use to sign the zip? i have apk manager and thempro and they can both sign apps but i dont know if its okay to use them to sign a flashable zip
Hi man!
I'm not do a Update.zip yet with your tutorial, but i have a question:
some Update.zip have a file named updated-binary together with update-script, how i do that file? because when i try to flash via OpenRecovery say's that coul'd not find that file: update-binary...
Sory for my english, i'm from Argentina, and i try not to use Google Translate...
Regards!!!
PS: Great work with this tutorial!!!
I'm trying to upgrade my rooted TF101 to 9.2.1.11 and every zipI use complains on an assert failure for /system/app/Netflix.apk. Oddly, I can't get Ti backup to restore it, so I tried downloading it and putting it in that directory. This doesn't work. Does anyone have the stock Netflix.apk they can post so I can move past this? thx!!
Here ya go!
Title says it all.
Thanks! But no cigar!
I tried that, but it gives me the following error when I attempt to apply the zip from the sd card:
ClockworkMod Recovery v3.2.0.1 roach2010-tf101-r1
-- Installing: /sdcard/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted.zip
Finding update package...
Opening update package...
Installing update...
Verifying current system...
assert failed: apply_patch_check("/system/app/Netflix.apk", "459b736ea95188dd3500005f621b4fa22291c40c", "58c70e894dfc98166d16c64cb9555a7e83ceb7e4")
E:Error in /sdcard/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted.zip
(Status 7)
Installation aborted.
Click to expand...
Click to collapse
Any suggestions out there in the development community? I didn't think that uninstalling Netflix would cause such a hassle later on. Is there a different version of the .apk I can try? Or a different way of installing it (I just copied it over after remounting /system/app as rw).
Alternatively, can I unroot, then download the update, then re-root? Anybody have any practice with that, or will the Netflix.apk package.
Thank you! Have a nice day (or evening).
crinis said:
I tried that, but it gives me the following error when I attempt to apply the zip from the sd card:
Any suggestions out there in the development community? I didn't think that uninstalling Netflix would cause such a hassle later on. Is there a different version of the .apk I can try? Or a different way of installing it (I just copied it over after remounting /system/app as rw).
Alternatively, can I unroot, then download the update, then re-root? Anybody have any practice with that, or will the Netflix.apk package.
Thank you! Have a nice day (or evening).
Click to expand...
Click to collapse
That wasn't a zip file, it was an apk. And you don't flash those in recovery. Just put it in /data/app directory, then restart the tablet. Or you can try to execute it, and it will automatically install to the appropriate folder.
I solved it!
Yes, I just copied it over using scp (after remounting /system as rw). I'm no noob!
Here's what I did to get it to work.
I unzipped the rooted zip file, edited the updater-script to remove references to Netflix.apk (three of them), then rezipped it up, copied it to the sdcard , rebooted to recovery, then flashed it. Worked! Here's the exact steps took:
On my linux latop:
mkdir /tmp/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted
cd /tmp/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted
unzip ~/Download//tmp/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted.zip
vi ./META-INF/com/google/android/updater-script
# /Netflix\.apk finds the lines, I deleted two, and modified the third to remove the reference.
zip -r /tmp/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted.zip *
scp /tmp/ics-us-8.6.5.21-to-9.2.1.11-CWM-rooted [email protected]:/Removable/MicroSD
Click to expand...
Click to collapse
From there it's all Clockwork.
Thanks so much for the help of this forum. I love xda developers!
Hi.
I have a (rooted) UK Nook STG 1.2. I am trying to fix the PackageInstaller, but I seem not to be able to find the correct APK.
I tried one from CM5, but I get a Certificate Missmatch:
Code:
[email protected]:/tmp$ adb install -r system/app/PackageInstaller.apk
342 KB/s (41206 bytes in 0.117s)
pkg: /data/local/tmp/PackageInstaller.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Uninstalling the PackageInstaller and then installing the new APK is also not possible:
Code:
[email protected]:tmp$ adb uninstall com.android.packageinstaller
Failure
I read somewhere that using the PackageInstaller.apk from a Nook 1.1 rom would be possible, but I cannot find it. Could somebody point me to it or upload it, please?
Pretty please!
NookManager includes one from an older ROM that fixes package install problems.
worked
geckoday said:
NookManager includes one from an older ROM that fixes package install problems.
Click to expand...
Click to collapse
Thanks.
That worked, even though I had to write the image to an sdcard first.
NotAlain said:
That worked, even though I had to write the image to an sdcard first.
Click to expand...
Click to collapse
7-Zip will let you open the .img and pull the .apk without burning it to a card. Its a great program for just about any type of archive file.
geckoday said:
7-Zip will let you open the .img and pull the .apk without burning it to a card. Its a great program for just about any type of archive file.
Click to expand...
Click to collapse
If I knew that earlier... Good hint.
It even works on the Command Line on Linux.