首页 > 免root版 > gg修改器免root防崩溃_gg修改器免root使用教学
gg修改器免root防崩溃_gg修改器免root使用教学
  • gg修改器免root防崩溃_gg修改器免root使用教学

  • 大小:14.88MB日期:2024-04-20 05:31:19
  • 语言:简体中文系统:Android
绿色无毒,安全可靠!部分设备误报拦截请通过!

应用详情

大家好,今天小编为大家分享关于gg修改器免root防崩溃_gg修改器免root使用教学的内容,赶快来一起来看看吧。

旧的安卓手机不要扔,可以拿来做一个微型的linux服务器,编程开发,跑服务都不在话下!本文就以6年前发布的小米2s为例,亲自带大家一起体验一下这种手机服务器并简单分析其中的一些原理。

一、升级最新安卓操作系统

像小米2s这样已经发布6年多的手机,配置已经不够用了。但是我们知道,谷歌每年发布的新安卓系统版本都有性能的优化,所以旧手机如果能升级系统,自然也能改善性能。工欲善其事必先利其器,我们先把旧手机升级一把再说。

魔趣ROM介绍

这是一个国内团队维护ROM,开源并且支持多款安卓设备。最主要的是他跟随谷歌的脚步,当有新的安卓版本发行后,魔趣ROM很快就能为多款安卓设备适配。

魔趣ROM下载地址:https://download./,需要的朋友可根据自己的手机型号选择下载并刷机使用。

例如我的小米2s手机,选品牌和型号

选安卓的版本,我选的是8.1版本:

怎么刷机不是我们关注的重点,需要的请到魔趣论坛或百度搜索。刷机后,我那6年前的破手机用上了androd 8.1:

魔趣ROM的是开源的,这意味着:只要我们愿意,随时可以下载代码下来定制自己的ROM,这非常符合开发人员的胃口!

二、将安卓手机打造成linux服务器

理解linux与安卓的关系

为什么我们只关注C/C++,不是有那么多语言编写的程序吗?

因为c/c++是基础,离开它们基本没什么能跑的了。java虚拟机是c++编写的,python的解析器是c写的,js的解析执行引擎也是c/c++写的。。。

本文的主角—termux简介

termux 是一个安卓平台下的app, 它能够在安卓上实现一个微型的linux,具有命令行界面,可以以apt方式简单的安装各种软件。

termux的安装与使用

软件下载地址

https://f-droid.org/.termux/

软件界面

软件安装后,在手机上展现的界面如下所示,与我们平时操作的linux终端长得一样:

安装openssh,并从PC端访问

终端界面在手机上操作不方便,所以我们安装一个ssh服务,然后用PC来操作它。

1.更新软件源:

apt update

2.安装openssh-server:

1pkg install openssh

3.给termux对应的用户设置一个密码:

$passwd
#根据提示设置一个密码
New password:

4.安装后,需要手动启动sshd:

sshd &

注意:termux的ssh服务默认端口为8022

5.测试连接

在PC端,我在windows上用secure crt连接手机的sshd,设置端口为8022,连接似成功的。连接成功后,你就真正拥有一个微型的linux服务器,可以将手机息屏,为所欲为啦。

termux的简单分析

termux在android系统中运行,与普通的app没有什么两样,在apk安装时,系统为其分配一个用户,例如我的分配的用户为u0_a79。我在手机上点击termux这个app后,其实termux会以u0_a79这个用户身份创建一个新的bash进程,然后所有的命令都在这个bash进程里解析执行。

在termux的界面输入export命令,结果如下:

$ export
declare -x ANDROID_DATA=”/data”
declare -x ANDROID_ROOT=”/system”
declare -x EXTERNAL_STORAGE=”/sdcard”
declare -x HOME=”/data/.termux/files/home”
declare -x LANG=”en_US.UTF-8″
declare -x LD_LIBRARY_PATH=”/data/.termux/files/usr/lib”
declare -x LD_PRELOAD=”/data/.termux/files/usr/lib/libtermux-exec.so”
declare -x LOGNAME=”u0_a79″
declare -x OLDPWD
declare -x PATH=”/data/.termux/files/usr/bin:/data/.termux/files/usr/bin/applets”
declare -x PREFIX=”/data/.termux/files/usr”
declare -x PWD=”/data/.termux/files/home”
declare -x SHELL=”/data/.termux/files/usr/bin/bash”
declare -x SHLVL=”1″
declare -x TERM=”vt100″
declare -x USER=”u0_a79″

我们就可以看到如下端倪:

  1. 当前shell其实为
  2. /data/.termux/files/usr/bin/bash
  3. 当前用户为u0_a79,与安卓系统给termux 分配的的uid一致。
  4. LD_LIBRARY_PATH为
  5. /data/.termux/files/usr/lib,当前shell执行的程序链接的是termux自己的库文件,与安卓系统/system/lib下的无关。
  6. LD_PRELOAD加入了一个libtermux-exec.so,说明应该termux hook了一些系统API接口
  7. PATH环境变量不包含/system/bin目录,所有命令都与android系统自带的命令了无关,termux的shell是一个独立的shell环境。
  8. termux shell里也有am等android命令,但是它自带的,与用/system/bin下的am无关。
  9. HOME目录为
  10. /data/.termux/files/home

