[Applimulator ;)] apkenv + apkenv.ui


I downloaded what I thought was the correct version of Super Hexagon but so far it's not starting properly, I'll have to try again with the updated PND after work! Stupid question time, is it possible to pull the correct apk files from an installed version of an app on a device, or is there a difference between that and the file used for installation?(I'm not explaining this well I know! :huh:  )
 
@stouffa: notaz implemented support with the humble bundle version of Super Hexagon. So you might want to try with that version first.
 
Looks like I'm too late to grab myself that particular bundle! At least I've World of Goo from a previous one, I'll download that after work :)
 
Looks like I'm too late to grab myself that particular bundle! At least I've World of Goo from a previous one, I'll download that after work :)
would be nice if you report back if it works and what version number that is so that i can add it to the compatibility list.
 
The version of World of Goo is from the Humble Bundle 3 for android, it's version 1.0.5 and its works great but doesn't seen to start every time, I have to try loading it a few times before it'll work! (Very strange}
 
just uploaded another release to the repo. i hope that fixes the crashes now!

@notaz

it seems the information that the first word of the a string table is the length of the string is wrong. on all apks i've tried and debugged, the first byte points to the length of the string. and the second byte is just length+1. could you please cross-check?

here are the changes for this issue: https://github.com/crowriot/apkenv/commit/44f5fdd26c3c963ceddf0924561be276ae4a2974

thanks!

*edit*

ok just searched a bit. from https://github.com/cozybit/aosp-frameworks-base/blob/master/tools/aapt/StringPool.cpp ... take a look around line 269

@stouffa

thanks - thats also the version i have.
 
Last edited by a moderator:
@notaz

it seems the information that the first word of the a string table is the length of the string is wrong. on all apks i've tried and debugged, the first byte points to the length of the string. and the second byte is just length+1. could you please cross-check?

here are the changes for this issue: https://github.com/crowriot/apkenv/commit/44f5fdd26c3c963ceddf0924561be276ae4a2974

thanks!
Hmm I think both your and my code is wrong. Resource strings can by of 2 types: utf16 and utf8. In utf16 case first 2 bytes are length and my code was correct, but for utf8 first byte is length and second is size in memory, as utf8 can have multibyte unicode characters in it. So you need an 'if' with separate size handling for both types of strings. There is also extension mechanism when the string length doesn't fit in those bytes, then additional ones are used.

Also I don't think app_name_index change was necessary, as on realloc only location of the array of string pointers changes, but not the string pointers themselves, so it should b fine..

Want me to fix that up or will you do it? If you do it you'll probably need to squash those "noise" commits (git rebase -i) before sending to thp.
 
just uploaded another release to the repo. i hope that fixes the crashes now!

@notaz

it seems the information that the first word of the a string table is the length of the string is wrong. on all apks i've tried and debugged, the first byte points to the length of the string. and the second byte is just length+1. could you please cross-check?

here are the changes for this issue: https://github.com/crowriot/apkenv/commit/44f5fdd26c3c963ceddf0924561be276ae4a2974

thanks!

*edit*

ok just searched a bit. from https://github.com/cozybit/aosp-frameworks-base/blob/master/tools/aapt/StringPool.cpp ... take a look around line 269

@stouffa

thanks - thats also the version i have.
I can confirm that all the apps works again.  I was running Fruit Ninja HD 1.5.4 and like that rabbit game both worked with v42.3.15
 
Last edited by a moderator:
@notaz

it seems the information that the first word of the a string table is the length of the string is wrong. on all apks i've tried and debugged, the first byte points to the length of the string. and the second byte is just length+1. could you please cross-check?

here are the changes for this issue: https://github.com/crowriot/apkenv/commit/44f5fdd26c3c963ceddf0924561be276ae4a2974

thanks!
Hmm I think both your and my code is wrong. Resource strings can by of 2 types: utf16 and utf8. In utf16 case first 2 bytes are length and my code was correct, but for utf8 first byte is length and second is size in memory, as utf8 can have multibyte unicode characters in it. So you need an 'if' with separate size handling for both types of strings. There is also extension mechanism when the string length doesn't fit in those bytes, then additional ones are used.
Also I don't think app_name_index change was necessary, as on realloc only location of the array of string pointers changes, but not the string pointers themselves, so it should b fine..

Want me to fix that up or will you do it? If you do it you'll probably need to squash those "noise" commits (git rebase -i) before sending to thp.
ah yes thinking about it a second time you're right about the the realloc fix. i was just chasing the crash problem which only occurred every now and then. so that change is really unneeded.
i'd be grateful if you could make a real fix to the string problem. i dont think it's time critical, because my workaround is ok for the currently supported games.
 
World of Goo and Super Hexagon! This is just awesome.

For super hexagon there is a minor (or major) problem, you can't use the shoulder buttons to turn like you can on android. The left shoulder button goes right, but the right shoulder button doesn't do anything.

Also I can't figure out how to go back in the menu, to select a different level. Other than that it works great.

I'll have to try world of goo sometime.
 
World of Goo and Super Hexagon! This is just awesome.

For super hexagon there is a minor (or major) problem, you can't use the shoulder buttons to turn like you can on android. The left shoulder button goes right, but the right shoulder button doesn't do anything.

Also I can't figure out how to go back in the menu, to select a different level. Other than that it works great.

I'll have to try world of goo sometime.
You can use the DPad for Left & Right

You can use the touch screen select the level (tap the bit where it says level select, or is it menu?)
 
You can use the DPad for Left & Right

You can use the touch screen select the level (tap the bit where it says level select, or is it menu?)
Yeah, the dpad works fine, but I much prefer the shoulder buttons

Also I didn't see that level select button at the top, thanks
 
World of Goo works very well.

But for me the sucking noise of the pipe is not playing forever.

I use World of Goo 1.0.5 of the humblebundle
 
Is there a libOpenSLES.so knocking around that'll work on the Pandora with apkenv? I have been messing around trying to write a module for a game that requires this, I tried dropping in a libOpenSLES.so I found on the internet, but it didn't seem to work:

Code:
linker/linker.c:713| WARNING: `libOpenSLES.so` is not a prelinked library
    0 mapped library 'libOpenSLES.so' to 41961000 via kernel allocator.
 
Back
Top