下载重定向模块开源

文件结构:

下载重定向v1.0.zip

|-- common
| |-- config.conf
| |-- post-fs-data.sh
| |-- system.prop
| |-- log.txt
| |-- service.sh
|-- META-INF
| |-- com
| |-- google
| |-- android
| |-- update-binary
| |-- update-script
|-- system
|-- module.prop
|-- customize.sh
|-- uninstall.sh


文件内容:

|-- common
| |-- config.conf



#配置说明:
#SDIR是原路径,
#TDIR是目标路径,
#TS是刷新延迟(默认5s)。
#RM表示是否删除原目录,填1在每次移动完成后都会删除原来的目录,填0不会(慎用)

#路径以/结尾
    
#例如
#SDIR=/sdcard/a/
#TDIR=/sdcard/b/
#RM=1

#TS=5

#模块就会每隔5s扫描/sdcard/a/下的文件,如果没有下载中的文件,就会把文件移动到/sdcard/b/,并且删除/sdcard/a
    
    
#-----  配置区域  -----

TS=5

SDIR1=
TDIR1=
RM1=0

SDIR2=
TDIR2=
RM2=0

SDIR3=
TDIR3=
RM3=0

SDIR3=
TDIR3=
RM3=0

SDIR4=
TDIR4=
RM4=0

SDIR5=
TDIR5=
RM5=0

SDIR6=
TDIR6=
RM6=0

SDIR7=
TDIR7=
RM7=0

SDIR8=
TDIR8=
RM8=0

SDIR9=
TDIR9=
RM9=0

SDIR10=
TDIR10=
RM10=0

|-- common
| |-- post-fs-data.sh

