Skip to content

Commit

Permalink
Upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Z5X67280 committed Sep 25, 2018
1 parent 8e0cbcd commit 54f7409
Show file tree
Hide file tree
Showing 11 changed files with 328 additions and 2 deletions.
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Declare files that will always have LF line endings on checkout.
META-INF/** text eol=lf
*.prop text eol=lf
*.sh text eol=lf
*.md text eol=lf

# Denote all files that are truly binary and should not be modified.
system/** binary
155 changes: 155 additions & 0 deletions META-INF/com/google/android/update-binary
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#!/sbin/sh
##########################################################################################
#
# Magisk 模块安装脚本模板
# by topjohnwu
# 翻译: cjybyjk
#
##########################################################################################

TMPDIR=/dev/tmp
INSTALLER=$TMPDIR/install
# 总在 tmp 下挂载
MOUNTPATH=$TMPDIR/magisk_img

# 默认权限
umask 022

# 清除工作
rm -rf $TMPDIR 2>/dev/null
mkdir -p $INSTALLER

# 在加载 util_functions 前 echo
ui_print() { echo "$1"; }

require_new_magisk() {
ui_print "*******************************"
ui_print " 请安装 Magisk v17.0+! "
ui_print "*******************************"
exit 1
}

##########################################################################################
# 环境设置
##########################################################################################

OUTFD=$2
ZIP=$3

mount /data 2>/dev/null

# 加载公用函数
if [ -f /data/adb/magisk/util_functions.sh ]; then
. /data/adb/magisk/util_functions.sh
elif [ -f /data/magisk/util_functions.sh ]; then
NVBASE=/data
. /data/magisk/util_functions.sh
else
require_new_magisk
fi

# 如果处于 BOOTMODE(系统模式),则使用替代镜像
$BOOTMODE && IMG=$NVBASE/magisk_merge.img

# 准备卡刷 zip 包
setup_flashable

# 挂载分区
mount_partitions

# 检测版本和架构
api_level_arch_detect

# 你可以从 $API 取得 Android API 版本, 从 $ARCH 取得 CPU 架构
# 如果您正在创建依赖特定 Android版本/平台 的模块,这是非常有用的

# 安装 busybox 和二进制文件
$BOOTMODE && boot_actions || recovery_actions

##########################################################################################
# 准备
##########################################################################################

# 提取公共文件
unzip -o "$ZIP" module.prop config.sh 'common/*' -d $INSTALLER >&2

[ ! -f $INSTALLER/config.sh ] && abort "! 从 zip 中提取文件失败!"
# 加载设置
. $INSTALLER/config.sh

# 检查已安装的 Magisk 版本
MIN_VER=`grep_prop minMagisk $INSTALLER/module.prop`
[ ! -z $MAGISK_VER_CODE -a $MAGISK_VER_CODE -ge $MIN_VER ] || require_new_magisk
MODID=`grep_prop id $INSTALLER/module.prop`
MODPATH=$MOUNTPATH/$MODID

# 打印模块名称
print_modname

# 请将这个信息保留在您的 zip 卡刷包中 :)
ui_print "******************************"
ui_print "Powered by Magisk (@topjohnwu)"
ui_print "******************************"

##########################################################################################
# 安装
##########################################################################################

# 获取变量 reqSizeM。如果需要,可以使用自己的方法来确定 reqSizeM
# reqSizeM 为安装这个模块需要的空间大小, 单位MB
request_zip_size_check "$ZIP"

# 这个函数将挂载 $IMG 到 $MOUNTPATH,并根据 $reqSizeM 调整镜像大小
mount_magisk_img

# 创建模块路径
rm -rf $MODPATH 2>/dev/null
mkdir -p $MODPATH

# 将文件解压缩到 system 。如果需要,可以使用自己的方法
ui_print "- 正在解压模块文件"
unzip -o "$ZIP" 'system/*' -d $MODPATH >&2

# 删除 placeholder
rm -f $MODPATH/system/placeholder 2>/dev/null

# 处理 replace 文件夹
for TARGET in $REPLACE; do
mktouch $MODPATH$TARGET/.replace
done

# 自动挂载
$AUTOMOUNT && touch $MODPATH/auto_mount

# prop 文件
$PROPFILE && cp -af $INSTALLER/common/system.prop $MODPATH/system.prop

# 模块信息
cp -af $INSTALLER/module.prop $MODPATH/module.prop
if $BOOTMODE; then
# 为 Magisk Manager 更新信息
mktouch /sbin/.core/img/$MODID/update
cp -af $INSTALLER/module.prop /sbin/.core/img/$MODID/module.prop
fi

# post-fs-data 模式脚本
$POSTFSDATA && cp -af $INSTALLER/common/post-fs-data.sh $MODPATH/post-fs-data.sh

# service 模式脚本
$LATESTARTSERVICE && cp -af $INSTALLER/common/service.sh $MODPATH/service.sh

ui_print "- 正在设置权限"
set_permissions

##########################################################################################
# 结束
##########################################################################################

# 卸载 magisk 镜像, 并尽可能地缩小它
unmount_magisk_img

$BOOTMODE || recovery_cleanup
rm -rf $TMPDIR

ui_print "- 完成"
exit 0
1 change: 1 addition & 0 deletions META-INF/com/google/android/updater-script
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#MAGISK
41 changes: 39 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,39 @@
# Android_Debug_Bridge_On_Android
adb
# Android Debug Bridge On Android

在你的Android设备上使用Android Debug Bridge(包括Fastboot)

# 这是什么?

Android Debug Bridge,简称ADB。

这是一套 Android 调试工具,可以对任何 Android 设备进行 Debug 级操作。

包括一些非常危险的操作,Android Debug Bridge都能完成。

你甚至能在 Android Debug Bridge 上直接使用设备的 Shell,而且能直接进行比普通的 Android Shell 权限要求更高的操作。

这也催生了一些有趣的玩法,如:Brevent (黑阈),IceBox(冰箱),Island(岛)

这个 Magisk Module 就可以让你在你的 Android Shell 上(如:NeoTerm,Termux,TermialEmu)运行 Android Debug Bridge。

而且,Fastboot 工具也随该模块自带。

# 如何使用?

安装此模块后,打开你的 Android 终端,在里面输入: `adb [command]` 即可使用 Android Debug Bridge。

输入: `fastboot [command]` 即可使用 Fastboot 工具。

具体怎么用,我想你还是 [百度](https://www.baidu.com)[Google HK](https://www.google.com.hk) 一下吧。

毕竟我教不会。

# 一些有趣的玩法……

其实你可以使用该 Fastboot 工具,给其他的 Android 设备进行刷机(解锁bootloader,刷Recovery,甚至救砖)操作。当然了,你要有一根可以连接两台手机的线。(手动滑稽)

而且你可以用该 ADB 工具,给其他的 Android 设备进行调试。(再次手动滑稽)

其实,只要你想的出来,它都可以做,真的。(最后一次滑稽)

# 如果你想在 Android 端调试 Android 设备,这个模块一定适合你!
7 changes: 7 additions & 0 deletions common/post-fs-data.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/system/bin/sh
# 请不要硬编码 /magisk/modname/... ; 请使用 $MODDIR/...
# 这将使你的脚本更加兼容,即使Magisk在未来改变了它的挂载点
MODDIR=${0%/*}

# 这个脚本将以 post-fs-data 模式执行
# 更多信息请访问 Magisk 主题
7 changes: 7 additions & 0 deletions common/service.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/system/bin/sh
# 请不要硬编码 /magisk/modname/... ; 请使用 $MODDIR/...
# 这将使你的脚本更加兼容,即使Magisk在未来改变了它的挂载点
MODDIR=${0%/*}

# 这个脚本将以 late_start service 模式执行
# 更多信息请访问 Magisk 主题
3 changes: 3 additions & 0 deletions common/system.prop
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 这个文件将被 resetprop 读取
# 示例: 改变 dpi
# ro.sf.lcd_density=320
101 changes: 101 additions & 0 deletions config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
##########################################################################################
#
# Magisk 模块配置脚本示例
# by topjohnwu
# 翻译: cjybyjk
#
##########################################################################################
##########################################################################################
#
# 说明:
#
# 1. 将您的文件放入 system 文件夹 (删除 placeholder 文件)
# 2. 将模块信息写入 module.prop
# 3. 在这个文件中进行设置 (config.sh)
# 4. 如果您需要在启动时执行命令, 请把它们加入 common/post-fs-data.sh 或 common/service.sh
# 5. 如果需要修改系统属性(build.prop), 请把它加入 common/system.prop
#
##########################################################################################

##########################################################################################
# 配置
##########################################################################################

# 如果您需要启用 Magic Mount, 请把它设置为 true
# 大多数模块都需要启用它
AUTOMOUNT=true

# 如果您需要加载 system.prop, 请把它设置为 true
PROPFILE=false

# 如果您需要执行 post-fs-data 脚本, 请把它设置为 true
POSTFSDATA=false

# 如果您需要执行 service 脚本, 请把它设置为 true
LATESTARTSERVICE=false

##########################################################################################
# 安装信息
##########################################################################################

# 在这里设置您想要在模块安装过程中显示的信息

print_modname() {
ui_print "*******************************"
ui_print " Android Debug Bridge On Android "
ui_print " 版本:1.0.36 "
ui_print " 作者:FLASHing vs Crixec "
ui_print "*******************************"
}

##########################################################################################
# 替换列表
##########################################################################################

# 列出您想在系统中直接替换的所有目录
# 查看文档,了解更多关于Magic Mount如何工作的信息,以及您为什么需要它

# 这是个示例
REPLACE="
/system/app/Youtube
/system/priv-app/SystemUI
/system/priv-app/Settings
/system/framework
"

# 在这里构建您自己的列表,它将覆盖上面的示例
# 如果你不需要替换任何东西,!千万不要! 删除它,让它保持现在的状态
REPLACE="
"

##########################################################################################
# 权限设置
##########################################################################################

set_permissions() {
# 只有一些特殊文件需要特定的权限
# 默认的权限应该适用于大多数情况

# 下面是 set_perm 函数的一些示例:

# set_perm_recursive <目录> <所有者> <用户组> <目录权限> <文件权限> <上下文> (默认值是: u:object_r:system_file:s0)
# set_perm_recursive $MODPATH/system/lib 0 0 0755 0644

# set_perm <文件名> <所有者> <用户组> <文件权限> <上下文> (默认值是: u:object_r:system_file:s0)
# set_perm $MODPATH/system/bin/app_process32 0 2000 0755 u:object_r:zygote_exec:s0
# set_perm $MODPATH/system/bin/dex2oat 0 2000 0755 u:object_r:dex2oat_exec:s0
# set_perm $MODPATH/system/lib/libart.so 0 0 0644

# 以下是默认权限,请勿删除
set_perm_recursive $MODPATH 0 0 0755 0644
}

##########################################################################################
# 自定义函数
##########################################################################################

# 这个文件 (config.sh) 将被安装脚本在 util_functions.sh 之后 source 化(设置为环境变量)
# 如果你需要自定义操作, 请在这里以函数方式定义它们, 然后在 update-binary 里调用这些函数
# 不要直接向 update-binary 添加代码,因为这会让您很难将模块迁移到新的模板版本
# 尽量不要对 update-binary 文件做其他修改,尽量只在其中执行函数调用

7 changes: 7 additions & 0 deletions module.prop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
id=adb
name=Android Debug Bridge On Android
version=1.0.36
versionCode=1
author=FLASHing vs Crixec
description=在你的Android设备上使用Android Debug Bridge(包括Fastboot)
minMagisk=17000
Binary file added system/bin/adb
Binary file not shown.
Binary file added system/bin/fastboot
Binary file not shown.

0 comments on commit 54f7409

Please sign in to comment.