什么是CloudGG?
注意,这不是GG修改器,而是GG云端函数库!
这是GG修改器新的时代,云函数GG修改器,他的强大之处在于简单一键接入,立刻使用远程最新函数库,还支持完美加密和制作解密器,云函数远程更新,对接后的修改器可以不用再次做更改,完美解决了函数对接难,繁琐的问题,且将GG修改器安全提升到更高的层次!
目前CloudGG只是完成了基础架构,需要大家一起为CloudGG的函数库做贡献!您所创作的函数将享有版权!
注意注意,这是免费的!
核心开发者:小五,执念,文艺,妒猫
下载地址
已添加的函数库
- 1.File库
- 2.Json库
- 3.Canvas绘制库
- 4.System库
- 5.Build库
- 6.util库
- 7.Tools库
- 8.Root库
- 9.Screen库
- 10.Zip库
- 11.AES库
- 12.http库
- 13.base64库
File库
function(arg) -->table
arg 为文件路径或者文件夹路径
--调用函数
--文件或者文件夹
file = File("/sdcard/Notes/测试.lua")
判断文件或者文件夹是否存在
--判断路径是否存在 判断是否为文件
print(file.exists()))
判断文件读写或者执行
print(file.canExecute())--判断文件是否可执行
print(file.canRead())--判断文件是否可读
print(file.canWrite())--判断文件是否可写
创建文件夹
file.mkdir()--创建新文件夹(一层)
file.mkdirs()--创建新文件夹(多层)
--判断文件夹不存在并创建
file = File("/sdcard/文件夹")
if not (file.exists() and file.isDirectory()) then
print("目标路径不存在")
file.mkdir()
end
创建新的文件
file.createNewFile()
--判断文件不存在并创建
file = File("/sdcard/文件.lua")
if not (file.exists() and file.isFile()) then
print("目标文件不存在")
file.createNewFile()
end
删除文件或者文件夹
file.delete()
计算文件内容的hash值
print(file.hashCode())
--可以用来判断两个文件
file1 = File("/sdcard/文件1.lua")
file2 = File("/sdcard/文件2.lua")
if (file1.hashCode()==file2.hashCode()) then
print("为同一文件!")
end
判断文件或者文件夹
print(file.isDirectory())--判断是否为文件夹
print(file.isFile())--判断是否为文件
print(file.isAbsolute())--判断是否为完整路径
print(file.isHidden())--判断是否为隐藏文件
获取文件或者文件夹最后修改的时间
print(file.lastModified())--返回的是长整形值的时间戳
--时间格式化
print(os.date("*t", tostring(file.lastModified()):gsub("000","")))
获取文件字节数
print(file.length())
获取目录下所有文件和文件夹名
path = File("/sdcard")
print(path.list())
获取目录下的所有文件和文件夹
path = File("/sdcard")
print(path.listFiles())
--获取绝对路径
file = File("/sdcard")
for k,v in pairs(file.listFiles()) do
print(v.getAbsolutePath())
end
根目录
print(file.listRoots())
get方法
print(file.getAbsolutePath())--获取绝对路径
print(file.getFreeSpace())--获取文件磁盘剩余存储空间
print(file.getTotalSpace))--获取文件磁盘总共存储空间
print(file.getUsableSpace())--获取文件磁盘能使用的空间
print(file.getName())--获取文件夹或者文件名称
print(file.getParent())--获取父路径名称
print(file.getParentFile())--获取父路径
print(file.getPath())--获取file的名称
set方法
file.setExecutable(arg)--所有者或所有人的访问权限设置为执行文件
file.setReadable(arg)--所有者或所有人的读取访问权限设置为读取文件
file.setWritable(arg)--所有者或所有人的写入访问权限设置为写入文件
--以上三个函数传入的参数 arg为boolean的参数
--传入true ,false相反
file.setLastModified()--设置文件的最后修改时间
--修改文件为当前时间
file.setLastModified(os.time().."000")
File函数的简易选择文件
--小五制作的简单基础上优化了下
local mPath = "/sdcard/"--路径
local file = File(mPath)
function date(time)
return os.date("%Y-%m-%d\t%X", tostring(time):gsub("000",""))
end
function readDir(f)
mPath=f.toString()
if (mPath == "/") then
os.exit(gg.alert("无权限访问根目录"))
end
list=f.listFiles()
tab = {
files = {f.getParentFile()},
names = {"📤返回上一级...\n"}
}
table.sort(list,function(a,b)
return (a.isDirectory()~=b.isDirectory() and a.isDirectory()) or ((a.isDirectory()==b.isDirectory()) and a.getName()<b.getName())
end)
for k,v in ipairs(list) do
if(v.isFile())then type = "📄 " else type = "🗂️ " end
tab.names[k+1] = type..v.getName().."\n"..date(v.lastModified()).."\n"
tab.files[k+1] = v
end
end
readDir(file)
function Main()
r = gg.choice(tab.names,nil,mPath)
if(r ~= nil)then
if(tab.files[r].isFile())then
gg.toast("你选择了文件:"..tab.files[r].getAbsolutePath())
CL = 0
else
mPath = tab.files[r].getAbsolutePath()
readDir(tab.files[r])
end
else
CL = 0
end
end
while(true)do
if gg.isVisible(true) then
CL = 1
gg.setVisible(false)
end
if CL == 1 then
Main()
end
end
System库
function() -->table
--打印函数表
print(System)
--[[
{
['currentTimeMillis'] = function: currentTimeMillis,
['exit'] = function: exit,
['nanoTime'] = function: nanoTime,
}
]]
System.currentTimeMillis()
--获取当前时间戳,单位为毫秒
print(System.currentTimeMillis())
System.nanoTime()
--获取当前时间戳,单位为纳秒
print(System.nanoTime())
System.exit(status)
--终止目前正在运行的程序
--status参数为 0:正常终止
--status参数非 0:异常终止
System.exit(0)
Build库
--打印函数表
print(Build)
print("主板:" .. Build.BOARD)
print("系统启动程序版本号:" .. Build.BOOTLOADER)
print("系统定制商:" .. Build.BRAND)
print("cpu指令集:" .. Build.CPU_ABI)
print("cpu指令集2" .. Build.CPU_ABI2)
print("设置参数:" .. Build.DEVICE)
print("显示屏参数:" .. Build.DISPLAY)
print("无线电固件版本:" .. Build.getRadioVersion())
print("硬件识别码:" .. Build.FINGERPRINT)
print("硬件名称:" .. Build.HARDWARE)
print("HOST:" .. Build.HOST)
print("修订版本列表:" .. Build.ID)
print("硬件制造商:" .. Build.MANUFACTURER)
print("版本:" .. Build.MODEL)
print("硬件序列号:" .. Build.SERIAL)
print("手机制造商:" .. Build.PRODUCT)
print("描述Build的标签:" .. Build.TAGS)
print("TIME:" .. Build.TIME)
print("builder类型:" .. Build.TYPE)
--打印SDK
print(Build.VERSION())
{
['SDK'] = '29',
['SDK_INT'] = 29,
}
Util库
本函数库是集合了已知或者未添加的便携功能库
--打印函数表
print(Util)
--[[
{
['getScreen'] = getScreen():返回屏幕数据,
['getUUID'] = getUUID():返回UUID,
['openApp'] = openApp():打开指定包名app,
['openUrl'] = openUrl():打开app的Url,
['qqchat'] = qqchat():打开qq聊天,
['qqgroup'] = [qqgroup():打开qq群,
}
]]
返回屏幕数据
Screen = Util.getScreen()
print(Screen.width)--屏幕宽度
print(Screen.height)--屏幕高度
print(Screen.density)--屏幕密度
print(Screen.densityDpi)--屏幕密度dpi
获取UUID
Util.getUUID(arg)
--arg参数为字符串
--如果没有传入参数
print(Util.getUUID())
--返回随机32位字符串
--如果传入了参数
print(Util.getUUID("你好"))
--返回传入字符串构造的UUID。
跳转其他应用
App = Util.openApp("需要跳转的应用包名")
if App then
gg.toast("成功")
else
gg.alert("失败")
end
跳转浏览器打开网页
Url = Util.openUrl("链接")
if Url then
gg.toast("成功")
else
gg.alert("失败")
end
跳转QQ
--跳转到QQ聊天界面
print(Util.qqchat("QQ号"))
--跳转到QQ群聊界面
print(Util.qqgroup("QQ群"))