android执行二进制文件和class文件

安卓运行class和gcc(Nexus 5x)

date:02-10-2022

故事的开始,接下来就是解bl,刷rec,root。熟悉三件套

安装 Recovery 包

  1. 开发者选项中打开“OEM 解锁”和“USB 调试”
  2. 连上电脑,进入 adb 所在目录,依次执行 ./adb reboot bootloader./fastboot flashing unlock 以解锁设备(fastboot 显示waiting for device就用驱动精灵在bootloader模式下修复驱动)
  3. 下载http://file.codepowders.com/twrp-3.6.2_9-0-bullhead.img
  4. 进入 adb 所在目录,执行 ./fastboot flash recovery /Users/silas/Downloads/twrp-3.2.3-0-bullhead.img(如果出错,把文件名改成简单的 twrp.img,放到 adb 所在目录,执行 ./fastboot flash recovery twrp.img,以免原来的路径或文件名无法识别)
  5. ./fastboot reboot 重启手机或者音量减调到“Recovery mode”,结果显示 Your device software can't be checked for corruption. Please lock the bootloader
  6. 此时按下电源键和音量加,然后松开,最下面一句从 PRESS POWER TO PAUSE BOOT 变成 PRESS POWER TO CONTINUE,然后等待一会儿自动进去了。

Root

  1. 打开开发者模式,打开“OEM解锁”和“USB调试”,先执行 ./adb reboot bootloader
  2. 下载http://file.codepowders.com/CF-Auto-Root-bullhead-bullhead-nexus5x.zip
  3. 打开脚本然后回车回车

 

安装gcc

  1. 下载http://file.codepowders.com/gcc_arm_aarch64.zip
  2. adb push gcc_arm_aarch64.zip storage/emulated/0 (adb用的是androidstudio的)

  3. adb shell
  4. shell中su
  5. 打开手机把zip解压
  6. mount -o remount -w 挂载system
  7. 直接mv /storage/emulated/0/gcc_arm_aarch64 /system/
  8. cd /system/gcc*/bin/
  9. ln -s /system/gcc/bin/*gcc /system/xbin/
  10. arm-linux-androideabi-gcc -v

 

 

gcc编译helloworld

  1. ./*gcc main.c

error: only position independent executables (PIE) are supported.

  1. ./*gcc main.c -pie -fPIE
  2. 解决

 

运行java的helloworld

public class HelloAndroid
{
    public static void main(String[] args)
    {
        System.out.println("Hello Android");
    }
}
  1. 下载 j8.jar http://file.codepowders.com/j8.jar
  2. 编译helloworld得到class。不会就太拉跨了
  3. java -jar j8.jar HelloAndroid.class
  4. 得到classes.dex
  5. 在安卓中运行:

    dalvikvm -cp classes.dex HelloAndroid

 

 

 

 

posted @ 2022-10-02 11:53  Z_Chan  阅读(336)  评论(0编辑  收藏  举报