通过ps命令,我们就可以更清楚的知道,它其实是termux 创建的一个子进程:

“`shell
$ ps
PID USER TIME COMMAND
29893 u0_a79 0:00 /data/.termux/files/usr/bin/bash -l
“`

因此我们可以确定:

termux的shell是与/system/bin/下的程序一样,用的都是android的libc,编译器应该是arm-linux-androideabi-gcc/g++。

三、玩termux

打造个人编程环境

我们已经拥有一个微型linux服务器了,现在我们尝试在里边编程开发。

安装c/c++编译器:

apt install clang

测试

$ gcc -v
clang version 8.0.0 (tags/RELEASE_800/final)
Target: arm-unknown-linux-android
Thread model: posix
InstalledDir: /data/.termux/files/usr/bin

可以看到打印的arm-unknown-linux-android,的确就是android的编译器。经过测试,用这个编译器编译的程序是可以直接放到android shell中执行的。

经过测试,c、c++、python、node.js等语言在这个微型服务器里都正常运行;搭建tomcat之类的服务也没问题。

如何打造java编程环境?

从前面的分析我们知道,termux shell和android shell一样,执行java字节码的是ART虚拟机,而不是普通的java虚拟机,所以javac编译的.class是无法运行的。

如果一定要执行java字节码,需要通过dx工具将字节码转换成dex文件,然后art虚拟机才能执行。

#termux下不能用openjdk,可以用ecj
apt install ecj
#adroid的.class转.dex工具
apt install dx

apt install termux-tools

#编译
ecj HelloWorld.java
dx –dex –output=HelloWorld.dex HelloWorld.class
#执行
#参照/system/bin/pm 的内容执行即可

很多人肯定会说,这个java环境不爽。那么想打造一个像普通服务器那样的java环境怎么做呢,可以“安装”一个操作系统,后边会介绍。

如何在PC与termux之间传输文件?

我们在服务器内写代码,都在/data/.termux/files/home这个目录里,手机没有root的话,我们是无法访问这个目录的。 我本来想安装一个samba服务器,发现没有这个软件包,所以只能借助网络传输文件:

通过scp工具(windows下用winscp)传输文件,虽然没有直接用samba那么方便但起码可用。

在termux中“安装”ubuntu

termux的linux环境对很多人来说基本是够用的,但是依然是一种android定制版linux,与普通嵌入式linux系统还是有差异的,例如没有普通的java虚拟机。

下面介绍如何在termux shell里搭建一个ubuntu系统环境:

安装wget

用于下载文件

pkg install wget

安装proot

在linux中,chroot是一个需要root权限的操作,它允许将当前根文件系统切换到另外一个目录。例如手机中的进程对应的根目录为/, 我们弄一个/data/local/tmp/xxxx文件夹, 里边有ubuntu的根文件系统,我们chroot到这个文件夹后,在shell界面里看到的/则切换到/data/local/tmp/xxxx了。我们说的安装ubuntu其实只是chroot到一个ubuntu的根文件系统文件夹里而已。

proot是一个无需root权限就能执行chroot操作的工具。用于在ubuntu里模拟需要sudo的权限(否则没法安装软件)。

pkg install proot

下载atilo脚本

wget https://raw./YadominJinta/atilo/master/atilo

下载ubuntu根文件系统并chroot

chmod +x ./atilo
./atilo install ubuntu
#这个命令会执行proot,chroot到所下载的ubuntu根文件系统
startubuntu

执行startubuntu后,根目变到 –> data/.termux/files/home/.atilo/ubuntu去了, 我们就感觉进入了ubuntu系统了。

我们再来对比一下这个ubuntu shell与termux shell不一样的地方:

简单分析和测试我们“安装”的这个ubuntu系统

1.这个系统用的是通用的libc,android系统下的可执行程序无法在这个系统中运行。

我们可以通过查看gcc的版本:

root@localhost:~/workspace# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/8/lto-wrapper
Target: arm-linux-gnueabihf

可见用的是arm-linux-gnueabihf,而不是arm-linux-androideabi了。

2.我们并没有以root身份运行

通过shell界面我们看到,我们似乎在以root权限运行,但是其实是模拟出来的,所以你别想写个内核模块安装到真正的内核里边去。

3.在ubuntu中,运行sshd, samba都失败了

sshd进程一运行就没了,通过gdb运行我们发现它其实段错误了:

同样,smbd进程也奔溃了,报了一个无权限bind socket的错误。

似乎这种chroot后的系统没有直接用termux稳定。对于已经root的系统,可能不需要proot,也许兼容性会更好,感兴趣的可以自行进行尝试。

4.samba服务没法用让我很失望,但其日志中报的socket bind权限问题是怎么回事?

[2019/05/23 01:00:34.679242, 0] ../../source3/lib/util_sock.c:357(open_socket_in)
open_socket_in(): setsockopt: SO_REUSEPORT = true on port 139 failed with error = Protocol not available
[2019/05/23 01:00:34.680860, 0] ../../source3/lib/util_sock.c:396(open_socket_in)
bind failed on port 139 socket_addr = 0.0.0.0.
Error = Permission denied

以上就是关于gg修改器免root防崩溃_gg修改器免root使用教学的全部内容,感谢大家的浏览观看,如果你喜欢本站的文章可以CTRL+D收藏哦。

相关文章

热门下载

大家还在搜