VanillaBean JB built from stock and CM10 source
This ROM is deprecated, use JellyBeanDS
This rom is still in major development
Source
If you ask for an ETA, I will find you
* means check for more information
Reporting logcats aren't mandatory but are helpful
Not Working:
Camcorder & FFC
Soft keyboard and HW keyboard auto rotation
You tell me!
How to install:
Downloads and More information
Gapps
Wipe Cache, and Dalvik Cache (If first boot wipe data too)
Flash rom and let it sit for 5 mins
Disable HW overlay in Settings/Development
Make it your own!
Here is an optional flashable fir the A5 kernel for JB
Community help is appreciated!
More information:
Front facing buttons are working but shut off randomly (minor)
Changelog as of August 13:
Fixed Sound
Fixed Camera
Broke soft keyboard and Hw rotation when keyboard is out
Updated to latest Adreno JB libs to fix UI bugs
Now using a very very early build of WildKernel (v3.0.36 from julyish)
CMX bootanimation (from Sensation)
Upstream changes from CM
Changelog as of July 25:
Fixed Data (Set default APN)
Fixed Wifi
Fixed Notification Leds
Fixed front facing button lights (for the most part)
Fixed Sensors properly (Fixpack 2)
Update SU
Upstream changes from CM
updated to the latest compiled TeamDS 3.0.3.6 kernel
Changelog as of July 21:
Fixed sdcard
Fixed Charging
Fixed Radio
Fixed Hw rotation when keyboard is out
Ramdisk changes
Fixed Launcher (Fixpack 1)
Probably forgot something
This is a DEV thread so please only discuss dev-related topics
Thanks:
Dillalade
Bruce2728
intervigilium
ognimnella
TeamDS
Cm team
rmcc
cretin45
nbetcher
Code:
Latest Logcat UPDATED 7/17/12
Error from logcat that I'm working on
Code:
E/AudioFlinger( 1572): int android::load_audio_interface(char const*, audio_hw_device_t**) wrong audio hw device version 0000
I/AudioFlinger( 1572): loadHwModule() error -22 loading module primary
E/AudioFlinger( 1572): int android::load_audio_interface(char const*, audio_hw_device_t**) wrong audio hw device version 0000
I/AudioFlinger( 1572): loadHwModule() error -22 loading module a2dp
E/AudioFlinger( 1572): int android::load_audio_interface(char const*, audio_hw_device_t**) couldn't load audio hw module audio.usb (No such file or directory)
I/AudioFlinger( 1572): loadHwModule() error -2 loading module usb
E/AudioPolicyManagerBase( 1572): Failed to initialize hardware output stream, samplingRate: 0, format 0, channels 0
E/AudioPolicyService( 1572): couldn't init_check the audio policy (No such device)
W/AudioSystem( 342): AudioPolicyService not published, waiting...
W/ProcessStats( 342): Skipping unknown process pid 1591
W/AudioPolicyManager( 1572): getInput() invalid input source 9
Which leads to
Code:
F/libc ( 1572): Fatal signal 11 (SIGSEGV) at 0xfffffff4 (code=1), thread 1596 (Binder_3)
I/DEBUG ( 1540): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1540): Build fingerprint: 'tmous/htc_doubleshot/doubleshot:4.0.3/IML74K/356011.14:user/release-keys'
I/DEBUG ( 1540): pid: 1572, tid: 1596, name: Binder_3 >>> /system/bin/mediaserver <<<
I/DEBUG ( 1540): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr fffffff4
I/DEBUG ( 1540): r0 fffffff4 r1 00000004 r2 00000000 r3 416e2c44
I/DEBUG ( 1540): r4 41239338 r5 00000000 r6 00000000 r7 00000000
I/DEBUG ( 1540): r8 416e2dd4 r9 00000624 sl 400faae4 fp 00100000
I/DEBUG ( 1540): ip 40fac5d8 sp 416e2c40 lr 40fa57d3 pc 40fa8648 cpsr 00000030
I/DEBUG ( 1540): d0 0000000000000000 d1 0000000000000000
I/DEBUG ( 1540): d2 000003e800000000 d3 0000000000000008
I/DEBUG ( 1540): d4 78302c463378302c d5 2c303078302c3030
I/DEBUG ( 1540): d6 4478302c30307830 d7 302c303078302c36
I/DEBUG ( 1540): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 1540): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 1540): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 1540): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 1540): d16 6563726f46746573 d17 7375202928657355
I/DEBUG ( 1540): d18 2c303078302c3030 d19 4178302c41307830
I/DEBUG ( 1540): d20 302c303078302c38 d21 303078302c304378
I/DEBUG ( 1540): d22 78302c303078302c d23 0d323078302c3030
I/DEBUG ( 1540): d24 0000000000000000 d25 0000000000000000
I/DEBUG ( 1540): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 1540): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 1540): d30 0000000000000000 d31 0000000000000000
I/DEBUG ( 1540): scr 00000010
I/DEBUG ( 1540):
I/DEBUG ( 1540): backtrace:
I/DEBUG ( 1540): #00 pc 00009648 /system/lib/hw/audio_policy.msm8660.so (android_audio_legacy::AudioPolicyManagerBase::getNewDevice(int, bool)+23)
I/DEBUG ( 1540): #01 pc 000074cb /system/lib/hw/audio_policy.msm8660.so (android_audio_legacy::AudioPolicyManager::setForceUse(android_audio_legacy::AudioSystem::force_use, android_audio_legacy::AudioSystem::forced_config)+286)
I/DEBUG ( 1540): #02 pc 00007ebf /system/lib/hw/audio_policy.msm8660.so
I/DEBUG ( 1540): #03 pc 0003bcfd /system/lib/libaudioflinger.so (android::AudioPolicyService::setForceUse(audio_policy_force_use_t, audio_policy_forced_cfg_t)+48)
I/DEBUG ( 1540): #04 pc 000494c5 /system/lib/libmedia.so (android::BnAudioPolicyService::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+172)
I/DEBUG ( 1540): #05 pc 000143c9 /system/lib/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+60)
I/DEBUG ( 1540): #06 pc 00016fe1 /system/lib/libbinder.so (android::IPCThreadState::executeCommand(int)+520)
I/DEBUG ( 1540): #07 pc 00017409 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+184)
I/DEBUG ( 1540): #08 pc 0001b1a9 /system/lib/libbinder.so
I/DEBUG ( 1540): #09 pc 00010f4b /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
I/DEBUG ( 1540): #10 pc 00010ab1 /system/lib/libutils.so
I/DEBUG ( 1540): #11 pc 000130f4 /system/lib/libc.so (__thread_entry+48)
I/DEBUG ( 1540): #12 pc 00012850 /system/lib/libc.so (pthread_create+180)
I/DEBUG ( 1540):
I/DEBUG ( 1540): stack:
I/DEBUG ( 1540): 416e2c00 40ada738
I/DEBUG ( 1540): 416e2c04 41238d58 [heap]
I/DEBUG ( 1540): 416e2c08 416e2c44
I/DEBUG ( 1540): 416e2c0c 4123934c [heap]
I/DEBUG ( 1540): 416e2c10 00000000
I/DEBUG ( 1540): 416e2c14 00000000
I/DEBUG ( 1540): 416e2c18 00000000
I/DEBUG ( 1540): 416e2c1c 416e2dd4
I/DEBUG ( 1540): 416e2c20 00000624
I/DEBUG ( 1540): 416e2c24 400faae4
I/DEBUG ( 1540): 416e2c28 00100000
I/DEBUG ( 1540): 416e2c2c 40fa57d3 /system/lib/hw/audio_policy.msm8660.so
I/DEBUG ( 1540): 416e2c30 00000000
I/DEBUG ( 1540): 416e2c34 416e2c44
I/DEBUG ( 1540): 416e2c38 df0027ad
I/DEBUG ( 1540): 416e2c3c 00000000
I/DEBUG ( 1540): #00 416e2c40 41239338 [heap]
I/DEBUG ( 1540): 416e2c44 00000000
I/DEBUG ( 1540): 416e2c48 00000000
I/DEBUG ( 1540): 416e2c4c 00000000
I/DEBUG ( 1540): 416e2c50 41239338 [heap]
I/DEBUG ( 1540): 416e2c54 00000000
I/DEBUG ( 1540): 416e2c58 00000000
I/DEBUG ( 1540): 416e2c5c 40fa64cf /system/lib/hw/audio_policy.msm8660.so (android_audio_legacy::AudioPolicyManager::setForceUse(android_audio_legacy::AudioSystem::force_use, android_audio_legacy::AudioSystem::forced_config)+290)
I/DEBUG ( 1540): #01 416e2c60 00000000
I/DEBUG ( 1540): 416e2c64 00000000
I/DEBUG ( 1540): 416e2c68 00000000
I/DEBUG ( 1540): 416e2c6c 41238fc8 [heap]
I/DEBUG ( 1540): 416e2c70 00000000
I/DEBUG ( 1540): 416e2c74 00000000
I/DEBUG ( 1540): 416e2c78 00000000
I/DEBUG ( 1540): 416e2c7c 40fa6ec1 /system/lib/hw/audio_policy.msm8660.so
I/DEBUG ( 1540): #02 416e2c80 41238fc8 [heap]
I/DEBUG ( 1540): 416e2c84 4009fcff /system/lib/libaudioflinger.so (android::AudioPolicyService::setForceUse(audio_policy_force_use_t, audio_policy_forced_cfg_t)+50)
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near r3:
I/DEBUG ( 1540): 416e2c24 400faae4 00100000 40fa57d3 00000000 [email protected]@....
I/DEBUG ( 1540): 416e2c34 416e2c44 df0027ad 00000000 41239338 D,nA.'......8.#A
I/DEBUG ( 1540): 416e2c44 00000000 00000000 00000000 41239338 ............8.#A
I/DEBUG ( 1540): 416e2c54 00000000 00000000 40fa64cf 00000000 [email protected]
I/DEBUG ( 1540): 416e2c64 00000000 00000000 41238fc8 00000000 ..........#A....
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near r4:
I/DEBUG ( 1540): 41239318 40fa706d 40fa707d 40fa708d 41238fc8 [email protected]}[email protected]@..#A
I/DEBUG ( 1540): 41239328 400b0000 41237580 41239338 000001f3 [email protected]#A8.#A....
I/DEBUG ( 1540): 41239338 40fac090 41237580 00000000 00000000 [email protected]#A........
I/DEBUG ( 1540): 41239348 00000000 40fac298 00000000 00000000 [email protected]
I/DEBUG ( 1540): 41239358 00000007 00000008 40fac228 00000000 ........([email protected]
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near r8:
I/DEBUG ( 1540): 416e2db4 4016ffe3 00000010 4016faed 40ad7d60 [email protected]@`}[email protected]
I/DEBUG ( 1540): 416e2dc4 00000000 00000000 00000000 41238fcc ..............#A
I/DEBUG ( 1540): 416e2dd4 00000000 40b79028 00000054 00000054 ....([email protected]
I/DEBUG ( 1540): 416e2de4 00000054 40b7907c 00000000 00000000 T...|[email protected]
I/DEBUG ( 1540): 416e2df4 00000000 00010001 4016faed 40ad7d60 [email protected]`}[email protected]
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near sl:
I/DEBUG ( 1540): 400faac4 00000000 00000000 00000000 00000000 ................
I/DEBUG ( 1540): 400faad4 00000000 00000000 00000000 00000000 ................
I/DEBUG ( 1540): 400faae4 3da25868 00000000 00000000 00000000 hX.=............
I/DEBUG ( 1540): 400faaf4 00000000 00000000 00000000 00000000 ................
I/DEBUG ( 1540): 400fab04 00000000 00000000 00000000 00000000 ................
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near fp:
I/DEBUG ( 1540): 000fffe0 ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 1540): 000ffff0 ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 1540): 00100000 ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 1540): 00100010 ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 1540): 00100020 ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near ip:
I/DEBUG ( 1540): 40fac5b8 40fac290 40fac390 00000000 00000000 [email protected]@........
I/DEBUG ( 1540): 40fac5c8 00000000 40001907 4004f5f1 4018c64f [email protected]@[email protected]
I/DEBUG ( 1540): 40fac5d8 4018f037 4018c51d 4018ef9d 4018c53d [email protected]@[email protected][email protected]
I/DEBUG ( 1540): 40fac5e8 400bf6d0 4018c52b 4018eac9 4018e9f1 [email protected][email protected]@[email protected]
I/DEBUG ( 1540): 40fac5f8 400c106c 400cbb39 400018f9 4018dff1 [email protected]@[email protected]@
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory near sp:
I/DEBUG ( 1540): 416e2c20 00000624 400faae4 00100000 40fa57d3 [email protected]@
I/DEBUG ( 1540): 416e2c30 00000000 416e2c44 df0027ad 00000000 ....D,nA.'......
I/DEBUG ( 1540): 416e2c40 41239338 00000000 00000000 00000000 8.#A............
I/DEBUG ( 1540): 416e2c50 41239338 00000000 00000000 40fa64cf 8.#[email protected]
I/DEBUG ( 1540): 416e2c60 00000000 00000000 00000000 41238fc8 ..............#A
I/DEBUG ( 1540):
I/DEBUG ( 1540): code around pc:
I/DEBUG ( 1540): 40fa8628 7ae147ae 3fefae14 ab02b5f7 f1004604 .G.z...?.....F..
I/DEBUG ( 1540): 40fa8638 f8430014 46191d04 f7fd4615 2104f8bd ..C....F.F.....!
I/DEBUG ( 1540): 40fa8648 46306806 fd78f7ff b1206823 3084f8d3 .h0F..x.#h ....0
I/DEBUG ( 1540): 40fa8658 21044620 f8d3e02b 4620109c b9284788 F.!+..... F.G(.
I/DEBUG ( 1540): 40fa8668 21014630 fd68f7ff d0232800 21016820 0F.!..h..(#. h.!
I/DEBUG ( 1540):
I/DEBUG ( 1540): code around lr:
I/DEBUG ( 1540): 40fa57b0 f7ff4620 3408ee1c d1f52d00 bf00bd70 F.....4.-..p...
I/DEBUG ( 1540): 40fa57c0 680ab513 4604a902 2d08f841 f7ff4669 ...h...FA..-iF..
I/DEBUG ( 1540): 40fa57d0 6863ee14 00c0eb03 bd1c3004 00000000 ..ch.....0......
I/DEBUG ( 1540): 40fa57e0 47f0e92d 8b04ed2d 460cb088 f100a908 -..G-......F....
I/DEBUG ( 1540): 40fa57f0 46050614 3d04f841 46924630 8054f8dd ...FA..=0F.F..T.
I/DEBUG ( 1540):
I/DEBUG ( 1540): memory map around fault addr fffffff4:
I/DEBUG ( 1540): ffff0000-ffff1000 [vectors]
I/DEBUG ( 1540): (no map for address)
I/DEBUG ( 1540): (no map above)
Latest Dmesg UPDATED 7/17/12
Fixes
Fixpack #2 (7/25/12)
xmc wildchild22 said:
Here is fixpack #2 to fix the sensors, auto rotations etc. The new boot.img also includes ramdisk edits to get closer at a fix for wifi. This is also included the latest compiled 3.0.3.6 kernel by TeamDS. (So this means button lights, proximity, and rotation.)
Thanks to Dillalade for early testing
Click to expand...
Click to collapse
Fixpack #1 (7/15/12)
xmc wildchild22 said:
Please use this fixpack to fix the Launcher. Now you can download the jellybean Gapps also
Click to expand...
Click to collapse
Recognize.
Hastily spouted for your befuddlement
Well, someone's certainly running for Most Valuable Developer...
Sent from my HTC MyTouch 4G Slide using xda premium
rorytmeadows said:
Well, someone's certainly running for Most Valuable Developer...
Sent from my HTC MyTouch 4G Slide using xda premium
Click to expand...
Click to collapse
lol I wish but TeamDS got that award some months back
xmc wildchild22 said:
lol I wish but TeamDS got that award some months back
Click to expand...
Click to collapse
You can certainly make a run if the news junkets pick up on the first stable JellyBean ROM outside of the Nexus...BAM!
Sent from my HTC MyTouch 4G Slide using xda premium
rorytmeadows said:
You can certainly make a run if the news junkets pick up on the first stable JellyBean ROM outside of the Nexus...BAM!
Sent from my HTC MyTouch 4G Slide using xda premium
Click to expand...
Click to collapse
definitely
Sent from my myTouch_4G_Slide using Tapatalk 2
Only 3 devices have working AOSP Jellybean. Let's beat the Sensation finally.
Sent from my myTouch_4G_Slide using Tapatalk 2
AgentCherryColla said:
Only 3 devices have working AOSP Jellybean. Let's beat the Sensation finally.
Sent from my myTouch_4G_Slide using Tapatalk 2
Click to expand...
Click to collapse
I'm sorry. All I read in your post was the word bounty.
I can just see the Engadget article now...Sensational title, passive aggressive attitude towards Android, unfaltering praise for the developer, all by some idiot iPhone-toting glorified blogger. Yeah, that sounds just about right.
Anyway, does JB natively have support for hard keyboards?
Sent from my Transformer Prime TF201
I got too excited seeing this thread.
Rooting for you xmc :thumbup:
Sent from my myTouch_4G_Slide using xda app-developers app
I was able to get a logcat working...I'll post a download (non booting) later today. Now I'll be able to see why this rom isn't booting
What's the ETA on this? Haha just kidding!
I'm excited for this. I'd love some Jelly Bean on the MT4G Slide. If you need anybody to do some testing, I would be more than willing to help out!
Sent from my myTouch_4G_Slide using xda app-developers app
You have come so far XMC.
Props dude.
Thanks for showing interest in the ever so smooth JellyBean
I was able to fix the error in recovery by using the ICS update-binary. I also had to change a little syntax for the wiping in the updater-script...no no more wrong permission errors in the logcat
Pre alpha released
Got this booting with a little building from source and porting expect DL tonight or tomorrow.
Wow, someone's on the move...
xmc wildchild22 said:
Got this booting with a little building from source and porting expect DL tonight or tomorrow.
Click to expand...
Click to collapse
For a temp launcher fix use
http://forum.xda-developers.com/showthread.php?p=25694240
It's Holo Launcher. Also Apex is said to work.
Also make sure to hit the submit thread as news thread below the display modes!!! Get XMC on the front page.
AgentCherryColla said:
Also make sure to hit the submit thread as news thread below the display modes!!! Get XMC on the front page.
Click to expand...
Click to collapse
Done Agent! XMC this is definitely newsworthy to us! And it deserves to be noticed by others as well. Any testing you need we're ready and willing!
Like i told you today-your a beast!-
from my HTC MyTouch 4G Slide running MikXE
Hello,
I got a One XL(Asia version), when i tired to change the default font on it, my phone won't work again.
I am just changing:
/system/fonts/DroidSans-Bold.ttf
/system/fonts/DroidSansFallback.ttf
My device are rooted, after replacing the file and doing backup, i tired to reboot, and the phone won't boot up again, it stuck on the "htc logo", adb still work, but the problem still exists when i copy the backup-ed file back to /system/fonts (via ADB), still, i can't get into the system.
I tired to logcat, and i find this:
Code:
W/Zygote ( 645): Class not found for preloading: android.graphics.Bitmap$2
F/libc ( 645): Fatal signal 11 (SIGSEGV) at 0x0000000c (code=1)
I/DEBUG ( 182): handle_crashing_process(8)
I/DEBUG ( 182): reading tid
I/DEBUG ( 182): BOOM: pid=645 uid=9999 gid=9999 tid=645
I/DEBUG ( 182): not ready yet
I/DEBUG ( 182): waitpid: n=645 status=0000137f
I/DEBUG ( 182): stopped -- continuing
I/DEBUG ( 182): not ready yet
I/DEBUG ( 182): waitpid: n=645 status=00000b7f
I/DEBUG ( 182): stopped -- fatal signal
I/DEBUG ( 182): debuggerd: 2012-07-12 21:42:34
I/DEBUG ( 182): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 182): Build fingerprint: 'htc_asia_hk/evita/evita:4.0.3/IML74K/57351.3:user/release-keys'
I/DEBUG ( 182): pid: 645, tid: 645 >>> zygote <<<
I/DEBUG ( 182): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000c
I/DEBUG ( 182): r0 00000000 r1 00000001 r2 00000000 r3 00000000
I/DEBUG ( 182): r4 01403400 r5 40776894 r6 01403840 r7 013fd920
I/DEBUG ( 182): r8 00000000 r9 01403840 10 00000002 fp 01403f50
I/DEBUG ( 182): ip 00000008 sp befbe458 lr 000d874c pc 4069e11c cpsr 60000010
I/DEBUG ( 182): d0 6c00610074004952 d1 0042020c0040026f
I/DEBUG ( 182): d2 0046020d00440262 d3 004a020d0048026f
I/DEBUG ( 182): d4 0029010800280108 d5 00300410002c0410
I/DEBUG ( 182): d6 0038041000340410 d7 003d0108003c0108
I/DEBUG ( 182): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 182): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 182): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 182): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 182): d16 d648c34d40abae50 d17 41274f0000000000
I/DEBUG ( 182): d18 41cb27cdb1800000 d19 0000000000000000
I/DEBUG ( 182): d20 0000000000000000 d21 0000000000000000
I/DEBUG ( 182): d22 0000000000000000 d23 0000000000000000
I/DEBUG ( 182): d24 0000000000000000 d25 0000000000000000
I/DEBUG ( 182): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 182): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 182): d30 0000000000000000 d31 0000000000000000
I/DEBUG ( 182): scr 80000010
I/DEBUG ( 182):
I/DEBUG ( 182): #00 pc 0005511c /system/lib/libskia.so
I/DEBUG ( 182): #01 pc 000555d4 /system/lib/libskia.so (_ZN10SkFontHost14CreateTypefaceEPK10SkTypefacePKcPKvjNS0_5StyleE)
I/DEBUG ( 182): #02 pc 000a1b4c /system/lib/libskia.so (_ZN10SkTypeface14CreateFromNameEPKcNS_5StyleE)
I/DEBUG ( 182): #03 pc 00077dc0 /system/lib/libandroid_runtime.so
I/DEBUG ( 182): #04 pc 0001fcf0 /system/lib/libdvm.so (dvmPlatformInvoke)
I/DEBUG ( 182): #05 pc 0005aeec /system/lib/libdvm.so (_Z16dvmCallJNIMethodPKjP6JValuePK6MethodP6Thread)
I/DEBUG ( 182):
I/DEBUG ( 182): code around pc:
I/DEBUG ( 182): 4069e0fc e3580000 0a000002 e598c004 e154000c ..X...........T.
I/DEBUG ( 182): 4069e10c 1afffff0 e088c10a e59fe3b8 e1a09006 ................
I/DEBUG ( 182): 4069e11c e58c6004 e08f000e ebff8054 e59f33a8 .`......T....3..
I/DEBUG ( 182): 4069e12c e59d2020 e7920003 e2801008 e4891014 ..............
I/DEBUG ( 182): 4069e13c e1a00009 ebff9801 e59d0014 ebff97ff ................
I/DEBUG ( 182):
I/DEBUG ( 182): code around lr:
I/DEBUG ( 182): 000d872c ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 182): 000d873c ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 182): 000d874c ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 182): 000d875c ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 182): 000d876c ffffffff ffffffff ffffffff ffffffff ................
I/DEBUG ( 182):
I/DEBUG ( 182): stack:
I/DEBUG ( 182): befbe418 00000002
I/DEBUG ( 182): befbe41c 400d7d11 /system/lib/libc.so
I/DEBUG ( 182): befbe420 014036f0 [heap]
I/DEBUG ( 182): befbe424 01403400 [heap]
I/DEBUG ( 182): befbe428 40776894
I/DEBUG ( 182): befbe42c 01403f50 [heap]
I/DEBUG ( 182): befbe430 013fd920 [heap]
I/DEBUG ( 182): befbe434 00013000
I/DEBUG ( 182): befbe438 01403400 [heap]
I/DEBUG ( 182): befbe43c 40776894
I/DEBUG ( 182): befbe440 01403840 [heap]
I/DEBUG ( 182): befbe444 013fd920 [heap]
I/DEBUG ( 182): befbe448 40772ce0 /system/lib/libskia.so
I/DEBUG ( 182): befbe44c 000d87cc
I/DEBUG ( 182): befbe450 df0027ad
I/DEBUG ( 182): befbe454 00000000
I/DEBUG ( 182): #00 befbe458 40b56ae0 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe45c 00000000
I/DEBUG ( 182): befbe460 01403420 [heap]
I/DEBUG ( 182): befbe464 01403880 [heap]
I/DEBUG ( 182): befbe468 00000010
I/DEBUG ( 182): befbe46c befbe4e4 [stack]
I/DEBUG ( 182): befbe470 befbe4a4 [stack]
I/DEBUG ( 182): befbe474 00000002
I/DEBUG ( 182): befbe478 4077513c /system/lib/libskia.so
I/DEBUG ( 182): befbe47c 013fd910 [heap]
I/DEBUG ( 182): befbe480 befbe4e8 [stack]
I/DEBUG ( 182): befbe484 40776894
I/DEBUG ( 182): befbe488 fffff9f4
I/DEBUG ( 182): befbe48c 000d85b0
I/DEBUG ( 182): befbe490 01403400 [heap]
I/DEBUG ( 182): befbe494 407768a4
I/DEBUG ( 182): befbe498 fffffb7c
I/DEBUG ( 182): befbe49c 00000000
I/DEBUG ( 182): befbe4a0 40b56b18 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe4a4 40774158 /system/lib/libskia.so
I/DEBUG ( 182): befbe4a8 00000001
I/DEBUG ( 182): befbe4ac 4f81b000
I/DEBUG ( 182): befbe4b0 00013000
I/DEBUG ( 182): befbe4b4 00000000
I/DEBUG ( 182): befbe4b8 40b56b00 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe4bc ffffffff
I/DEBUG ( 182): befbe4c0 4f81b000
I/DEBUG ( 182): befbe4c4 00013000
I/DEBUG ( 182): befbe4c8 012fdc40 [heap]
I/DEBUG ( 182): befbe4cc 40928da0
I/DEBUG ( 182): befbe4d0 40b56aa8 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe4d4 408e587f /system/lib/libdvm.so
I/DEBUG ( 182): befbe4d8 00000000
I/DEBUG ( 182): befbe4dc 00000000
I/DEBUG ( 182): befbe4e0 00000000
I/DEBUG ( 182): befbe4e4 014036f0 [heap]
I/DEBUG ( 182): befbe4e8 01402520 [heap]
I/DEBUG ( 182): befbe4ec 00ac9410
I/DEBUG ( 182): befbe4f0 befbe4f8 [stack]
I/DEBUG ( 182): befbe4f4 00000007
I/DEBUG ( 182): befbe4f8 64726576
I/DEBUG ( 182): befbe4fc 00616e61
I/DEBUG ( 182): befbe500 40000061
I/DEBUG ( 182): befbe504 012ffd20 [heap]
I/DEBUG ( 182): befbe508 40922068 /system/lib/libdvm.so
I/DEBUG ( 182): befbe50c 40247f4a /system/lib/libandroid_runtime.so
I/DEBUG ( 182): befbe510 40ac9410 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe514 012ffd20 [heap]
I/DEBUG ( 182): befbe518 40922068 /system/lib/libdvm.so
I/DEBUG ( 182): befbe51c 408e12e1 /system/lib/libdvm.so
I/DEBUG ( 182): befbe520 00000010
I/DEBUG ( 182): befbe524 00000030
I/DEBUG ( 182): befbe528 00000001
I/DEBUG ( 182): befbe52c 0133a658 [heap]
I/DEBUG ( 182): befbe530 40922068 /system/lib/libdvm.so
I/DEBUG ( 182): befbe534 013a95d8 [heap]
I/DEBUG ( 182): befbe538 40ac9410 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe53c d648c34d
I/DEBUG ( 182): befbe540 40aa5018 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 182): befbe544 4bd3cdc8 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 182): befbe548 00000000
I/DEBUG ( 182): befbe54c 00000000
I/DEBUG ( 182): befbe550 48aa8e58
I/DEBUG ( 182): befbe554 befbe5a8 [stack]
I/DEBUG ( 182): befbe558 48aa8e50
I/DEBUG ( 182): befbe55c 4d120a68 /system/framework/framework.odex
I/DEBUG ( 182): befbe560 befbe5bc [stack]
I/DEBUG ( 182): befbe564 4069e5d8 /system/lib/libskia.so
I/DEBUG ( 182): #01 befbe568 4bd3cdc8 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 182): befbe56c 00000000
I/DEBUG ( 182): befbe570 00000004
I/DEBUG ( 182): befbe574 406eab50 /system/lib/libskia.so
I/DEBUG ( 182): detaching
I/DEBUG ( 182): waiting for connection
I/ServiceManager( 179): service 'media.audio_flinger' died
I/ServiceManager( 179): service 'media.player' died
I/ServiceManager( 179): service 'media.camera' died
I/ServiceManager( 179): service 'media.audio_policy' died
This error keep raising, it seems that the system server died(?)
The only way to recover is flash my phone using RUU
Any solutions? I tired three time, and the error are SAME(lol i flashed my phone 3 times and i lost all apps and data..)
Anyone have this issue?
Just use font changer from the market.
I'm using windows phone 8 font, works great
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Sent from my HTC One X using xda app-developers app
shawn1224 said:
Just use font changer from the market.
I'm using windows phone 8 font, works great
Sent from my HTC One X using xda app-developers app
Click to expand...
Click to collapse
Thanks, finally, it works!
I hope that with this thread we are able to gain system privileges with the help of CVE-2015-1474.
To begin with I try to write down what I have found. This is just a compilation of information so they might look mixed up.
The class GraphicBuffer is utilized by the system service SurfaceFlinger. My current understanding is that the vulnerable method "unflatten" is used to create a GraphicBuffer object from raw data that is sent to the service by IPC using Binder. A forged message might be easiest supplied via adb shell using this commando
Code:
[email protected]:/ $ service call SurfaceFlinger ...
I am not sure yet how the parcel get's eventually to the GraphicBuffer. It is a lot of code and I do not understand the low level graphics system of Android yet. The IGraphicBufferConsumer interface has a sub class BufferItem which has also an unflatten method which will call unflatten on GraphicBuffer. My gut tells me that the Parcel class is also involved in that process, but I'm not sure how yet.
One important piece of information that I'm still missing is how the unflattened data is used in the further processing of SurfaceFlinger. I don't think it is possible to freely write in the memory of SurfaceFlinger with this bug. There are still a lot of sanity checks to come by.
This could also effect on how we have to implement the communication with SurfaceFlinger. Maybe it's also possible with some forged objects and a SurfaceView.
Maybe together we are able to bring some light into this. A little bump in the right direction might help.
Phate123 said:
I hope that with this thread we are able to gain system privileges with the help of CVE-2015-1474.
Click to expand...
Click to collapse
Take a look at the thread below, It looks like there is already some research begin done but I can't quite get my head around whether they are on the right track. This might help us get going in the right direction though.
http://forum.xda-developers.com/not.../rd-rooting-n910a-n910v-models-t3042045/page6
awinston said:
Take a look at the thread below, It looks like there is already some research begin done but I can't quite get my head around whether they are on the right track. This might help us get going in the right direction though.
http://forum.xda-developers.com/not.../rd-rooting-n910a-n910v-models-t3042045/page6
Click to expand...
Click to collapse
Good news ( @Phate123, @awinston )! I have managed to crash the surfaceflinger on 4.5.2 (should also work on 4.5.3).
I'll upload the code on github, but first I want to briefly explain how I did it.
In Android everything that is a graphical element is represented by an GraphicBuffer.
GraphicBuffers are wrapped in BufferItems and managed by BufferQueues.
Each Queue has two sites, a producer side (IGraphicBufferProducer) and a consumer side (IGraphicBufferConsumer). In the basic scenario an app is the producer and the surfaceflinger is the consumer. These are obviously two different processes, but both must use the same BufferQueue.
BufferQueues are always created and owned by the consumers and consequently live in the same address space as the consumer. Producers must go through Binder to access their side of the queue.
As with everything in Android, the BufferQueue provides the same interface for both native (in the same process) and remote usage. The remote interface is implemented by a proxy that communicates through Binder with the other side.
In android KK BufferQueue implements the native side of the interface for both the producer (BnGraphicBufferProducer) and the consumer (BnGraphicBufferConsumer). These native implementations must provide a handler (onTransact) for requests that come from the remote proxies.
You can read more at https://source.android.com/devices/graphics/architecture.html.
Naturally, the first idea that comes into mind is to attack the native implementations of the BufferQueue that reside in the surfaceflinger. As the bug is in the unflatten routine of GraphicBuffer, we would like to craft a rogue parcel that represents a GraphicBuffer and then wait for the surfaceflinger to choke with it.
Unfortunately, from my findings, the bugged unflatten method is not called from the onTransact handler in the native implementations.
Only the proxy implementations seem to be a valid target, through BpGraphicBufferProducer::requestBuffer and BpGraphicBufferConsumer::aquireBuffer. Now we have a problem: as the BufferQueue resides in the surfaceflinger, there is no proxy implementation to attack.
Our only hope is to somehow create the BufferQueue in our process, so that we are the consumers, and use the surfaceflinger as the producer. This way the surfaceflinger would be accessing the BufferQueue through the bugged proxy (BpGraphicBufferProducer::requestBuffer). One way to use the surfaceflinger as a producer is to make screen captures.
I found the screencap command to be a very nice starting point to tinker with the idea as it does exactly what we wanted - it uses the surfaceflinger as a producer and pulls screen captures from it. Next I only had to hook the vtable entry of BpGraphicBufferProducer:: onTransact.
Now we have to control the overflow in GraphicsBuffer::unflatten.
p1gl3t said:
Good news ( @Phate123, @awinston )! I have managed to crash the surfaceflinger on 4.5.2 (should also work on 4.5.3).
Click to expand...
Click to collapse
Wow you are really good! I had started to piece some of this together and wanted to document it for good measure even though you are going to clearly beat the rest of us to this exploit. Arguably I could never figure it out, but never hurts to try. At least I am learning.
https://charleszblog.wordpress.com/2014/02/20/understanding-android-internals-graphics-basics-i/
http://translate.google.com/transla...dyhuabing/article/details/7489776&prev=search
http://4.bp.blogspot.com/-qQxyvr2Vc8w/VFYLxdacwpI/AAAAAAAAAes/HMMrUIwC9OY/s1600/Selection_043.png
https://android.googlesource.com/platform/frameworks/native/+/master/libs/gui/tests/Surface_test.cpp
The screenshot test is where I was focusing but wasn't really getting very far.
Crashed unflatten as well
Okay so I crashed unflatten as well. Trying to figure out where to go from here. I am a little confused though because I did it natively by calling unflatten directly from a cpp program I wrote with a few lines of code. When you crash it like this how do I know it was the buffer overflow? Sorry, still trying to learn as I go.
03-05 17:06:47.380 2652-2652/? A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x52464247 (code=1), thread 2652 (screenshot)
03-05 17:06:47.490 258-258/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-05 17:06:47.490 258-258/? I/DEBUG﹕ AM write failure (32 / Broken pipe)
03-05 17:06:47.490 258-258/? I/DEBUG﹕ Build fingerprint: 'Amazon/thor/thor:4.4.3/KTU84M/13.4.5.2_user_452004220:user/release-keys'
03-05 17:06:47.490 258-258/? I/DEBUG﹕ Revision: '0'
03-05 17:06:47.490 258-258/? I/DEBUG﹕ pid: 2652, tid: 2652, name: screenshot >>> ./screenshot <<<
03-05 17:06:47.490 258-258/? I/DEBUG﹕ signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 52464247
03-05 17:06:47.490 955-1055/? W/NativeCrashListener﹕ Couldn't find ProcessRecord for pid 2652
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r0 b723dfb8 r1 47424652 r2 be94a600 r3 00000020
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r4 b723dfb8 r5 be94a618 r6 52464247 r7 be94a604
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r8 be94a600 r9 00000000 sl be94a618 fp be94a6ec
03-05 17:06:47.500 258-258/? I/DEBUG﹕ ip b6f08f44 sp be94a590 lr b6f04f4b pc b6e34b94 cpsr 200b0030
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d0 0000000000000000 d1 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d2 0000000000000000 d3 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d4 0000000000000000 d5 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d6 0000000000000000 d7 55ab5f0000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d8 0000000000000000 d9 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d10 0000000000000000 d11 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d12 0000000000000000 d13 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d14 0000000000000000 d15 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d16 0000002000000001 d17 0000000000000020
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d18 b723a630b723a618 d19 b723a658b723a648
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d20 b723a678b723a668 d21 b723a698b723a688
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d22 b723aaf8b723a6a8 d23 b723af58b723af48
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d24 0000000000000000 d25 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d26 0000000000000000 d27 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d28 0000000000000000 d29 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d30 0000000000000000 d31 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ scr 00000010
03-05 17:06:47.510 258-258/? I/DEBUG﹕ backtrace:
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #00 pc 00005b94 /system/lib/libui.so (android::GraphicBuffer::unflatten(void const*&, unsigned int&, int const*&, unsigned int&)+23)
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #01 pc 00002f47 /data/local/tmp/screenshot
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #02 pc 0000e4db /system/lib/libc.so (__libc_init+50)
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #03 pc 0000308c /data/local/tmp/screenshot
03-05 17:06:47.510 258-258/? I/DEBUG﹕ stack:
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a550 00000000
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a554 b6010001
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a558 00000000
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a55c b6e0d44b /system/lib/libgui.so
---------- Post added at 12:26 AM ---------- Previous post was at 12:12 AM ----------
awinston said:
Okay so I crashed unflatten as well.
Click to expand...
Click to collapse
Is the trick to do it through the surfaceflinger process because it is running with escalated privileges?
awinston said:
Okay so I crashed unflatten as well. Trying to figure out where to go from here. I am a little confused though because I did it natively by calling unflatten directly from a cpp program I wrote with a few lines of code. When you crash it like this how do I know it was the buffer overflow? Sorry, still trying to learn as I go.
03-05 17:06:47.380 2652-2652/? A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x52464247 (code=1), thread 2652 (screenshot)
03-05 17:06:47.490 258-258/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-05 17:06:47.490 258-258/? I/DEBUG﹕ AM write failure (32 / Broken pipe)
03-05 17:06:47.490 258-258/? I/DEBUG﹕ Build fingerprint: 'Amazon/thor/thor:4.4.3/KTU84M/13.4.5.2_user_452004220:user/release-keys'
03-05 17:06:47.490 258-258/? I/DEBUG﹕ Revision: '0'
03-05 17:06:47.490 258-258/? I/DEBUG﹕ pid: 2652, tid: 2652, name: screenshot >>> ./screenshot <<<
03-05 17:06:47.490 258-258/? I/DEBUG﹕ signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 52464247
03-05 17:06:47.490 955-1055/? W/NativeCrashListener﹕ Couldn't find ProcessRecord for pid 2652
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r0 b723dfb8 r1 47424652 r2 be94a600 r3 00000020
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r4 b723dfb8 r5 be94a618 r6 52464247 r7 be94a604
03-05 17:06:47.500 258-258/? I/DEBUG﹕ r8 be94a600 r9 00000000 sl be94a618 fp be94a6ec
03-05 17:06:47.500 258-258/? I/DEBUG﹕ ip b6f08f44 sp be94a590 lr b6f04f4b pc b6e34b94 cpsr 200b0030
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d0 0000000000000000 d1 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d2 0000000000000000 d3 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d4 0000000000000000 d5 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d6 0000000000000000 d7 55ab5f0000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d8 0000000000000000 d9 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d10 0000000000000000 d11 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d12 0000000000000000 d13 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d14 0000000000000000 d15 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d16 0000002000000001 d17 0000000000000020
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d18 b723a630b723a618 d19 b723a658b723a648
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d20 b723a678b723a668 d21 b723a698b723a688
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d22 b723aaf8b723a6a8 d23 b723af58b723af48
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d24 0000000000000000 d25 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d26 0000000000000000 d27 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d28 0000000000000000 d29 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ d30 0000000000000000 d31 0000000000000000
03-05 17:06:47.500 258-258/? I/DEBUG﹕ scr 00000010
03-05 17:06:47.510 258-258/? I/DEBUG﹕ backtrace:
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #00 pc 00005b94 /system/lib/libui.so (android::GraphicBuffer::unflatten(void const*&, unsigned int&, int const*&, unsigned int&)+23)
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #01 pc 00002f47 /data/local/tmp/screenshot
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #02 pc 0000e4db /system/lib/libc.so (__libc_init+50)
03-05 17:06:47.510 258-258/? I/DEBUG﹕ #03 pc 0000308c /data/local/tmp/screenshot
03-05 17:06:47.510 258-258/? I/DEBUG﹕ stack:
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a550 00000000
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a554 b6010001
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a558 00000000
03-05 17:06:47.510 258-258/? I/DEBUG﹕ be94a55c b6e0d44b /system/lib/libgui.so
---------- Post added at 12:26 AM ---------- Previous post was at 12:12 AM ----------
Is the trick to do it through the surfaceflinger process because it is running with escalated privileges?
Click to expand...
Click to collapse
Surfaceflinger runs under the system user (+drmrpc group) and should have access to /dev/qseecom, through which we can get root using CVE-2014-4322.
The problem is that the heap buffer overflow triggered by unflatten seems very difficult to exploit.
We must consider the following to achieve a controlled memory write:
sizeof(native_handle_t) + sizeof(int)*(numFds+numInts) must overflow 32 bits and remain small enough that the malloc succeeds and returns a valid heap address in h->data. If the malloc were to fail, we would memcpy to address 0 and get a seg fault.
as even after the malloc, numInts and numFds are used only after being multiplied by 4 (sizeof(int)), we can ignore the 2 most significant bits from both of them. This means that the only way to get any kind of bof is to generate transport from bit 29 to bit 30 on the sum numFds+numInts. Consequently, at least one of numInts or numFds must have bit 29 set. This doesn't sound very good because next we will do a memcpy of numFds * 4 bytes and next a memcpy of numInts * 4 bytes, meaning that at least one of the two memcpy calls will try to copy at least (1<<31) bytes. This will certainly lead to a segfault before we can trigger something from another thread...
the executable code is position independent so we would need to leak an address to be able to use rop.
Things don't look good at all... I really hope that I have made a mistake or that there is another approach to the problem.
I'm afraid that the pros would have already implemented an exploit by now, if it could have been done.
p1gl3t said:
We must consider the following to obtain a controlled memory write:
sizeof(native_handle_t) + sizeof(int)*(numFds+numInts) must overflow 32 bits and remain small enough that the malloc succeeds and returns a valid heap address in h->data. If the malloc were to fail, we would memcpy to address 0 and get a seg fault.
as even after the malloc, numInts and numFds are used only after being multiplied by 4 (sizeof(int)), we can ignore the 2 most significant bits from both of them. This means that the only way to get any kind of bof is to generate transport from bit 29 to bit 30 on the sum numFds+numInts. Consequently, at least one of numInts or numFds must have bit 29 set. This doesn't sound very good because next we will do a memcpy of numFds * 4 bytes and next a memcpy of numInts * 4 bytes, meaning that at least one of the two memcpy calls will try to copy at least (1<<31) bytes. This will certainly lead to a segfault before we can trigger something from another thread...
the executable code is position independent so we would need to leak an address to be able to use rop.
Things don't look good at all... I really hope that I have made a mistake or that there is another approach to the problem.
I'm afraid that the exploit pros would have already implemented an exploit if it could have been done.
Click to expand...
Click to collapse
That have been my thoughts too. There is a memory corruption but it is difficult to use and it is not on areas that could be used to manipulate the return stack or a vtable entry. Or I just can't see the way. I have experience in this area,but it is kinda limited.
BTW: These drivers are not used by the Fire HDX by chance? https://www.codeaurora.org/projects...le-camera-drivers-cve-2014-4321-cve-2014-4324
Sadly I cannot find enough time to spend hours on digging. I hope there are some to be find this weekend though.
Phate123 said:
That have been my thoughts too. There is a memory corruption but it is difficult to use and it is not on areas that could be used to manipulate the return stack or a vtable entry. Or I just can't see the way. I have experience in this area,but it is kinda limited.
BTW: These drivers are not used by the Fire HDX by chance? https://www.codeaurora.org/projects...le-camera-drivers-cve-2014-4321-cve-2014-4324
Sadly I cannot find enough time to spend hours on digging. I hope there are some to be find this weekend though.
Click to expand...
Click to collapse
I don't think a stack attack would have been feasible at all as the code should be compiled with stack protector on and we can't do a brute force on the canary value. Hijacking a vtable pointer or a got entry would have been the way to go, but we still wouldn't know what to write as everything is aslr'd.
Regarding those camera drivers, I think someone over at the Samsung section also mentioned them. I'll look into them and report back.
p1gl3t said:
I don't think a stack attack would have been feasible at all as the code should be compiled with stack protector on and we can't do a brute force on the canary value. Hijacking a vtable pointer or a got entry would have been the way to go, but we still wouldn't know what to write as everything is aslr'd.
Click to expand...
Click to collapse
Would you mind sharing your code even though it doesn't look like you will be able to exploit this overflow? I am still trying to get my head around the basic attack through surface flinger and it would help me greatly to better understand how at least in theory this works. No worries if you don't want to.
awinston said:
Would you mind sharing your code even though it doesn't look like you will be able to exploit this overflow? I am still trying to get my head around the basic attack through surface flinger and it would help me greatly to better understand how at least in theory this works. No worries if you don't want to.
Click to expand...
Click to collapse
Here you go: https://github.com/p1gl3t/CVE-2015-1474_poc.
p1gl3t, great job on creating a poc of the exploit :good:
p1gl3t said:
Regarding those camera drivers, I think someone over at the Samsung section also mentioned them. I'll look into them and report back.
Click to expand...
Click to collapse
@jcase Says no on those camera group holes. http://forum.xda-developers.com/showpost.php?p=58945240&postcount=18
It's good to see other's working on 2015-1474 also :good:
ZPaul2Fresh8 said:
@jcase Says no on those camera group holes. http://forum.xda-developers.com/showpost.php?p=58945240&postcount=18
It's good to see other's working on 2015-1474 also :good:
Click to expand...
Click to collapse
@jcase is right, only mediaserver is executed under group camera so that it can access /dev/video*. You can see that in init.base.rc and ueventd.qcom.rc.
Now returning to the original topic... I fiddled around with unflatten, giving some input that should have made it crash.
What I did is I left numInts untouched and set numFds = -numInts. I was expecting surfaceflinger to crash every single time when it did the first memcpy. Somehow it didn't. I was baffled and had to gdb the process to see where my assumptions were wrong.
I breaked just before the first memcpy and printed the params:
Code:
(gdb) p $r0
$19 = 3074255348
(gdb) p $r1
$20 = 3074340312
(gdb) p $r2
$21 = 4294967248
r0 is the destination, r1 the source and r2 the number of bytes to copy. r2 is the unsigned representation of 4 * (-12) = 4 * numFds = -4 * numInts.
How did the program NOT crash???!! It even worked a second time, but crashed with SIGABRT in a free() because of heap corruption (I suppose). So even the second memcpy passed without segfault.
Here you have the memory map of surfaceflinger.
LE I have traced the memcpy. It looks like this on my Apollo 14.4.5.2
Code:
.text:0002218C __memcpy_base
.text:0002218C CMP R2, #4
.text:0002218E BLT.W loc_222DC
.text:00022192 CMP R2, #0x10
.text:00022194 BLT.W loc_222BE
.text:00022198 CMP R2, #0x20
.text:0002219A BLT.W loc_222AE
.text:0002219E CMP R2, #0x40
.text:000221A0 BLT loc_222A2
It seems like R2 (number of bytes) is treated like a signed int and the first branch is taken and the following instructions are executed
Code:
.text:000222DC loc_222DC ; CODE XREF: __memcpy_base+2
.text:000222DC LSLS R2, R2, #0x1F
.text:000222DE ITT CS
.text:000222E0 LDRCSH.W R3, [R1],#2
.text:000222E4 STRCSH.W R3, [R0],#2
.text:000222E8 ITT MI
.text:000222EA LDRMIB R3, [R1]
.text:000222EC STRMIB R3, [R0]
This ends up copying only n & 3 bytes, which is < 4. Basically, only the 2 least significant bits from n matter).
So... I guess we are able to write to h->data + numFds*4 as long as numFds*4 is negative. But having numFds as an offset may hurt us on the malloc side.
Now we have to defeat aslr somehow.
Any chance
I hope you are still working on this, we really need to get ride of the crappy Amazon OS and unlock the full potential of these amazing tablet specs.
I have an open tablet that I should repair, if there is need to take some photos of components please let me know, I am not into software hacking yet and it will takes me some time to get into it... but I want to contribute to make this possible, I hope more smart guys from around here join their effort to do it.
I wish if there is another tablet on the market who is as good as this one right now at an affordable price, to just see how CM12.1 behave on it, I tried it on a KFHD before I get it bricked it was fine but little bit laggy due to limited specs and low ram.
Hi, p1gl3t!
I'm interesting in your PoC and have to ask... Is your work on this done? And how might I use that for my specific device?
dadreamer said:
Hi, p1gl3t!
I'm interesting in your PoC and have to ask... Is your work on this done? And how might I use that for my specific device?
Click to expand...
Click to collapse
Not sure what this thread was all about (didn't look back) but the last post was over 2 years ago. A lot has happened since then; every 3rd gen HDX can be bootloader unlocked opening the door to custom ROMS ranging from Android 4.4.4 to 7.1.1.
https://forum.xda-developers.com/kindle-fire-hdx/general/thor-unlocking-bootloader-firmware-t3463982
https://forum.xda-developers.com/kindle-fire-hdx/general/thor-4-5-5-2-easy-to-root-unlock-t3571240
Davey126 said:
every 3rd gen HDX can be bootloader unlocked opening the door to custom ROMS ranging from Android 4.4.4 to 7.1.1.
Click to expand...
Click to collapse
Well, that's true but not for my device I still have a slightly outdated smartphone. It is Docomo Fujitsu Arrows NX F-01F [ Android 4.4.2, build # V10R22A (kernel version 3.4.0), ARMv7 arch (armv7l, armeabi-v7a) ]. And it's got no public firmwares at all, no bootloader unlock and no root in easy ways. Besides of that, there's one "pleasant" addition - PXN (Privilege Execute-Never), which doesn't let me to root the phone with simple ways or common tools.
To bypass PXN I have to use some JOP approach but for it I need to get boot.img or kernel memory dump somehow. Because I have no factory ROMs I'm trying to pull out boot.img through known vulnerabilities of my dev. One of them is CVE-2015-1474 (GraphicBuffer integer overflow), which potentially might give me system privilegies to copy boot.img from that phone.
So I wonder if p1gl3t's code is ready to use and is able to give the system privilegies. It seems it should be compiled together with AOSP codebase. But I'm unsure if it would work well when I get it compiled.
Checked your links. There I see that the presence of root is required. But I can't gain root so can't use those tools.
dadreamer said:
Well, that's true but not for my device I still have a slightly outdated smartphone. It is Docomo Fujitsu Arrows NX F-01F [ Android 4.4.2, build # V10R22A (kernel version 3.4.0), ARMv7 arch (armv7l, armeabi-v7a) ]. And it's got no public firmwares at all, no bootloader unlock and no root in easy ways. Besides of that, there's one "pleasant" addition - PXN (Privilege Execute-Never), which doesn't let me to root the phone with simple ways or common tools.
To bypass PXN I have to use some JOP approach but for it I need to get boot.img or kernel memory dump somehow. Because I have no factory ROMs I'm trying to pull out boot.img through known vulnerabilities of my dev. One of them is CVE-2015-1474 (GraphicBuffer integer overflow), which potentially might give me system privilegies to copy boot.img from that phone.
So I wonder if p1gl3t's code is ready to use and is able to give the system privilegies. It seems it should be compiled together with AOSP codebase. But I'm unsure if it would work well when I get it compiled.
Checked your links. There I see that the presence of root is required. But I can't gain root so can't use those tools.
Click to expand...
Click to collapse
Have not seen @p1gl3t on this thread/forum in awhile; not sure if s/he is still active on XDA. Might try a PM. Given the age and, err, uniqueness of device in question I suspect you're in for quite a ride. Good luck.
Well, I have compiled that badscreencap by p1gl3t along with android 4.4.2 codebase and then pushed it to my dev. But whenever I run it I receive segfault:
Code:
[email protected]:/data/local/tmp $ ./badscreencap
pid 24824
display.update ret 0
IGraphicBufferConsumer::consumerDisconnect 0x18
BBinder::onTransact 0x40
BnGraphicBufferProducer::onTransact 0x34
BBinder::onTransact 0x40
BnGraphicBufferProducer::onTransact 0x34
BBinder::onTransact 0xb6889759
BnGraphicBufferProducer::onTransact 0xb6889391
BBinder::onTransact = 0xb6899048
*BBinder::onTransact = 0xb6889759
BBinder::onTransact = 0xb7b912b0
*BBinder::onTransact = 0xb6889759
--------
f1 04 00 ff f7 18 be 38 b5 04 46 0d 46 11 b1 08 46 f6 f7 50
--------
[1] + Stopped (signal) ./badscreencap
When I issue any one command after that I get
Code:
[email protected]:/data/local/tmp $
[1] + Segmentation fault ./badscreencap (core dumped)
Of course, no any signs of system privileges for my id. Checked this with logcat and it has got the following trace:
F/libc (24824): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 24824 (badscreencap)
D/wpa_supplicant(10784): wlan0: Control interface command 'SIGNAL_POLL'
D/wpa_supplicant(10784): signal_poll nl80211_signal_poll:10508 rssi:[-47]
D/wpa_supplicant(10784): nl80211: survey data missing!
D/wpa_supplicant(10784): wlan0: Control interface command 'PKTCNT_POLL'
I/DEBUG ( 266): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 266): Build fingerprint: 'DOCOMO/F01F/F01F:4.4.2/V10R22A/F01F.20150107.043237:user/release-keys'
I/DEBUG ( 266): Revision: '37'
I/DEBUG ( 266): pid: 24824, tid: 24824, name: badscreencap >>> ./badscreencap <<<
I/DEBUG ( 266): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000004
W/NativeCrashListener( 1119): Couldn't find ProcessRecord for pid 24824
I/DEBUG ( 266): r0 00000004 r1 beca97ac r2 b6f6f82c r3 00000004
I/DEBUG ( 266): AM write failure (32 / Broken pipe)
I/DEBUG ( 266): r4 00000000 r5 b7b8eee8 r6 b688b285 r7 00000000
I/DEBUG ( 266): r8 beca97e4 r9 00000000 sl beca99d8 fp beca98ac
I/DEBUG ( 266): ip b6ec1f38 sp beca9780 lr b6eba0d5 pc b6ee9b5c cpsr 000b0010
I/DEBUG ( 266): d0 0000000000000000 d1 0000000000000000
I/DEBUG ( 266): d2 0000000000000000 d3 0000000000000000
I/DEBUG ( 266): d4 0000000000000000 d5 0000000000000000
I/DEBUG ( 266): d6 0000000000000000 d7 3849498000000000
I/DEBUG ( 266): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 266): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 266): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 266): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 266): d16 7265646e6942422a d17 6e6172546e6f3a3a
I/DEBUG ( 266): d18 b6e8d399b6e8d4af d19 b6e8d07fb6e8d377
I/DEBUG ( 266): d20 b68827d1b6e8d071 d21 b6889759b68827f3
I/DEBUG ( 266): d22 0000000000000000 d23 0000000000000000
I/DEBUG ( 266): d24 0000000000000000 d25 0000000000000000
I/DEBUG ( 266): d26 0000000000000000 d27 0000000000000000
I/DEBUG ( 266): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 266): d30 0000000000000000 d31 0000000000000000
I/DEBUG ( 266): scr 00000010
I/DEBUG ( 266):
I/DEBUG ( 266): backtrace:
I/DEBUG ( 266): #00 pc 00003b5c /system/lib/libcutils.so (android_atomic_inc+8)
I/DEBUG ( 266): #01 pc 0000d0d1 /system/lib/libutils.so (android::RefBase::incStrong(void const*) const+6)
I/DEBUG ( 266): #02 pc 0002a3b5 /system/lib/libgui.so (android::sp<android::IBinder>::sp(android::sp<android::IBinder> const&)+20)
I/DEBUG ( 266): #03 pc 0003494f /system/lib/libgui.so (android::ScreenshotClient::update(android::sp<android::IBinder> const&, unsigned int, unsigned int, unsigned int, unsigned int)+78)
I/DEBUG ( 266): #04 pc 000349c1 /system/lib/libgui.so (android::ScreenshotClient::update(android::sp<android::IBinder> const&)+14)
I/DEBUG ( 266): #05 pc 00005de1 /data/local/tmp/badscreencap
I/DEBUG ( 266): #06 pc 0000e5a3 /system/lib/libc.so (__libc_init+50)
I/DEBUG ( 266): #07 pc 00005590 /data/local/tmp/badscreencap
I/DEBUG ( 266):
I/DEBUG ( 266): stack:
I/DEBUG ( 266): beca9740 00000000
I/DEBUG ( 266): beca9744 b6885b8b /system/lib/libgui.so (android::CpuConsumer::releaseAcquiredBufferLocked(int)+150)
I/DEBUG ( 266): beca9748 00000000
I/DEBUG ( 266): beca974c b68a0154 /system/lib/libgui.so
I/DEBUG ( 266): beca9750 b6f6e268 /data/local/tmp/badscreencap
I/DEBUG ( 266): beca9754 b7b900f0 [heap]
I/DEBUG ( 266): beca9758 b7b8fc40 [heap]
I/DEBUG ( 266): beca975c b7b8fc40 [heap]
I/DEBUG ( 266): beca9760 0000000c
I/DEBUG ( 266): beca9764 b6f6e268 /data/local/tmp/badscreencap
I/DEBUG ( 266): beca9768 b7b8fc40 [heap]
I/DEBUG ( 266): beca976c 00000000
I/DEBUG ( 266): beca9770 b6f6e268 /data/local/tmp/badscreencap
I/DEBUG ( 266): beca9774 b6885c09 /system/lib/libgui.so (android::CpuConsumer::unlockBuffer(android::CpuConsumer::LockedBuffer const&)+92)
I/DEBUG ( 266): beca9778 b7b8fc40 [heap]
I/DEBUG ( 266): beca977c beca9808 [stack]
I/DEBUG ( 266): #00 beca9780 beca97ac [stack]
I/DEBUG ( 266): ........ ........
I/DEBUG ( 266): #01 beca9780 beca97ac [stack]
I/DEBUG ( 266): beca9784 b68853b9 /system/lib/libgui.so (android::sp<android::IBinder>::sp(android::sp<android::IBinder> const&)+24)
I/DEBUG ( 266): #02 beca9788 beca9800 [stack]
I/DEBUG ( 266): beca978c b688f953 /system/lib/libgui.so (android::ScreenshotClient::update(android::sp<android::IBinder> const&, unsigned int, unsigned int, unsigned int, unsigned int)+82)
I/DEBUG ( 266):
I/DEBUG ( 266): memory near r1:
I/DEBUG ( 266): beca978c b688f953 b6f4b334 00000002 b7b8f0e0
I/DEBUG ( 266): beca979c 00000000 b6f3d1d8 b7b8eee8 b7b8fc40
I/DEBUG ( 266): beca97ac b7b8f0e0 b6f6e08f 00000000 b7b91270
I/DEBUG ( 266): beca97bc b6f6e268 b7b8f0e0 b6f6e24e b6899008
I/DEBUG ( 266): beca97cc b688f9c5 00000000 ffffffff 00000000
I/DEBUG ( 266): beca97dc b6f6dde5 00000000 b7b8f0a0 00000018
I/DEBUG ( 266): beca97ec 00000001 00000040 00000001 00000034
I/DEBUG ( 266): beca97fc 00000001 b7b8fc40 b7b8f0e0 00000000
I/DEBUG ( 266): beca980c 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca981c 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca982c 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca983c 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca984c 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca985c beca98b4 beca98b4 beca98bc 00000001
I/DEBUG ( 266): beca986c b6f3cfd8 b6f6db95 00000000 00000000
I/DEBUG ( 266): beca987c b6f015a5 00000000 00000000 00000000
I/DEBUG ( 266):
I/DEBUG ( 266): memory near r2:
I/DEBUG ( 266): b6f6f80c b6f6f9d0 b6f6f8ac b6f6f8fc b6f6f958
I/DEBUG ( 266): b6f6f81c b6f6f9a8 0000058c 00000000 00000000
I/DEBUG ( 266): b6f6f82c b6f6d769 b6f6d7e1 b6f6d5eb b6f6d5f9
I/DEBUG ( 266): b6f6f83c b6f6d899 b6883bd5 b6883ce9 b68843d1
I/DEBUG ( 266): b6f6f84c b6882dd5 b68828f1 b68829e9 b6883a59
I/DEBUG ( 266): b6f6f85c b6f6d8f5 b6889391 b6881f99 b6884cf1
I/DEBUG ( 266): b6f6f86c b6884ac9 b688372d b68839b9 b6884fb9
I/DEBUG ( 266): b6f6f87c b68822a9 b6882889 b68826f5 b6882679
I/DEBUG ( 266): b6f6f88c b6882383 b6882359 b688232f b6882305
I/DEBUG ( 266): b6f6f89c b688241d 00000588 fffffffc 00000000
I/DEBUG ( 266): b6f6f8ac b6f6d92d b6f6d5fd b6e8d075 b6e8d071
I/DEBUG ( 266): b6f6f8bc b6e8d071 b6e8d1e9 b6e8d079 b6e8d079
I/DEBUG ( 266): b6f6f8cc b6e8d071 b6e8d4af b6e8d399 b6e8d377
I/DEBUG ( 266): b6f6f8dc b6e8d07f b6e8d071 b6f6d7cf b6f6d805
I/DEBUG ( 266): b6f6f8ec b6889759 0000057c fffffff0 00000000
I/DEBUG ( 266): b6f6f8fc b6f6d7c9 b6f6d7ff b6f6d5eb b6884fb1
I/DEBUG ( 266):
I/DEBUG ( 266): memory near r5:
I/DEBUG ( 266): b7b8eec8 b7b8eed0 0000001b 00000001 00000001
I/DEBUG ( 266): b7b8eed8 b7b8eec4 00000001 00000000 00000023
I/DEBUG ( 266): b7b8eee8 b689d17c b689d1d0 b7b8ef88 b7b8efc8
I/DEBUG ( 266): b7b8eef8 00000001 b689d200 b7b8ef08 0000001b
I/DEBUG ( 266): b7b8ef08 00000002 00000002 b7b8eefc 00000001
I/DEBUG ( 266): b7b8ef18 006e0061 0000001b b689e97c b7b8e408
I/DEBUG ( 266): b7b8ef28 b689e9a4 b7b8ef38 00660072 0000001b
I/DEBUG ( 266): b7b8ef38 00000001 00000002 b7b8ef28 00000000
I/DEBUG ( 266): b7b8ef48 00000000 0000001b b6e9a888 b7b8eff0
I/DEBUG ( 266): b7b8ef58 00000001 00000000 00000010 00000023
I/DEBUG ( 266): b7b8ef68 00000001 00000001 b7b8f0d4 00000001
I/DEBUG ( 266): b7b8ef78 00000000 00000000 00000020 00000043
I/DEBUG ( 266): b7b8ef88 b6e9a944 00000001 00000000 00000001
I/DEBUG ( 266): b7b8ef98 00000000 b7b8ef50 b6e9a858 00000000
I/DEBUG ( 266): b7b8efa8 00000000 00000000 00000010 00000000
I/DEBUG ( 266): b7b8efb8 b7b8a048 b6e9a9ac b7b8efc8 0000001b
I/DEBUG ( 266):
I/DEBUG ( 266): memory near r6:
I/DEBUG ( 266): b688b264 a81047a0 ea4cf7f4 a8104604 ea4ef7f4
I/DEBUG ( 266): b688b274 f7f4a804 4620ea4c bdf0b01d 00014f3c
I/DEBUG ( 266): b688b284 b09db5f0 a8044604 461f4615 f7f4460e
I/DEBUG ( 266): b688b294 a810ea26 ea22f7f4 a804491c f7f44479
I/DEBUG ( 266): b688b2a4 4631ea24 f7f4a804 a803eada f7f46829
I/DEBUG ( 266): b688b2b4 a903ead0 f7f4a804 a803ead2 fe31f7f5
I/DEBUG ( 266): b688b2c4 a8044639 ea16f7f4 a8049922 ea12f7f4
I/DEBUG ( 266): b688b2d4 a8049923 ea0ef7f4 a8049924 ea0af7f4
I/DEBUG ( 266): b688b2e4 210e68a0 68032200 aa049200 ab10695c
D/wpa_supplicant(10784): wlan0: Control interface command 'SIGNAL_POLL'
I/DEBUG ( 266): b688b2f4 a81047a0 ea04f7f4 a8104604 ea06f7f4
I/DEBUG ( 266): b688b304 f7f4a804 4620ea04 bdf0b01d 00014e94
I/DEBUG ( 266): b688b314 1d05b538 f1004604 f7f4004c 4628ee1e
I/DEBUG ( 266): b688b324 fdfff7f5 f7f54620 4620fdfc b538bd38
I/DEBUG ( 266): b688b334 4615460c 4620e004 f7ff3d01 3460ffe9
I/DEBUG ( 266): b688b344 d1f82d00 0000bd38 b09db530 a8044604
I/DEBUG ( 266): b688b354 f7f4460d a810e9c4 e9c0f7f4 23004925
I/DEBUG ( 266):
I/DEBUG ( 266): memory near r8:
I/DEBUG ( 266): beca97c4 b6f6e24e b6899008 b688f9c5 00000000
I/DEBUG ( 266): beca97d4 ffffffff 00000000 b6f6dde5 00000000
I/DEBUG ( 266): beca97e4 b7b8f0a0 00000018 00000001 00000040
I/DEBUG ( 266): beca97f4 00000001 00000034 00000001 b7b8fc40
I/DEBUG ( 266): beca9804 b7b8f0e0 00000000 00000000 00000000
I/DEBUG ( 266): beca9814 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9824 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9834 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9844 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9854 00000000 00000000 beca98b4 beca98b4
I/DEBUG ( 266): beca9864 beca98bc 00000001 b6f3cfd8 b6f6db95
I/DEBUG ( 266): beca9874 00000000 00000000 b6f015a5 00000000
I/DEBUG ( 266): beca9884 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9894 b6f6d594 b6f6f668 b6f6f670 b6f6f678
I/DEBUG ( 266): beca98a4 beca98b0 00000000 b6f57881 00000001
I/DEBUG ( 266): beca98b4 beca99d8 00000000 beca99e7 beca99f8
I/DEBUG ( 266):
I/DEBUG ( 266): memory near sl:
I/DEBUG ( 266): beca99b8 beca99d4 00000000 00000000 5c2cbe0e
I/DEBUG ( 266): beca99c8 6dbb4e08 7c900b9b 76a8a152 006c3776
I/DEBUG ( 266): beca99d8 61622f2e 72637364 636e6565 5f007061
I/DEBUG ( 266): beca99e8 622f2e3d 63736461 6e656572 00706163
I/DEBUG ( 266): beca99f8 48544150 62732f3d 2f3a6e69 646e6576
I/DEBUG ( 266): beca9a08 622f726f 2f3a6e69 74737973 732f6d65
D/wpa_supplicant(10784): signal_poll nl80211_signal_poll:10508 rssi:[-47]
D/wpa_supplicant(10784): nl80211: survey data missing!
I/DEBUG ( 266): beca9a18 3a6e6962 7379732f 2f6d6574 3a6e6962
I/DEBUG ( 266): beca9a28 7379732f 2f6d6574 6e696278 4f4f4c00
I/DEBUG ( 266): beca9a38 4f4d5f50 50544e55 544e494f 6e6d2f3d
I/DEBUG ( 266): beca9a48 626f2f74 4e410062 494f5244 4f525f44
I/DEBUG ( 266): beca9a58 2f3d544f 74737973 56006d65 5f454249
I/DEBUG ( 266): beca9a68 45504950 5441505f 642f3d48 702f7665
I/DEBUG ( 266): beca9a78 73657069 45485300 2f3d4c4c 74737973
I/DEBUG ( 266): beca9a88 622f6d65 732f6e69 4e410068 494f5244
I/DEBUG ( 266): beca9a98 41445f44 2f3d4154 61746164 444e4100
I/DEBUG ( 266): beca9aa8 44494f52 5353415f 3d535445 7379732f
I/DEBUG ( 266):
I/DEBUG ( 266): memory near fp:
I/DEBUG ( 266): beca988c 00000000 00000000 b6f6d594 b6f6f668
I/DEBUG ( 266): beca989c b6f6f670 b6f6f678 beca98b0 00000000
I/DEBUG ( 266): beca98ac b6f57881 00000001 beca99d8 00000000
I/DEBUG ( 266): beca98bc beca99e7 beca99f8 beca9a35 beca9a4e
I/DEBUG ( 266): beca98cc beca9a63 beca9a7d beca9a92 beca9aa5
I/DEBUG ( 266): beca98dc beca9ac0 beca9acb beca9af4 beca9b13
I/DEBUG ( 266): beca98ec beca9b26 beca9b34 beca9b5c beca9e57
I/DEBUG ( 266): beca98fc beca9e83 beca9e9a beca9ebf beca9ee9
I/DEBUG ( 266): beca990c beca9f02 beca9f16 beca9f3d beca9f67
I/DEBUG ( 266): beca991c beca9f8d beca9f9a beca9fb4 beca9fd7
I/DEBUG ( 266): beca992c beca9fe2 00000000 00000010 0007b0d7
I/DEBUG ( 266): beca993c 00000006 00001000 00000011 00000064
I/DEBUG ( 266): beca994c 00000003 b6f68034 00000004 00000020
I/DEBUG ( 266): beca995c 00000005 00000008 00000007 b6f56000
I/DEBUG ( 266): beca996c 00000008 00000000 00000009 b6f6d530
I/DEBUG ( 266): beca997c 0000000b 000007d0 0000000c 000007d0
I/DEBUG ( 266):
I/DEBUG ( 266): memory near ip:
I/DEBUG ( 266): b6ec1f18 b6f1e845 b6f052ef b6f05357 b6f196c1
I/DEBUG ( 266): b6ec1f28 b6f15749 b6f1542c b6f1cb11 b6f1e239
I/DEBUG ( 266): b6ec1f38 b6ee9b54 b6ee9b34 b6ee9b74 b6ee9b0c
I/DEBUG ( 266): b6ec1f48 b6ee9bb8 b6f00de1 b6f2d62f b6f164dd
I/DEBUG ( 266): b6ec1f58 b6f1ba3d b6f1e7b9 b6f2d3bb b6f167db
I/DEBUG ( 266): b6ec1f68 b6f20c55 b6f135e4 b6f20035 b6f05f01
I/DEBUG ( 266): b6ec1f78 b6f05f29 b6f05f71 b6f003d0 b6f05f1b
I/DEBUG ( 266): b6ec1f88 b6f01b38 b6f01a34 b6f13468 b6f13348
I/DEBUG ( 266): b6ec1f98 b6eeb151 b6f06279 b6f13180 b6f1fec3
I/DEBUG ( 266): b6ec1fa8 b6f01810 b6f01f44 b6f02190 b6f0227c
I/DEBUG ( 266): b6ec1fb8 b6f01f84 b6f01ec0 b6f01fa0 b6f140ec
I/DEBUG ( 266): b6ec1fc8 b6ede927 b6f13d10 b6ede919 b6f13510
I/DEBUG ( 266): b6ec1fd8 b6f0086c b6f021ec b6f00ab8 b6f00ad8
I/DEBUG ( 266): b6ec1fe8 b6f13530 b6f14964 b6f14984 b6f138b4
I/DEBUG ( 266): b6ec1ff8 b6f1f0f9 b6f14944 b6ec2000 ffffffff
I/DEBUG ( 266): b6ec2008 00000001 ffffffff b6ebb42d 00000000
I/DEBUG ( 266):
I/DEBUG ( 266): memory near sp:
I/DEBUG ( 266): beca9760 0000000c b6f6e268 b7b8fc40 00000000
I/DEBUG ( 266): beca9770 b6f6e268 b6885c09 b7b8fc40 beca9808
I/DEBUG ( 266): beca9780 beca97ac b68853b9 beca9800 b688f953
I/DEBUG ( 266): beca9790 b6f4b334 00000002 b7b8f0e0 00000000
I/DEBUG ( 266): beca97a0 b6f3d1d8 b7b8eee8 b7b8fc40 b7b8f0e0
I/DEBUG ( 266): beca97b0 b6f6e08f 00000000 b7b91270 b6f6e268
I/DEBUG ( 266): beca97c0 b7b8f0e0 b6f6e24e b6899008 b688f9c5
I/DEBUG ( 266): beca97d0 00000000 ffffffff 00000000 b6f6dde5
I/DEBUG ( 266): beca97e0 00000000 b7b8f0a0 00000018 00000001
I/DEBUG ( 266): beca97f0 00000040 00000001 00000034 00000001
I/DEBUG ( 266): beca9800 b7b8fc40 b7b8f0e0 00000000 00000000
I/DEBUG ( 266): beca9810 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9820 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9830 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9840 00000000 00000000 00000000 00000000
I/DEBUG ( 266): beca9850 00000000 00000000 00000000 beca98b4
I/DEBUG ( 266):
I/DEBUG ( 266): code around pc:
I/DEBUG ( 266): b6ee9b3c e1910f9f e080c003 e1812f9c e3520000
I/DEBUG ( 266): b6ee9b4c 1afffffa e12fff1e e1a03000 f57ff05f
I/DEBUG ( 266): b6ee9b5c e1930f9f e2801001 e1832f91 e3520000
I/DEBUG ( 266): b6ee9b6c 1afffffa e12fff1e e1a03000 f57ff05f
I/DEBUG ( 266): b6ee9b7c e3e02000 e1930f9f e080c002 e1831f9c
I/DEBUG ( 266): b6ee9b8c e3510000 1afffffa e12fff1e e1a03000
I/DEBUG ( 266): b6ee9b9c f57ff05f e1910f9f e000c003 e1812f9c
I/DEBUG ( 266): b6ee9bac e3520000 1afffffa e12fff1e e1a03000
I/DEBUG ( 266): b6ee9bbc f57ff05f e1910f9f e180c003 e1812f9c
I/DEBUG ( 266): b6ee9bcc e3520000 1afffffa e12fff1e 6883b508
I/DEBUG ( 266): b6ee9bdc 47984608 2140ea6f ea801840 eb023290
I/DEBUG ( 266): b6ee9bec ea831302 bd082093 2203b5f8 46046943
I/DEBUG ( 266): b6ee9bfc 43726846 0f92ebb3 0076d923 46302104
I/DEBUG ( 266): b6ee9c0c ebe4f7ff b1e04605 1e772200 6821e011
I/DEBUG ( 266): b6ee9c1c 3022f851 6858e00a e00cf8d3 0c00ea07
I/DEBUG ( 266): b6ee9c2c 102cf855 f84560d9 4673302c d1f22b00
I/DEBUG ( 266):
I/DEBUG ( 266): code around lr:
I/DEBUG ( 266): b6eba0b4 000078c4 4604b510 ffe2f7ff f7fd4620
I/DEBUG ( 266): b6eba0c4 4620e918 b510bd10 1d206844 ea2af7fd
I/DEBUG ( 266): b6eba0d4 f7fd4620 f1b0ea28 d1085f80 f04f4621
I/DEBUG ( 266): b6eba0e4 f7fd4070 68a0ea26 68996803 bd104788
I/DEBUG ( 266): b6eba0f4 6844b510 f7fd1d20 4620ea16 ea12f7fd
I/DEBUG ( 266): b6eba104 f1b0b138 d1085f80 4070f04f f7fd4621
I/DEBUG ( 266): b6eba114 68a0ea10 68996803 bd104788 68186843
I/DEBUG ( 266): b6eba124 30044770 beb4f003 4604b538 460d3004
I/DEBUG ( 266): b6eba134 ea04f7fd d1192801 07d968e3 6823d409
I/DEBUG ( 266): b6eba144 5f80f1b3 e00cd100 e8bd4620 f0034038
I/DEBUG ( 266): b6eba154 68a0bea7 694a6801 47904629 07c268e0
I/DEBUG ( 266): b6eba164 68a0d504 6801b110 4790684a b570bd38
I/DEBUG ( 266): b6eba174 68444605 4620460e e9e0f7fd d10b2801
I/DEBUG ( 266): b6eba184 463168a0 68da6803 68e04790 d40307c0
I/DEBUG ( 266): b6eba194 46286829 4798684b 46314620 4070e8bd
I/DEBUG ( 266): b6eba1a4 bfc2f7ff 4604b570 460e3004 e9baf7fd
Click to expand...
Click to collapse
Besides of the crash it seems to be incomplete because the code lacks any final ways of gaining elevated privileges (payload w/ reverse shell or something like that).
I assume it all makes no sense due to the loss of relevance for others. So I'll turn my attention to another CVE's out there. This could be the most elegant and shortest way of getting system though.
dadreamer said:
Well, I have compiled that badscreencap by p1gl3t along with android 4.4.2 codebase and then pushed it to my dev. But whenever I run it I receive segfault:
When I issue any one command after that I get
Of course, no any signs of system privileges for my id. Checked this with logcat and it has got the following trace:
Besides of the crash it seems to be incomplete because the code lacks any final ways of gaining elevated privileges (payload w/ reverse shell or something like that).
I assume it all makes no sense due to the loss of relevance for others. So I'll turn my attention to another CVE's out there. This could be the most elegant and shortest way of getting system though.
Click to expand...
Click to collapse
Is your goal to gain root on FireOS v3/v4/5 or are you experimenting with this for other reasons? If the former there are far easier methods (FireOS version dependent) of achieving this; even a theoretical way to unlock the bootloader sans root.