如何删除手机病毒查杀软件自动订制和阅读品位精粹

如何删除顽固性手机病毒,手机无法接收短信_百度知道如何给手机清除病毒_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何给手机清除病毒
上传于||文档简介
&&当​下​手​机​病​毒​越​来​越​多​,​智​能​手​机​很​容​易​就​中​毒​,​对​于​如​何​有​效​防​范​和​查​杀​手​机​病​毒​,​大​家​可​以​安​装​腾​讯​手​机​管​家​。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢6937人阅读
Android系统安全(1)
Android开发调试(9)
& & &对于那些由于视力、听力或其它身体原因导致不能方便使用Android智能手机的用户,Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音、触觉反馈、手势操作、轨迹球和手柄操作。开发者可以搭建自己的Accessibility服务,这可以加强可用性,例如声音提示,物理反馈,和其他可选的操作模式。& & &随着Android版本的不断升级,Android Accessibility功能也越来越强大,Android 4.0版本以前,系统辅助服务功能比较单一,仅仅能过单向获取窗口元素信息,比如获取输入框用户输入内容。到Android 4.1版本以后,系统辅助服务增加了与窗口元素的双向交互,此时可以通过辅助功能服务操作窗口元素,比如点击按钮等。& & 由于系统辅助服务能够实时获取您当前操作应用的窗口元素信息,这有可能给你带来隐私信息的泄露风险,比如获取非密码输入框的输入内容等。同时通过辅助功能也可以模拟用户自动化点击应用内元素,也会带来一定的安全风险。& & 本文实现了一种通过系统辅助服务完成应用的自动安装、卸载、强行停止的功能。1、AndroidManifest.xml文件配置自己实现的MyAccessibilityService服务。&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&com.jack.accessibility&
android:versionCode=&1&
android:versionName=&1.0& &
android:minSdkVersion=&8&
android:targetSdkVersion=&18& /&
&uses-permission android:name=&android.permission.SYSTEM_ALERT_WINDOW& /&
&uses-permission android:name=&android.permission.BIND_ACCESSIBILITY_SERVICE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
&uses-permission android:name=&android.permission.READ_EXTERNAL_STORAGE&/&
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&com.jack.accessibility.MainActivity&
android:label=&@string/app_name& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&service android:label=&@string/acc_service_name& android:name=&.MyAccessibilityService& android:permission=&android.permission.BIND_ACCESSIBILITY_SERVICE&&
&intent-filter&
&action android:name=&android.accessibilityservice.AccessibilityService& /&
&/intent-filter&
&meta-data android:name=&android.accessibilityservice& android:resource=&@xml/phone_accessibility& /&
&/service&
&/application&
&/manifest&2、在res/xml/phone_accessibility.xml配置相应的参数信息。&?xml version=&1.0& encoding=&utf-8&?&
&accessibility-service android:description=&@string/accessibility_service_description&
android:accessibilityEventTypes=&typeAllMask&
android:accessibilityFeedbackType=&feedbackGeneric&
android:notificationTimeout=&100&
android:accessibilityFlags=&&
android:canRetrieveWindowContent=&true&
xmlns:android=&/apk/res/android& /&3、MainActivity实现安装、卸载、强行停止动作的发起。package com.jack.
import java.io.F
import java.io.FileOutputS
import java.io.IOE
import java.io.InputS
import android.net.U
import android.os.B
import android.os.E
import android.provider.S
import android.view.V
import android.app.A
import android.content.I
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.findViewById(R.id.activeButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent killIntent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(killIntent);
this.findViewById(R.id.installButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
MyAccessibilityService.INVOKE_TYPE = MyAccessibilityService.TYPE_INSTALL_APP;
String fileName = Environment.getExternalStorageDirectory() + &/test.apk&;
File installFile = new File(fileName);
if(installFile.exists()){
installFile.delete();
installFile.createNewFile();
FileOutputStream out = new FileOutputStream(installFile);
byte[] buffer = new byte[512];
InputStream in = MainActivity.this.getAssets().open(&test.apk&);
while((count= in.read(buffer))!=-1){
out.write(buffer, 0, count);
in.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), &application/vnd.android.package-archive&);
startActivity(intent);
this.findViewById(R.id.uninstallButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
MyAccessibilityService.INVOKE_TYPE = MyAccessibilityService.TYPE_UNINSTALL_APP;
Uri packageURI = Uri.parse(&package:com.example.test&);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
this.findViewById(R.id.killAppButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
MyAccessibilityService.INVOKE_TYPE = MyAccessibilityService.TYPE_KILL_APP;
Intent killIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri packageURI = Uri.parse(&package:com.example.test&);
killIntent.setData(packageURI);
startActivity(killIntent);
4、MyAccessibilityService中通过自动化点击实现应用安装、卸载、强行停止功能。package com.jack.
import java.util.L
import android.accessibilityservice.AccessibilityS
import android.annotation.SuppressL
import android.util.L
import android.view.KeyE
import android.view.accessibility.AccessibilityE
import android.view.accessibility.AccessibilityNodeI
@SuppressLint(&NewApi&)
public class MyAccessibilityService extends AccessibilityService {
public static int INVOKE_TYPE = 0;
public static final int TYPE_KILL_APP = 1;
public static final int TYPE_INSTALL_APP = 2;
public static final int TYPE_UNINSTALL_APP = 3;
public static void reset(){
INVOKE_TYPE = 0;
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
this.processAccessibilityEnvent(event);
private void processAccessibilityEnvent(AccessibilityEvent event) {
Log.d(&test&, event.eventTypeToString(event.getEventType()));
if (event.getSource() == null) {
Log.d(&test&, &the source = null&);
Log.d(&test&, &event = & + event.toString());
switch (INVOKE_TYPE) {
case TYPE_KILL_APP:
processKillApplication(event);
case TYPE_INSTALL_APP:
processinstallApplication(event);
case TYPE_UNINSTALL_APP:
processUninstallApplication(event);
protected boolean onKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
public void onInterrupt() {
// TODO Auto-generated method stub
private void processUninstallApplication(AccessibilityEvent event) {
if (event.getSource() != null) {
if (event.getPackageName().equals(&com.android.packageinstaller&)) {
List&AccessibilityNodeInfo& ok_nodes = event.getSource().findAccessibilityNodeInfosByText(&确定&);
if (ok_nodes!=null && !ok_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&ok_nodes.size(); i++){
node = ok_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&) && node.isEnabled()) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
private void processinstallApplication(AccessibilityEvent event) {
if (event.getSource() != null) {
if (event.getPackageName().equals(&com.android.packageinstaller&)) {
List&AccessibilityNodeInfo& unintall_nodes = event.getSource().findAccessibilityNodeInfosByText(&安装&);
if (unintall_nodes!=null && !unintall_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&unintall_nodes.size(); i++){
node = unintall_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&) && node.isEnabled()) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
List&AccessibilityNodeInfo& next_nodes = event.getSource().findAccessibilityNodeInfosByText(&下一步&);
if (next_nodes!=null && !next_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&next_nodes.size(); i++){
node = next_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&) && node.isEnabled()) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
List&AccessibilityNodeInfo& ok_nodes = event.getSource().findAccessibilityNodeInfosByText(&打开&);
if (ok_nodes!=null && !ok_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&ok_nodes.size(); i++){
node = ok_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&) && node.isEnabled()) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
private void processKillApplication(AccessibilityEvent event) {
if (event.getSource() != null) {
if (event.getPackageName().equals(&com.android.settings&)) {
List&AccessibilityNodeInfo& stop_nodes = event.getSource().findAccessibilityNodeInfosByText(&强行停止&);
if (stop_nodes!=null && !stop_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&stop_nodes.size(); i++){
node = stop_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&)) {
if(node.isEnabled()){
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
List&AccessibilityNodeInfo& ok_nodes = event.getSource().findAccessibilityNodeInfosByText(&确定&);
if (ok_nodes!=null && !ok_nodes.isEmpty()) {
AccessibilityNodeI
for(int i=0; i&ok_nodes.size(); i++){
node = ok_nodes.get(i);
if (node.getClassName().equals(&android.widget.Button&)) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
Log.d(&action&, &click ok&);
完整DEMO下载地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:616622次
积分:7330
积分:7330
排名:第1987名
原创:46篇
转载:50篇
评论:553条
欢迎加入Android安全实验室QQ群交流学习:
文章:89篇
阅读:581224
(2)(4)(2)(1)(3)(3)(1)(2)(2)(2)(1)(3)(3)(2)(2)(7)(6)(4)(5)(10)(13)(18)(3)

我要回帖

更多关于 长虹手机病毒 的文章

 

随机推荐