#!/system/bin/sh
# 请不要硬编码/magisk/modname/...;相反,请使用$MODDIR/...
# 这将使您的脚本兼容,即使Magisk以后改变挂载点
MODDIR=${0%/*}

# 此脚本将在post-fs-data模式下执行

|-- common
| |-- system.prop

# This file will be read by resetprop
# 示例: 更改 dpi
# ro.sf.lcd_density=360
# vendor.display.lcd_density=360
# 此文件映射 /system/build.prop

|-- common
| |-- service.sh

#!/system/bin/sh
#请不要硬编码/magisk/modname/...;相反,请使用$MODDIR/...
#这将使您的脚本兼容,即使Magisk以后改变挂载点


MODDIR=${0%/*}
LOG=$MODDIR/log.txt
counter=0
config_file=$MODDIR/config.txt

#该脚本将在设备开机后作为延迟服务启动
while true; do
    while [ "$(getprop sys.boot_completed)" != "1" ]; do
        sleep 20
    done
    time=$(date +"%Y-%m-%d %H:%M:%S")
    echo "👌[$time] 开机完成,已进入循环" >> $LOG    
  
    #获取变量
    configs="$(cat "$MODDIR/config.conf" | egrep -v '^#')"
	
    #分割变量提纯
    SDIR1=$(echo "$configs" | awk -F '=' '/^SDIR1=/{print $2}')
    SDIR2=$(echo "$configs" | awk -F '=' '/^SDIR2=/{print $2}')
    SDIR3=$(echo "$configs" | awk -F '=' '/^SDIR3=/{print $2}')
	SDIR4=$(echo "$configs" | awk -F '=' '/^SDIR4=/{print $2}')
    SDIR5=$(echo "$configs" | awk -F '=' '/^SDIR5=/{print $2}')
    SDIR6=$(echo "$configs" | awk -F '=' '/^SDIR6=/{print $2}')
	SDIR7=$(echo "$configs" | awk -F '=' '/^SDIR7=/{print $2}')
    SDIR8=$(echo "$configs" | awk -F '=' '/^SDIR8=/{print $2}')
    SDIR9=$(echo "$configs" | awk -F '=' '/^SDIR9=/{print $2}')
	SDIR10=$(echo "$configs" | awk -F '=' '/^SDIR10=/{print $2}')

    TDIR1=$(echo "$configs" | awk -F '=' '/^TDIR1=/{print $2}')
    TDIR2=$(echo "$configs" | awk -F '=' '/^TDIR2=/{print $2}')
    TDIR3=$(echo "$configs" | awk -F '=' '/^TDIR3=/{print $2}')
	TDIR4=$(echo "$configs" | awk -F '=' '/^TDIR4=/{print $2}')
    TDIR5=$(echo "$configs" | awk -F '=' '/^TDIR5=/{print $2}')
    TDIR6=$(echo "$configs" | awk -F '=' '/^TDIR6=/{print $2}')
	TDIR7=$(echo "$configs" | awk -F '=' '/^TDIR7=/{print $2}')
    TDIR8=$(echo "$configs" | awk -F '=' '/^TDIR8=/{print $2}')
    TDIR9=$(echo "$configs" | awk -F '=' '/^TDIR9=/{print $2}')
	TDIR10=$(echo "$configs" | awk -F '=' '/^TDIR10=/{print $2}')
	
	RM1=$(echo "$configs" | awk -F '=' '/^RM1=/{print $2}')
    RM2=$(echo "$configs" | awk -F '=' '/^RM2=/{print $2}')
    RM3=$(echo "$configs" | awk -F '=' '/^RM3=/{print $2}')
	RM4=$(echo "$configs" | awk -F '=' '/^RM4=/{print $2}')
    RM5=$(echo "$configs" | awk -F '=' '/^RM5=/{print $2}')
    RM6=$(echo "$configs" | awk -F '=' '/^RM6=/{print $2}')
	RM7=$(echo "$configs" | awk -F '=' '/^RM7=/{print $2}')
    RM8=$(echo "$configs" | awk -F '=' '/^RM8=/{print $2}')
    RM9=$(echo "$configs" | awk -F '=' '/^RM9=/{print $2}')
	RM10=$(echo "$configs" | awk -F '=' '/^RM10=/{print $2}')
	
	TS=$(echo "$configs" | awk -F '=' '/^TS=/{print $2}')
	
#----------------SDIR1 -> TDIR1---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR1" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR1" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR1
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录1] 检测到$TDIR1(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录1] 检测到$TDIR1(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR1" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录1] 检测到$SDIR1(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp1=$(find $SDIR1 -type f -name '*.tmp')
                if [ -n "$tmp1" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录1] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录1] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR1 | wc -l)       
                    #移动文件
                    mv $SDIR1* $TDIR1
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM1" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR1"
                        echo "✅[$time] [目录1] 已为您删除$SDIR1(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录1]$SDIR1
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录1] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录1] 检测到$SDIR1(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录1] 检测到$TDIR1(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕
    
#----------------SDIR2 -> TDIR2---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR2" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR2" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR2
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录2] 检测到$TDIR2目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录2] 检测到$TDIR2(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR2" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录2] 检测到$SDIR2(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp2=$(find $SDIR2 -type f -name '*.tmp')
                if [ -n "$tmp2" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录2] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录2] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR2 | wc -l)       
                    #移动文件
                    mv $SDIR2* $TDIR2
                    
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM2" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR2"
                        echo "✅[$time] [目录2] 已为您删除$SDIR2(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录2]$SDIR2
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录2] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录2] 检测到$SDIR2(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录2] 检测到$TDIR2(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕
    
#----------------SDIR3 -> TDIR3---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR3" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR3" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR3
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录3] 检测到$TDIR3(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录3] 检测到$TDIR3(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR3" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录3] 检测到$SDIR3(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp3=$(find $SDIR3 -type f -name '*.tmp')
                if [ -n "$tmp3" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录3] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录3] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR3 | wc -l)       
                    #移动文件
                    mv $SDIR3* $TDIR3
                    
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM3" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR3"
                        echo "✅[$time] [目录3] 已为您删除$SDIR3(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录3]$SDIR3
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录3] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录3] 检测到$SDIR3(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录3] 检测到$TDIR3(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕   

#----------------SDIR4 -> TDIR4---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR4" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR4" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR4
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录4] 检测到$TDIR4(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录4] 检测到$TDIR4(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR4" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录4] 检测到$SDIR4(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp4=$(find $SDIR4 -type f -name '*.tmp')
                if [ -n "$tmp4" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录4] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录4] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR4 | wc -l)       
                    #移动文件
                    mv $SDIR4* $TDIR4
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM4" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR4"
                        echo "✅[$time] [目录4] 已为您删除$SDIR4(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录4]$SDIR4
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录4] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录4] 检测到$SDIR4(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录4] 检测到$TDIR4(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕
    
#----------------SDIR5 -> TDIR5---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR5" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR5" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR5
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录5] 检测到$TDIR5(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录5] 检测到$TDIR5(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR5" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录5] 检测到$SDIR5(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp5=$(find $SDIR5 -type f -name '*.tmp')
                if [ -n "$tmp5" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录5] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录5] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR5 | wc -l)       
                    #移动文件
                    mv $SDIR5* $TDIR5
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM5" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR5"
                        echo "✅[$time] [目录5] 已为您删除$SDIR5(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录5]$SDIR5
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录5] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录5] 检测到$SDIR5(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录5] 检测到$TDIR5(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------SDIR6 -> TDIR6---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR6" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR6" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR6
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录6] 检测到$TDIR6(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录6] 检测到$TDIR6(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR6" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录6] 检测到$SDIR6(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp6=$(find $SDIR6 -type f -name '*.tmp')
                if [ -n "$tmp6" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录6] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录6] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR6 | wc -l)       
                    #移动文件
                    mv $SDIR6* $TDIR6
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM6" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR6"
                        echo "✅[$time] [目录6] 已为您删除$SDIR6(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录6]$SDIR6
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录6] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录6] 检测到$SDIR6(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录6] 检测到$TDIR6(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------SDIR7 -> TDIR7---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR7" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR7" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR7
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录7] 检测到$TDIR7(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录7] 检测到$TDIR7(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR7" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录7] 检测到$SDIR7(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp7=$(find $SDIR7 -type f -name '*.tmp')
                if [ -n "$tmp7" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录7] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录7] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR7 | wc -l)       
                    #移动文件
                    mv $SDIR7* $TDIR7
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM7" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR7"
                        echo "✅[$time] [目录7] 已为您删除$SDIR7(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录7]$SDIR7
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录7] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录7] 检测到$SDIR7(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录7] 检测到$TDIR7(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------SDIR6 -> TDIR6---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR6" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR6" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR6
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录6] 检测到$TDIR6(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录6] 检测到$TDIR6(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR6" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录6] 检测到$SDIR6(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp6=$(find $SDIR6 -type f -name '*.tmp')
                if [ -n "$tmp6" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录6] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录6] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR6 | wc -l)       
                    #移动文件
                    mv $SDIR6* $TDIR6
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM6" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR6"
                        echo "✅[$time] [目录6] 已为您删除$SDIR6(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录6]$SDIR6
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录6] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录6] 检测到$SDIR6(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录6] 检测到$TDIR6(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------SDIR9 -> TDIR9---------------------

    #检查TDIR路径是否为空
    if [[ "$TDIR9" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR9" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR9
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录9] 检测到$TDIR9(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录9] 检测到$TDIR9(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR9" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录9] 检测到$SDIR9(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp9=$(find $SDIR9 -type f -name '*.tmp')
                if [ -n "$tmp9" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录9] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录9] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR9 | wc -l)       
                    #移动文件
                    mv $SDIR9* $TDIR9
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM9" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR9"
                        echo "✅[$time] [目录9] 已为您删除$SDIR9(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录9]$SDIR9
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录9] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录9] 检测到$SDIR9(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录9] 检测到$TDIR9(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------SDIR10 -> TDIR10---------------------
    #检查TDIR路径是否为空
    if [[ "$TDIR10" != "" ]]; then
        #若TIDR路径不为空
        #检查TIR是否存在
        if [ ! -d "$TDIR10" ]; then
        #若不存在,则创建路径并生成日志
            mkdir -p $TDIR10
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录10] 检测到$TDIR10(目标目录)目录不存在,已创建目录" >> $LOG        
        else    #若存在,则进入下一层判断
            #生成日志
            time=$(date +"%Y-%m-%d %H:%M:%S")
            echo "👌[$time] [目录10] 检测到$TDIR10(目标目录)目录已存在" >> $LOG
            #检查SDIR路径是否为空
            if [[ "$SDIR10" != "" ]];then
            #若不为空
                #生成日志,后进行下载状态判断
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "👌[$time] [目录10] 检测到$SDIR10(原目录)目录已存在" >> $LOG
                #检查SDIR目录下是否有.tmp文件
                tmp10=$(find $SDIR10 -type f -name '*.tmp')
                if [ -n "$tmp10" ]; then
                    #如果有,生成日志,进入下一次循环
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "❗️[$time] [目录10] 已发现下载中的文件,不进行移动,进入下一次循环
        ----------------------------------------" >> $LOG
                else    #如果没有,则进行文件移动
                    #生成日志
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "👌[$time] [目录10] 未发现下载中的文件,开始移动文件" >> $LOG
                    #获取要移动的文件数量
                    files_to_move=$(ls $SDIR10 | wc -l)       
                    #移动文件
                    mv $SDIR10* $TDIR10
                                       
                    #判断是否删除目录
                    #检查 $RM 是否等于 1
                    if [ "$RM10" -eq 1 ]; then
                        #如果 $RM 等于 1,则删除目录 $SDIR
                        rm -rf "$SDIR10"
                        echo "✅[$time] [目录10] 已为您删除$SDIR10(原目录)"
                    #如果 $RM 不等于 1,则不执行任何操作
                    fi
                    
                    #更新计数器
                    counter=$((counter + files_to_move))
                    title="最新移动位于[目录10]$SDIR10
                    ✅本模块共为您移动了 $counter 个文件!"
                    time=$(date +"%Y-%m-%d %H:%M:%S")
                    echo "✅[$time] [目录10] 第$counter个文件移动已完成,计数器更新完毕,进入下一次循环
        ----------------------------------------" >> $LOG
                fi    #下载状态判断结束
            else    #如果SDIR路径为空
                #生成日志
                time=$(date +"%Y-%m-%d %H:%M:%S")
                echo "🚫[$time] [目录10] 检测到$SDIR10(原目录)路径未填写,跳过移动" >> $LOG
                  
            fi    #SDIR路径是否为空判断结束                
        fi    #TDIR是否存在判断结束
    else    #若TDIR路径为空
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🚫[$time] [目录10] 检测到$TDIR10(目标目录)路径未填写,跳过移动" >> $LOG       
    fi    #TDIR路径是否为空判断完毕

#----------------一轮文件移动完成---------------------      
 
    #更新计数器
    sed -i '/^description=/d' $MODDIR/module.prop
    echo "description=${title}" >>$MODDIR/module.prop
    
    #删日志
    #获取日志的行数
    line_count=$(wc -l < $LOG)
    #检查行数是否超过1024
    if [ $line_count -gt 10000 ]; then
        #删除前128行
        awk 'NR>1000' $LOG > $MODDIR/temp.txt && mv $MODDIR/temp.txt $LOG
        time=$(date +"%Y-%m-%d %H:%M:%S")
        echo "🔪[$time] 日志已满10000行,自动删除前1000行" >> $LOG
    fi
    
    
    #睡眠5秒
    sleep $TS
done

|-- common
| |-- log.txt

|-- META-INF
| |-- com
| |-- google
| |-- android
| |-- update-binary

#!/sbin/sh

#################
# Initialization
#################

umask 022

# echo before loading util_functions
ui_print() { echo "$1"; }

ui_print "*******************************"

require_new_magisk() {
  ui_print "*******************************"
  ui_print " Please install Magisk v20.4+! "
  ui_print "*******************************"
  exit 1
}

#########################
# Load util_functions.sh
#########################

OUTFD=$2
ZIPFILE=$3

mount /data 2>/dev/null

[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk
. /data/adb/magisk/util_functions.sh
[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk

install_module
exit 0

|-- META-INF
| |-- com
| |-- google
| |-- android
| |-- update-script

#MAGISK

|-- module.prop

id=DownloadHelper
name=下载重定向
version=3.0
versionCode=28
author=于乐Yule
description=模块刷入成功,请重启手机~

|-- customize.sh

##########################################################################################
#
# Magisk Module Template Config Script
# by 小白杨
#
##########################################################################################
##########################################################################################
#
# Instructions:
#
# 1. Place your files into system folder (delete the placeholder file)
# 2. Fill in your module's info into module.prop
# 3. Configure the settings in this file (config.sh)
# 4. If you need boot scripts, add them into common/post-fs-data.sh or common/service.sh
# 5. Add your additional or modified system properties into common/system.prop
#
##########################################################################################

##########################################################################################
# Configs
##########################################################################################

# Set to true if you need to enable Magic Mount
# Most mods would like it to be enabled

##########################################################################################
# Installation Message
##########################################################################################

# Set what you want to show when installing your mod

print_modname() {
  ui_print "*******************************"
  ui_print "         By 于乐Yule"
  ui_print "*******************************"
}

##########################################################################################
# Replace list
##########################################################################################

# List all directories you want to directly replace in the system
# Check the documentations for more info about how Magic Mount works, and why you need this

# This is an example
REPLACE="
/system/app/Youtube
/system/priv-app/SystemUI
/system/priv-app/Settings
/system/framework
"

# Construct your own list here, it will override the example above
# !DO NOT! remove this if you don't need to replace anything, leave it empty as it is now
REPLACE="

"
#添加您要精简的APP/文件夹目录
#例如:精简状态栏,找到状态栏目录为  /system/priv-app/SystemUI/SystemUI.apk     
#转化加入:/system/priv-app/SystemUI
#(可以搭配高级设置获取APP目录)

##########################################################################################
# Permissions
##########################################################################################
#释放文件,普通shell命令
on_install() {
  ui_print "- 正在为主人刷入中喵~"
  unzip -o "$ZIPFILE" 'system/*' -d $MODPATH >&2
}

set_permissions() {
  # Only some special files require specific permissions
  # The default permissions should be good enough for most cases

  # Here are some examples for the set_perm functions:

  # set_perm_recursive  <dirname>                <owner> <group> <dirpermission> <filepermission> <contexts> (default: u:object_r:system_file:s0)
  # set_perm_recursive  $MODPATH/system/lib       0       0       0755            0644

  # set_perm  <filename>                         <owner> <group> <permission> <contexts> (default: 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

  # The following is default permissions, DO NOT remove
  set_perm_recursive  $MODPATH  0  0  0755  0644
  
  #设置权限,基本不要去动
}

##########################################################################################
# Custom Functions
##########################################################################################

# This file (config.sh) will be sourced by the main flash script after util_functions.sh
# If you need custom logic, please add them here as functions, and call these functions in
# update-binary. Refrain from adding code directly into update-binary, as it will make it
# difficult for you to migrate your modules to newer template versions.
# Make update-binary as clean as possible, try to only do function calls in it.


CommonPath=$MODPATH/common
if [ ! -d ${CommonPath} ];then
  ui_print "模块高级设置不需要修复!"
  
elif [ "`ls -A ${CommonPath}`" = "" ];then
    ui_print "模块高级设置为空!"
    rm  -rf  ${CommonPath}
else

  ui_print "- 正在努力为主人刷入中喵~"
  mv  ${CommonPath}/*  $MODPATH
  rm  -rf ${CommonPath}
  ui_print "*******************************"
  ui_print "刷入成功~"
  ui_print "请重启后前往
  /data/adb/modules/DownloadHelper/config.conf
  配置哦~~"
  ui_print "日志位于/data/adb/modules/DownloadHelper/log.txt"
fi


|-- uninstall.sh

#卸载模块时候执行的脚本

by 于乐Yule