Android设备直接运行java项目?还杀不死?
思路:拿到dex可执行文件,使用android执行
使用idea创建java类库,写相关逻辑代码
使用idea导出该类库jar包
使用android dx工具 将jar文件转换为dex可执行文件
dx --dex --output="$outputfilepath" "$filepath"将xxx.dexpush到data/local/tmp目录下,并修改权限
adb push "$filepath" /data/local/tmp
adb shell;chmod 777 /data/lcoal/tmp/xxx.dex使用app_process命令执行dex文件
app_process -Djava.class.path=xxx.dex /data/local/tmp com.xxx.xxx.xxx
命令最后直接跟的是类名,这样是无法运行的,需要添加完整的类名,即包名+类名查询app_process的pid
ps | grep app_process查询该pid的进程等级
cat /proc/pid/oom_adj
查询结果为-17,不受android内存管理控制
使用场景:
1.可以用该项目提升权限,做一些应用层没有权限的工作
2.可以常驻系统而不会被清理(除非程序挂了,或者手机重启)
缺点:
1.需要pc端开启该进程(某些应用声称需要使用pc端激活工具激活 )
2.没有专属进程名,依附于app_process进程
Android设备直接运行java项目?还杀不死?的更多相关文章
- android设备上运行i-jetty服务
		
android设备上运行i-jetty服务: 1) i-jetty安装 本人小菜一个,i-jetty源码有好几个文件,不知道怎么运行起来,于是找了一个现成可运行的i-jetty工程(感谢这位同学的分享 ...
 - 使用DOS命令运行JAVA项目
		
使用DOS命令运行JAVA项目 找到生成项目的文件夹: 在地址前加上cmd+空格,进入命令窗口: 输入javac 类的名称.java,生成class文件: 输入java 类的名称: 运行成功:
 - 手动编译并运行Java项目的过程
		
现在Java开发基本上就是IDE调试,如果跨平台打个jar包过去运行一般就可以了,但是有些情况比如需要引入外部依赖的时候,这个时候是不能直接运行的,还需要引入一些外部的参数,并不是简单的javac和j ...
 - 创建和运行Java项目
		
---------siwuxie095 首先在左侧的工程管理面板 Package Explorer 中,右键->New->Java Project ...
 - 没了IDE,你的Java项目还能Run起来吗~
		
计算机只能识别机器码0101...编程语言->能执行的机器码 需要经过 预处理->编译->汇编->链接->机器码过程.一个语言处理系统的示意图如下: 编译器 是将源语言程 ...
 - Android驱动入门-在Android系统上运行JAVA程序
		
在linux上运行java程序,直接用javac编译,再用java运行就行了.但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的. 如果想在Android上运行Hello wo ...
 - linux环境运行java项目并有外部引用jar
		
eclipse目录结构: linux目录结构: lib目录结构: 其中除了IMT_ENCODING_DSP.jar其余的都是外部引用的jar IMT_ENCODING_DSP.jar是java项目打包 ...
 - linux系统下运行java项目的脚本编写
		
本文主要讲linux系统下运行jar包,至于如何打包jar包,放到linux系统下可以参考其他的博客. 在linux系统下运行jar包的命令如下: 1.java -jar xxxxx.jar // ...
 - 如何让Java应用成为杀不死的小强?(上篇)
		
各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 项庄舞剑意在沛公,而咱们上期主要借助应用服务器 Resin 的源码,体验了一次 JMX 的真实应用.鉴于 9012 年 ...
 
随机推荐
- jail-break-rule
			
switchOmega plugin for firefox and chrome https://raw.githubusercontent.com/gfwlist/gfwlist/master/g ...
 - Verilog风格
			
Verilog HDL编写原则: 可移植性强(多用宏定义:少用嵌入代码中的常数,即Magic Number:使用头文件): 必要的注释,代码易读: 模块间耦合尽可能低: 变量名与宏的命名规则: 变量名 ...
 - Java中的升序和降序
			
package ah; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; impo ...
 - udp重发
			
最近在处理框架通讯方面的问题,通过积累的开发经验,其实在很多情况(尤其是实时大数据量),udp是占有很多优势的:不需要连接,只管发送,理论上要快很多; 另外在穿墙上占有很大优势: 但是最大的一个问题就 ...
 - C语言博客作业6---结构体&文件
			
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
 - [Unity优化]批处理02:动态批处理
			
参考链接: https://docs.unity3d.com/Manual/DrawCallBatching.html 原理: cpu每帧把可以进行动态批处理的网格进行合并,再把合并后的数据传给gpu ...
 - (17/24) webpack实战技巧:生产环境和开发环境并行设置,实现来回切换
			
1. 概述 生产环境和开发环境所需依赖是不同: --开发依赖:就是开发中用到而发布时用不到的.在package.json里面对应的就是devDependencies下面相关配置. --生产依赖: 就是 ...
 - QPixmap 在非QtCreator环境下无法显示jpg图片
			
这几天需要实现在Qt界面中显示jpg图片,于是直接将路径传给QPixmap对象,发现显示不出来. 然而在Qt SDK自带的Demo中却可以正确显示jpg图片,经搜索引擎查找发现,是自己的exe文件缺少 ...
 - 关于Float.parseFloat()的一点探讨
			
最近在解决线上的bug时,遇到一个问题. 第三方传过来的课程编码时4214410000,然而我们存进数据库的值却变成了4214409980.查遍了所有的代码都查不到有对这个值修改的代码.最后,通过打印 ...
 - ios端滚动优化
			
加入css -webkit-overflow-scrolling: touch;