I put this kernel together with the direction of Decadenc3(Thanks again and I hate github by the way lol). It is basically the same as the bfs kernel without the bfs which makes it a little more stable in my opinion. It is set up for interactive governer which decadenc3 tells me works very nicely without the bfs.
V2
Fixed commit conflict which may have caused kernel panic(which means hopefully no more reboots for those who had problems)
V3
Lowered starting voltage(undervolting)
V4
Re-enabled low memory killer
V5
added tun.ko file (untested)
kanged some more commits from some better kernel devs then me(see github source for commit changes)
V6
added cifs support
Camera freezing fix
Other updates from backports of .32 and .34 kernel stuff
V7
never officially released
added loop support
V8
Smartass governor added
Updated kgsl, better graphics performance
updated interactive governor
Download CFSv8 from here.
V9
Removed cifs support and reverted to the linux toolchain for compiling. I think that these were the changes in V6 that caused some wifi and failed boot problems for some users. Nothing has been changed in wifi so I think this is what the problem was but for those that were having trouble you'll have to let me know.
DecufuctCFSV9
Flashing this kernel will cause issues with Froyo apps2sd. Froyo apps2sd uses cyrptoloop to mount the apps on the sd card. The kernel has the cryptoloop module compiled seperately so it needs to be activated for apps2sd to work. This can be done manually by typing insmod system/lib/modules/loop.ko and then insmod system/lib/modules/cryptoloop.ko. This can be put into a script and run at boot by your rom dev if they choose to include this kernel.
More thanks to Decad3nce and all the other great kernel guys that i can pull commits from to put this together.
2.6.29.6 CFS Kernel V4
2.6.29.6 CFS Kernel V3
More Info on Smartass governor
Technical Details-originally posted by erasmux
smartass governor - is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works - by taking over the idle loop - is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the "old" minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 - why?! - it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!
Click to expand...
Click to collapse
bftb0 said:
Just thought I would throw this "decoder key" out here for historical purposes - the Decadenc3/Conap kernel made its way into lots of different ROMs...
...so, if you are not sure or have forgotten which kernel is in your ROM, do a "adb shell uname -a", and you should be able to match these:
BFS330: Linux version 2.6.29.6-DecaFuct-dirty-b81fce7a #12 PREEMPT Fri Sep 3 22:33:01 EDT 2010
CFSv4 : Linux version 2.6.29-DecaFuctCFS-dirty-2a66c604 #2 PREEMPT Mon Sep 6 16:49:41 EDT 2010
CFSv5 : Linux version 2.6.29-DecaFuctCFS-dirty-ea33d448 #5 PREEMPT Thu Sep 16 10:11:19 EDT 2010
BFSv6 : Linux version 2.6.29.6-DecaFuct-dirty-153d9e7a #19 PREEMPT Sun Oct 17 20:56:35 EDT 2010
CFSv6 : Linux version 2.6.29-DecaFuctCFS-dirty-cd76c7c1 #20 PREEMPT Sun Oct 17 20:58:39 EDT 2010
CFSv8 : Linux version 2.6.29-DecaFuctCFS-dirty-c6271491 #7 PREEMPT Mon Nov 8 20:13:33 EST 2010
CFSv9 : Linux version 2.6.29-DecaFuctCFS-dirty-c6271491 #2 PREEMPT Sat Dec 4 14:12:58 EST 2010
Note the similar strings for CFSv8 and CFSv9 - make sure to check the dates carefully.
Click to expand...
Click to collapse
And of course my source for this if any of you would like it.
Also you can check out my Froyo rom here.
Conap said:
I put this kernel together with the direction of Decadenc3(Thanks again and I hate github by the way lol). It is basically the same as the bfs kernel without the bfs which makes it a little more stable in my opinion. It is set up for interactive governer which decadenc3 tells me works very nicely without the bfs.
2.6.29.6 CFS Kernel for Eris
And of course my source for this if any of you would like it.
Click to expand...
Click to collapse
\0/ - (toastcfh reference)
Conap said:
I put this kernel together with the direction of Decadenc3(Thanks again and I hate github by the way lol). It is basically the same as the bfs kernel without the bfs which makes it a little more stable in my opinion. It is set up for interactive governer which decadenc3 tells me works very nicely without the bfs.
2.6.29.6 CFS Kernel for Eris
And of course my source for this if any of you would like it.
Click to expand...
Click to collapse
what's difference between bfs and cfs
theboo7 said:
what's difference between bfs and cfs
Click to expand...
Click to collapse
CFS: http://en.wikipedia.org/wiki/Completely_Fair_Scheduler
BFS: http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler
****! I JUST flashed your BFS like 20 min ago! Oh well, flashing now since I have a fresh nand, lol.
Edit: After rebooting, I get to unlock the screen and like 5 seconds later, I get another reboot. Repeatedly. I'm using ELB 2.8. Went back to BFS for now
Cfs working here
Sent from my FroyoEris using XDA App
zwade01 said:
****! I JUST flashed your BFS like 20 min ago! Oh well, flashing now since I have a fresh nand, lol.
Edit: After rebooting, I get to unlock the screen and like 5 seconds later, I get another reboot. Repeatedly. I'm using ELB 2.8. Went back to BFS for now
Click to expand...
Click to collapse
pull last_kmsg and post it. can't help otherwise.
zwade01 said:
****! I JUST flashed your BFS like 20 min ago! Oh well, flashing now since I have a fresh nand, lol.
Edit: After rebooting, I get to unlock the screen and like 5 seconds later, I get another reboot. Repeatedly. I'm using ELB 2.8. Went back to BFS for now
Click to expand...
Click to collapse
if you try it again wipe davlik/cache....
Oh I got some reboots at first, no issues anymore.
Tried the Dalvik Wipe, no go here. Here's the last_kmsg.
Oh my this is smooth as silk! Thanks guys.
Sent from my FroyoEris using XDA App
Oh cfs. I should try this.
zwade01 said:
Tried the Dalvik Wipe, no go here. Here's the last_kmsg.
Click to expand...
Click to collapse
Ooooh. What ROM? What caused it?
In my first post I said I'm using Conap's ELB 2.8 (Android 2.1) ROM. I have no clue what caused it, lol. I'm no dev, just a happy flasher!
Loving this one! Great job guys!
Sent from my ERIS using XDA App
zwade01 said:
In my first post I said I'm using Conap's ELB 2.8 (Android 2.1) ROM. I have no clue what caused it, lol. I'm no dev, just a happy flasher!
Click to expand...
Click to collapse
Oh that's fine, just wondered if you had any other insight. Just a kernel panic looks like, I'll go through conap's commits and see where it may have gone wrong
backtrace:
[<c002cce0>] (arm_syscall+0x0/0x2e8) from [<c0028e40>] (ret_fast_syscall+0x0/0x2c)
(don't worry about the above, i just need it for reference)
I think I'll stick with BFS for the Eris. Based on what I'm reading it makes the most sense for me and for this phones specs. BFS seems to try to make do with lower specs and optimizes for singles tasks (perfect for me.)
Decad3nce said:
Oh that's fine, just wondered if you had any other insight. Just a kernel panic looks like, I'll go through conap's commits and see where it may have gone wrong
backtrace:
[<c002cce0>] (arm_syscall+0x0/0x2e8) from [<c0028e40>] (ret_fast_syscall+0x0/0x2c)
(don't worry about the above, i just need it for reference)
Click to expand...
Click to collapse
lol k cuz you lost me after kernel panic
I seem to be stuck at the android skateboarding boot image after flashing this.
In the logcat it seems to be having issues with audio hardware... and it's just in an infinite loop
I/HTC Acoustic( 312): get_audpre_filter
I/HTC Acoustic( 312): open /system/etc/AudioPreProcess.csv success.
D/AudioHardwareMSM72XX( 312): mNumSndEndpoints = 86
D/AudioHardwareMSM72XX( 312): BT MATCH HANDSET
D/AudioHardwareMSM72XX( 312): BT MATCH SPEAKER
D/AudioHardwareMSM72XX( 312): BT MATCH HEADSET
D/AudioHardwareMSM72XX( 312): BT MATCH BT
D/AudioHardwareMSM72XX( 312): BT MATCH CARKIT
D/AudioHardwareMSM72XX( 312): BT MATCH TTY_FULL
D/AudioHardwareMSM72XX( 312): BT MATCH TTY_VCO
D/AudioHardwareMSM72XX( 312): BT MATCH TTY_HCO
D/AudioHardwareMSM72XX( 312): BT MATCH NO_MIC_HEADSET
D/AudioHardwareMSM72XX( 312): BT MATCH FM_HEADSET
D/AudioHardwareMSM72XX( 312): BT MATCH HEADSET_AND_SPEAKER
D/AudioHardwareMSM72XX( 312): BT MATCH FM_SPEAKER
D/AudioHardwareMSM72XX( 312): BT MATCH BT_EC_OFF
D/AudioHardwareMSM72XX( 312): BT MATCH CURRENT
D/AudioHardwareMSM72XX( 312): BT MATCH BT_EC_OFF
D/AudioHardwareInterface( 312): setMode(NORMAL)
I/AudioHardwareMSM72XX( 312): Set master volume to 5.
I/CameraService( 312): CameraService started: pid=312
I/AudioFlinger( 312): AudioFlinger's thread 0xf2f0 ready to run
I/AudioHardwareMSM72XX( 312): Routing audio to Speakerphone
D/HTC Acoustic( 312): msm72xx_enable_audpp: 0x0005
D/AudioHardwareMSM72XX( 312): setVoiceVolume(1.000000)
I/AudioHardwareMSM72XX( 312): Setting in-call volume to 5 (available range is 0
to 5)
D/AndroidRuntime( 317):
D/AndroidRuntime( 317): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
I/AndroidRuntime( 317): Heap size: -Xmx24m
D/AndroidRuntime( 317): CheckJNI is OFF
I/DEBUG ( 60): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *
**
I/DEBUG ( 60): Build fingerprint: 'google/passion/passion/mahimahi:2.2/FRF91
/43546:user/release-keys'
I/DEBUG ( 60): pid: 317, tid: 317 >>> zygote <<<
I/DEBUG ( 60): signal 11 (SIGSEGV), fault addr 0000002c
I/DEBUG ( 60): r0 00000000 r1 00000000 r2 00011a84 r3 00000001
I/DEBUG ( 60): r4 00000000 r5 0000ccf0 r6 aca993f4 r7 00000001
I/DEBUG ( 60): r8 00000000 r9 00000000 10 00000000 fp 00000000
I/DEBUG ( 60): ip aca996d4 sp be8ba510 lr afd10888 pc aca610b6 cpsr 400
00030
I/DEBUG ( 60): #00 pc 000610b6 /system/lib/libdvm.so
I/DEBUG ( 60): #01 pc 000611b6 /system/lib/libdvm.so (dvmFindSyst
emClassNoInit)
I/DEBUG ( 60): #02 pc 000611f0 /system/lib/libdvm.so (dvmLinkClas
s)
I/DEBUG ( 60): #03 pc 00060ff6 /system/lib/libdvm.so
I/DEBUG ( 60): #04 pc 000611b6 /system/lib/libdvm.so (dvmFindSyst
emClassNoInit)
I/DEBUG ( 60): #05 pc 000483ea /system/lib/libdvm.so (dvmThreadOb
jStartup)
I/DEBUG ( 60): #06 pc 0003e082 /system/lib/libdvm.so (dvmStartup)
I/DEBUG ( 60): #07 pc 0003fe1e /system/lib/libdvm.so (JNI_CreateJ
avaVM)
I/DEBUG ( 60): #08 pc 0002f186 /system/lib/libandroid_runtime.so
(_ZN7android14AndroidRuntime7startVmEPP7_JavaVMPP7_JNIEnv)
I/DEBUG ( 60): #09 pc 0002f4da /system/lib/libandroid_runtime.so
(_ZN7android14AndroidRuntime5startEPKcb)
I/DEBUG ( 60): #10 pc 00008ca6 /system/bin/app_process (main)
I/DEBUG ( 60): #11 pc 0000d5c6 /system/lib/libc.so (__libc_init)
I/DEBUG ( 60):
I/DEBUG ( 60): code around pc:
I/DEBUG ( 60): aca61094 50ef180f 682a35ac d1482a00 98034b3f
I/DEBUG ( 60): aca610a4 f7b018f1 2800ed40 602cd141 95042501
I/DEBUG ( 60): aca610b4 6ae3e03f dc322b02 d0303301 1c211c28
I/DEBUG ( 60): aca610c4 fccaf7e6 2f026ae7 6b61dc1f 4299682b
I/DEBUG ( 60): aca610d4 4f2dd11b 19f14a32 69a318b2 f7b02005
I/DEBUG ( 60):
I/DEBUG ( 60): code around lr:
I/DEBUG ( 60): afd10868 e08f7007 08bd87f0 e5964000 e5968000
I/DEBUG ( 60): afd10878 e2144903 1a000010 e5965000 ebfff940
I/DEBUG ( 60): afd10888 e2055a02 e3853001 e1500003 0a000008
I/DEBUG ( 60): afd10898 e3550000 13a01001 03a01081 e5865000
I/DEBUG ( 60): afd108a8 e1a00006 e3a02001 ebfff959 e1a00004
I/DEBUG ( 60):
I/DEBUG ( 60): stack:
I/DEBUG ( 60): be8ba4d0 00000000
I/DEBUG ( 60): be8ba4d4 00000000
I/DEBUG ( 60): be8ba4d8 00000000
I/DEBUG ( 60): be8ba4dc aca608bd /system/lib/libdvm.so
I/DEBUG ( 60): be8ba4e0 00000000
I/DEBUG ( 60): be8ba4e4 00000000
I/DEBUG ( 60): be8ba4e8 00000000
I/DEBUG ( 60): be8ba4ec 00000001
I/DEBUG ( 60): be8ba4f0 aca88771 /system/lib/libdvm.so
I/DEBUG ( 60): be8ba4f4 00000000
I/DEBUG ( 60): be8ba4f8 be8ba524 [stack]
I/DEBUG ( 60): be8ba4fc 4000c408 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be8ba500 0000ccf0 [heap]
I/DEBUG ( 60): be8ba504 aca993f4 /system/lib/libdvm.so
I/DEBUG ( 60): be8ba508 00016e80 [heap]
I/DEBUG ( 60): be8ba50c aca60fe3 /system/lib/libdvm.so
I/DEBUG ( 60): #00 be8ba510 00000000
I/DEBUG ( 60): be8ba514 00000ef7
I/DEBUG ( 60): be8ba518 00000000
I/DEBUG ( 60): be8ba51c aca88771 /system/lib/libdvm.so
I/DEBUG ( 60): be8ba520 00000001
I/DEBUG ( 60): be8ba524 00000000
I/DEBUG ( 60): be8ba528 00001df2
I/DEBUG ( 60): be8ba52c 420155dc /cache/dalvik-cache/[email protected]@
[email protected]
I/DEBUG ( 60): be8ba530 00000000
I/DEBUG ( 60): be8ba534 4000c360 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be8ba538 aca993f4 /system/lib/libdvm.so
I/DEBUG ( 60): be8ba53c aca9df00 /system/lib/libdvm.so
I/DEBUG ( 60): be8ba540 00000000
I/DEBUG ( 60): be8ba544 aca611bb /system/lib/libdvm.so
I/DEBUG ( 60): #01 be8ba548 4000c360 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be8ba54c aca611f5 /system/lib/libdvm.so
I/ServiceManager( 57): service 'media.audio_flinger' died
I/ServiceManager( 57): service 'media.player' died
I/ServiceManager( 57): service 'media.camera' died
I/ServiceManager( 57): service 'media.audio_policy' died
I/ ( 318): ServiceManager: 0xaec8
I/HTC Acoustic( 318): libhtc_acoustic.so version 1.0.1.2.
E/HTC Acoustic( 318): Fail to open /system/etc/AudioPara_COMMON.csv -1.
I/HTC Acoustic( 318): open /system/etc/AudioPara4.csv success.
I/HTC Acoustic( 318): acoustic table version: HeroC_Sprint_20091013_Jack_V6
I/HTC Acoustic( 318): read_audio_para_from_file success.
I/HTC Acoustic( 318): get_audpp_filter
I/HTC Acoustic( 318): open /system/etc/AudioFilter.csv success.
I/HTC Acoustic( 318): ADRC Filter ADRC FLAG = ffff.
I/HTC Acoustic( 318): ADRC Filter COMP THRESHOLD = 2500.
I/HTC Acoustic( 318): ADRC Filter COMP SLOPE = e666.
I/HTC Acoustic( 318): ADRC Filter COMP RMS TIME = 106.
I/HTC Acoustic( 318): ADRC Filter COMP ATTACK[0] = 7f7d.
I/HTC Acoustic( 318): ADRC Filter COMP ATTACK[1] = 3096.
I/HTC Acoustic( 318): ADRC Filter COMP RELEASE[0] = 7ff7.
I/HTC Acoustic( 318): ADRC Filter COMP RELEASE[1] = 4356.
I/HTC Acoustic( 318): ADRC Filter COMP DELAY = 16.
I/HTC Acoustic( 318): EQ flag = 00.
I/HTC Acoustic( 318): get_audpre_filter
I/HTC Acoustic( 318): open /system/etc/AudioPreProcess.csv success.
D/AudioHardwareMSM72XX( 318): mNumSndEndpoints = 86
D/AudioHardwareMSM72XX( 318): BT MATCH HANDSET
D/AudioHardwareMSM72XX( 318): BT MATCH SPEAKER
D/AudioHardwareMSM72XX( 318): BT MATCH HEADSET
D/AudioHardwareMSM72XX( 318): BT MATCH BT
D/AudioHardwareMSM72XX( 318): BT MATCH CARKIT
D/AudioHardwareMSM72XX( 318): BT MATCH TTY_FULL
D/AudioHardwareMSM72XX( 318): BT MATCH TTY_VCO
D/AudioHardwareMSM72XX( 318): BT MATCH TTY_HCO
D/AudioHardwareMSM72XX( 318): BT MATCH NO_MIC_HEADSET
D/AudioHardwareMSM72XX( 318): BT MATCH FM_HEADSET
D/AudioHardwareMSM72XX( 318): BT MATCH HEADSET_AND_SPEAKER
D/AudioHardwareMSM72XX( 318): BT MATCH FM_SPEAKER
D/AudioHardwareMSM72XX( 318): BT MATCH BT_EC_OFF
D/AudioHardwareMSM72XX( 318): BT MATCH CURRENT
D/AudioHardwareMSM72XX( 318): BT MATCH BT_EC_OFF
D/AudioHardwareInterface( 318): setMode(NORMAL)
I/AudioHardwareMSM72XX( 318): Set master volume to 5.
I/CameraService( 318): CameraService started: pid=318
I/AudioFlinger( 318): AudioFlinger's thread 0xf2f0 ready to run
I/AudioHardwareMSM72XX( 318): Routing audio to Speakerphone
D/HTC Acoustic( 318): msm72xx_enable_audpp: 0x0005
D/AudioHardwareMSM72XX( 318): setVoiceVolume(1.000000)
I/AudioHardwareMSM72XX( 318): Setting in-call volume to 5 (available range is 0
to 5)
D/AndroidRuntime( 323):
D/AndroidRuntime( 323): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
I/AndroidRuntime( 323): Heap size: -Xmx24m
D/AndroidRuntime( 323): CheckJNI is OFF
I/DEBUG ( 60): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *
**
I/DEBUG ( 60): Build fingerprint: 'google/passion/passion/mahimahi:2.2/FRF91
/43546:user/release-keys'
I/DEBUG ( 60): pid: 323, tid: 323 >>> zygote <<<
I/DEBUG ( 60): signal 11 (SIGSEGV), fault addr 0000002c
I/DEBUG ( 60): r0 00000000 r1 00000000 r2 00011a84 r3 00000001
I/DEBUG ( 60): r4 00000000 r5 0000ccf0 r6 aca993f4 r7 00000001
I/DEBUG ( 60): r8 00000000 r9 00000000 10 00000000 fp 00000000
I/DEBUG ( 60): ip aca996d4 sp be946510 lr afd10888 pc aca610b6 cpsr 400
00030
I/DEBUG ( 60): #00 pc 000610b6 /system/lib/libdvm.so
I/DEBUG ( 60): #01 pc 000611b6 /system/lib/libdvm.so (dvmFindSyst
emClassNoInit)
I/DEBUG ( 60): #02 pc 000611f0 /system/lib/libdvm.so (dvmLinkClas
s)
I/DEBUG ( 60): #03 pc 00060ff6 /system/lib/libdvm.so
I/DEBUG ( 60): #04 pc 000611b6 /system/lib/libdvm.so (dvmFindSyst
emClassNoInit)
I/DEBUG ( 60): #05 pc 000483ea /system/lib/libdvm.so (dvmThreadOb
jStartup)
I/DEBUG ( 60): #06 pc 0003e082 /system/lib/libdvm.so (dvmStartup)
I/DEBUG ( 60): #07 pc 0003fe1e /system/lib/libdvm.so (JNI_CreateJ
avaVM)
I/DEBUG ( 60): #08 pc 0002f186 /system/lib/libandroid_runtime.so
(_ZN7android14AndroidRuntime7startVmEPP7_JavaVMPP7_JNIEnv)
I/DEBUG ( 60): #09 pc 0002f4da /system/lib/libandroid_runtime.so
(_ZN7android14AndroidRuntime5startEPKcb)
I/DEBUG ( 60): #10 pc 00008ca6 /system/bin/app_process (main)
I/DEBUG ( 60): #11 pc 0000d5c6 /system/lib/libc.so (__libc_init)
I/DEBUG ( 60):
I/DEBUG ( 60): code around pc:
I/DEBUG ( 60): aca61094 50ef180f 682a35ac d1482a00 98034b3f
I/DEBUG ( 60): aca610a4 f7b018f1 2800ed40 602cd141 95042501
I/DEBUG ( 60): aca610b4 6ae3e03f dc322b02 d0303301 1c211c28
I/DEBUG ( 60): aca610c4 fccaf7e6 2f026ae7 6b61dc1f 4299682b
I/DEBUG ( 60): aca610d4 4f2dd11b 19f14a32 69a318b2 f7b02005
I/DEBUG ( 60):
I/DEBUG ( 60): code around lr:
I/DEBUG ( 60): afd10868 e08f7007 08bd87f0 e5964000 e5968000
I/DEBUG ( 60): afd10878 e2144903 1a000010 e5965000 ebfff940
I/DEBUG ( 60): afd10888 e2055a02 e3853001 e1500003 0a000008
I/DEBUG ( 60): afd10898 e3550000 13a01001 03a01081 e5865000
I/DEBUG ( 60): afd108a8 e1a00006 e3a02001 ebfff959 e1a00004
I/DEBUG ( 60):
I/DEBUG ( 60): stack:
I/DEBUG ( 60): be9464d0 00000000
I/DEBUG ( 60): be9464d4 00000000
I/DEBUG ( 60): be9464d8 00000000
I/DEBUG ( 60): be9464dc aca608bd /system/lib/libdvm.so
I/DEBUG ( 60): be9464e0 00000000
I/DEBUG ( 60): be9464e4 00000000
I/DEBUG ( 60): be9464e8 00000000
I/DEBUG ( 60): be9464ec 00000001
I/DEBUG ( 60): be9464f0 aca88771 /system/lib/libdvm.so
I/DEBUG ( 60): be9464f4 00000000
I/DEBUG ( 60): be9464f8 be946524 [stack]
I/DEBUG ( 60): be9464fc 4000c408 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be946500 0000ccf0 [heap]
I/DEBUG ( 60): be946504 aca993f4 /system/lib/libdvm.so
I/DEBUG ( 60): be946508 00016e80 [heap]
I/DEBUG ( 60): be94650c aca60fe3 /system/lib/libdvm.so
I/DEBUG ( 60): #00 be946510 00000000
I/DEBUG ( 60): be946514 00000ef7
I/DEBUG ( 60): be946518 00000000
I/DEBUG ( 60): be94651c aca88771 /system/lib/libdvm.so
I/DEBUG ( 60): be946520 00000001
I/DEBUG ( 60): be946524 00000000
I/DEBUG ( 60): be946528 00001df2
I/DEBUG ( 60): be94652c 420155dc /cache/dalvik-cache/[email protected]@
[email protected]
I/DEBUG ( 60): be946530 00000000
I/DEBUG ( 60): be946534 4000c360 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be946538 aca993f4 /system/lib/libdvm.so
I/DEBUG ( 60): be94653c aca9df00 /system/lib/libdvm.so
I/DEBUG ( 60): be946540 00000000
I/DEBUG ( 60): be946544 aca611bb /system/lib/libdvm.so
I/DEBUG ( 60): #01 be946548 4000c360 /dev/ashmem/mspace/dalvik-heap/zygote
/0 (deleted)
I/DEBUG ( 60): be94654c aca611f5 /system/lib/libdvm.so
I/ServiceManager( 57): service 'media.audio_flinger' died
I/ServiceManager( 57): service 'media.player' died
I/ServiceManager( 57): service 'media.camera' died
I/ServiceManager( 57): service 'media.audio_policy' died
I/ ( 324): ServiceManager: 0xaec8
I/HTC Acoustic( 324): libhtc_acoustic.so version 1.0.1.2.
E/HTC Acoustic( 324): Fail to open /system/etc/AudioPara_COMMON.csv -1.
I/HTC Acoustic( 324): open /system/etc/AudioPara4.csv success.
I/HTC Acoustic( 324): acoustic table version: HeroC_Sprint_20091013_Jack_V6
I/HTC Acoustic( 324): read_audio_para_from_file success.
I/HTC Acoustic( 324): get_audpp_filter
I/HTC Acoustic( 324): open /system/etc/AudioFilter.csv success.
I/HTC Acoustic( 324): ADRC Filter ADRC FLAG = ffff.
I/HTC Acoustic( 324): ADRC Filter COMP THRESHOLD = 2500.
I/HTC Acoustic( 324): ADRC Filter COMP SLOPE = e666.
I/HTC Acoustic( 324): ADRC Filter COMP RMS TIME = 106.
I/HTC Acoustic( 324): ADRC Filter COMP ATTACK[0] = 7f7d.
I/HTC Acoustic( 324): ADRC Filter COMP ATTACK[1] = 3096.
I/HTC Acoustic( 324): ADRC Filter COMP RELEASE[0] = 7ff7.
I/HTC Acoustic( 324): ADRC Filter COMP RELEASE[1] = 4356.
I/HTC Acoustic( 324): ADRC Filter COMP DELAY = 16.
I/HTC Acoustic( 324): EQ flag = 00.
I/HTC Acoustic( 324): get_audpre_filter
I/HTC Acoustic( 324): open /system/etc/AudioPreProcess.csv success.
D/AudioHardwareMSM72XX( 324): mNumSndEndpoints = 86
D/AudioHardwareMSM72XX( 324): BT MATCH HANDSET
D/AudioHardwareMSM72XX( 324): BT MATCH SPEAKER
D/AudioHardwareMSM72XX( 324): BT MATCH HEADSET
D/AudioHardwareMSM72XX( 324): BT MATCH BT
D/AudioHardwareMSM72XX( 324): BT MATCH CARKIT
D/AudioHardwareMSM72XX( 324): BT MATCH TTY_FULL
D/AudioHardwareMSM72XX( 324): BT MATCH TTY_VCO
D/AudioHardwareMSM72XX( 324): BT MATCH TTY_HCO
D/AudioHardwareMSM72XX( 324): BT MATCH NO_MIC_HEADSET
D/AudioHardwareMSM72XX( 324): BT MATCH FM_HEADSET
D/AudioHardwareMSM72XX( 324): BT MATCH HEADSET_AND_SPEAKER
D/AudioHardwareMSM72XX( 324): BT MATCH FM_SPEAKER
D/AudioHardwareMSM72XX( 324): BT MATCH BT_EC_OFF
D/AudioHardwareMSM72XX( 324): BT MATCH CURRENT
D/AudioHardwareMSM72XX( 324): BT MATCH BT_EC_OFF
D/AudioHardwareInterface( 324): setMode(NORMAL)
I/AudioHardwareMSM72XX( 324): Set master volume to 5.
I/CameraService( 324): CameraService started: pid=324
I/AudioFlinger( 324): AudioFlinger's thread 0xf2f0 ready to run
I/AudioHardwareMSM72XX( 324): Routing audio to Speakerphone
D/HTC Acoustic( 324): msm72xx_enable_audpp: 0x0005
D/AudioHardwareMSM72XX( 324): setVoiceVolume(1.000000)
I/AudioHardwareMSM72XX( 324): Setting in-call volume to 5 (available range is 0
to 5)
I recently bought GTA III from the android market, and downloaded it onto my device, however, when i try to launch the app, it crashes on start. what seems to be the problem?>
me too, using CM7 RC2, I'll post a logcat later tonight
You need to get the SD Card DATA from Google that is made to make it work on our device. Not sure but I think you also need the ported. Apk
Sent from my LG-P500 using xda premium
I thought the game downloaded the data upon launching, so buying it from the play store isn't enough I guess
Code:
--------- beginning of /dev/log/system
W/InputManagerService( 208): Window already focused, ignoring focus gain of: [email protected]
I/ActivityManager( 208): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=com.rockstar.gta3/.GTA3 } from pid 208
I/ActivityManager( 208): Start proc com.rockstar.gta3 for activity com.rockstar.gta3/.GTA3: pid=19851 uid=10066 gids={3003, 1015, 3002}
W/InputManagerService( 208): Window already focused, ignoring focus gain of: [email protected]
I/WindowManager( 208): Setting rotation to 1, animFlags=1
I/ActivityManager( 208): Config changed: { scale=1.0 imsi=302/720 loc=en_CA touch=3 keys=1/1/2 nav=1/1 orien=2 layout=18 uiMode=17 seq=125 themeResource=null}
--------- beginning of /dev/log/main
I/dalvikvm(19679): Jit: resizing JitTable from 512 to 1024
I/PowerWidget( 277): Clearing any old widget stuffs
I/PowerWidget( 277): Setting up widget
I/PowerWidget( 277): Button list: toggleWifi|toggleBluetooth|toggleSound|toggleNetworkMode|toggleGPS
I/PowerWidget( 277): Setting up button: toggleWifi
I/PowerWidget( 277): Setting up button: toggleBluetooth
I/PowerWidget( 277): Setting up button: toggleSound
I/PowerWidget( 277): Setting up button: toggleNetworkMode
I/PowerWidget( 277): Setting up button: toggleGPS
I/dalvikvm(19851): Could not find method android.view.InputDevice.getMotionRange, referenced from method com.wardrumstudios.utils.WarGamepad.a
W/dalvikvm(19851): VFY: unable to resolve virtual method 1996: Landroid/view/InputDevice;.getMotionRange (II)Landroid/view/InputDevice$MotionRange;
D/dalvikvm(19851): VFY: replacing opcode 0x6e at 0x0004
D/dalvikvm(19851): VFY: dead code 0x0007-0024 in Lcom/wardrumstudios/utils/WarGamepad;.a (Landroid/view/MotionEvent;Landroid/view/InputDevice;II)F
I/dalvikvm(19851): Could not find method android.hardware.usb.UsbDeviceConnection.controlTransfer, referenced from method com.wardrumstudios.utils.WarGamepad.a
W/dalvikvm(19851): VFY: unable to resolve virtual method 1931: Landroid/hardware/usb/UsbDeviceConnection;.controlTransfer (IIII[BII)I
D/dalvikvm(19851): VFY: replacing opcode 0x74 at 0x002f
W/dalvikvm(19851): VFY: unable to find class referenced in signature (Landroid/hardware/usb/UsbDevice;)
I/dalvikvm(19851): Could not find method android.hardware.usb.UsbDevice.getInterfaceCount, referenced from method com.wardrumstudios.utils.WarGamepad.a
W/dalvikvm(19851): VFY: unable to resolve virtual method 1928: Landroid/hardware/usb/UsbDevice;.getInterfaceCount ()I
D/dalvikvm(19851): VFY: replacing opcode 0x6e at 0x002d
D/dalvikvm(19851): VFY: dead code 0x0030-00c8 in Lcom/wardrumstudios/utils/WarGamepad;.a (Landroid/hardware/usb/UsbDevice;Ljava/lang/String;)V
W/dalvikvm(19851): VFY: unable to find class referenced in signature (Landroid/hardware/usb/UsbDevice;)
W/dalvikvm(19851): VFY: unable to find class referenced in signature (Landroid/hardware/usb/UsbDevice;)
E/dalvikvm(19851): Could not find class 'android.hardware.usb.UsbRequest', referenced from method com.wardrumstudios.utils.WarGamepad.j
W/dalvikvm(19851): VFY: unable to resolve new-instance 215 (Landroid/hardware/usb/UsbRequest;) in Lcom/wardrumstudios/utils/WarGamepad;
D/dalvikvm(19851): VFY: replacing opcode 0x22 at 0x0005
D/dalvikvm(19851): VFY: dead code 0x0007-006a in Lcom/wardrumstudios/utils/WarGamepad;.j ()V
I/dalvikvm(19851): Could not find method com.wardrumstudios.utils.WarBase.onGenericMotionEvent, referenced from method com.wardrumstudios.utils.WarGamepad.onGenericMotionEvent
W/dalvikvm(19851): VFY: unable to resolve virtual method 3642: Lcom/wardrumstudios/utils/WarBase;.onGenericMotionEvent (Landroid/view/MotionEvent;)Z
D/dalvikvm(19851): VFY: replacing opcode 0x6f at 0x00b2
D/dalvikvm(19851): VFY: dead code 0x00b5-00b7 in Lcom/wardrumstudios/utils/WarGamepad;.onGenericMotionEvent (Landroid/view/MotionEvent;)Z
W/dalvikvm(19851): VFY: unable to find class referenced in signature (Landroid/hardware/usb/UsbDevice;)
W/dalvikvm(19851): VFY: unable to find class referenced in signature (Landroid/hardware/usb/UsbDevice;)
E/dalvikvm(19851): Could not find class 'android.hardware.usb.UsbDevice', referenced from method com.wardrumstudios.utils.WarBase.onResume
W/dalvikvm(19851): VFY: unable to resolve check-cast 210 (Landroid/hardware/usb/UsbDevice;) in Lcom/wardrumstudios/utils/WarBase;
D/dalvikvm(19851): VFY: replacing opcode 0x1f at 0x002c
D/dalvikvm(19851): VFY: dead code 0x002e-0054 in Lcom/wardrumstudios/utils/WarBase;.onResume ()V
D/dalvikvm(19851): VFY: dead code 0x0059-0080 in Lcom/wardrumstudios/utils/WarBase;.onResume ()V
D/dalvikvm(19851): Trying to load lib /data/data/com.rockstar.gta3/lib/libImmEmulatorJ.so 0x405176c8
D/dalvikvm(19851): Added shared lib /data/data/com.rockstar.gta3/lib/libImmEmulatorJ.so 0x405176c8
D/dalvikvm(19851): No JNI_OnLoad found in /data/data/com.rockstar.gta3/lib/libImmEmulatorJ.so 0x405176c8, skipping init
D/dalvikvm(19851): Trying to load lib /data/data/com.rockstar.gta3/lib/libNative.so 0x405176c8
I/DEBUG (19815): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG (19815): Build fingerprint: 'lge/thunderg/thunderg:2.3.3/GRI40/LG-P500-V20h.19D34B612E:user/release-keys'
I/DEBUG (19815): pid: 19851, tid: 19851 >>> com.rockstar.gta3 <<<
I/DEBUG (19815): signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 8095e378
I/DEBUG (19815): r0 80b61cf4 r1 afd4e644 r2 80b65cf4 r3 80b661f4
I/DEBUG (19815): r4 80b61cf4 r5 80b61cf4 r6 00000004 r7 00000000
I/DEBUG (19815): r8 aca12240 r9 0000ce38 10 418ffc10 fp beea1430
I/DEBUG (19815): ip 00000000 sp beea1000 lr 00000000 pc 8095e378 cpsr 80000010
I/DEBUG (19815): d0 3f8000003f800000 d1 3ff0000043200000
I/DEBUG (19815): d2 4d827b204246ae4e d3 00540ff04a270400
I/DEBUG (19815): d4 3fbc71c70029c100 d5 3fcef049fb9094d1
I/DEBUG (19815): d6 000000003f800000 d7 000000003f800000
I/DEBUG (19815): d8 0000000000000000 d9 0000000000000000
I/DEBUG (19815): d10 0000000000000000 d11 0000000000000000
I/DEBUG (19815): d12 0000000000000000 d13 0000000000000000
I/DEBUG (19815): d14 0000000000000000 d15 0000000000000000
I/DEBUG (19815): scr 60000010
I/DEBUG (19815):
I/DEBUG (19815): #00 pc 0015e378 /data/sdext2/data/com.rockstar.gta3/lib/libNative.so (_ZN13cAudioManagerC1Ev)
I/DEBUG (19815): #01 lr 00000000 <unknown>
I/DEBUG (19815):
I/DEBUG (19815): code around pc:
I/DEBUG (19815): 8095e358 e58200ac 1afffff2 e8bd8070 e92d4070
I/DEBUG (19815): 8095e368 e2802901 e3a0e000 e2803c45 e1a04000
I/DEBUG (19815): 8095e378 e30450d0 e28220ed e2833034 e1a0100e
I/DEBUG (19815): 8095e388 e3e0c000 e3a00014 e784e005 e2811001
I/DEBUG (19815): 8095e398 e5c2c000 e3510014 e5c2c230 e5c30000
I/DEBUG (19815):
I/DEBUG (19815): code around lr:
I/DEBUG (19815):
I/DEBUG (19815): stack:
I/DEBUG (19815): beea0fc0 00000000
I/DEBUG (19815): beea0fc4 00000001
I/DEBUG (19815): beea0fc8 00001000
I/DEBUG (19815): beea0fcc ffffff20
I/DEBUG (19815): beea0fd0 aca12240 /system/lib/libdvm.so
I/DEBUG (19815): beea0fd4 0000ce38
I/DEBUG (19815): beea0fd8 418ffc10
I/DEBUG (19815): beea0fdc afd298d7 /system/lib/libc.so
I/DEBUG (19815): beea0fe0 00000000
I/DEBUG (19815): beea0fe4 afd1ce6b /system/lib/libc.so
I/DEBUG (19815): beea0fe8 00000000
I/DEBUG (19815): beea0fec afc01120
I/DEBUG (19815): beea0ff0 b000d828
I/DEBUG (19815): beea0ff4 80941cac /data/sdext2/data/com.rockstar.gta3/lib/libNative.so
I/DEBUG (19815): beea0ff8 df002777
I/DEBUG (19815): beea0ffc e3a070ad
I/DEBUG (19815): #00 beea1000 80b1ca2c
I/DEBUG (19815): beea1004 80b61cf4
I/DEBUG (19815): beea1008 00000004
I/DEBUG (19815): beea100c 8095e5f4 /data/sdext2/data/com.rockstar.gta3/lib/libNative.so
I/DEBUG (19815): beea1010 80b1a948
I/DEBUG (19815): beea1014 00000044
I/DEBUG (19815): beea1018 00000004
I/DEBUG (19815): beea101c b0003b05 /system/bin/linker
I/DEBUG (19815): beea1020 b000d90c
I/DEBUG (19815): beea1024 b000d908
I/DEBUG (19815): beea1028 00002752
I/DEBUG (19815): beea102c b0003bb7 /system/bin/linker
I/DEBUG (19815): beea1030 0069d000
I/DEBUG (19815): beea1034 afd00000 /system/lib/libc.so
I/DEBUG (19815): beea1038 00000020
I/DEBUG (19815): beea103c b000d828
I/DEBUG (19815): beea1040 80b1ca04
I/DEBUG (19815): beea1044 b000d828
I/JuiceDefender.Service( 823): Force-disable app running: GTA III 10-YEA/
I/BootReceiver( 208): Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
I/ActivityManager( 208): Process com.rockstar.gta3 (pid 19851) has died.
D/Zygote ( 151): Process 19851 terminated by signal (4)
D/dalvikvm( 208): GC_EXPLICIT freed 787K, 42% free 7508K/12743K, external 1647K/1721K, paused 158ms
I/WindowManager( 208): Setting rotation to 0, animFlags=1
I/ActivityManager( 208): Config changed: { scale=1.0 imsi=302/720 loc=en_CA touch=3 keys=1/1/2 nav=1/1 orien=1 layout=18 uiMode=17 seq=126 themeResource=null}
I/dalvikvm(19529): Jit: resizing JitTable from 512 to 1024
I/PowerWidget( 277): Clearing any old widget stuffs
I/PowerWidget( 277): Setting up widget
I/PowerWidget( 277): Button list: toggleWifi|toggleBluetooth|toggleSound|toggleNetworkMode|toggleGPS
I/PowerWidget( 277): Setting up button: toggleWifi
D/dalvikvm(19779): GC_CONCURRENT freed 340K, 50% free 3011K/5959K, external 692K/1189K, paused 4ms+97ms
I/PowerWidget( 277): Setting up button: toggleBluetooth
I/PowerWidget( 277): Setting up button: toggleSound
I/PowerWidget( 277): Setting up button: toggleNetworkMode
I/PowerWidget( 277): Setting up button: toggleGPS
W/InputManagerService( 208): Window already focused, ignoring focus gain of: [email protected]
W/SurfaceComposerClient( 208): Destroying surface while a transaction is open. Client 0xff000: destroying surface 113, mTransactionOpen=1
D/dalvikvm(17703): GC_CONCURRENT freed 527K, 48% free 3360K/6407K, external 269K/512K, paused 5ms+5ms
D/dalvikvm(17703): GC_CONCURRENT freed 470K, 48% free 3382K/6407K, external 48K/512K, paused 4ms+4ms
W/KeyCharacterMap(19779): Can't open keycharmap file
W/KeyCharacterMap(19779): Error loading keycharmap file '/system/usr/keychars/thunder_keypad.kcm.bin'. hw.keyboards.196609.devname='thunder_keypad'
W/KeyCharacterMap(19779): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/dalvikvm(17703): GC_CONCURRENT freed 408K, 47% free 3399K/6407K, external 263K/512K, paused 8ms+33ms
I/JuiceDefender.Service( 823): No configured apps are running
Hmm from what I've read on xda is that the play store version of gta iii should at least load. Slowly... but at least start.
I'm not convinced this isn't a CM7.2-RC2 bug. I found a thread in the p500 general section that had a link to an ultraperformance exe file, I followed the direction in the link to rename the folder copy it over etc. No go, same restults.
Has anyone tried GTA III with CM7.2-RC2 official?
---------- Post added at 08:00 PM ---------- Previous post was at 07:28 PM ----------
Oh shoot, just installed official lg rom to test it out and the market does say 'Your device isn't compatible with this version' so I guess cm7.2 does some build.prop tricks so perhaps I do need to install a custom apk
GTA3v10-andropalace.net.apk md5sum dc8b5d9f01a40ca3836088e2646d4708 works, I paid for it first but official apk doesn't work with our p500s
Hello all,
I'm working on the mac address problem inherent to HD2.
For now under Magldr, it is more or less unique (more than less) ;-)
Other boot method I can't test is haret/wimo
It seems that my patch modifying the NAND(magldr) boot affects the SD boot.
I can't figure it without precise reports. I need you to use "adb" to report me some info.
Here is how to do it:
cd your/android-sdk-linux/platform-tools/
[email protected]:> ./adb shell
# uname -a
Linux localhost 2.6.32-ics_tytung_HWA_r2.3-uniMAC #7 PREEMPT Tue May 22 02:13:09 CEST 2012 armv7l GNU/Linux
# dmesg |grep -i mac
<4>[ 0.000000] Machine: htcleo
<6>[ 1.439056] Device Bluetooth MAC Address: 00:23:76:32:16:be
<6>[ 2.989105] rndis_function_bind_config MAC: 00:00:00:00:00:00
<6>[ 2.989593] usb0: MAC 36:b0:0d:af:76:1d
<6>[ 2.989624] usb0: HOST MAC ca:50:bc:14:ad:79
<6>[ 3.444152] Device Wifi Mac Address: 00:23:76:be:16:32
Tips
-shell into your hd2 asap, while in the boot animation !
-do it with both kernels HWA_r2.3-uniMAC and previous functionnal
Please other Magldr users, post here the macaddress you have.
This is just to eval 'dispersion' (collision avoidance) with actual patch.
Franck
ok, good news,
Saw the mistake in the kernel code.
function() call to guess a mac was inadvertandly removed for SD boot method!
Fixed in R4
This thread still must be filled with MAC address for NAND and SD kernel version to evaluate collision avoidance.
Meanwhile I'm working on reading on interesting NAND block with something ressembling a MAC in it.
Will need more testers to check it is a unique MAC ;-)
Hello All,
How many of you users with hd2 will be able to compile a custom kernel with a patched htcleo_nand.c ?
This is to validate my guess of finding two unique macadress writed in block 505 of the NAND.
To definitly get rid of this problem.
Franck
Code:
diff --git a/drivers/mtd/devices/htcleo_nand.c b/drivers/mtd/devices/htcleo_nand.c
index 2150bcc..bfbcbad 100755
--- a/drivers/mtd/devices/htcleo_nand.c
+++ b/drivers/mtd/devices/htcleo_nand.c
@@ -1827,6 +1827,116 @@ static int param_get_page_size(char *buffer, struct kernel_param *kp)
}
module_param_call(pagesize, NULL, param_get_page_size, NULL, S_IRUGO);
+int is_htc_mac (int pattern)
+{
+ /* HTC blocks to find :
+ 00:09:2D
+ 00:23:76
+ 18:87:76
+ 1C:B0:94
+ 38:E7:D8
+ 64:A7:69
+ 7C:61:93
+ 90:21:55
+ A0:F4:50
+ A8:26:D9
+ D4:20:6D
+ D8:B3:77
+ E8:99:C4
+ F8:DB:F7 */
+ static int nums[] = {
+ 0x00092D,0x2D0900,
+ 0x002376,0x762300,
+ 0x188776,0x768718,
+ 0x1CB094,0x94B01C,
+ 0x38E7D8,0xD8E738,
+ 0x64A769,0x69A764,
+ 0x7C6193,0x93617C,
+ 0x902155,0x552190,
+ 0xA0F450,0x50F4A0,
+ 0xA826D9,0xD926A8,
+ 0xD4206D,0x6D20D4,
+ 0xD8B377,0x77B3D8,
+ 0xE899C4,0xC499E8,
+ 0xF8DBF7,0xF7DBF8};
+ int i;
+ for (i=0; i< (sizeof(nums)/sizeof(nums[0])); i++)
+ {
+ if (nums[i] == pattern) return 1;
+ }
+ return 0;
+}
+void scanmac(struct mtd_info *mtd)
+{
+ unsigned char *iobuf;
+ int ret;
+ loff_t addr;
+ struct mtd_oob_ops ops;
+ int i,j,k;
+
+ iobuf = kmalloc(2048/*mtd->erasesize*/, GFP_KERNEL);
+ if (!iobuf) {
+ /*ret = -ENOMEM;*/
+ printk("%s: error: cannot allocate memory\n",__func__);
+ return;
+ }
+
+ ops.mode = MTD_OOB_PLACE;
+ ops.len = 2048;
+ ops.datbuf = iobuf;
+ ops.ooblen = 0;
+ ops.oobbuf = NULL;
+ ops.retlen = 0;
+
+ /* bloc 505 page 6 contains as good candidate */
+ addr = ((loff_t) 505*0x20000 + 6*2048);
+ ret = msm_nand_read_oob(mtd, addr, &ops);
+
+ if (ret == -EUCLEAN)
+ ret = 0;
+ if (ret || ops.retlen != 2048 ) {
+ printk("%s: error: read(%d) failed at %#llx\n",__func__,ops.retlen, addr);
+ goto out;
+ }
+
+ printk("%s: Prefered candidate mac=%02x:%02x:%02x:%02x:%02x:%02x\n",__func__,
+ iobuf[5],iobuf[4],iobuf[3],iobuf[2],iobuf[1],iobuf[0]);
+
+ /* now lets walk looking for HTC mac in the first reserved blocks of NAND */
+ /* NUM_PROTECTED_BLOCKS=0x212 but Parttiontable starts at 0x219 */
+ /* I think 400 is ok, I have already eliminated 0 - 157 with false positive */
+ /* If my guess is correct, only 505 will match ;-) */
+ for (i=158; i<0x219; i++) {
+ for (j=0; j<64; j++) {
+ addr = ((loff_t) i*0x20000 + j*2048);
+ ret = msm_nand_read_oob(mtd, addr, &ops);
+
+ if (ret == -EUCLEAN)
+ ret = 0;
+ if (ret || ops.retlen != 2048 ) {
+ printk("%s: error: read(%d) failed at %#llx\n",__func__,ops.retlen, addr);
+ break;
+ }
+ /* check */
+ for (k=0; k<2045; k++) {
+ if (is_htc_mac( (iobuf[k+0]<<16) + (iobuf[k+1]<<8) + iobuf[k+2])) {
+ printk("Mac candidate at block:%d page:%d offset:%d:\n",i,j,k);
+ k >>= 4;
+ k <<= 4;
+ print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, &iobuf[k], 16);
+ k += 16;
+ }
+ }
+ }/*j*/
+ }/*i*/
+ ret = 0;
+out:
+ kfree(iobuf);
+ if (ret)
+ printk("Find MAc Error %d occurred\n", ret);
+ return;
+}
+
/**
* msm_nand_scan - [msm_nand Interface] Scan for the msm_nand device
* @param mtd MTD device structure
@@ -1992,6 +2102,8 @@ int msm_nand_scan(struct mtd_info *mtd, int maxchips)
/* msm_nand_unlock_all(mtd); */
/* return this->scan_bbt(mtd); */
+ scanmac(mtd);
+
#if VERBOSE
for (i=0;i<nand_info->block_count;i++)
my findings are on five HD2 are:
Frk
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 38 e7 d8 e6 38 fc 00 00 ....0...8...8...
Mac candidate at block:505 page:6 offset:3:
00000000: 80 1c e2 d8 e7 38 ff ff ff ff ff ff ff ff ff ff .....8..........
wifi mac 38 e7 d8 e6 38 fcunder WIMO
Bad
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 00 23 76 5d fb 08 00 00 ....0....#v]....
Mac candidate at block:505 page:6 offset:3:
00000000: df 20 74 76 23 00 ff ff ff ff ff ff ff ff ff ff . tv#...........
Frk2
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 00 23 76 d7 ea 13 00 00 ....0....#v.....
Mac candidate at block:505 page:6 offset:3:
00000000: 80 5b e5 76 23 00 ff ff ff ff ff ff ff ff ff ff .[.v#...........
Val
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 00 23 76 89 09 c0 00 00 ....0....#v.....
Mac candidate at block:505 page:6 offset:3:
00000000: 46 da 6d 76 23 00 ff ff ff ff ff ff ff ff ff ff F.mv#...........
Flo
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 00 23 76 8c a4 a6 00 00 ....0....#v.....
Mac candidate at block:505 page:6 offset:3:
00000000: 3d 48 6f 76 23 00 ff ff ff ff ff ff ff ff ff ff =Hov#...........
Flo after full task29+reinstall
Mac candidate at block:505 page:0 offset:40:
00000000: 00 00 00 00 30 00 00 00 00 23 76 8c a4 a6 00 00 ....0....#v.....
Mac candidate at block:505 page:6 offset:3:
00000000: 3d 48 6f 76 23 00 ff ff ff ff ff ff ff ff ff ff =Hov#...........
I think you nailed it,
My device's bluetooth mac id under windows: 00:23:76:78:70:78
My device's wireless mac id under windows: 00:23:76:96:1B:F9
Code:
<4>[ 1.325286] scanmac: Prefered candidate mac=00:23:76:78:70:78
<4>[ 22.797302] Mac candidate at block:505 page:0 offset:40:
<7>[ 22.797332] 00000000: 00 00 00 00 10 00 00 00 [B]00 23 76 96 1b f9[/B] 00 00
<4>[ 22.803070] Mac candidate at block:505 page:6 offset:3:
<7>[ 22.803100] 00000000: [B]78 70 78 76 23 00[/B] ff ff ff ff ff ff ff ff ff ff
Although there was another candidate,
Code:
<4>[ 24.686889] Mac candidate at block:536 page:5 offset:443:
<7>[ 24.686950] 00000000: bf 03 1e ad ba 9d 4a 6f a4 e1 89 7c 61 93 67 d9
But this one is totally wrong, block:536 is after the bootloader(clk in this case) and is part of the config table
As i said in the email, you should only scan till block 530 (0x212)
EDIT: modified your code a bit,
Code:
<4>[ 1.325347] scanmac: candidate for wifi mac=00:23:76:96:1b:f9
<4>[ 1.325622] scanmac: candidate for bluetooth mac=00:23:76:78:70:78
Code:
diff --git a/drivers/mtd/devices/htcleo_nand.c b/drivers/mtd/devices/htcleo_nand.c
index e4e347e..27aa6e8 100755
--- a/drivers/mtd/devices/htcleo_nand.c
+++ b/drivers/mtd/devices/htcleo_nand.c
@@ -1835,6 +1835,54 @@ static int param_get_page_size(char *buffer, struct kernel_param *kp)
}
module_param_call(pagesize, NULL, param_get_page_size, NULL, S_IRUGO);
+void scanmac(struct mtd_info *mtd)
+{
+ unsigned char *iobuf;
+ int ret;
+ loff_t addr;
+ struct mtd_oob_ops ops;
+
+ iobuf = kmalloc(2048/*mtd->erasesize*/, GFP_KERNEL);
+ if (!iobuf) {
+ printk("%s: error: cannot allocate memory\n",__func__);
+ return;
+ }
+
+ ops.mode = MTD_OOB_PLACE;
+ ops.len = 2048;
+ ops.datbuf = iobuf;
+ ops.ooblen = 0;
+ ops.oobbuf = NULL;
+ ops.retlen = 0;
+
+ addr = ((loff_t) 505*0x20000);
+ ret = msm_nand_read_oob(mtd, addr, &ops);
+ if (ret == -EUCLEAN)
+ ret = 0;
+ if (ret || ops.retlen != 2048 ) {
+ printk("%s: error: read(%d) failed at %#llx\n",__func__,ops.retlen, addr);
+ goto out;
+ }
+ printk("%s: candidate for wifi mac=%02x:%02x:%02x:%02x:%02x:%02x\n",__func__,
+ iobuf[40],iobuf[41],iobuf[42],iobuf[43],iobuf[44],iobuf[45]);
+
+ addr = ((loff_t) 505*0x20000 + 6*0x800);
+ ret = msm_nand_read_oob(mtd, addr, &ops);
+ if (ret == -EUCLEAN)
+ ret = 0;
+ if (ret || ops.retlen != 2048 ) {
+ printk("%s: error: read(%d) failed at %#llx\n",__func__,ops.retlen, addr);
+ goto out;
+ }
+ printk("%s: candidate for bluetooth mac=%02x:%02x:%02x:%02x:%02x:%02x\n",__func__,
+ iobuf[5],iobuf[4],iobuf[3],iobuf[2],iobuf[1],iobuf[0]);
+ ret = 0;
+out:
+ kfree(iobuf);
+ if (ret) printk("Find MAC Error %d occurred\n", ret);
+ return;
+}
+
/**
* msm_nand_scan - [msm_nand Interface] Scan for the msm_nand device
* @param mtd MTD device structure
@@ -2000,6 +2048,7 @@ int msm_nand_scan(struct mtd_info *mtd, int maxchips)
/* msm_nand_unlock_all(mtd); */
/* return this->scan_bbt(mtd); */
+ scanmac(mtd);
#if VERBOSE
for (i=0;i<nand_info->block_count;i++)
Great job.
I've implemented the mac address reading in my kernel. You can see the commit here:
https://github.com/marc1706/desire_kernel_35/commit/0b249dfba877b96fc0ebe1333738f0920b4dc7c5
edit:
My mac addresses, now both with Windows Mobile and with Android:
Code:
Wifi Mac: 00:23:76:8A:40:B9
BT Mac: 00:23:76:6E:4B:C6
well, I'l sure now that the offset [40...45] have a macaddress.
problem is how is it unique....
If you read this code you will see that when the Nand is blank, a default macaddress of 00:90:4C:C5:00:34 is created.
Code:
ROM:95043CC8 @ =============== S U B R O U T I N E =======================================
ROM:95043CC8
ROM:95043CC8 @ 1 initdata
ROM:95043CC8 @ 0 displaydata
ROM:95043CC8
ROM:95043CC8 eMapiCheckWlanDataValidity: @ CODE XREF: StartupSequence+3Cp
ROM:95043CC8 @ Emapitest:loc_9502020Cp
ROM:95043CC8 @ DATA XREF: ...
ROM:95043CC8
ROM:95043CC8 var_30 = -0x30
ROM:95043CC8 var_2C = -0x2C
ROM:95043CC8 var_28 = -0x28
ROM:95043CC8
ROM:95043CC8 STMFD SP!, {R4-R11,LR}
ROM:95043CCC SUB SP, SP, #0xC
ROM:95043CD0 MOV R4, R0
ROM:95043CD4 LDR R0, =WlanBlock
ROM:95043CD8 MOV R5, #0
ROM:95043CDC BL GetWLANblock
ROM:95043CE0 BL CheckSignature
ROM:95043CE4 LDR R7, =0xEE4329
ROM:95043CE8 MOV R6, R0
ROM:95043CEC CMP R4, #0
ROM:95043CF0 BNE _InitData
ROM:95043CF4 LDR R3, [R6]
ROM:95043CF8 CMP R3, R7
ROM:95043CFC BNE _InitData
ROM:95043D00 LDR R3, [R6,#4]
ROM:95043D04 CMP R3, #0
ROM:95043D08 BEQ _err_invalid_update
ROM:95043D0C LDR R3, [R6,#8]
ROM:95043D10 CMP R3, #0
ROM:95043D14 BEQ _err_invalid_update
ROM:95043D18 LDR R2, [R6,#0xC]
ROM:95043D1C CMP R2, #0x7C0
ROM:95043D20 BLS loc_95043D30
ROM:95043D24
ROM:95043D24 _err_invalid_body_size: @ "[eMapiCheckWlanDataValidity] Invalid bo"...
ROM:95043D24 LDR R0, =aEmapicheckwlan
ROM:95043D28 BL print
ROM:95043D2C B _end
ROM:95043D30 @ ---------------------------------------------------------------------------
ROM:95043D30
ROM:95043D30 loc_95043D30: @ CODE XREF: eMapiCheckWlanDataValidity+58j
ROM:95043D30 AND R3, R2, #3
ROM:95043D34 SUB R3, R2, R3
ROM:95043D38 ADD R1, R3, #4
ROM:95043D3C MOV R2, #0
ROM:95043D40 ADD R0, R6, #0x40
ROM:95043D44 BL GetRamCrc
ROM:95043D48 LDR R3, [R6,#0x10]
ROM:95043D4C CMP R0, R3
ROM:95043D50 BEQ _DisplayData
ROM:95043D54
ROM:95043D54 _err_checsum_invalid: @ "[eMapiCheckWlanDataValidity] CheckSum e"...
ROM:95043D54 LDR R0, =aEmapicheckwl_0
ROM:95043D58 BL print
ROM:95043D5C B _end
ROM:95043D60 @ ---------------------------------------------------------------------------
ROM:95043D60
ROM:95043D60 _DisplayData: @ CODE XREF: eMapiCheckWlanDataValidity+88j
ROM:95043D60 LDR R0, =aWlanDataHeader @ "Wlan data header ++++++++++++++++++++\n"
ROM:95043D64 BL print
ROM:95043D68 LDR R1, [R6]
ROM:95043D6C LDR R0, =aSignature0xX @ "Signature : 0x%x\n"
ROM:95043D70 BL printf
ROM:95043D74 LDR R1, [R6,#4]
ROM:95043D78 LDR R0, =aUpdatestatus0x @ "UpdateStatus : 0x%x\n"
ROM:95043D7C BL printf
ROM:95043D80 LDR R1, [R6,#8]
ROM:95043D84 LDR R0, =aUpdatecount0xX @ "UpdateCount : 0x%x\n"
ROM:95043D88 BL printf
ROM:95043D8C LDR R1, [R6,#0xC]
ROM:95043D90 LDR R0, =aBodylength0xX @ "BodyLength : 0x%x\n"
ROM:95043D94 BL printf
ROM:95043D98 LDR R1, [R6,#0x10]
ROM:95043D9C LDR R0, =aBodycrc0xX @ "BodyCRC : 0x%x\n"
ROM:95043DA0 BL printf
ROM:95043DA4 LDR R1, [R6,#0x14]
ROM:95043DA8 LDR R0, =aAdieid00xX @ "aDieId(0) : 0x%x\n"
ROM:95043DAC BL printf
ROM:95043DB0 LDR R1, [R6,#0x18]
ROM:95043DB4 LDR R0, =aAdieid10xX @ "aDieId(1) : 0x%x\n"
ROM:95043DB8 BL printf
ROM:95043DBC LDR R1, [R6,#0x1C]
ROM:95043DC0 LDR R0, =aAdieid20xX @ "aDieId(2) : 0x%x\n"
ROM:95043DC4 BL printf
ROM:95043DC8 LDR R1, [R6,#0x20]
ROM:95043DCC LDR R0, =aAdieid30xX @ "aDieId(3) : 0x%x\n"
ROM:95043DD0 BL printf
ROM:95043DD4 LDR R1, [R6,#0x24]
ROM:95043DD8 LDR R0, =aCountryid0xX @ "countryID : 0x%x\n"
ROM:95043DDC BL printf
ROM:95043DE0 LDRB LR, [R6,#45]
ROM:95043DE4 LDRB R4, [R6,#44]
ROM:95043DE8 LDRB R5, [R6,#43]
ROM:95043DEC LDRB R3, [R6,#42]
ROM:95043DF0 LDRB R2, [R6,#41]
ROM:95043DF4 LDRB R1, [R6,#40]
ROM:95043DF8 LDR R0, =aMacBBBBBB @ "MAC= %B %B %B %B %B %B\r\n "
ROM:95043DFC STR LR, [SP,#0x30+var_28]
ROM:95043E00 STR R4, [SP,#0x30+var_2C]
ROM:95043E04 STR R5, [SP,#0x30+var_30]
ROM:95043E08 BL printf
ROM:95043E0C LDR R0, =aWlanDataHead_0 @ "Wlan data header ----------------------"...
ROM:95043E10
ROM:95043E10 _ok: @ CODE XREF: eMapiCheckWlanDataValidity+1F4j
ROM:95043E10 BL print
ROM:95043E14 MOV R5, #1
ROM:95043E18 B _end
ROM:95043E1C @ ---------------------------------------------------------------------------
ROM:95043E1C
ROM:95043E1C _err_invalid_update: @ CODE XREF: eMapiCheckWlanDataValidity+40j
ROM:95043E1C @ eMapiCheckWlanDataValidity+4Cj
ROM:95043E1C LDR R0, =aEmapicheckwl_1 @ "[eMapiCheckWlanDataValidity] Invalid up"...
ROM:95043E20 BL print
ROM:95043E24 B _end
ROM:95043E28 @ ---------------------------------------------------------------------------
ROM:95043E28
ROM:95043E28 _InitData: @ CODE XREF: eMapiCheckWlanDataValidity+28j
ROM:95043E28 @ eMapiCheckWlanDataValidity+34j
ROM:95043E28 MOV R2, #0x800 @ Count
ROM:95043E2C MOV R1, #0 @ char
ROM:95043E30 MOV R0, R6 @ int
ROM:95043E34 BL fillchar
ROM:95043E38
ROM:95043E38
ROM:95043E38 MOV R3, #0x238
ROM:95043E3C LDR R1, =unk_97901318
ROM:95043E40 ORR R3, R3, #2
ROM:95043E44 MOV R5, #0x10
ROM:95043E48 MOV R8, #0x90 @ '�'
ROM:95043E4C MOV R9, #0x4C @ 'L'
ROM:95043E50 MOV R10, #0xC5 @ '+'
ROM:95043E54 MOV R11, #0x34 @ '4'
ROM:95043E58 MOV LR, #1
ROM:95043E5C MOV R4, #0
ROM:95043E60 MOV R2, R3
ROM:95043E64 ADD R0, R6, #0x40
ROM:95043E68 STMIA R6, {R7,LR}
ROM:95043E6C STR LR, [R6,#8]
ROM:95043E70 STR R3, [R6,#0xC]
ROM:95043E74 STR R5, [R6,#0x24]
ROM:95043E78 STRB R4, [R6,#0x28]
ROM:95043E7C STRB R8, [R6,#0x29]
ROM:95043E80 STRB R9, [R6,#0x2A]
ROM:95043E84 STRB R10, [R6,#0x2B]
ROM:95043E88 STRB R4, [R6,#0x2C]
ROM:95043E8C STRB R11, [R6,#0x2D]
ROM:95043E90 BL memcpy
ROM:95043E94 MOV R2, #0
ROM:95043E98 MOV R1, #0x23C
ROM:95043E9C ADD R0, R6, #0x40
ROM:95043EA0 BL GetRamCrc
ROM:95043EA4 MOV R3, R0
ROM:95043EA8 MOV R0, R6
ROM:95043EAC STR R3, [R6,#0x10]
ROM:95043EB0 BL callNAND_WriteConfig
ROM:95043EB4 CMP R0, #0
ROM:95043EB8 LDRNE R0, =aInitializeWlan @ "Initialize wlan data success\n"
ROM:95043EBC BNE _ok
ROM:95043EC0
ROM:95043EC0 _err_init_failed: @ "Initialize wlan data fail\n\n"
ROM:95043EC0 LDR R0, =aInitializeWl_0
ROM:95043EC4 BL print
ROM:95043EC8 MOV R5, #0
ROM:95043ECC
ROM:95043ECC _end: @ CODE XREF: eMapiCheckWlanDataValidity+64j
ROM:95043ECC @ eMapiCheckWlanDataValidity+94j ...
ROM:95043ECC MOV R0, R5
ROM:95043ED0 ADD SP, SP, #0xC
ROM:95043ED4 LDMFD SP!, {R4-R11,LR}
ROM:95043ED8 BX LR
Is that from a ROM? If yes then I'm guessing that it maybe creates a "default" mac before the actual mac address is parsed from SPL.
I've done a task29 and installed a (close to) stock windows mobile ROM before checking my real wifi and bt mac addresses.
And they are the same as the ones this code returns.
marc1706 said:
Is that from a ROM? If yes then I'm guessing that it maybe creates a "default" mac before the actual mac address is parsed from SPL.
I've done a task29 and installed a (close to) stock windows mobile ROM before checking my real wifi and bt mac addresses.
And they are the same as the ones this code returns.
Click to expand...
Click to collapse
It is from SPL, But since nand config data is never erased and is written in factory, i think it should be fine using this as a source, since we know there weren't any mac collisions under windows mobile as far as i know.
Add another htc-hd2 I got
Directly installed with Tytung kernel hwa v2.3 (jun 2012), macaddress:
wifi : 00:23:76:89:1F:B2
bluetooth : 00:23:76:6D:E3:FF
are unique :angel:
Franck
Franck78 said:
Add another htc-hd2 I got
Directly installed with Tytung kernel hwa v2.3 (jun 2012), macaddress:
wifi : 00:23:76:89:1F:B2
bluetooth : 00:23:76:6D:E3:FF
are unique :angel:
Franck
Click to expand...
Click to collapse
I've confirmed this fix with 4 different HD2 devices - all are unique, and show the same MAC from WinMo65 Thanks a ton for your work!!!