安卓逆向 某盒子固件升级提示关闭思路

admin 2024年11月14日21:57:15评论30 views字数 6913阅读23分2秒阅读模式

近期,我弄了一台电信的 MV310 机顶盒,并依照网上的教程对其进行了刷机操作,期间下载了九彩固件。然而,在使用一段时间后,每次开机都会弹出升级界面,而且无法关掉,导致无法正常使用。

安卓逆向  某盒子固件升级提示关闭思路

为寻求解决之法,我找到了一篇名为“九彩固件升级提示揭秘”的帖子。该帖通过对固件进行反编译,深入分析了固件升级的原因及具体代码。简而言之,九彩在代码中设置了一个计数器,当机顶盒运行一段时间后,便会弹出升级窗口。

安卓逆向  某盒子固件升级提示关闭思路

依此思路,需对刷机包进行反编译并修改相应代码。但本人缺少反编译工具,数次尝试刷机均未成功。于是,我思考能否通过 ADB 来解决这一问题,首先想到的便是尝试禁止白屏应用的启动。
首先,将机顶盒开启开发者模式,开启 ADB 调试,并确保其与电脑处于同一局域网内进行连接。接着,将界面停留在白屏位置,运行以下代码:

adb shell dumpsys activity activities

以下是输出的内容:

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)  Stack #0:    Task id #1    * TaskRecord{41ee52a0 #1 A=com.tvpusher.gklauncher U=0 sz=1}      numActivities=1 rootWasReset=false userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=false      affinity=com.tvpusher.gklauncher      intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.tvpusher.gklauncher/.mvp.ui.activity.WelcomeActivity}      realActivity=com.tvpusher.gklauncher/.mvp.ui.activity.WelcomeActivity      Activities=[ActivityRecord{42051038 u0 com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty t1}]      askedCompatMode=false      lastThumbnail=android.graphics.Bitmap@41ce2258 lastDescription=null      lastActiveTime=8142 (inactive for 994s)      * Hist #0: ActivityRecord{42051038 u0 com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty t1}          packageName=com.tvpusher.gklauncher processName=com.tvpusher.gklauncher          launchedFromUid=10013 launchedFromPackage=com.tvpusher.gklauncher userId=0          app=ProcessRecord{41ee6650 2387:com.tvpusher.gklauncher/u0a13}          Intent { flg=0x400000 cmp=com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty }          frontOfTask=true task=TaskRecord{41ee52a0 #1 A=com.tvpusher.gklauncher U=0 sz=1}          taskAffinity=com.tvpusher.gklauncher          realActivity=com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty          baseDir=/system/app/yyzm8.9.apk          dataDir=/data/data/com.tvpusher.gklauncher          stateNotNeeded=false componentSpecified=true mActivityType=1          compat={160dpi always-compat} labelRes=0x7f100029 icon=0x7f0e0044 theme=0x7f11018a          config={1.0?mcc?mnc zh_CN ldltr sw720dp w1280dp h720dp 160dpi xlrg long land television -touch -keyb/v/h dpad/v s.4}          launchFailed=false launchCount=0 lastLaunchTime=-16m35s738ms          haveState=true icicle=Bundle[mParcelledData.dataSize=3632]          state=STOPPED stopped=true delayedResume=false finishing=false          keysPaused=false inHistory=true visible=false sleeping=false idle=true          fullscreen=true noDisplay=false immersive=false launchMode=2          frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false          mActivityType=HOME_ACTIVITY_TYPE          thumbHolder: 41ee52a0 bm=android.graphics.Bitmap@41ce2258 desc=null    Running activities (most recent first):      TaskRecord{41ee52a0 #1 A=com.tvpusher.gklauncher U=0 sz=1}        Run #0: ActivityRecord{42051038 u0 com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty t1}    mLastPausedActivity: ActivityRecord{42051038 u0 com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty t1}  Stack #1:    Task id #3    * TaskRecord{41f3bfd0 #3 A=com.ex.service U=0 sz=1}      numActivities=1 rootWasReset=false userId=0 mTaskType=0 numFullscreen=1 mOnTopOfHome=true      affinity=com.ex.service      intent={flg=0x10000000 cmp=com.ex.service/.Txtactivity}      realActivity=com.ex.service/.Txtactivity      Activities=[ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}]      askedCompatMode=false      lastThumbnail=null lastDescription=null      lastActiveTime=870241 (inactive for 132s)      * Hist #0: ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}          packageName=com.ex.service processName=com.ex.service          launchedFromUid=10011 launchedFromPackage=com.ex.service userId=0          app=ProcessRecord{41fe73e8 2405:com.ex.service/u0a11}          Intent { flg=0x10000000 cmp=com.ex.service/.Txtactivity }          frontOfTask=true task=TaskRecord{41f3bfd0 #3 A=com.ex.service U=0 sz=1}          taskAffinity=com.ex.service          realActivity=com.ex.service/.Txtactivity          baseDir=/system/priv-app/SystemManager.apk          dataDir=/data/data/com.ex.service          stateNotNeeded=false componentSpecified=true mActivityType=0          compat={160dpi always-compat} labelRes=0x7f0e001b icon=0x0 theme=0x7f0f0186          config={1.0?mcc?mnc zh_CN ldltr sw720dp w1280dp h720dp 160dpi xlrg long land television -touch -keyb/v/h dpad/v s.4}          launchFailed=false launchCount=0 lastLaunchTime=-16m36s771ms          haveState=false icicle=null          state=RESUMED stopped=false delayedResume=false finishing=false          keysPaused=false inHistory=true visible=true sleeping=false idle=true          fullscreen=true noDisplay=false immersive=false launchMode=0          frozenBeforeDestroy=false thumbnailNeeded=false forceNewConfig=false          mActivityType=APPLICATION_ACTIVITY_TYPE          thumbHolder: 41f3bfd0 bm=null desc=null          waitingVisible=false nowVisible=true lastVisibleTime=-2m12s490ms    Running activities (most recent first):      TaskRecord{41f3bfd0 #3 A=com.ex.service U=0 sz=1}        Run #0: ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}    mResumedActivity: ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}    mLastPausedActivity: ActivityRecord{41f82368 u0 com.fiberhome.settings/.MainActivity t9 f}  mFocusedActivity: ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}  mDismissKeyguardOnNextActivity=false  mFocusedStack=ActivityStack{4200d170 stackId=1, 1 tasks} mStackState=STACK_STATE_HOME_IN_BACK  mSleepTimeout=false  mCurTaskId=9  mUserStackInFront={}  Recent tasks:  * Recent #0: TaskRecord{41f3bfd0 #3 A=com.ex.service U=0 sz=1}    numActivities=1 rootWasReset=false userId=0 mTaskType=0 numFullscreen=1 mOnTopOfHome=true    affinity=com.ex.service    intent={flg=0x10000000 cmp=com.ex.service/.Txtactivity}    realActivity=com.ex.service/.Txtactivity    Activities=[ActivityRecord{41d14248 u0 com.ex.service/.Txtactivity t3}]    askedCompatMode=false    lastThumbnail=null lastDescription=null    lastActiveTime=870241 (inactive for 132s)  * Recent #1: TaskRecord{420ab148 #9 I=com.fiberhome.settings/.MainActivity U=0 sz=0}    intent={cmp=com.fiberhome.settings/.MainActivity}    realActivity=com.fiberhome.settings/.MainActivity    Activities=[]    askedCompatMode=false    lastThumbnail=android.graphics.Bitmap@41ce2258 lastDescription=null    lastActiveTime=870236 (inactive for 132s)  * Recent #2: TaskRecord{420e3978 #8 I=com.fiberhome.settings/.AuthActivity U=0 sz=0}    intent={act=android.intent.action.MAIN flg=0x10000000 cmp=com.fiberhome.settings/.AuthActivity}    realActivity=com.fiberhome.settings/.AuthActivity    Activities=[]    askedCompatMode=false    lastThumbnail=android.graphics.Bitmap@41ce2258 lastDescription=null    lastActiveTime=853653 (inactive for 149s)  * Recent #3: TaskRecord{41ee52a0 #1 A=com.tvpusher.gklauncher U=0 sz=1}    numActivities=1 rootWasReset=false userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=false    affinity=com.tvpusher.gklauncher    intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.tvpusher.gklauncher/.mvp.ui.activity.WelcomeActivity}    realActivity=com.tvpusher.gklauncher/.mvp.ui.activity.WelcomeActivity    Activities=[ActivityRecord{42051038 u0 com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty t1}]    askedCompatMode=false    lastThumbnail=android.graphics.Bitmap@41ce2258 lastDescription=null    lastActiveTime=8142 (inactive for 994s)

从上述输出中可以看出,存在两个任务栈。第一个任务栈中有一个活动,即主屏幕活动;第二个任务栈中也有一个活动,是当前正在前台运行的活动。这意味着com.ex.service/.Txtactivity是当前用户正在使用的活动,而com.tvpusher.gklauncher/.mvp.ui.activity.MainActivty则是主屏幕活动。
计数器的代码位于com.tvpusher.gklauncher中。然而,此为机顶盒的主程序,既不能关闭也无法删除,否则机顶盒将无法使用。因此,我选择禁用其调用的程序,具体代码如下:

adb shell pm disable-user com.ex.serviceadb shell pm disable-user com.exs.service

本文内容来自网络,如有侵权请联系删除

安卓逆向  某盒子固件升级提示关闭思路

原文始发于微信公众号(逆向有你):安卓逆向 -- 某盒子固件升级提示关闭思路

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月14日21:57:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓逆向 某盒子固件升级提示关闭思路https://cn-sec.com/archives/3393873.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息