As you know many, has already left the new smartphone from Energy Sistem, this device has a mtk6592 processor, the problem I have is that I try to install the Xposed Framework, I get that everything is correct, but on reboot, the bootloader remains in a permanent loop, someone could help me?
What ROM/version is your device running? Can you post a logcat?
GermainZ said:
What ROM/version is your device running? Can you post a logcat?
Click to expand...
Click to collapse
--------- beginning of /dev/log/main
D/dalvikvm(24616): zygote get new systemTid : 24616
D/dalvikvm(24616): threadid=2: interp stack at 0x5fdda000
D/dalvikvm(24616): threadid=3: interp stack at 0x5fefa000
D/dalvikvm(24616): Elevating priority from 0 to -8
D/dalvikvm(24616): threadid=4: interp stack at 0x6001b000
D/dalvikvm(24616): zygote get thread init done
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=5: interp stack at 0x61dec000
D/dalvikvm(24616): threadid=5: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=5: notify debugger
D/dalvikvm(24616): threadid=5 (ReferenceQueueDaemon): calling run()
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=6: interp stack at 0x61f0c000
D/dalvikvm(24616): threadid=6: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=6: notify debugger
D/dalvikvm(24616): threadid=6 (FinalizerDaemon): calling run()
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=7: interp stack at 0x6202c000
D/dalvikvm(24616): threadid=7: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=7: notify debugger
D/dalvikvm(24616): threadid=7 (FinalizerWatchdogDaemon): calling run()
D/dalvikvm(24616): threadid=8: interp stack at 0x6244a000
I/dalvikvm(24616): Enabling JNI app bug workarounds for target SDK version 11...
D/dalvikvm(24616): threadid=9: interp stack at 0x6256a000
--------- beginning of /dev/log/system
D/ActivityThread(24616): hoder:[email protected],provider,holder.Provider:[email protected]
D/asset (24616): AssetManager-->addDefaultAssets CIP path not exsit!
D/dalvikvm(24616): open_cached_dex_file : /data/app/org.jtb.alogcat-1.apk /data/dalvik-cache/[email protected]@[email protected]
D/AbsListView(24616): checkAbsListViewlLogProperty get invalid command
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=10: interp stack at 0x625df000
D/dalvikvm(24616): threadid=10: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=10: notify debugger
D/dalvikvm(24616): threadid=10 (SharedPreferencesImpl-load): calling run()
D/dalvikvm(24616): threadid=10: exiting
D/dalvikvm(24616): threadid=10: bye!
D/AbsListView(24616): setOnScrollListener: [email protected]88, this=android.widget.ListView{41b164c8 V.ED.VCL ......I. 0,0-0,0 #102000a android:id/list}
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=10: interp stack at 0x625df000
D/dalvikvm(24616): threadid=10: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=10: notify debugger
D/dalvikvm(24616): threadid=10 (pool-1-thread-1): calling run()
V/PhoneWindow(24616): DecorView setVisiblity: visibility = 4 ,Parent =null, this =com.android.internal.policy.impl.PhoneWindow$DecorView{41ae61d0 I.E..... R.....ID 0,0-0,0}
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=11: interp stack at 0x626ff000
D/dalvikvm(24616): threadid=11: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=11: notify debugger
D/dalvikvm(24616): threadid=11 (pool-2-thread-1): calling run()
D/dalvikvm(24616): create interp thread : stack size=128KB
D/dalvikvm(24616): create new thread
D/dalvikvm(24616): new thread created
D/dalvikvm(24616): update thread list
D/dalvikvm(24616): threadid=12: interp stack at 0x6281f000
D/dalvikvm(24616): threadid=12: created from interp
D/dalvikvm(24616): start new thread
D/dalvikvm(24616): threadid=12: notify debugger
D/dalvikvm(24616): threadid=12 (java.lang.ProcessManager): calling run()
D/dalvikvm(24616): threadid=13: interp stack at 0x62a3f000
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/PhoneWindow(24616): DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}, this =com.android.internal.policy.impl.PhoneWindow$DecorView{41ae61d0 V.E..... R.....ID 0,0-0,0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41ba6740 Toast,ident = 1}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833836996561, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833836996561, this = ViewRoot{41ba6740 Toast,ident = 1}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41ba6740 Toast,ident = 1}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833879435400, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833879435400, this = ViewRoot{41ba6740 Toast,ident = 1}
D/GraphicBuffer(24616): create handle(0x611fc648) (w:1088, h:1920, f:2)
D/GraphicBuffer(24616): create handle(0x61253ce8) (w:640, h:126, f:1)
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/AbsListView(24616): onWindowFocusChanged: hasWindowFocus=true, this=android.widget.ListView{41b164c8 V.ED.VCL ......I. 0,0-1080,1701 #102000a android:id/list}
V/InputMethodManager(24616): onWindowFocus: null softInputMode=272 first=true flags=#810100
V/InputMethodManager(24616): START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView{41ae61d0 V.E..... R.....I. 0,0-1080,1920} ic=null [email protected] controlFlags=#104
V/InputMethodManager(24616): Starting input: Bind result=InputBindResult{null com.android.inputmethod.latin/.LatinIME #3041}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41ba6740 Toast,ident = 1}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833985550715, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54833985550715, this = ViewRoot{41ba6740 Toast,ident = 1}
D/GraphicBuffer(24616): create handle(0x61257840) (w:1088, h:1920, f:2)
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54834834609407, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/ListView(24616): mSelectorRect.setEmpty in layoutChildren this=android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}
D/GraphicBuffer(24616): create handle(0x63d88c48) (w:1088, h:1920, f:2)
V/InputMethodManager(24616): START INPUT: android.widget.ListView{41b164c8 VFED.VCL .F....I. 0,0-1080,1701 #102000a android:id/list} ic=null [email protected] controlFlags=#100
V/InputMethodManager(24616): Starting input: Bind result=InputBindResult{[email protected]0 com.android.inputmethod.latin/.LatinIME #3042}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835068091176, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
I/SurfaceTextureClient(24616): [STC::queueBuffer] (this:0x6123fc58) fps:2.58, dur:1160.63, max:914.13, min:74.42
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835110551869, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835153014176, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835195454638, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835237905484, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835259136330, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835280357561, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835301585176, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835322812561, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/GraphicBuffer(24616): close handle(0x61253ce8) (w:640 h:126 f:1)
V/ViewRootImpl(24616): unscheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false, this = ViewRoot{41ba6740 Toast,ident = 1}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54835832255407, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/ListView(24616): mSelectorRect.setEmpty in layoutChildren this=android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54836829880792, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/ListView(24616): mSelectorRect.setEmpty in layoutChildren this=android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}
I/SurfaceTextureClient(24616): [STC::queueBuffer] (this:0x6123fc58) fps:5.60, dur:1784.17, max:982.09, min:20.11
D/VelocityTracker(24616): VelocityTracker: int datax = 10
D/VelocityTracker(24616): VelocityTracker: int m_velocity_magnify_x = 1.000000
D/VelocityTracker(24616): VelocityTracker: int datay = 10
D/VelocityTracker(24616): VelocityTracker: int m_velocity_magnify_y = 1.000000
I/View (24616): Touch down dispatch to android.widget.TextView{41bf21a0 V.ED...L ......I. 0,425-1080,536 #7f060000 app:id/entry_text}, event = MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=806.2535, y[0]=105.60956, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=54837590, downTime=54837590, deviceId=3, source=0x1002 }
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837615244099, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837636492484, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837657706638, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/AbsListView(24616): reportScrollStateChange: newState=1, mLastScrollState=0, [email protected], mScrollY=0, mTouchMode=3, mFirstPosition=125
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = true,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 454K (3033), 13% free 4832K/5512K, paused 20ms, total 22ms
D/dalvikvm(24616): GC_FOR_ALLOC freed 97K (787), 10% free 7200K/7984K, paused 19ms, total 19ms
D/dalvikvm(24616): GC_FOR_ALLOC freed <1K (5), 8% free 9221K/10016K, paused 18ms, total 18ms
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = true,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
I/View (24616): Touch up dispatch to android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}, event = MotionEvent { action=ACTION_UP, id[0]=0, x[0]=841.22107, y[0]=1077.3248, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=54837718, downTime=54837590, deviceId=3, source=0x1002 }
D/AbsListView(24616): Touch up: touch mode = 3,mScrollY = 0,mLastY = 1077,mMotionPosition = 128,mFirstPosition = 121,mDataChanged = false,adatper size = 138,this = android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}
I/AbsListView(24616): Fling from scroll with initialVelocity = 12676,mActivePointerId = 0,mFirstPosition = 121,firstChildTop = -102,this = android.widget.ListView{41b164c8 VFED.VCL .F....ID 0,0-1080,1701 #102000a android:id/list}
D/AbsListView(24616): reportScrollStateChange: newState=2, mLastScrollState=1, [email protected], mScrollY=0, mTouchMode=3, mFirstPosition=121
D/AbsListView(24616): start: touch mode = 3,mScrollY = 0,initialVelocity = -12676,mLastFlingY = 2147483647
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837785119987, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 493K (258), 11% free 11226K/12488K, paused 20ms, total 20ms
I/SurfaceTextureClient(24616): [STC::queueBuffer] (this:0x6123fc58) fps:2.89, dur:1036.36, max:907.42, min:54.17
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837912534932, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2031K (122), 21% free 11228K/14048K, paused 20ms, total 20ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54837976126778, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838039806239, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2012K (187), 21% free 11111K/14048K, paused 19ms, total 19ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838103485855, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 1241K (117), 19% free 11432K/14048K, paused 19ms, total 19ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838145947015, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2324K (95), 25% free 10842K/14372K, paused 20ms, total 20ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838209603393, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2176K (94), 26% free 10695K/14372K, paused 19ms, total 19ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838273285470, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2027K (91), 25% free 10831K/14372K, paused 19ms, total 19ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838336972855, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838379422477, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 1442K (158), 20% free 11584K/14372K, paused 20ms, total 20ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838443117162, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838464360253, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2180K (150), 23% free 11078K/14372K, paused 20ms, total 20ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838528012470, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838570483169, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 2153K (132), 26% free 10740K/14372K, paused 19ms, total 19ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838612910939, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838634171869, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838655403176, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838697828477, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838719063869, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838740271561, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838761512253, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
D/dalvikvm(24616): GC_FOR_ALLOC freed 1042K (339), 20% free 11539K/14372K, paused 20ms, total 20ms
I/dalvikvm-heap(24616): Grow heap (frag case) to 12.081MB for 630736-byte allocation
D/dalvikvm(24616): GC_FOR_ALLOC freed <1K (14), 19% free 12155K/14992K, paused 21ms, total 21ms
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838846456463, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838867641484, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838888875253, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
I/SurfaceTextureClient(24616): [STC::queueBuffer] (this:0x6123fc58) fps:22.97, dur:1001.31, max:71.32, min:21.24
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838910117407, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838952531323, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838973770869, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54838994994792, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): doConsumeBatchedInput: frameTimeNanos = 54839016236946, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
V/ViewRootImpl(24616): scheduleConsumeBatchedInput: mConsumeBatchedInputScheduled = false,mFirstPendingInputEvent = null, this = ViewRoot{41b9d4d8 org.jtb.alogcat/org.jtb.alogcat.LogActivity,ident = 0}
Is that logcat taken while your phone is in the bootloop? It doesn't show any errors.
Xposed cause bootloop also on stock Nibiru Mars H1. I haven't tried it again since I don't have time to mess with my phone.
this case (bootloop on stock nibiru mars H1) is widely known and happen on Nibiru user in Indonesia. some user have to flash Custom Rom to successfully installed and use xposed.
I hove there is some solution to this problem.
TIA
jati1981 said:
I hove there is some solution to this problem.
Click to expand...
Click to collapse
Maybe there is, but not without a logcat that shows the problem. Make sure you use the latest version when you take it.
Related
DFT_SSPL_MINI.c
Hi im sorry, this is decompiled
hi,what is this?
file extension c
tzacapaca said:
hi,what is this?
file extension c
Click to expand...
Click to collapse
Isn't that a file for VS2008 or higher with C-code? I'll check that for you
Checked that for you, and indeed it is decompiled C++. This is what it contains, but I don't know what we should do with this code? Maybe someone who knows C++ can make HSPL with this as a basis?
Code:
/* This file has been generated by the Hex-Rays decompiler.
Copyright (c) 2009 Hex-Rays <[email protected]>
Detected compiler: Visual C++
*/
#include <windows.h>
#include <defs.h>
//-------------------------------------------------------------------------
// Data declarations
extern char aGetprocesswind[]; // idb
extern char aGetuserobjecti[]; // idb
extern char aGetlastactivep[19]; // weak
extern char aGetactivewindo[16]; // weak
extern char aMessageboxa[]; // idb
extern char LibFileName[]; // idb
extern char aRomupdateutili[21]; // weak
extern char Caption[]; // idb
extern _UNKNOWN unk_409300; // weak
extern char Text[]; // idb
extern char aErrorDuringExt[]; // idb
extern _UNKNOWN unk_409400; // weak
extern _UNKNOWN unk_409408; // weak
extern int dword_40AA58; // weak
extern int dword_40ACA0; // weak
extern char off_40ACA4[92]; // idb
extern int dword_40AD10; // weak
extern int dword_40AD1C; // weak
extern int dword_40B2E0; // weak
extern int dword_40B2F0; // weak
extern int dword_40B308; // weak
extern int dword_40B30C; // weak
extern int dword_40B310; // weak
extern int dword_40B314; // weak
extern int dword_40B318; // weak
extern int dword_40B31C; // weak
extern int dword_40B320; // weak
extern int dword_40B324; // weak
extern CHAR Filename; // idb
extern char FileName[]; // idb
extern int dword_40BB68; // weak
//-------------------------------------------------------------------------
// Function declarations
#define __thiscall __cdecl // Test compile in C mode
// signed int __usercall sub_401000<eax>(int a1<eax>, int a2<edx>, int a3<ecx>);
LPVOID __cdecl sub_401050(DWORD NumberOfBytesWritten);
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
// char *__cdecl strrchr(const char *, int);
signed int __cdecl sub_4017D5(int a1);
signed int __cdecl sub_40180C(int a1);
int (*__cdecl sub_40247B())(void);
int (*__cdecl sub_40249F())(void);
// _DWORD __cdecl _encode_pointer(_DWORD); weak
// int _encoded_null(void); weak
// _DWORD __cdecl _decode_pointer(_DWORD); weak
int __cdecl sub_402EE1(int a1);
// int __cdecl _invoke_watson(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
// int __cdecl _invalid_parameter(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
// int *__cdecl _errno();
int __cdecl sub_403325();
int __cdecl sub_4034EC(int a1);
int __cdecl sub_4034F6(int a1);
int __cdecl sub_4035D5(int a1);
int __cdecl sub_403601(int a1, int a2, int a3);
int __thiscall sub_40544A(void *this, char a2);
void __cdecl sub_4055AF();
// void *__cdecl memset(void *, int, size_t);
// _DWORD __thiscall __report_gsfailure(_DWORD ecx0, _BYTE _4); weak
// int __cdecl _unwind_handler(int, int, int, int, int); weak
// int __cdecl _abnormal_termination();
// HANDLE __stdcall CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
// HRSRC __stdcall FindResourceA(HMODULE hModule, LPCSTR lpName, LPCSTR lpType);
// HGLOBAL __stdcall LoadResource(HMODULE hModule, HRSRC hResInfo);
// DWORD __stdcall WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);
// BOOL __stdcall WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
// DWORD __stdcall SizeofResource(HMODULE hModule, HRSRC hResInfo);
// BOOL __stdcall CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation);
// BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes);
// LPVOID __stdcall LockResource(HGLOBAL hResData);
// DWORD __stdcall GetModuleFileNameA(HMODULE hModule, LPCH lpFilename, DWORD nSize);
// BOOL __stdcall CloseHandle(HANDLE hObject);
// BOOL __stdcall DeleteFileA(LPCSTR lpFileName);
// FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
// HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName);
// int __stdcall MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
//----- (00401000) --------------------------------------------------------
signed int __usercall sub_401000<eax>(int a1<eax>, int a2<edx>, int a3<ecx>)
{
signed int result; // [email protected]
int v4; // [email protected]
int v5; // [email protected]
v5 = a1;
v4 = a3;
result = 0;
if ( a3 )
{
while ( *(_BYTE *)v5 )
{
*(_BYTE *)a2++ = *(_BYTE *)v5++;
--v4;
if ( !v4 )
{
result = -2147024774;
*(_BYTE *)(a2 - 1) = 0;
return result;
}
}
if ( !v4 )
{
--a2;
result = -2147024774;
}
*(_BYTE *)a2 = 0;
}
else
{
result = -2147024809;
}
return result;
}
//----- (00401050) --------------------------------------------------------
LPVOID __cdecl sub_401050(DWORD NumberOfBytesWritten)
{
HRSRC v1; // [email protected]
HRSRC v2; // [email protected]
LPVOID result; // [email protected]
HGLOBAL v4; // [email protected]
const void *v5; // [email protected]
HANDLE v6; // [email protected]
DWORD v7; // [email protected]
void *v8; // [email protected]
v1 = FindResourceA(0, (LPCSTR)(unsigned __int16)NumberOfBytesWritten, (LPCSTR)0xA);
v2 = v1;
if ( v1 && (v4 = LoadResource(0, v1)) != 0 )
{
result = LockResource(v4);
v5 = result;
if ( result )
{
v7 = SizeofResource(0, v2);
v6 = CreateFileA(FileName, 0x40000000u, 1u, 0, 2u, 2u, 0);
v8 = v6;
if ( v6 == (HANDLE)-1 )
{
result = 0;
}
else
{
WriteFile(v6, v5, v7, &NumberOfBytesWritten, 0);
CloseHandle(v8);
SetFileAttributesA(FileName, 2u);
result = (LPVOID)1;
}
}
}
else
{
result = 0;
}
return result;
}
//----- (004010F0) --------------------------------------------------------
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
char *v4; // [email protected]
unsigned int v5; // [email protected]
unsigned int v6; // [email protected]
int v7; // [email protected]
signed int v8; // [email protected]
char v9; // [email protected]
int v10; // [email protected]
signed int v11; // [email protected]
char *v12; // [email protected]
int v13; // [email protected]
char *v14; // [email protected]
char v15; // [email protected]
int v16; // [email protected]
signed int v17; // [email protected]
int v18; // [email protected]
signed int v19; // [email protected]
char v20; // [email protected]
int v22; // [email protected]
signed int v23; // [email protected]
char *v24; // [email protected]
int v25; // [email protected]
char *v26; // [email protected]
char v27; // [email protected]
int v28; // [email protected]
signed int v29; // [email protected]
char *v30; // [email protected]
int v31; // [email protected]
char *v32; // [email protected]
char v33; // [email protected]
unsigned int v34; // [email protected]
int v35; // [email protected]
signed int v36; // [email protected]
char v37; // [email protected]
int v38; // [email protected]
signed int v39; // [email protected]
char *v40; // [email protected]
int v41; // [email protected]
char *v42; // [email protected]
char v43; // [email protected]
int v44; // [email protected]
signed int v45; // [email protected]
char *v46; // [email protected]
int v47; // [email protected]
char *v48; // [email protected]
char v49; // [email protected]
struct _PROCESS_INFORMATION ProcessInformation; // [sp+4h] [bp-54h]@64
struct _STARTUPINFOA StartupInfo; // [sp+14h] [bp-44h]@64
Filename = 0;
GetModuleFileNameA(0, &Filename, 0x1FFu);
v4 = strrchr(&Filename, 92);
if ( v4 )
*v4 = 0;
v5 = &Filename - FileName;
v6 = 0;
do
{
v8 = 512;
v7 = (int)FileName;
while ( 1 )
{
v9 = *(_BYTE *)(v5 + v7);
if ( !v9 )
break;
*(_BYTE *)v7++ = v9;
--v8;
if ( !v8 )
goto LABEL_9;
}
if ( v8 )
goto LABEL_10;
LABEL_9:
--v7;
LABEL_10:
*(_BYTE *)v7 = 0;
v11 = 512;
v10 = (int)FileName;
while ( *(_BYTE *)v10 )
{
++v10;
--v11;
if ( !v11 )
goto LABEL_23;
}
if ( v11 )
{
v13 = 512 - (512 - v11);
v12 = &FileName[512 - v11];
if ( 0 != v11 )
{
v14 = (char *)(&unk_409300 - (_UNKNOWN *)v12);
while ( 1 )
{
v15 = *(_BYTE *)((_DWORD)v14 + (_DWORD)v12);
if ( !v15 )
break;
*v12++ = v15;
--v13;
if ( !v13 )
goto LABEL_21;
}
if ( v13 )
goto LABEL_22;
LABEL_21:
--v12;
LABEL_22:
*v12 = 0;
}
}
LABEL_23:
v17 = 512;
v16 = (int)FileName;
while ( *(_BYTE *)v16 )
{
++v16;
--v17;
if ( !v17 )
goto LABEL_29;
}
if ( v17 )
sub_401000(*(_DWORD *)&off_40ACA4[v6], (int)&FileName[512 - v17], 512 - (512 - v17));
LABEL_29:
if ( !sub_401050(*(int *)((char *)&dword_40ACA0 + v6)) )
{
MessageBoxA(0, "Error during application start! Possible file corrupted!", Caption, 0x40010u);
return -1;
}
v6 += 8;
}
while ( v6 < 0x50 );
v19 = 512;
v18 = (int)FileName;
while ( 1 )
{
v20 = *(_BYTE *)(v5 + v18);
if ( !v20 )
break;
*(_BYTE *)v18++ = v20;
--v19;
if ( !v19 )
goto LABEL_37;
}
if ( v19 )
goto LABEL_38;
LABEL_37:
--v18;
LABEL_38:
*(_BYTE *)v18 = 0;
v23 = 512;
v22 = (int)FileName;
while ( *(_BYTE *)v22 )
{
++v22;
--v23;
if ( !v23 )
goto LABEL_51;
}
if ( v23 )
{
v25 = 512 - (512 - v23);
v24 = &FileName[512 - v23];
if ( 0 != v23 )
{
v26 = (char *)(&unk_409300 - (_UNKNOWN *)v24);
while ( 1 )
{
v27 = *(_BYTE *)((_DWORD)v26 + (_DWORD)v24);
if ( !v27 )
break;
*v24++ = v27;
--v25;
if ( !v25 )
goto LABEL_49;
}
if ( v25 )
goto LABEL_50;
LABEL_49:
--v24;
LABEL_50:
*v24 = 0;
}
}
LABEL_51:
v29 = 512;
v28 = (int)FileName;
while ( *(_BYTE *)v28 )
{
++v28;
--v29;
if ( !v29 )
goto LABEL_64;
}
if ( v29 )
{
v31 = 512 - (512 - v29);
v30 = &FileName[512 - v29];
if ( 0 != v29 )
{
v32 = (char *)("ROMUpdateUtility.exe" - v30);
while ( 1 )
{
v33 = *(_BYTE *)((_DWORD)v30 + (_DWORD)v32);
if ( !v33 )
break;
*v30++ = v33;
--v31;
if ( !v31 )
goto LABEL_62;
}
if ( v31 )
goto LABEL_63;
LABEL_62:
--v30;
LABEL_63:
*v30 = 0;
}
}
LABEL_64:
memset(&StartupInfo, 0, 0x44u);
if ( CreateProcessA(FileName, 0, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation)
&& (_DWORD)ProcessInformation.hProcess )
{
WaitForSingleObject(ProcessInformation.hProcess, 0xFFFFFFFFu);
CloseHandle(ProcessInformation.hProcess);
}
else
{
MessageBoxA(0, "Error during extraction! Possible file corrupted!", Caption, 0x40010u);
}
v34 = 0;
do
{
v36 = 512;
v35 = (int)FileName;
while ( 1 )
{
v37 = *(_BYTE *)(&Filename - FileName + v35);
if ( !v37 )
break;
*(_BYTE *)v35++ = v37;
--v36;
if ( !v36 )
goto LABEL_74;
}
if ( v36 )
goto LABEL_75;
LABEL_74:
--v35;
LABEL_75:
*(_BYTE *)v35 = 0;
v39 = 512;
v38 = (int)FileName;
while ( *(_BYTE *)v38 )
{
++v38;
--v39;
if ( !v39 )
goto LABEL_88;
}
if ( v39 )
{
v41 = 512 - (512 - v39);
v40 = &FileName[512 - v39];
if ( 0 != v39 )
{
v42 = (char *)(&unk_409300 - (_UNKNOWN *)v40);
while ( 1 )
{
v43 = *(_BYTE *)((_DWORD)v42 + (_DWORD)v40);
if ( !v43 )
break;
*v40++ = v43;
--v41;
if ( !v41 )
goto LABEL_86;
}
if ( v41 )
goto LABEL_87;
LABEL_86:
--v40;
LABEL_87:
*v40 = 0;
}
}
LABEL_88:
v45 = 512;
v44 = (int)FileName;
while ( *(_BYTE *)v44 )
{
++v44;
--v45;
if ( !v45 )
goto LABEL_101;
}
if ( v45 )
{
v47 = 512 - (512 - v45);
v46 = &FileName[512 - v45];
if ( 0 != v45 )
{
v48 = (char *)(*(_DWORD *)&off_40ACA4[v34] - (_DWORD)v46);
while ( 1 )
{
v49 = *(_BYTE *)((_DWORD)v46 + (_DWORD)v48);
if ( !v49 )
break;
*v46++ = v49;
--v47;
if ( !v47 )
goto LABEL_99;
}
if ( v47 )
goto LABEL_100;
LABEL_99:
--v46;
LABEL_100:
*v46 = 0;
}
}
LABEL_101:
SetFileAttributesA(FileName, 0x80u);
DeleteFileA(FileName);
v34 += 8;
}
while ( v34 < 0x50 );
return 0;
}
// 40ACA0: using guessed type int dword_40ACA0;
//----- (004017D5) --------------------------------------------------------
signed int __cdecl sub_4017D5(int a1)
{
signed int result; // [email protected]
if ( a1 && dword_40AD10 )
{
*(_DWORD *)a1 = dword_40AD10;
result = 0;
}
else
{
*_errno() = 22;
_invalid_parameter(0, 0, 0, 0, 0);
result = 22;
}
return result;
}
// 402FE7: using guessed type int __cdecl _invalid_parameter(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 40AD10: using guessed type int dword_40AD10;
//----- (0040180C) --------------------------------------------------------
signed int __cdecl sub_40180C(int a1)
{
signed int result; // [email protected]
if ( a1 && dword_40AD10 )
{
*(_DWORD *)a1 = dword_40AD1C;
result = 0;
}
else
{
*_errno() = 22;
_invalid_parameter(0, 0, 0, 0, 0);
result = 22;
}
return result;
}
// 402FE7: using guessed type int __cdecl _invalid_parameter(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 40AD10: using guessed type int dword_40AD10;
// 40AD1C: using guessed type int dword_40AD1C;
//----- (0040247B) --------------------------------------------------------
int (*__cdecl sub_40247B())(void)
{
int (*result)(void); // [email protected]
unsigned int v1; // [email protected]
result = (int (*)(void))&unk_409400;
v1 = (unsigned int)&unk_409400;
if ( &unk_409400 < &unk_409400 )
{
do
{
result = *(int (**)(void))v1;
if ( *(_DWORD *)v1 )
result = (int (*)(void))result();
v1 += 4;
}
while ( v1 < (unsigned int)&unk_409400 );
}
return result;
}
//----- (0040249F) --------------------------------------------------------
int (*__cdecl sub_40249F())(void)
{
int (*result)(void); // [email protected]
unsigned int v1; // [email protected]
result = (int (*)(void))&unk_409408;
v1 = (unsigned int)&unk_409408;
if ( &unk_409408 < &unk_409408 )
{
do
{
result = *(int (**)(void))v1;
if ( *(_DWORD *)v1 )
result = (int (*)(void))result();
v1 += 4;
}
while ( v1 < (unsigned int)&unk_409408 );
}
return result;
}
//----- (00402EE1) --------------------------------------------------------
int __cdecl sub_402EE1(int a1)
{
int result; // [email protected]
result = a1;
dword_40B2E0 = a1;
return result;
}
// 40B2E0: using guessed type int dword_40B2E0;
//----- (00403325) --------------------------------------------------------
int __cdecl sub_403325()
{
return _decode_pointer(dword_40B2F0);
}
// 40252F: using guessed type _DWORD __cdecl _decode_pointer(_DWORD);
// 40B2F0: using guessed type int dword_40B2F0;
//----- (004034EC) --------------------------------------------------------
int __cdecl sub_4034EC(int a1)
{
int result; // [email protected]
result = a1;
dword_40B308 = a1;
return result;
}
// 40B308: using guessed type int dword_40B308;
//----- (004034F6) --------------------------------------------------------
int __cdecl sub_4034F6(int a1)
{
int result; // [email protected]
result = a1;
dword_40B30C = a1;
return result;
}
// 40B30C: using guessed type int dword_40B30C;
//----- (004035D5) --------------------------------------------------------
int __cdecl sub_4035D5(int a1)
{
int result; // [email protected]
result = a1;
dword_40B310 = a1;
return result;
}
// 40B310: using guessed type int dword_40B310;
//----- (00403601) --------------------------------------------------------
int __cdecl sub_403601(int a1, int a2, int a3)
{
HMODULE v3; // [email protected]
HMODULE v4; // [email protected]
FARPROC v6; // [email protected]
FARPROC v7; // [email protected]
FARPROC v8; // [email protected]
FARPROC v9; // [email protected]
FARPROC v10; // [email protected]
int v11; // [email protected]
int v12; // [email protected]
int (__thiscall *v13)(_DWORD); // [email protected]
int v14; // [email protected]
int v15; // [email protected]
int (__thiscall *v16)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // [email protected]
int v17; // [email protected]
int (__thiscall *v18)(_DWORD); // [email protected]
int v19; // [email protected]
int v20; // [email protected]
int (__thiscall *v21)(_DWORD, _DWORD); // [email protected]
int v22; // [email protected]
int v23; // [email protected]
int (__thiscall *v24)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // [email protected]
int v25; // [email protected]
char v26; // [sp+10h] [bp-20h]@13
char v27; // [sp+18h] [bp-18h]@14
char v28; // [sp+1Ch] [bp-14h]@13
int v29; // [sp+20h] [bp-10h]@1
unsigned int v30; // [sp+24h] [bp-Ch]@1
int v31; // [sp+28h] [bp-8h]@1
int v32; // [sp+2Ch] [bp-4h]@1
v29 = _encoded_null();
v32 = 0;
v31 = 0;
v30 = 0;
if ( !dword_40B314 )
{
v3 = LoadLibraryA("USER32.DLL");
v4 = v3;
if ( !v3 || (v6 = GetProcAddress(v3, "MessageBoxA"), !v6) )
return 0;
dword_40B314 = _encode_pointer(v6);
v7 = GetProcAddress(v4, "GetActiveWindow");
dword_40B318 = _encode_pointer(v7);
v8 = GetProcAddress(v4, "GetLastActivePopup");
dword_40B31C = _encode_pointer(v8);
if ( sub_4017D5((int)&v31) )
_invoke_watson(0, 0, 0, 0, 0);
if ( v31 == 2 )
{
v9 = GetProcAddress(v4, "GetUserObjectInformationA");
dword_40B324 = _encode_pointer(v9);
if ( dword_40B324 )
{
v10 = GetProcAddress(v4, "GetProcessWindowStation");
dword_40B320 = _encode_pointer(v10);
}
}
}
v11 = v29;
if ( dword_40B320 == v29
|| dword_40B324 == v29
|| (v13 = (int (__thiscall *)(_DWORD))_decode_pointer(dword_40B320), (v12 = v13(v14)) != 0)
&& (v15 = v12,
v16 = (int (__thiscall *)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))_decode_pointer(dword_40B324),
v16(v17, v15, 1, &v26, 12, &v28))
&& v27 & 1 )
{
if ( dword_40B318 != v11 )
{
v18 = (int (__thiscall *)(_DWORD))_decode_pointer(dword_40B318);
v32 = v18(v19);
if ( v32 )
{
if ( dword_40B31C != v11 )
{
v20 = v32;
v21 = (int (__thiscall *)(_DWORD, _DWORD))_decode_pointer(dword_40B31C);
v32 = v21(v22, v20);
}
}
}
}
else
{
if ( sub_40180C((int)&v30) )
_invoke_watson(0, 0, 0, 0, 0);
if ( v30 < 4 )
a3 |= 0x40000u;
else
a3 |= 0x200000u;
}
v23 = v32;
v24 = (int (__thiscall *)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))_decode_pointer(dword_40B314);
return v24(v25, v23, a1, a2, a3);
}
// 4024C3: using guessed type _DWORD __cdecl _encode_pointer(_DWORD);
// 402526: using guessed type int _encoded_null(void);
// 40252F: using guessed type _DWORD __cdecl _decode_pointer(_DWORD);
// 402EEB: using guessed type int __cdecl _invoke_watson(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 40B314: using guessed type int dword_40B314;
// 40B318: using guessed type int dword_40B318;
// 40B31C: using guessed type int dword_40B31C;
// 40B320: using guessed type int dword_40B320;
// 40B324: using guessed type int dword_40B324;
//----- (0040544A) --------------------------------------------------------
int __thiscall sub_40544A(void *this, char a2)
{
if ( this == (void *)dword_40AA58 )
__asm { rep retn }
return __report_gsfailure(this, a2);
}
// 406A85: using guessed type _DWORD __thiscall __report_gsfailure(_DWORD ecx0, _BYTE _4);
// 40AA58: using guessed type int dword_40AA58;
//----- (004055AF) --------------------------------------------------------
void __cdecl sub_4055AF()
{
dword_40BB68 = 0;
}
// 40BB68: using guessed type int dword_40BB68;
// ALL OK, 15 function(s) have been successfully decompiled
for hard spl you must to decompile spl first and than to reverse enginer it to make hard spl. I was try that but im not c++ or c programer
cardsharing said:
for hard spl you must to decompile spl first and than to reverse enginer it to make hard spl. I was try that but im not c++ or c programer
Click to expand...
Click to collapse
Me neither, I do C#
as kj6 is supposed to bring some bug fixes, I thought I'd check the kernel source.
there's not a huge amount of difference, but some looks interesting, hopefully of use to anyone wanting to building it.
Code:
--- drivers/input/touchscreen/mxt540e.c 2011-10-20 02:58:48.000000000
+++ drivers/input/touchscreen/mxt540e.c 2011-10-25 17:58:10.000000000
@@ -907,16 +907,16 @@
}
if (object_type == PROCG_NOISESUPPRESSION_T48) {
if (msg[4] == 5) { /* Median filter error */
printk("[TSP] Median filter Error\n");
get_object_info(data, PROCG_NOISESUPPRESSION_T48, &size, &obj_address);
- value = data->calcfg_batt_e;
+ value = 0;
error = write_mem(data, obj_address+2, 1, &value);
- msleep(5);
- value |= 0x20;
+ msleep(15);
+ value = data->calcfg_batt_e;
error |= write_mem(data, obj_address+2, 1, &value);
if(error) printk(KERN_ERR "[TSP] failed to reenable CHRGON\n");
}
}
if (object_type == TOUCH_MULTITOUCHSCREEN_T9) {
Code:
--- drivers/input/keyboard/cypress/cypress-touchkey.c 2011-10-20 02:58:48.000000000
+++ drivers/input/keyboard/cypress/cypress-touchkey.c 2011-10-25 17:58:10.000000000
@@ -1909,18 +1909,20 @@
int ret = 0;
#ifdef TEST_JIG_MODE
unsigned char get_touch = 0x40;
#endif
+#ifndef CONFIG_MACH_Q1_REV02
if (gpio_request(_3_TOUCH_SDA_28V, "_3_TOUCH_SDA_28V"))
WARN(1, "Fail to request gpio (_3_TOUCH_SDA_28V)\n");
if (gpio_request(_3_TOUCH_SCL_28V, "_3_TOUCH_SCL_28V"))
WARN(1, "Fail to request gpio (_3_TOUCH_SCL_28V)\n");
if (gpio_request(_3_GPIO_TOUCH_EN, "_3_GPIO_TOUCH_EN"))
WARN(1, "Fail to request gpio (_3_GPIO_TOUCH_EN)\n");
+#endif
if (gpio_request(_3_GPIO_TOUCH_INT, "_3_GPIO_TOUCH_INT"))
WARN(1, "Fail to request gpio (_3_GPIO_TOUCH_INT)\n");
/*20110222 N1_firmware_sync*/
sec_touchkey = device_create(sec_class, NULL, 0, NULL, "sec_touchkey");
@@ -2212,18 +2214,20 @@
misc_deregister(&touchkey_update_device);
if (touchkey_wq) {
destroy_workqueue(touchkey_wq);
}
+#ifndef CONFIG_MACH_Q1_REV02
gpio_free(_3_TOUCH_SDA_28V);
gpio_free(_3_TOUCH_SCL_28V);
gpio_free(_3_GPIO_TOUCH_EN);
+#endif
gpio_free(_3_GPIO_TOUCH_INT);
}
late_initcall(touchkey_init);
module_exit(touchkey_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("@@@");
MODULE_DESCRIPTION("melfas touch keypad");
Code:
--- drivers/leds/leds-max8997.c 2011-10-20 02:58:48.000000000
+++ drivers/leds/leds-max8997.c 2011-10-25 17:58:10.000000000
@@ -242,19 +242,30 @@
regulator_led_disable(led);
regulator_put(led->vcc);
kfree(led);
return 0;
}
+static void regulator_led_shutdown(struct platform_device *pdev)
+{
+ struct regulator_led *led = platform_get_drvdata(pdev);
+
+ if (regulator_is_enabled(led->vcc)) {
+ regulator_led_disable(led);
+ }
+ return;
+}
+
static struct platform_driver regulator_led_driver = {
.driver = {
.name = "leds-max8997",
.owner = THIS_MODULE,
},
.probe = regulator_led_probe,
.remove = __devexit_p(regulator_led_remove),
+ .shutdown = regulator_led_shutdown,
};
static int __init regulator_led_init(void)
{
return platform_driver_register(®ulator_led_driver);
}
Code:
--- drivers/media/video/samsung/mali/common/mali_kernel_mem_os.c 2011-10-20 02:58:48.000000000
+++ drivers/media/video/samsung/mali/common/mali_kernel_mem_os.c 2011-10-25 17:58:10.000000000
@@ -251,12 +251,13 @@
{
if ( allocation_order > 0 ) {
--allocation_order;
} else {
/* return OOM */
_mali_osk_lock_signal(info->mutex, _MALI_OSK_LOCKMODE_RW);
+ MALI_PRINT(("Failed to allocate consistent memory in all sizes.\n"));
return MALI_MEM_ALLOC_NONE;
}
}
/* try to allocate 2^(allocation_order) pages, if that fails, try
* allocation_order-1 to allocation_order 0 (inclusive) */
@@ -270,18 +271,21 @@
--allocation_order;
}
if ( NULL == virt )
{
MALI_DEBUG_PRINT(1, ("Failed to allocate consistent memory. Is CONSISTENT_DMA_SIZE set too low?\n"));
+ MALI_PRINT(("Failed to allocate consistent memory. Is CONSISTENT_DMA_SIZE set too low?\n"));
/* return OOM */
_mali_osk_lock_signal(info->mutex, _MALI_OSK_LOCKMODE_RW);
return MALI_MEM_ALLOC_NONE;
}
MALI_DEBUG_PRINT(5, ("os_allocator_allocate_page_table_block: Allocation of order %i succeeded\n",
+ allocation_order));
+ MALI_PRINT(("os_allocator_allocate_page_table_block: Allocation of order %i succeeded\n",
allocation_order));
/* we now know the size of the allocation since we know for what
* allocation_order the allocation succeeded */
size = _MALI_OSK_CPU_PAGE_SIZE << allocation_order;
Code:
--- drivers/media/video/m5mo.c 2011-10-20 02:58:48.000000000
+++ drivers/media/video/m5mo.c 2011-10-25 17:58:10.000000000
@@ -1707,13 +1707,13 @@
}
#endif
static int m5mo_set_touch_auto_focus(struct v4l2_subdev *sd, int val)
{
struct m5mo_state *state = to_state(sd);
- int err = -EINVAL;
+ int err;
cam_info("%s\n", val ? "start" : "stop");
state->focus.touch = val;
if (val) {
err = m5mo_set_af_mode(sd, FOCUS_MODE_TOUCH);
@@ -1727,13 +1727,13 @@
err = m5mo_writew(sd, M5MO_CATEGORY_LENS,
M5MO_LENS_AF_TOUCH_POSY, state->focus.pos_y);
CHECK_ERR(err);
}
cam_trace("X\n");
- return err;
+ return 0;
}
static int m5mo_set_zoom(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
{
struct m5mo_state *state = to_state(sd);
struct v4l2_queryctrl qc = {0,};
Code:
--- drivers/power/smb328_charger.c 2011-10-20 02:58:49.000000000
+++ drivers/power/smb328_charger.c 2011-10-25 17:58:10.000000000
@@ -820,18 +820,26 @@
{
struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
struct smb328_chip *chip;
int ret = 0;
int gpio = 0;
u8 data;
+ int i;
- if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
- return -EIO;
+ i = 10;
+ while (1) {
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
+ goto I2CERROR;
- if (smb328_i2c_read(client, 0x36, &data)<0) /* check HW */
- return -EIO;
+ if (smb328_i2c_read(client, 0x36, &data)>=0) /* check HW */
+ break;
+
+I2CERROR:
+ if (!i--) return -EIO;
+ msleep(300);
+ }
dev_info(&client->dev, "%s : SMB328 Charger Driver Loading\n", __func__);
chip = kzalloc(sizeof(struct smb328_chip), GFP_KERNEL);
if (!chip)
return -ENOMEM;
Code:
--- drivers/video/samsung/s3cfb_s6e8aa0.c 2011-10-20 02:58:50.000000000
+++ drivers/video/samsung/s3cfb_s6e8aa0.c 2011-10-25 17:58:10.000000000
@@ -1009,19 +1009,27 @@
return 0;
}
int s6e8ax0_read_mtp(struct lcd_info *lcd, u8 *mtp_data)
{
int ret;
+ u8 retry_cnt = 3;
s6e8ax0_write(lcd, enable_mtp_register, ARRAY_SIZE(enable_mtp_register));
+
+read_retry:
ret = s6e8ax0_read(lcd, LDI_MTP_ADDR, LDI_MTP_LENGTH, mtp_data);
if (!ret) {
- printk("ERROR:MTP read failed\n");
- return 0;
+ if (retry_cnt) {
+ printk("[WARN:LCD] : %s : retry cnt : %d\n", __func__, retry_cnt);
+ retry_cnt--;
+ goto read_retry;
+ } else
+ printk("ERROR:MTP read failed\n");
}
+
s6e8ax0_write(lcd, disable_mtp_register, ARRAY_SIZE(disable_mtp_register));
return ret;
}
#endif
static ssize_t lcdtype_show(struct device *dev, struct
@@ -1228,12 +1236,13 @@
struct s5p_platform_dsim *pd = (struct s5p_platform_dsim *)pdev->dev.platform_data;
#endif
#ifdef SMART_DIMMING
u8 mtp_data[LDI_MTP_LENGTH] = {0,};
u32 i;
u8 id_buf[3] = {0,};
+ u8 retry_cnt = 3;
#endif
lcd = kzalloc(sizeof(struct lcd_info), GFP_KERNEL);
if (!lcd) {
pr_err("failed to allocate for lcd\n");
ret = -ENOMEM;
@@ -1330,17 +1339,24 @@
dev_info(&lcd->ld->dev, "s6e8aa0 lcd panel driver has been probed.\n");
#ifdef SMART_DIMMING
mutex_init(&lcd->bl_lock);
- //read mpt
+read_retry:
ret = s6e8ax0_read(lcd, PANEL_ID_COMMAND, 3, id_buf);
if (!ret) {
- printk("[LCD:ERROR] : %s read id failed\n", __func__);
- //return -1;
+ if (retry_cnt) {
+ printk("[WARN:LCD] : %s : retry cnt : %d\n", __func__, retry_cnt);
+ retry_cnt--;
+ goto read_retry;
+ } else {
+ printk("[ERROR:LCD] : %s : Read ID Failed\n", __func__);
+ /*To protect ELVSS Wrong Operation*/
+ id_buf[2] = 0x33;
+ }
}
printk("Read ID : %x, %x, %x\n", id_buf[0], id_buf[1], id_buf[2]);
if (id_buf[2] == 0x33) {
lcd->support_elvss = 0;
@@ -1361,22 +1377,23 @@
init_table_info(&lcd->smart);
ret = s6e8ax0_read_mtp(lcd, mtp_data);
if (!ret) {
printk("[LCD:ERROR] : %s read mtp failed\n", __func__);
- //return -1;
+ lcd->connected = 0;
+ dev_info(&lcd->ld->dev, "panel is not connected well\n");
+ /*return -1;*/
}
calc_voltage_table(&lcd->smart, mtp_data);
s6e8ax0_adb_brightness_update(lcd, lcd->bd->props.brightness, 1);
#endif
- if (id_buf[0] == 0xa2) {
- lcd->connected = 1;
+ if (lcd->connected) {
INIT_DELAYED_WORK(&hs_clk_re_try, hs_clk_re_try_work);
lcd->irq = gpio_to_irq(GPIO_OLED_DET);
s3c_gpio_cfgpin(GPIO_OLED_DET, S3C_GPIO_SFN(0xf));
s3c_gpio_setpull(GPIO_OLED_DET, S3C_GPIO_PULL_NONE);
@@ -1384,15 +1401,12 @@
if (request_irq(lcd->irq, oled_det_int, IRQF_TRIGGER_FALLING, "vgh_toggle", 0)) {
pr_err("failed to reqeust irq. %d\n", lcd->irq);
ret = -EINVAL;
goto out_free_backlight;
}
- } else {
- lcd->connected = 0;
- dev_info(&lcd->ld->dev, "panel is not connected\n");
}
return 0;
out_free_backlight:
lcd_device_unregister(lcd->ld);
Code:
--- drivers/video/samsung/s5p-dsim.c 2011-10-20 02:58:50.000000000
+++ drivers/video/samsung/s5p-dsim.c 2011-10-25 17:58:10.000000000
@@ -115,13 +115,13 @@
#define MIPI_CMD_GENERIC_RD_2 0x24
#define MIPI_CMD_DSI_RD_0 0x06
#define MIPI_CMD_DSI_SET_PKT_SZ 0x37
-#define MIPI_RX_TIMEOUT HZ
+#define MIPI_RX_TIMEOUT msecs_to_jiffies(250)
#define DSMI_RX_FIFO_READ_DONE 0x30800002
#define DSIM_MAX_RX_FIFO 20
#define S5P_DSIM_INT_SFR_FIFO_EMPTY 29
#define S5P_DSIM_INT_BTA 25
#define S5P_DSIM_INT_MSK_FRAME_DONE 24
@@ -358,13 +358,13 @@
}
rxhd = readl(reg_base + S5P_DSIM_RXFIFO);
printk("rxhd : %x\n", rxhd);
if ((u8)(rxhd & 0xff) != response) {
printk(KERN_ERR "[DSIM:ERROR]:%s wrong response rxhd : %x, response:%x\n"
- ,__func__, rxhd, response);
+ , __func__, rxhd, response);
goto clear_rx_fifo;
}
// for short packet
if (count <= 2) {
for (i = 0; i < count; i++)
buf[i] = (rxhd >> (8+(i*8))) & 0xff;
@@ -379,21 +379,21 @@
goto clear_rx_fifo;
}
for (i = 0; i < rxsize>>2; i++) {
temp = readl(reg_base + S5P_DSIM_RXFIFO);
printk("pkt : %08x\n", temp);
- for(j=0; j < 4; j++) {
+ for (j = 0; j < 4; j++) {
buf[(i*4)+j] = (u8)(temp>>(j*8))&0xff;
//printk("Value : %02x\n",(temp>>(j*8))&0xff);
}
}
if (rxsize % 4) {
temp = readl(reg_base + S5P_DSIM_RXFIFO);
printk("pkt-l : %08x\n", temp);
- for(j=0; j < rxsize%4; j++) {
+ for (j = 0; j < rxsize%4; j++) {
buf[(i*4)+j] = (u8)(temp>>(j*8))&0xff;
//printk("Value : %02x\n",(temp>>(j*8))&0xff);
}
}
}
@@ -1089,30 +1089,30 @@
writel(int_stat, dsim.reg_base + S5P_DSIM_INTMSK);
}
int s5p_dsim_fifo_clear(void)
{
- int dsim_count=0,ret;
+ int dsim_count = 0, ret;
writel(SwRstRelease, dsim.reg_base + S5P_DSIM_INTSRC);
-
+
writel(DSIM_FUNCRST, dsim.reg_base + S5P_DSIM_SWRST);
- do{
- if(++dsim_count>90000){
- printk("dsim fifo clear fail re_try dsim resume\n");
- ret=0;
+ do {
+ if (++dsim_count > 90000) {
+ printk("dsim fifo clear fail re_try dsim resume\n");
+ ret = 0;
break;
- }
-
- if(readl(dsim.reg_base + S5P_DSIM_INTSRC) & SwRstRelease){
- s5p_dsim_interrupt_mask_set();
- ret=1;
+ }
+
+ if (readl(dsim.reg_base + S5P_DSIM_INTSRC) & SwRstRelease) {
+ s5p_dsim_interrupt_mask_set();
+ ret = 1;
break;
}
- }while(1);
+ } while (1);
return ret;
}
#ifdef CONFIG_HAS_EARLYSUSPEND
void s5p_dsim_early_suspend(void)
@@ -1140,24 +1140,24 @@
if (dsim.mipi_drv->suspend)
dsim.mipi_drv->suspend(dsim.dev, state);
if (dsim.mipi_ddi_pd->lcd_power_on)
dsim.mipi_ddi_pd->lcd_power_on(dsim.dev, 0);
-
+
s5p_dsim_enable_hs_clock(dsim.reg_base, 0);
s5p_dsim_set_clock(dsim.reg_base, dsim.dsim_info->e_byte_clk, 0);
-
+
writel(0xffff, dsim.reg_base + S5P_DSIM_CLKCTRL);
writel(0x0, dsim.reg_base + S5P_DSIM_PLLCTRL);
writel(0x0, dsim.reg_base + S5P_DSIM_PLLTMR);
writel(0x0, dsim.reg_base + S5P_DSIM_PHYACCHR);
- writel(0x0, dsim.reg_base + S5P_DSIM_PHYACCHR1);
+ writel(0x0, dsim.reg_base + S5P_DSIM_PHYACCHR1);
writel(0x1, dsim.reg_base + S5P_DSIM_SWRST);
-
+
clk_disable(dsim.clock);
#if 0
if (dsim.pd->mipi_power)
dsim.pd->mipi_power(0);
else
Code:
--- drivers/video/samsung/s6e8aa0_param.h 2011-10-20 02:58:50.000000000
+++ drivers/video/samsung/s6e8aa0_param.h 2011-10-25 17:58:10.000000000
@@ -66,13 +66,14 @@
static const unsigned char SEQ_APPLY_LEVEL_2_KEY[] = {
0xFC,
0x5A, 0x5A
};
static const unsigned char SEQ_SLEEP_OUT[] = {
- 0x11
+ 0x11,
+ 0x00,0x00
};
static const unsigned char SEQ_PANEL_CONDITION_SET[] = {
0xF8,
0x25, 0x34, 0x00, 0x00, 0x00, 0x95, 0x00, 0x3C, 0x7D, 0x08,
0x27, 0x00, 0x00, 0x10, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00,
@@ -83,13 +84,14 @@
static const unsigned char SEQ_DISPLAY_CONDITION_SET[] = {
0xF2,
0x80, 0x03, 0x0D
};
static const unsigned char SEQ_GAMMA_UPDATE[] = {
- 0xF7, 0x03
+ 0xF7, 0x03,
+ 0x00
};
static const unsigned char SEQ_ETC_SOURCE_CONTROL[] = {
0xF6,
0x00, 0x02, 0x00
};
@@ -116,30 +118,35 @@
0x14, 0x40, 0x0C, 0xCB, 0xCE,
0x6E, 0xC4, 0x0F, 0x40, 0x41,
0xD9, 0x00, 0x00, 0x00
};
static const unsigned char SEQ_DISPLAY_ON[] = {
- 0x29
+ 0x29,
+ 0x00,0x00
};
static const unsigned char SEQ_DISPLAY_OFF[] = {
- 0x28
+ 0x28,
+ 0x00,0x00
};
static const unsigned char SEQ_STANDBY_ON[] = {
- 0x01
+ 0x01,
+ 0x00,0x00
};
static const unsigned char SEQ_ACL_ON[] = {
0xC0, 0x01,
+ 0x00
};
static const unsigned char SEQ_ACL_OFF[] = {
0xC0, 0x00,
+ 0x00
};
static const unsigned char SEQ_ACL_CUTOFF_20[] = {
0xC1,
0x47, 0x53, 0x13, 0x53, 0x00,
0x00, 0x03, 0x1F, 0x00, 0x00,
and they changed to codesourcery for toolchain
+CROSS_COMPILE ?= /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi-
Not a massive amount of differences, the screen driver changes looks most interesting to me.
fards said:
and they changed to codesourcery for toolchain
+CROSS_COMPILE ?= /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi-
Not a massive amount of differences, the screen driver changes looks most interesting to me.
Click to expand...
Click to collapse
Is there a new kernel source?
Sent from my GT-I9100
yes, kj6 is up,
the diffs are between kj4 and that kj6
to show the file differences (there's also some docs changes but they aren't really needed)
fards said:
yes, kj6 is up,
the diffs are between kj4 and that kj6
to show the file differences (there's also some docs changes but they aren't really needed)
Click to expand...
Click to collapse
Where did you get the kernel source?
https://opensource.samsung.com/index.jsp
search for N7000
I presume the kkx build will be there under the other device code.
fards said:
https://opensource.samsung.com/index.jsp
search for N7000
I presume the kkx build will be there under the other device code.
Click to expand...
Click to collapse
LOL you have the Hong Kong version source code xD
netchip said:
LOL you have the Hong Kong version source code xD
Click to expand...
Click to collapse
kj6 as I said...
to compare against kj4 as 6 is supposed to bring bugfixes..
fards said:
Not a massive amount of differences, the screen driver changes looks most interesting to me.
Click to expand...
Click to collapse
Maybe that diff solves my screen issue.
Just to explain, sometimes my screen does not wake up even if the phone is still running (long pressing the on/off button makes the phone vibrate which means that it is still working) and when I hard reboot it (8 seconds long on/off button press), it restarts and in the battery usage I can see that the phone has been awake for a long time instead of having been idle (when it happens, it is generally during the night).
As I am facing it globally (with both European stock and Hong Kong ROMs), I hope this kernel change corrects it.
The_Steph said:
Maybe that diff solves my screen issue.
Just to explain, sometimes my screen does not wake up even if the phone is still running (long pressing the on/off button makes the phone vibrate which means that it is still working) and when I hard reboot it (8 seconds long on/off button press), it restarts and in the battery usage I can see that the phone has been awake for a long time instead of having been idle (when it happens, it is generally during the night).
As I am facing it globally (with both European stock and Hong Kong ROMs), I hope this kernel change corrects it.
Click to expand...
Click to collapse
I've seen the same thing a couple of times. Still haven't tested the KJ6 kernel to see the effect of those patches yet.
Actually thats spurred me onto testing the KJ6.. Initialtesting suggests Screen powers back up Much quicker from standby
KJ6, where did you get it?
Edit: I have Baseband version N7000XXKJ6 but Kernel N7000ZSKK1. Is is this version you are talking about?
The_Steph said:
KJ6, where did you get it?
Edit: I have Baseband version N7000XXKJ6 but Kernel N7000ZSKK1. Is is this version you are talking about?
Click to expand...
Click to collapse
no there's threads with the kj6 kernel, including the CF root thread.
I've just built kernel with the patches, working well so far.
Basically, what you did is you installed KJ6 kernel, rooted it and install the kernel you built?
If yes, do you mind, allowing me to download the kernel you built in order to use it?
Hi All,
As luckily Gen9 are very similar to Gen8, here are Gen9 AES/MPK keys if anyone wants to unpack Gen9 firmware:
Code:
static unsigned char G9A_AES[] = {
0x35,0x22,0x9A,0x0F,0xCA,0xA4,0xAC,0x22,
0xC6,0x1B,0x73,0x4E,0x4F,0x57,0xBF,0xB0
};
static unsigned char G9A_BOOTLOADER[] = {
0xFF, 0xDC, 0x6A, 0xB2, 0xF9, 0xBA, 0x42, 0xC2, 0x00, 0x58,
0xFD, 0xE0, 0x88, 0xE8, 0x2B, 0x4C, 0xFD, 0xAA, 0x22, 0x90,
0xF0, 0x4C, 0xD8, 0x8C, 0x5E, 0x67, 0xED, 0xAD, 0xFA, 0x5A,
0x7B, 0x93, 0x90, 0x11, 0x2A, 0x8D, 0x0F, 0x98, 0xD6, 0x24,
0x37, 0xF7, 0x0B, 0xDC, 0x83, 0x67, 0x0A, 0xF4, 0x0E, 0x7D,
0xBB, 0xA9, 0x28, 0xFF, 0x7C, 0x56, 0xFB, 0x05, 0x39, 0x27,
0xD2, 0xBA, 0x96, 0x0B, 0x8B, 0xF8, 0x58, 0x80, 0xC8, 0xAD,
0xD5, 0xF9, 0xDF, 0x93, 0xBE, 0x46, 0x2F, 0x04, 0xA9, 0x98,
0xF6, 0xE9, 0x61, 0xE9, 0xBC, 0x72, 0x27, 0xC7, 0xEA, 0xF4,
0x1A, 0xCF, 0xED, 0x25, 0xEC, 0x93, 0xDB, 0x6F, 0x42, 0x8E,
0x93, 0xC4, 0x12, 0x64, 0xBF, 0x40, 0xB7, 0xEA, 0xBE, 0xBC,
0xE9, 0xE2, 0xE8, 0xD2, 0x29, 0xFB, 0xFD, 0x4E, 0x2C, 0x39,
0x63, 0x1E, 0x60, 0x4B, 0xF2, 0xC7, 0x49, 0xEC, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xBB,
0x42, 0xD2
};
static unsigned char G9A_RELMPK[] = {
0x5D, 0x68, 0x13, 0xDB, 0x93, 0xDE, 0x2E, 0x1F, 0xEB, 0xD5,
0xD2, 0x80, 0x57, 0x31, 0x4D, 0x60, 0xF6, 0x14, 0x15, 0xA0,
0xAA, 0x4D, 0x6C, 0x2A, 0x24, 0xA1, 0x39, 0xB7, 0x99, 0x22,
0xF6, 0x8E, 0x3C, 0x70, 0x91, 0x31, 0xD2, 0x01, 0xAE, 0xBE,
0xFA, 0x71, 0x17, 0xF5, 0xDF, 0xF8, 0xD8, 0xCD, 0x62, 0x87,
0xF8, 0x53, 0x1A, 0x5A, 0x5C, 0x37, 0x6C, 0xF0, 0xAD, 0xBA,
0x20, 0xBE, 0xC7, 0x37, 0x0E, 0xF4, 0x98, 0xBE, 0x80, 0x6F,
0x10, 0x54, 0xE8, 0xB9, 0x4A, 0x39, 0x86, 0x77, 0xC6, 0x4C,
0x7C, 0xFC, 0xC5, 0xC2, 0x61, 0xE9, 0xAB, 0x81, 0xB5, 0xF3,
0x2A, 0x30, 0x87, 0xEF, 0xB7, 0x3A, 0xD5, 0xD9, 0x11, 0x60,
0x7E, 0xC8, 0xDD, 0x28, 0x9A, 0xB9, 0xF3, 0x97, 0x53, 0x97,
0xD5, 0x26, 0xE3, 0x67, 0x09, 0xF3, 0xCC, 0x3D, 0x32, 0xDF,
0x02, 0x66, 0xAA, 0xB1, 0x1C, 0x75, 0x13, 0xAF, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x18,
0xC3, 0x2A
};
static unsigned char G9A_DEVMPK[] = {
0xD3, 0x07, 0xA8, 0xC3, 0xF1, 0x02, 0x28, 0xB9, 0x9A, 0x37,
0xEF, 0x06, 0xF1, 0x75, 0x93, 0xA3, 0x73, 0xBA, 0x2A, 0x60,
0x25, 0x30, 0x33, 0x0D, 0x71, 0xAE, 0x4B, 0xF0, 0x07, 0xB0,
0xD8, 0x35, 0xBF, 0x06, 0xB0, 0x16, 0x9C, 0x6B, 0x1A, 0x9E,
0xC1, 0x80, 0xE7, 0xDA, 0xCC, 0x64, 0x61, 0x91, 0xF6, 0x1C,
0xD8, 0xFE, 0x10, 0x70, 0x9E, 0x26, 0x60, 0xFF, 0x4E, 0x26,
0xB8, 0x96, 0xE7, 0xB6, 0xDC, 0x01, 0x19, 0xE9, 0x43, 0xDB,
0xC7, 0xB7, 0xF8, 0xBC, 0x38, 0xFB, 0x9C, 0x6F, 0xDE, 0x1C,
0xF1, 0xA0, 0x68, 0xD7, 0x1F, 0x99, 0x4E, 0xBB, 0xC7, 0xCF,
0x17, 0x63, 0xA5, 0xBC, 0x41, 0xA7, 0x23, 0xCA, 0x5E, 0xF4,
0xF7, 0xE6, 0x2F, 0x0D, 0x0F, 0x36, 0x9F, 0x51, 0x56, 0x1E,
0x30, 0xD5, 0xB5, 0x7C, 0x8C, 0x1D, 0x1D, 0xCC, 0x5F, 0xBF,
0x12, 0xC8, 0xED, 0x4D, 0x28, 0xB2, 0x2D, 0xCC, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x7E,
0x2F, 0x24
};
static unsigned char G9A_PLUGMPK[] = {
0x37, 0xF9, 0x07, 0xB7, 0x38, 0xDD, 0xB1, 0x0A, 0x65, 0xFE,
0x67, 0xC8, 0x64, 0xC5, 0x14, 0xE4, 0xF6, 0xAF, 0x8D, 0xD8,
0xF3, 0x31, 0x37, 0x59, 0xEB, 0xEC, 0x23, 0x44, 0x84, 0xDD,
0x8B, 0x68, 0xD6, 0xEC, 0x5D, 0xDD, 0x84, 0x3B, 0xE4, 0x67,
0x45, 0x78, 0x56, 0x0F, 0x71, 0x91, 0xFB, 0xA2, 0x05, 0x54,
0x8C, 0xB2, 0xB9, 0x61, 0x6C, 0xE0, 0x91, 0x41, 0xB0, 0x02,
0xD5, 0x66, 0xA6, 0xC7, 0x81, 0x0E, 0x20, 0xBB, 0xD5, 0x85,
0x43, 0xB2, 0x7E, 0x01, 0xC2, 0xC4, 0x28, 0x13, 0x20, 0xC3,
0x75, 0xDF, 0xCB, 0x64, 0x66, 0x1E, 0xB9, 0x43, 0x92, 0xFD,
0x12, 0x99, 0x31, 0xA3, 0x55, 0xBC, 0x25, 0x9F, 0x09, 0x46,
0xE1, 0x1D, 0xD3, 0x5B, 0x12, 0xF7, 0xCB, 0x2C, 0x94, 0x05,
0x57, 0x4D, 0xCA, 0x6B, 0xF4, 0xD2, 0xD8, 0x49, 0x0C, 0x71,
0x39, 0x0E, 0x6D, 0xCC, 0xC9, 0x7E, 0x04, 0xDA, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x97,
0x29, 0x69
};
static unsigned char G9A_HDDMPK[] = {
0x9D, 0x4A, 0x3A, 0xFF, 0x34, 0xAC, 0x47, 0x69, 0xEF, 0xB0,
0xD9, 0xE6, 0x9C, 0xBF, 0x53, 0xFD, 0x35, 0x4A, 0xB8, 0x7B,
0xF5, 0xE4, 0x48, 0x2A, 0x29, 0x62, 0xB5, 0x01, 0x9A, 0xF7,
0x8D, 0xF8, 0xE3, 0x02, 0xDB, 0xEC, 0xAC, 0x45, 0xFA, 0x0D,
0x03, 0xEC, 0x10, 0x39, 0xC9, 0x21, 0x51, 0x77, 0x95, 0x59,
0x9B, 0x82, 0xBF, 0x85, 0x7D, 0x59, 0xFA, 0xD1, 0xD8, 0x8A,
0x91, 0x4E, 0x01, 0xFE, 0x5E, 0xEE, 0x4D, 0x5B, 0xB8, 0x66,
0xD6, 0x65, 0x92, 0x82, 0x3B, 0xFB, 0x0A, 0x3C, 0x1C, 0xF2,
0xE4, 0x99, 0xB5, 0x57, 0xF8, 0x3F, 0x7B, 0x6C, 0x35, 0x1E,
0x92, 0x07, 0x72, 0xE5, 0x73, 0x52, 0x70, 0x62, 0x5E, 0x17,
0x1B, 0x5D, 0x07, 0x72, 0x21, 0x3E, 0xD8, 0x37, 0xC5, 0xC5,
0x4E, 0x36, 0xCE, 0x16, 0x4E, 0x50, 0xC9, 0xE8, 0x4B, 0x99,
0x04, 0x89, 0x91, 0x5F, 0x38, 0x82, 0xCD, 0xAB, 0x01, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xB1,
0x4E, 0x10
};
I tested them on last firmware, it unpacks properly.
Have fun!
sry but how to work with this?
for the root !
@brunsbanjo:
Wenn du nicht weist wofür es ist, brauchst du es auch nicht ;-)
If you don't what to use it for, you don't need it.
As it states I am trying to add Thundeplug to my hotplug. Heres the code.
/* Copyright (c) 2015, Varun Chitre <[email protected]>
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* A simple hotplugging driver.
* Compatible from dual core CPUs to Octa Core CPUs
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/hrtimer.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/input.h>
#include <linux/slab.h>
#include <linux/cpu.h>
#include <linux/lcd_notify.h>
#include <linux/cpufreq.h>
#include "thunderplug.h"
#define DEBUG 0
#define THUNDERPLUG "thunderplug"
#define DRIVER_VERSION 5
#define DRIVER_SUBVER 0
#define DEFAULT_CPU_LOAD_THRESHOLD (65)
#define MIN_CPU_LOAD_THRESHOLD (10)
#define HOTPLUG_ENABLED (0)
#define DEFAULT_HOTPLUG_STYLE HOTPLUG_SCHED
#define DEFAULT_SCHED_MODE BALANCED
#define DEF_SAMPLING_MS (500)
#define MIN_SAMLING_MS (50)
#define MIN_CPU_UP_TIME (750)
#define TOUCH_BOOST_ENABLED (0)
static bool isSuspended = false;
struct notifier_block lcd_worker;
static int suspend_cpu_num = 2, resume_cpu_num = (NR_CPUS -1);
static int endurance_level = 0;
static int core_limit = NR_CPUS;
static int now[8], last_time[8];
static int sampling_time = DEF_SAMPLING_MS;
static int load_threshold = DEFAULT_CPU_LOAD_THRESHOLD;
static int stop_boost = 0;
struct cpufreq_policy old_policy[NR_CPUS];
#ifdef CONFIG_SCHED_HMP
static int tplug_hp_style = DEFAULT_HOTPLUG_STYLE;
#else
static int tplug_hp_enabled = HOTPLUG_ENABLED;
#endif
static int tplug_sched_mode = DEFAULT_SCHED_MODE;
static int touch_boost_enabled = TOUCH_BOOST_ENABLED;
static struct workqueue_struct *tplug_wq;
static struct delayed_work tplug_work;
static struct workqueue_struct *tplug_boost_wq;
static struct delayed_work tplug_boost;
static struct workqueue_struct *tplug_resume_wq;
static struct delayed_work tplug_resume_work;
static unsigned int last_load[8] = { 0 };
struct cpu_load_data {
u64 prev_cpu_idle;
u64 prev_cpu_wall;
unsigned int avg_load_maxfreq;
unsigned int cur_load_maxfreq;
unsigned int samples;
unsigned int window_size;
cpumask_var_t related_cpus;
};
static DEFINE_PER_CPU(struct cpu_load_data, cpuload);
/* Two Endurance Levels for Octa Cores,
* Two for Quad Cores and
* One for Dual
*/
static inline void offline_cpus(void)
{
unsigned int cpu;
switch(endurance_level) {
case 1:
if(suspend_cpu_num > NR_CPUS / 2 )
suspend_cpu_num = NR_CPUS / 2;
break;
case 2:
if( NR_CPUS >=4 && suspend_cpu_num > NR_CPUS / 4)
suspend_cpu_num = NR_CPUS / 4;
break;
default:
break;
}
for(cpu = NR_CPUS - 1; cpu > (suspend_cpu_num - 1); cpu--) {
if (cpu_online(cpu))
cpu_down(cpu);
}
pr_info("%s: %d cpus were offlined\n", THUNDERPLUG, (NR_CPUS - suspend_cpu_num));
}
static inline void cpus_online_all(void)
{
unsigned int cpu;
switch(endurance_level) {
case 1:
if(resume_cpu_num > (NR_CPUS / 2) - 1 || resume_cpu_num == 1)
resume_cpu_num = ((NR_CPUS / 2) - 1);
break;
case 2:
if( NR_CPUS >= 4 && resume_cpu_num > ((NR_CPUS / 4) - 1))
resume_cpu_num = ((NR_CPUS / 4) - 1);
break;
case 0:
resume_cpu_num = (NR_CPUS - 1);
break;
default:
break;
}
if(DEBUG)
pr_info("%s: resume_cpu_num = %d\n",THUNDERPLUG, resume_cpu_num);
for (cpu = 1; cpu <= resume_cpu_num; cpu++) {
if (cpu_is_offline(cpu))
cpu_up(cpu);
}
pr_info("%s: all cpus were onlined\n", THUNDERPLUG);
}
static void __ref tplug_boost_work_fn(struct work_struct *work)
{
struct cpufreq_policy policy;
int cpu, ret;
for(cpu = 1; cpu < NR_CPUS; cpu++) {
#ifdef CONFIG_SCHED_HMP
if(tplug_hp_style == 1)
#else
if(tplug_hp_enabled == 1)
#endif
if(cpu_is_offline(cpu))
cpu_up(cpu);
ret = cpufreq_get_policy(&policy, cpu);
if (ret)
continue;
old_policy[cpu] = policy;
policy.min = policy.max;
cpufreq_update_policy(cpu);
}
if(stop_boost == 0)
queue_delayed_work_on(0, tplug_boost_wq, &tplug_boost,
msecs_to_jiffies(10));
}
static void tplug_input_event(struct input_handle *handle, unsigned int type,
unsigned int code, int value)
{
if (type == EV_KEY && code == BTN_TOUCH) {
if(DEBUG)
pr_info("%s : type = %d, code = %d, value = %d\n", THUNDERPLUG, type, code, value);
if(value == 0) {
stop_boost = 1;
if(DEBUG)
pr_info("%s: stopping boost\n", THUNDERPLUG);
}
else {
stop_boost = 0;
if(DEBUG)
pr_info("%s: starting boost\n", THUNDERPLUG);
}
}
#ifdef CONFIG_SCHED_HMP
if ((type == EV_KEY) && (code == BTN_TOUCH) && (value == 1)
&& touch_boost_enabled == 1)
#else
if ((type == EV_KEY) && (code == BTN_TOUCH) && (value == 1)
&& touch_boost_enabled == 1)
#endif
{
if(DEBUG)
pr_info("%s : touch boost\n", THUNDERPLUG);
queue_delayed_work_on(0, tplug_boost_wq, &tplug_boost,
msecs_to_jiffies(0));
}
}
static int tplug_input_connect(struct input_handler *handler,
struct input_dev *dev, const struct input_device_id *id)
{
struct input_handle *handle;
int error;
handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
if (!handle)
return -ENOMEM;
handle->dev = dev;
handle->handler = handler;
handle->name = "cpufreq";
error = input_register_handle(handle);
if (error)
goto err2;
error = input_open_device(handle);
if (error)
goto err1;
return 0;
err1:
input_unregister_handle(handle);
err2:
kfree(handle);
return error;
}
static void tplug_input_disconnect(struct input_handle *handle)
{
input_close_device(handle);
input_unregister_handle(handle);
kfree(handle);
}
static const struct input_device_id tplug_ids[] = {
{ .driver_info = 1 },
{ },
};
static struct input_handler tplug_input_handler = {
.event = tplug_input_event,
.connect = tplug_input_connect,
.disconnect = tplug_input_disconnect,
.name = "tplug_handler",
.id_table = tplug_ids,
};
static ssize_t thunderplug_suspend_cpus_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", suspend_cpu_num);
}
static ssize_t thunderplug_suspend_cpus_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
if(val < 1 || val > NR_CPUS)
pr_info("%s: suspend cpus off-limits\n", THUNDERPLUG);
else
suspend_cpu_num = val;
return count;
}
static ssize_t thunderplug_endurance_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", endurance_level);
}
static ssize_t __ref thunderplug_endurance_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
if(tplug_hp_style == 1) {
switch(val) {
case 0:
case 1:
case 2:
if(endurance_level!=val &&
!(endurance_level > 1 && NR_CPUS < 4)) {
endurance_level = val;
offline_cpus();
cpus_online_all();
}
break;
default:
pr_info("%s: invalid endurance level\n", THUNDERPLUG);
break;
}
}
else
pr_info("%s: per-core hotplug style is disabled, ignoring endurance mode values\n", THUNDERPLUG);
return count;
}
static ssize_t thunderplug_sampling_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", sampling_time);
}
static ssize_t __ref thunderplug_sampling_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
if(val > MIN_SAMLING_MS)
sampling_time = val;
return count;
}
static ssize_t thunderplug_tb_enabled_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", touch_boost_enabled);
}
static ssize_t __ref thunderplug_tb_enabled_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
switch(val)
{
case 0:
case 1:
touch_boost_enabled = val;
break;
default:
pr_info("%s : invalid choice\n", THUNDERPLUG);
break;
}
return count;
}
static ssize_t thunderplug_load_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", load_threshold);
}
static ssize_t __ref thunderplug_load_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
if(val > 10)
load_threshold = val;
return count;
}
static unsigned int get_curr_load(unsigned int cpu)
{
int ret;
unsigned int idle_time, wall_time;
unsigned int cur_load;
u64 cur_wall_time, cur_idle_time;
struct cpu_load_data *pcpu = &per_cpu(cpuload, cpu);
struct cpufreq_policy policy;
ret = cpufreq_get_policy(&policy, cpu);
if (ret)
return -EINVAL;
cur_idle_time = get_cpu_idle_time(cpu, &cur_wall_time, 0);
wall_time = (unsigned int) (cur_wall_time - pcpu->prev_cpu_wall);
pcpu->prev_cpu_wall = cur_wall_time;
idle_time = (unsigned int) (cur_idle_time - pcpu->prev_cpu_idle);
pcpu->prev_cpu_idle = cur_idle_time;
if (unlikely(!wall_time || wall_time < idle_time))
return 0;
cur_load = 100 * (wall_time - idle_time) / wall_time;
return cur_load;
}
static void thunderplug_suspend(void)
{
offline_cpus();
pr_info("%s: suspend\n", THUNDERPLUG);
}
static void __ref thunderplug_resume(void)
{
cpus_online_all();
pr_info("%s: resume\n", THUNDERPLUG);
}
static void __cpuinit tplug_resume_work_fn(struct work_struct *work)
{
thunderplug_resume();
}
static void __cpuinit tplug_work_fn(struct work_struct *work)
{
int i;
unsigned int load[8], avg_load[8];
switch(endurance_level)
{
case 0:
core_limit = NR_CPUS;
break;
case 1:
core_limit = NR_CPUS / 2;
break;
case 2:
core_limit = NR_CPUS / 4;
break;
default:
core_limit = NR_CPUS;
break;
}
for(i = 0 ; i < core_limit; i++)
{
if(cpu_online(i))
load = get_curr_load(i);
else
load = 0;
avg_load = ((int) load + (int) last_load) / 2;
last_load = load;
}
for(i = 0 ; i < core_limit; i++)
{
if(cpu_online(i) && avg_load > load_threshold && cpu_is_offline(i+1))
{
if(DEBUG)
pr_info("%s : bringing back cpu%d\n", THUNDERPLUG,i);
if(!((i+1) > 7)) {
last_time[i+1] = ktime_to_ms(ktime_get());
cpu_up(i+1);
}
}
else if(cpu_online(i) && avg_load < load_threshold && cpu_online(i+1))
{
if(DEBUG)
pr_info("%s : offlining cpu%d\n", THUNDERPLUG,i);
if(!(i+1)==0) {
now[i+1] = ktime_to_ms(ktime_get());
if((now[i+1] - last_time[i+1]) > MIN_CPU_UP_TIME)
cpu_down(i+1);
}
}
}
#ifdef CONFIG_SCHED_HMP
if(tplug_hp_style == 1 && !isSuspended)
#else
if(tplug_hp_enabled != 0 && !isSuspended)
#endif
queue_delayed_work_on(0, tplug_wq, &tplug_work,
msecs_to_jiffies(sampling_time));
else {
if(!isSuspended)
cpus_online_all();
else
thunderplug_suspend();
}
}
static int lcd_notifier_callback(struct notifier_block *nb,
unsigned long event, void *data)
{
switch (event) {
case LCD_EVENT_ON_START:
isSuspended = false;
#ifdef CONFIG_SCHED_HMP
if(tplug_hp_style==1)
#else
if(tplug_hp_enabled)
#endif
queue_delayed_work_on(0, tplug_wq, &tplug_work,
msecs_to_jiffies(sampling_time));
else
queue_delayed_work_on(0, tplug_resume_wq, &tplug_resume_work,
msecs_to_jiffies(10));
pr_info("thunderplug : resume called\n");
break;
case LCD_EVENT_ON_END:
break;
case LCD_EVENT_OFF_START:
break;
case LCD_EVENT_OFF_END:
isSuspended = true;
pr_info("thunderplug : suspend called\n");
break;
default:
break;
}
return 0;
}
/* Thunderplug load balancer */
#ifdef CONFIG_SCHED_HMP
static void set_sched_profile(int mode) {
switch(mode) {
case 1:
/* Balanced */
sched_set_boost(DISABLED);
break;
case 2:
/* Turbo */
sched_set_boost(ENABLED);
break;
default:
pr_info("%s: Invalid mode\n", THUNDERPLUG);
break;
}
}
static ssize_t thunderplug_sched_mode_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", tplug_sched_mode);
}
static ssize_t __ref thunderplug_sched_mode_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
set_sched_profile(val);
tplug_sched_mode = val;
return count;
}
static ssize_t thunderplug_hp_style_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", tplug_hp_style);
}
static ssize_t __ref thunderplug_hp_style_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val, last_val;
sscanf(buf, "%d", &val);
last_val = tplug_hp_style;
switch(val)
{
case HOTPLUG_PERCORE:
case HOTPLUG_SCHED:
tplug_hp_style = val;
break;
default:
pr_info("%s : invalid choice\n", THUNDERPLUG);
break;
}
if(tplug_hp_style == HOTPLUG_PERCORE && tplug_hp_style != last_val) {
pr_info("%s: Switching to Per-core hotplug model\n", THUNDERPLUG);
sched_set_boost(DISABLED);
queue_delayed_work_on(0, tplug_wq, &tplug_work,
msecs_to_jiffies(sampling_time));
}
else if(tplug_hp_style==2) {
pr_info("%s: Switching to sched based hotplug model\n", THUNDERPLUG);
set_sched_profile(tplug_sched_mode);
}
return count;
}
static struct kobj_attribute thunderplug_hp_style_attribute =
__ATTR(hotplug_style,
0666,
thunderplug_hp_style_show, thunderplug_hp_style_store);
static struct kobj_attribute thunderplug_mode_attribute =
__ATTR(sched_mode,
0666,
thunderplug_sched_mode_show, thunderplug_sched_mode_store);
#else
static ssize_t thunderplug_hp_enabled_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "%d", tplug_hp_enabled);
}
static ssize_t __ref thunderplug_hp_enabled_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count)
{
int val;
sscanf(buf, "%d", &val);
int last_val = tplug_hp_enabled;
switch(val)
{
case 0:
case 1:
tplug_hp_enabled = val;
break;
default:
pr_info("%s : invalid choice\n", THUNDERPLUG);
break;
}
if(tplug_hp_enabled == 1 && tplug_hp_enabled != last_val)
queue_delayed_work_on(0, tplug_wq, &tplug_work,
msecs_to_jiffies(sampling_time));
return count;
}
static struct kobj_attribute thunderplug_hp_enabled_attribute =
__ATTR(hotplug_enabled,
0666,
thunderplug_hp_enabled_show, thunderplug_hp_enabled_store);
#endif
static ssize_t thunderplug_ver_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
return sprintf(buf, "ThunderPlug %u.%u", DRIVER_VERSION, DRIVER_SUBVER);
}
static struct kobj_attribute thunderplug_ver_attribute =
__ATTR(version,
0444,
thunderplug_ver_show, NULL);
static struct kobj_attribute thunderplug_suspend_cpus_attribute =
__ATTR(suspend_cpus,
0666,
thunderplug_suspend_cpus_show, thunderplug_suspend_cpus_store);
static struct kobj_attribute thunderplug_endurance_attribute =
__ATTR(endurance_level,
0666,
thunderplug_endurance_show, thunderplug_endurance_store);
static struct kobj_attribute thunderplug_sampling_attribute =
__ATTR(sampling_rate,
0666,
thunderplug_sampling_show, thunderplug_sampling_store);
static struct kobj_attribute thunderplug_load_attribute =
__ATTR(load_threshold,
0666,
thunderplug_load_show, thunderplug_load_store);
static struct kobj_attribute thunderplug_tb_enabled_attribute =
__ATTR(touch_boost,
0666,
thunderplug_tb_enabled_show, thunderplug_tb_enabled_store);
static struct attribute *thunderplug_attrs[] =
{
&thunderplug_ver_attribute.attr,
&thunderplug_suspend_cpus_attribute.attr,
&thunderplug_endurance_attribute.attr,
&thunderplug_sampling_attribute.attr,
&thunderplug_load_attribute.attr,
#ifdef CONFIG_SCHED_HMP
&thunderplug_mode_attribute.attr,
&thunderplug_hp_style_attribute.attr,
#else
&thunderplug_hp_enabled_attribute.attr,
#endif
&thunderplug_tb_enabled_attribute.attr,
NULL,
};
static struct attribute_group thunderplug_attr_group =
{
.attrs = thunderplug_attrs,
};
static struct kobject *thunderplug_kobj;
static int __init thunderplug_init(void)
{
int ret = 0;
int sysfs_result;
printk(KERN_DEBUG "[%s]\n",__func__);
thunderplug_kobj = kobject_create_and_add("thunderplug", kernel_kobj);
if (!thunderplug_kobj) {
pr_err("%s Interface create failed!\n",
__FUNCTION__);
return -ENOMEM;
}
sysfs_result = sysfs_create_group(thunderplug_kobj, &thunderplug_attr_group);
if (sysfs_result) {
pr_info("%s sysfs create failed!\n", __FUNCTION__);
kobject_put(thunderplug_kobj);
}
lcd_worker.notifier_call = lcd_notifier_callback;
lcd_register_client(&lcd_worker);
pr_info("%s : registering input boost", THUNDERPLUG);
ret = input_register_handler(&tplug_input_handler);
if (ret) {
pr_err("%s: Failed to register input handler: %d\n",
THUNDERPLUG, ret);
}
tplug_wq = alloc_workqueue("tplug",
WQ_HIGHPRI | WQ_UNBOUND, 1);
tplug_resume_wq = alloc_workqueue("tplug_resume",
WQ_HIGHPRI | WQ_UNBOUND, 1);
tplug_boost_wq = alloc_workqueue("tplug_boost",
WQ_HIGHPRI | WQ_UNBOUND, 1);
INIT_DELAYED_WORK(&tplug_work, tplug_work_fn);
INIT_DELAYED_WORK(&tplug_resume_work, tplug_resume_work_fn);
INIT_DELAYED_WORK(&tplug_boost, tplug_boost_work_fn);
queue_delayed_work_on(0, tplug_wq, &tplug_work,
msecs_to_jiffies(10));
pr_info("%s: init\n", THUNDERPLUG);
return ret;
}
MODULE_LICENSE("GPL and additional rights");
MODULE_AUTHOR("Varun Chitre <[email protected]>");
MODULE_DESCRIPTION("Hotplug driver for ARM SoCs");
late_initcall(thunderplug_init);
Here is my error.
CC arch/arm/mach-msm/thunderplug.o
arch/arm/mach-msm/thunderplug.c: In function 'thunderplug_endurance_store':
arch/arm/mach-msm/thunderplug.c:283:5: error: 'tplug_hp_style' undeclared (first use in this function)
if(tplug_hp_style == 1) {
^
arch/arm/mach-msm/thunderplug.c:283:5: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/mach-msm/thunderplug.c: In function 'thunderplug_hp_enabled_store':
arch/arm/mach-msm/thunderplug.c:598:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
error, forbidden warning: thunderplug.c:598
make[1]: *** [arch/arm/mach-msm/thunderplug.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Any help would be appreciated
http://forum.xda-developers.com/nexus-6/devs-only
So i have been playing around trying to decypt the CSC/OMC files for the note 8
i have de-compiled:
CSC.apk
OMCAgent.apk
i have found something that may be of interest in CSC.apk it looks like it's not encrypted as such, they are using byte shifting.
OMCTextDecoder.class
Code:
package com.sec.omc.decoder;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class OmcTextDecoder
{
private final int SALT_LENGTH = 256;
private final String XML_HEADER = "<?xml";
private final byte[] salts;
private final byte[] shifts;
public OmcTextDecoder()
{
byte[] arrayOfByte = new byte['?'];
arrayOfByte[0] = 65;
arrayOfByte[n] = -59;
arrayOfByte[m] = 33;
arrayOfByte[i] = -34;
arrayOfByte[4] = 107;
arrayOfByte[j] = 28;
arrayOfByte[k] = -107;
arrayOfByte[7] = 55;
arrayOfByte[8] = 78;
arrayOfByte[9] = 17;
arrayOfByte[10] = -81;
arrayOfByte[11] = k;
arrayOfByte[12] = -80;
arrayOfByte[13] = -121;
arrayOfByte[14] = -35;
arrayOfByte[15] = -23;
arrayOfByte[16] = 72;
arrayOfByte[17] = 122;
arrayOfByte[18] = -63;
arrayOfByte[19] = -43;
arrayOfByte[20] = 68;
arrayOfByte[21] = 119;
arrayOfByte[22] = -78;
arrayOfByte[23] = -111;
arrayOfByte[24] = -60;
arrayOfByte[25] = 31;
arrayOfByte[26] = 60;
arrayOfByte[27] = 57;
arrayOfByte[28] = 92;
arrayOfByte[29] = -88;
arrayOfByte[30] = -100;
arrayOfByte[31] = -69;
arrayOfByte[32] = -106;
arrayOfByte[33] = 91;
arrayOfByte[34] = 69;
arrayOfByte[35] = 93;
arrayOfByte[36] = 110;
arrayOfByte[37] = 23;
arrayOfByte[38] = 93;
arrayOfByte[39] = 53;
arrayOfByte[40] = -44;
arrayOfByte[41] = -51;
arrayOfByte[42] = 64;
arrayOfByte[43] = -80;
arrayOfByte[44] = 46;
arrayOfByte[45] = m;
arrayOfByte[46] = -4;
arrayOfByte[47] = 12;
arrayOfByte[48] = -45;
arrayOfByte[49] = 80;
arrayOfByte[50] = -44;
arrayOfByte[51] = -35;
arrayOfByte[52] = -111;
arrayOfByte[53] = -28;
arrayOfByte[54] = -66;
arrayOfByte[55] = -116;
arrayOfByte[56] = 39;
arrayOfByte[57] = m;
arrayOfByte[58] = -27;
arrayOfByte[59] = -45;
arrayOfByte[60] = -52;
arrayOfByte[61] = 125;
arrayOfByte[62] = 39;
arrayOfByte[63] = 66;
arrayOfByte[64] = -90;
arrayOfByte[65] = 63;
arrayOfByte[66] = -105;
arrayOfByte[67] = -67;
arrayOfByte[68] = 84;
arrayOfByte[69] = -57;
arrayOfByte[70] = -4;
arrayOfByte[71] = -4;
arrayOfByte[72] = 101;
arrayOfByte[73] = -90;
arrayOfByte[74] = 81;
arrayOfByte[75] = 10;
arrayOfByte[76] = -33;
arrayOfByte[77] = n;
arrayOfByte[78] = 67;
arrayOfByte[79] = -57;
arrayOfByte[80] = -71;
arrayOfByte[81] = 18;
arrayOfByte[82] = -74;
arrayOfByte[83] = 102;
arrayOfByte[84] = 96;
arrayOfByte[85] = -89;
arrayOfByte[86] = 64;
arrayOfByte[87] = -17;
arrayOfByte[88] = 54;
arrayOfByte[89] = -94;
arrayOfByte[90] = -84;
arrayOfByte[91] = -66;
arrayOfByte[92] = 14;
arrayOfByte[93] = 119;
arrayOfByte[94] = 121;
arrayOfByte[95] = m;
arrayOfByte[96] = -78;
arrayOfByte[97] = -79;
arrayOfByte[98] = 89;
arrayOfByte[99] = 63;
arrayOfByte[100] = 93;
arrayOfByte[101] = 109;
arrayOfByte[102] = -78;
arrayOfByte[103] = -51;
arrayOfByte[104] = 66;
arrayOfByte[105] = -36;
arrayOfByte[106] = 32;
arrayOfByte[107] = 86;
arrayOfByte[108] = i;
arrayOfByte[109] = -58;
arrayOfByte[110] = -15;
arrayOfByte[111] = 92;
arrayOfByte[112] = 58;
arrayOfByte[113] = m;
arrayOfByte[114] = -89;
arrayOfByte[115] = -80;
arrayOfByte[116] = -13;
arrayOfByte[117] = -1;
arrayOfByte[118] = 122;
arrayOfByte[119] = -4;
arrayOfByte[120] = 48;
arrayOfByte[121] = 63;
arrayOfByte[122] = -44;
arrayOfByte[123] = 59;
arrayOfByte[124] = 100;
arrayOfByte[125] = -42;
arrayOfByte[126] = -45;
arrayOfByte[127] = 59;
arrayOfByte['?'] = -7;
arrayOfByte['?'] = -17;
arrayOfByte['?'] = -54;
arrayOfByte['?'] = 34;
arrayOfByte['?'] = -54;
arrayOfByte['?'] = 71;
arrayOfByte['?'] = -64;
arrayOfByte['?'] = -26;
arrayOfByte['?'] = -87;
arrayOfByte['?'] = -80;
arrayOfByte['?'] = -17;
arrayOfByte['?'] = -44;
arrayOfByte['?'] = -38;
arrayOfByte['?'] = -112;
arrayOfByte['?'] = 70;
arrayOfByte['?'] = 10;
arrayOfByte['?'] = -106;
arrayOfByte['?'] = 95;
arrayOfByte['?'] = -24;
arrayOfByte['?'] = -4;
arrayOfByte['?'] = -118;
arrayOfByte['?'] = 45;
arrayOfByte['?'] = -85;
arrayOfByte['?'] = -13;
arrayOfByte['?'] = 85;
arrayOfByte['?'] = 25;
arrayOfByte['?'] = -102;
arrayOfByte['?'] = -119;
arrayOfByte['?'] = 13;
arrayOfByte['?'] = -37;
arrayOfByte['?'] = 116;
arrayOfByte['?'] = 46;
arrayOfByte['*'] = -69;
arrayOfByte['¡'] = 59;
arrayOfByte['¢'] = 42;
arrayOfByte['£'] = -90;
arrayOfByte['¤'] = -38;
arrayOfByte['¥'] = -105;
arrayOfByte['¦'] = 101;
arrayOfByte['§'] = -119;
arrayOfByte['¨'] = -36;
arrayOfByte['©'] = 97;
arrayOfByte['ª'] = -3;
arrayOfByte['«'] = -62;
arrayOfByte['¬'] = -91;
arrayOfByte['*'] = -97;
arrayOfByte['®'] = -125;
arrayOfByte['¯'] = 17;
arrayOfByte['°'] = 14;
arrayOfByte['±'] = 106;
arrayOfByte['²'] = -72;
arrayOfByte['³'] = -119;
arrayOfByte['´'] = 99;
arrayOfByte['µ'] = 111;
arrayOfByte['¶'] = 20;
arrayOfByte['·'] = 18;
arrayOfByte['¸'] = -27;
arrayOfByte['¹'] = 113;
arrayOfByte['º'] = 64;
arrayOfByte['»'] = -24;
arrayOfByte['¼'] = 74;
arrayOfByte['½'] = -60;
arrayOfByte['¾'] = -100;
arrayOfByte['¿'] = 26;
arrayOfByte['À'] = 56;
arrayOfByte['Á'] = -44;
arrayOfByte['Â'] = -70;
arrayOfByte['Ã'] = 12;
arrayOfByte['Ä'] = -51;
arrayOfByte['Å'] = -100;
arrayOfByte['Æ'] = -32;
arrayOfByte['Ç'] = -11;
arrayOfByte['È'] = 26;
arrayOfByte['É'] = 48;
arrayOfByte['Ê'] = -117;
arrayOfByte['Ë'] = 98;
arrayOfByte['Ì'] = -93;
arrayOfByte['Í'] = 51;
arrayOfByte['Î'] = -25;
arrayOfByte['Ï'] = -79;
arrayOfByte['Ð'] = -31;
arrayOfByte['Ñ'] = 97;
arrayOfByte['Ò'] = 87;
arrayOfByte['Ó'] = -105;
arrayOfByte['Ô'] = -64;
arrayOfByte['Õ'] = 7;
arrayOfByte['Ö'] = -13;
arrayOfByte['×'] = -101;
arrayOfByte['Ø'] = 33;
arrayOfByte['Ù'] = -122;
arrayOfByte['Ú'] = j;
arrayOfByte['Û'] = -104;
arrayOfByte['Ü'] = 89;
arrayOfByte['Ý'] = -44;
arrayOfByte['Þ'] = -117;
arrayOfByte['ß'] = 63;
arrayOfByte['à'] = -80;
arrayOfByte['á'] = -6;
arrayOfByte['â'] = -71;
arrayOfByte['ã'] = -110;
arrayOfByte['ä'] = -29;
arrayOfByte['å'] = -105;
arrayOfByte['æ'] = 116;
arrayOfByte['ç'] = 107;
arrayOfByte['è'] = -93;
arrayOfByte['é'] = 91;
arrayOfByte['ê'] = -41;
arrayOfByte['ë'] = -13;
arrayOfByte['ì'] = 20;
arrayOfByte['í'] = -115;
arrayOfByte['î'] = -78;
arrayOfByte['ï'] = 43;
arrayOfByte['ð'] = 79;
arrayOfByte['ñ'] = -122;
arrayOfByte['ò'] = k;
arrayOfByte['ó'] = 102;
arrayOfByte['ô'] = -32;
arrayOfByte['õ'] = 52;
arrayOfByte['ö'] = -118;
arrayOfByte['÷'] = -51;
arrayOfByte['ø'] = 72;
arrayOfByte['ù'] = -104;
arrayOfByte['ú'] = 41;
arrayOfByte['û'] = -38;
arrayOfByte['ü'] = 124;
arrayOfByte['ý'] = 72;
arrayOfByte['þ'] = -126;
arrayOfByte['ÿ'] = -35;
this.salts = arrayOfByte;
arrayOfByte = new byte['?'];
arrayOfByte[0] = n;
arrayOfByte[n] = n;
arrayOfByte[i] = m;
arrayOfByte[4] = m;
arrayOfByte[j] = 4;
arrayOfByte[k] = j;
arrayOfByte[8] = 4;
arrayOfByte[9] = 7;
arrayOfByte[10] = n;
arrayOfByte[11] = k;
arrayOfByte[12] = j;
arrayOfByte[13] = i;
arrayOfByte[14] = i;
arrayOfByte[15] = n;
arrayOfByte[16] = m;
arrayOfByte[17] = j;
arrayOfByte[19] = k;
arrayOfByte[20] = m;
arrayOfByte[21] = m;
arrayOfByte[22] = 4;
arrayOfByte[23] = m;
arrayOfByte[24] = m;
arrayOfByte[25] = i;
arrayOfByte[27] = m;
arrayOfByte[28] = n;
arrayOfByte[29] = m;
arrayOfByte[30] = 4;
arrayOfByte[31] = i;
arrayOfByte[32] = 4;
arrayOfByte[36] = i;
arrayOfByte[37] = j;
arrayOfByte[38] = i;
arrayOfByte[39] = n;
arrayOfByte[40] = k;
arrayOfByte[41] = j;
arrayOfByte[42] = k;
arrayOfByte[43] = n;
arrayOfByte[44] = n;
arrayOfByte[45] = n;
arrayOfByte[48] = i;
arrayOfByte[49] = m;
arrayOfByte[50] = 7;
arrayOfByte[51] = 7;
arrayOfByte[52] = j;
arrayOfByte[53] = k;
arrayOfByte[54] = 7;
arrayOfByte[55] = i;
arrayOfByte[56] = j;
arrayOfByte[57] = n;
arrayOfByte[59] = 7;
arrayOfByte[60] = k;
arrayOfByte[61] = i;
arrayOfByte[62] = k;
arrayOfByte[63] = j;
arrayOfByte[64] = 4;
arrayOfByte[65] = j;
arrayOfByte[66] = i;
arrayOfByte[67] = j;
arrayOfByte[68] = n;
arrayOfByte[69] = i;
arrayOfByte[70] = i;
arrayOfByte[71] = n;
arrayOfByte[72] = j;
arrayOfByte[73] = 4;
arrayOfByte[74] = n;
arrayOfByte[77] = m;
arrayOfByte[78] = k;
arrayOfByte[79] = k;
arrayOfByte[80] = k;
arrayOfByte[81] = k;
arrayOfByte[82] = 4;
arrayOfByte[84] = n;
arrayOfByte[85] = n;
arrayOfByte[87] = j;
arrayOfByte[88] = j;
arrayOfByte[89] = 4;
arrayOfByte[90] = m;
arrayOfByte[91] = 4;
arrayOfByte[92] = k;
arrayOfByte[93] = n;
arrayOfByte[94] = 7;
arrayOfByte[95] = n;
arrayOfByte[96] = m;
arrayOfByte[97] = n;
arrayOfByte[98] = n;
arrayOfByte[99] = k;
arrayOfByte[100] = j;
arrayOfByte[101] = 4;
arrayOfByte[102] = 7;
arrayOfByte[103] = k;
arrayOfByte[104] = j;
arrayOfByte[105] = n;
arrayOfByte[106] = k;
arrayOfByte[107] = 7;
arrayOfByte[109] = m;
arrayOfByte[110] = k;
arrayOfByte[111] = i;
arrayOfByte[112] = n;
arrayOfByte[113] = 7;
arrayOfByte[114] = n;
arrayOfByte[115] = n;
arrayOfByte[116] = 7;
arrayOfByte[117] = 4;
arrayOfByte[119] = 4;
arrayOfByte[120] = m;
arrayOfByte[121] = j;
arrayOfByte[122] = i;
arrayOfByte[123] = n;
arrayOfByte[124] = n;
arrayOfByte[125] = j;
arrayOfByte[126] = k;
arrayOfByte['?'] = i;
arrayOfByte['?'] = j;
arrayOfByte['?'] = i;
arrayOfByte['?'] = k;
arrayOfByte['?'] = j;
arrayOfByte['?'] = 7;
arrayOfByte['?'] = m;
arrayOfByte['?'] = j;
arrayOfByte['?'] = k;
arrayOfByte['?'] = k;
arrayOfByte['?'] = m;
arrayOfByte['?'] = m;
arrayOfByte['?'] = i;
arrayOfByte['?'] = k;
arrayOfByte['?'] = 4;
arrayOfByte['?'] = i;
arrayOfByte['?'] = m;
arrayOfByte['?'] = m;
arrayOfByte['?'] = m;
arrayOfByte['?'] = i;
arrayOfByte['?'] = j;
arrayOfByte['?'] = i;
arrayOfByte['?'] = i;
arrayOfByte['?'] = m;
arrayOfByte['?'] = j;
arrayOfByte['?'] = j;
arrayOfByte['?'] = j;
arrayOfByte['?'] = n;
arrayOfByte['?'] = i;
arrayOfByte['?'] = n;
arrayOfByte['*'] = n;
arrayOfByte['¡'] = n;
arrayOfByte['¢'] = 4;
arrayOfByte['£'] = j;
arrayOfByte['¤'] = n;
arrayOfByte['¥'] = k;
arrayOfByte['¦'] = m;
arrayOfByte['§'] = 4;
arrayOfByte['¨'] = 7;
arrayOfByte['©'] = n;
arrayOfByte['ª'] = 4;
arrayOfByte['«'] = k;
arrayOfByte['*'] = k;
arrayOfByte['®'] = 4;
arrayOfByte['¯'] = i;
arrayOfByte['°'] = m;
arrayOfByte['±'] = k;
arrayOfByte['²'] = n;
arrayOfByte['³'] = k;
arrayOfByte['´'] = i;
arrayOfByte['µ'] = m;
arrayOfByte['¶'] = n;
arrayOfByte['·'] = k;
arrayOfByte['¸'] = 7;
arrayOfByte['¹'] = i;
arrayOfByte['º'] = m;
arrayOfByte['»'] = n;
arrayOfByte['¼'] = n;
arrayOfByte['½'] = j;
arrayOfByte['¾'] = k;
arrayOfByte['¿'] = 7;
arrayOfByte['À'] = m;
arrayOfByte['Á'] = m;
arrayOfByte['Â'] = m;
arrayOfByte['Ã'] = 7;
arrayOfByte['Ä'] = 4;
arrayOfByte['Å'] = k;
arrayOfByte['Æ'] = 7;
arrayOfByte['Ç'] = j;
arrayOfByte['È'] = i;
arrayOfByte['É'] = n;
arrayOfByte['Ê'] = 4;
arrayOfByte['Ë'] = m;
arrayOfByte['Ì'] = 7;
arrayOfByte['Í'] = n;
arrayOfByte['Î'] = k;
arrayOfByte['Ï'] = m;
arrayOfByte['Ð'] = 4;
arrayOfByte['Ñ'] = n;
arrayOfByte['Ò'] = j;
arrayOfByte['Ó'] = k;
arrayOfByte['Ô'] = j;
arrayOfByte['Õ'] = 4;
arrayOfByte['Ö'] = j;
arrayOfByte['Ø'] = n;
arrayOfByte['Ù'] = n;
arrayOfByte['Ú'] = k;
arrayOfByte['Û'] = i;
arrayOfByte['Ü'] = 7;
arrayOfByte['Ý'] = m;
arrayOfByte['ß'] = m;
arrayOfByte['à'] = j;
arrayOfByte['â'] = n;
arrayOfByte['ã'] = i;
arrayOfByte['ä'] = i;
arrayOfByte['å'] = m;
arrayOfByte['æ'] = k;
arrayOfByte['ç'] = 7;
arrayOfByte['è'] = 7;
arrayOfByte['é'] = m;
arrayOfByte['ê'] = j;
arrayOfByte['ë'] = k;
arrayOfByte['í'] = 4;
arrayOfByte['î'] = n;
arrayOfByte['ï'] = m;
arrayOfByte['ð'] = j;
arrayOfByte['ñ'] = i;
arrayOfByte['ò'] = 7;
arrayOfByte['ó'] = k;
arrayOfByte['ô'] = j;
arrayOfByte['õ'] = m;
arrayOfByte['ö'] = j;
arrayOfByte['÷'] = m;
arrayOfByte['ù'] = n;
arrayOfByte['ú'] = i;
arrayOfByte['û'] = n;
arrayOfByte['ü'] = 4;
arrayOfByte['ý'] = i;
arrayOfByte['þ'] = 4;
arrayOfByte['ÿ'] = m;
this.shifts = arrayOfByte;
}
private byte[] _decode(byte[] paramArrayOfByte)
{
int i = paramArrayOfByte.length;
byte[] arrayOfByte1 = new byte[i];
int j = 0;
for (;;)
{
i = paramArrayOfByte.length;
if (j >= i) {
break;
}
i = paramArrayOfByte[j] & 0xFF;
byte[] arrayOfByte2 = this.shifts;
int k = j % 256;
int m = arrayOfByte2[k];
i <<= m;
m = paramArrayOfByte[j] & 0xFF;
byte[] arrayOfByte3 = this.shifts;
int n = j % 256;
k = arrayOfByte3[n];
k = 8 - k;
m >>>= k;
i = (byte)(byte)(i | m);
arrayOfByte1[j] = i;
i = arrayOfByte1[j];
arrayOfByte2 = this.salts;
k = j % 256;
m = arrayOfByte2[k];
i = (byte)(byte)(i ^ m);
arrayOfByte1[j] = i;
j += 1;
}
return arrayOfByte1;
}
/* Error */
private byte[] _decompressGzip(byte[] paramArrayOfByte)
{
// Byte code:
// 0: aconst_null
// 1: astore_2
// 2: aconst_null
// 3: astore_3
// 4: aconst_null
// 5: astore 4
// 7: aconst_null
// 8: astore 5
// 10: sipush 1024
// 13: istore 6
// 15: iload 6
// 17: newarray <illegal type>
// 19: astore 7
// 21: new 34 java/io/BufferedInputStream
// 24: astore 8
// 26: new 36 java/io/ByteArrayInputStream
// 29: astore 9
// 31: aload 9
// 33: aload_1
// 34: invokespecial 39 java/io/ByteArrayInputStream:<init> ([B)V
// 37: aload 8
// 39: aload 9
// 41: invokespecial 42 java/io/BufferedInputStream:<init> (Ljava/io/InputStream;)V
// 44: new 44 java/util/zip/GZIPInputStream
// 47: astore 10
// 49: aload 10
// 51: aload 8
// 53: invokespecial 45 java/util/zip/GZIPInputStream:<init> (Ljava/io/InputStream;)V
// 56: new 47 java/io/ByteArrayOutputStream
// 59: astore 11
// 61: aload 11
// 63: invokespecial 48 java/io/ByteArrayOutputStream:<init> ()V
// 66: aload 10
// 68: invokevirtual 52 java/util/zip/GZIPInputStream:available ()I
// 71: istore 6
// 73: iload 6
// 75: ifle +123 -> 198
// 78: new 54 java/io/BufferedOutputStream
// 81: astore 12
// 83: aload 12
// 85: aload 11
// 87: invokespecial 57 java/io/BufferedOutputStream:<init> (Ljava/io/OutputStream;)V
// 90: iconst_0
// 91: istore 13
// 93: aload 10
// 95: aload 7
// 97: invokevirtual 61 java/util/zip/GZIPInputStream:read ([B)I
// 100: istore 13
// 102: iconst_m1
// 103: istore 6
// 105: iload 13
// 107: iload 6
// 109: if_icmpeq +51 -> 160
// 112: iconst_0
// 113: istore 6
// 115: aconst_null
// 116: astore 9
// 118: aload 12
// 120: aload 7
// 122: iconst_0
// 123: iload 13
// 125: invokevirtual 65 java/io/BufferedOutputStream:write ([BII)V
// 128: goto -35 -> 93
// 131: astore 9
// 133: aload 11
// 135: astore 5
// 137: aload 10
// 139: astore 4
// 141: aload 8
// 143: astore_3
// 144: aload 5
// 146: invokevirtual 68 java/io/ByteArrayOutputStream:close ()V
// 149: aload 4
// 151: invokevirtual 69 java/util/zip/GZIPInputStream:close ()V
// 154: aload_3
// 155: invokevirtual 70 java/io/BufferedInputStream:close ()V
// 158: aload_2
// 159: areturn
// 160: aload 12
// 162: invokevirtual 71 java/io/BufferedOutputStream:close ()V
// 165: goto -99 -> 66
// 168: astore 9
// 170: aload 11
// 172: astore 5
// 174: aload 10
// 176: astore 4
// 178: aload 8
// 180: astore_3
// 181: aload 5
// 183: invokevirtual 68 java/io/ByteArrayOutputStream:close ()V
// 186: aload 4
// 188: invokevirtual 69 java/util/zip/GZIPInputStream:close ()V
// 191: aload_3
// 192: invokevirtual 70 java/io/BufferedInputStream:close ()V
// 195: aload 9
// 197: athrow
// 198: aload 11
// 200: invokevirtual 75 java/io/ByteArrayOutputStream:toByteArray ()[B
// 203: astore_2
// 204: aload 11
// 206: invokevirtual 68 java/io/ByteArrayOutputStream:close ()V
// 209: aload 10
// 211: invokevirtual 69 java/util/zip/GZIPInputStream:close ()V
// 214: aload 8
// 216: invokevirtual 70 java/io/BufferedInputStream:close ()V
// 219: aload 11
// 221: astore 5
// 223: aload 10
// 225: astore 4
// 227: aload 8
// 229: astore_3
// 230: goto -72 -> 158
// 233: astore 9
// 235: goto -16 -> 219
// 238: pop
// 239: goto -44 -> 195
// 242: astore 9
// 244: goto -63 -> 181
// 247: astore 9
// 249: aload 8
// 251: astore_3
// 252: goto -71 -> 181
// 255: astore 9
// 257: aload 8
// 259: astore_3
// 260: goto -79 -> 181
// 263: astore 9
// 265: aload 10
// 267: astore 4
// 269: aload 8
// 271: astore_3
// 272: goto -91 -> 181
// 275: astore 9
// 277: aload 11
// 279: astore 5
// 281: aload 10
// 283: astore 4
// 285: aload 8
// 287: astore_3
// 288: goto -107 -> 181
// 291: astore 9
// 293: goto -135 -> 158
// 296: astore 9
// 298: goto -154 -> 144
// 301: astore 9
// 303: aload 8
// 305: astore_3
// 306: goto -162 -> 144
// 309: astore 9
// 311: aload 8
// 313: astore_3
// 314: goto -170 -> 144
// 317: astore 9
// 319: aload 10
// 321: astore 4
// 323: aload 8
// 325: astore_3
// 326: goto -182 -> 144
// 329: astore 9
// 331: aload 11
// 333: astore 5
// 335: aload 10
// 337: astore 4
// 339: aload 8
// 341: astore_3
// 342: goto -198 -> 144
// Local variable table:
// start length slot name signature
// 0 345 0 this OmcTextDecoder
// 0 345 1 paramArrayOfByte byte[]
// 1 203 2 arrayOfByte1 byte[]
// 3 339 3 localObject1 Object
// 5 333 4 localObject2 Object
// 8 326 5 localObject3 Object
// 13 101 6 i int
// 19 102 7 arrayOfByte2 byte[]
// 24 316 8 localBufferedInputStream java.io.BufferedInputStream
// 29 88 9 localByteArrayInputStream java.io.ByteArrayInputStream
// 131 1 9 localIOException1 IOException
// 168 28 9 localObject4 Object
// 233 1 9 localException1 Exception
// 242 1 9 localObject5 Object
// 247 1 9 localObject6 Object
// 255 1 9 localObject7 Object
// 263 1 9 localObject8 Object
// 275 1 9 localObject9 Object
// 291 1 9 localException2 Exception
// 296 1 9 localIOException2 IOException
// 301 1 9 localIOException3 IOException
// 309 1 9 localIOException4 IOException
// 317 1 9 localIOException5 IOException
// 329 1 9 localIOException6 IOException
// 47 289 10 localGZIPInputStream java.util.zip.GZIPInputStream
// 59 273 11 localByteArrayOutputStream java.io.ByteArrayOutputStream
// 81 80 12 localBufferedOutputStream java.io.BufferedOutputStream
// 91 33 13 j int
// 238 1 28 localException3 Exception
// Exception table:
// from to target type
// 85 90 131 java/io/IOException
// 95 100 131 java/io/IOException
// 123 128 131 java/io/IOException
// 160 165 131 java/io/IOException
// 85 90 168 finally
// 95 100 168 finally
// 123 128 168 finally
// 160 165 168 finally
// 204 209 233 java/lang/Exception
// 209 214 233 java/lang/Exception
// 214 219 233 java/lang/Exception
// 181 186 238 java/lang/Exception
// 186 191 238 java/lang/Exception
// 191 195 238 java/lang/Exception
// 15 19 242 finally
// 21 24 242 finally
// 26 29 242 finally
// 33 37 242 finally
// 39 44 242 finally
// 44 47 247 finally
// 51 56 255 finally
// 56 59 263 finally
// 61 66 263 finally
// 66 71 275 finally
// 78 81 275 finally
// 198 203 275 finally
// 144 149 291 java/lang/Exception
// 149 154 291 java/lang/Exception
// 154 158 291 java/lang/Exception
// 15 19 296 java/io/IOException
// 21 24 296 java/io/IOException
// 26 29 296 java/io/IOException
// 33 37 296 java/io/IOException
// 39 44 296 java/io/IOException
// 44 47 301 java/io/IOException
// 51 56 309 java/io/IOException
// 56 59 317 java/io/IOException
// 61 66 317 java/io/IOException
// 66 71 329 java/io/IOException
// 78 81 329 java/io/IOException
// 198 203 329 java/io/IOException
}
private byte[] fileToByteArray(File paramFile)
{
try
{
FileInputStream localFileInputStream = new java/io/FileInputStream;
localFileInputStream.<init>(paramFile);
int i = localFileInputStream.available();
byte[] arrayOfByte = new byte[i];
localFileInputStream.read(arrayOfByte);
localFileInputStream.close();
return arrayOfByte;
}
catch (FileNotFoundException localFileNotFoundException)
{
localFileNotFoundException.printStackTrace();
return null;
}
catch (IOException localIOException)
{
for (;;)
{
localIOException.printStackTrace();
}
}
}
public byte[] decode(File paramFile)
{
byte[] arrayOfByte1 = fileToByteArray(paramFile);
byte[] arrayOfByte2 = _decode(arrayOfByte1);
return _decompressGzip(arrayOfByte2);
}
public boolean isXmlEncoded(File paramFile)
{
try
{
BufferedReader localBufferedReader = new java/io/BufferedReader;
Object localObject = new java/io/FileReader;
((FileReader)localObject).<init>(paramFile);
localBufferedReader.<init>((Reader)localObject);
String str = localBufferedReader.readLine();
if (localBufferedReader == null) {}
for (;;)
{
localObject = "<?xml";
boolean bool = str.contains((CharSequence)localObject);
if (bool) {
break;
}
return true;
localBufferedReader.close();
}
return false;
}
catch (Exception localException)
{
return false;
}
}
}
I don't know enough about Java to do anything with this though so i thought i would post it here where some other people that have a bit more knowledge than me might be able to make some use of it. and i can't find where it's being called from so i think there is still a piece of the puzzle missing, i am going to keep working on it though
as a little side note, when i de-complied OMCAgent.apk i found a list of all CSC Feature Codes.
http://paste.physk.co.uk/view/36613aee
I hope this can help some people, there is no mention of what the values should be though
Your PasteBin link is down.