做一个自启动管理的软件,
通常容易想到的就是disable active状态的bootcompleted广播接受器,但是在我在试图禁止360手机卫士和QQ手机管家的时候,
却发现怎样都禁止不了。360做了反编译保护,没看到它的配置文件,
QQ的可以反编译出来,结合开机的Log,发现:
<receiver android:name="com.tencent.server.back.FastBootReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.ANY_DATA_STATE" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<action android:name="android.intent.action.MEDIA_REMOVED" />
<action android:name="android.intent.action.MEDIA_CHECKING" />
<action android:name="android.intent.action.MEDIA_EJECT" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name=".service.InOutCallReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
<intent-filter android:priority="100">
<action android:name="com.tencent.action.SHOW_LOCATION" />
<intent-filter android:priority="1000">
</intent-filter>
</receiver><receiver android:name="com.tencent.server.back.BootReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
其实android开机时不只会发出BOOT_COMPLETED广播,ANY_DATA_STATE,WIFI_STATE_CHANGED,PHONE_STATE在开机不久都会有发出。而360和qq正是监听了不只BOOT_COMPLETED这一个广播而实现流氓式的开机自启动
并且,在这些可以实现自启动的接受器中,还做了别的逻辑处理,这使得disable掉它全部的接受器会影响它的使用。所以,得出一个结论:360和QQ 是流氓中的战斗机!!
通常容易想到的就是disable active状态的bootcompleted广播接受器,但是在我在试图禁止360手机卫士和QQ手机管家的时候,
却发现怎样都禁止不了。360做了反编译保护,没看到它的配置文件,
QQ的可以反编译出来,结合开机的Log,发现:
<receiver android:name="com.tencent.server.back.FastBootReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.ANY_DATA_STATE" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<action android:name="android.intent.action.MEDIA_REMOVED" />
<action android:name="android.intent.action.MEDIA_CHECKING" />
<action android:name="android.intent.action.MEDIA_EJECT" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<receiver android:name=".service.InOutCallReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
<intent-filter android:priority="100">
<action android:name="com.tencent.action.SHOW_LOCATION" />
<intent-filter android:priority="1000">
</intent-filter>
</receiver><receiver android:name="com.tencent.server.back.BootReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
其实android开机时不只会发出BOOT_COMPLETED广播,ANY_DATA_STATE,WIFI_STATE_CHANGED,PHONE_STATE在开机不久都会有发出。而360和qq正是监听了不只BOOT_COMPLETED这一个广播而实现流氓式的开机自启动
并且,在这些可以实现自启动的接受器中,还做了别的逻辑处理,这使得disable掉它全部的接受器会影响它的使用。所以,得出一个结论:360和QQ 是流氓中的战斗机!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货