android反编译 学习如何隐藏应用图标 HadoopnginxEmacsdotnetnukerubygems
程序员文章站
2024-03-20 15:47:28
...
最近看到一款叫智游防盗的应用,其中有项功能,可以远程控制应用图标的显示与隐藏。觉得比较有意思,所以反编译了下他们的APK。研究了下是怎么实现的。
通过jd-gui 打开反编译后的jar文件。 通过分析后发现 有个u.class比较可疑
其中paramContext.getPackageManager().setComponentEnabledSetting(new ComponentName("com.phonedog.activity", "com.phonedog.activity.WelcomeActivity"), 2, 1) 负责隐藏引用的图标。
最后分享下整理后的代码
/**
* 控制图标显示和隐藏
* @param clazz
* @param enabled true:显示、 false:隐藏
*/
private void setComponentEnabled(Class<?> clazz, boolean enabled) {
final ComponentName c = new ComponentName(this, clazz.getName());
getPackageManager().setComponentEnabledSetting(c,enabled?PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)
}
更多内容,期待您的探索,请关注爱加密,让您精彩不断!
通过jd-gui 打开反编译后的jar文件。 通过分析后发现 有个u.class比较可疑
其中paramContext.getPackageManager().setComponentEnabledSetting(new ComponentName("com.phonedog.activity", "com.phonedog.activity.WelcomeActivity"), 2, 1) 负责隐藏引用的图标。
最后分享下整理后的代码
/**
* 控制图标显示和隐藏
* @param clazz
* @param enabled true:显示、 false:隐藏
*/
private void setComponentEnabled(Class<?> clazz, boolean enabled) {
final ComponentName c = new ComponentName(this, clazz.getName());
getPackageManager().setComponentEnabledSetting(c,enabled?PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)
}
更多内容,期待您的探索,请关注爱加密,让您精彩不断!