--本人亲自泛滥
--原因不想干了
-- 把以上代码复制到你脚本最前面即可
gg.alert('RLGG')
function wow()
gg.playMusic("/storage/emulated/0/锦木千束国体范围/图片/wow.mp3")
end
draw.setSize(45)
draw.setStyle("填充")
draw.setColor("#4FC3F7")
draw.text("锦木千束国体范围", 340, 180)
draw.text("联系方式@HYHOOK78", 340, 230)
local material3 = require 'material3'
local context=material3:getContext()
import'com.google.android.material.slider.Slider'
import'android.content.res.ColorStateList'
import'com.google.android.material.dialog.MaterialAlertDialogBuilder'
import'com.google.android.material.card.MaterialCardView'
import'com.google.android.material.materialswitch.MaterialSwitch'
import('android.content.res.ColorStateList')
context:setTheme(0x7f090009)
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
changan = {}
colorvs={}
local changan = changan
local android = import('android.*')
function write(fileName, content)
file.write(fileName, content)
end
function getBG(DrawableColor,Radius,StrokeWidth,StrokeColor)
if type(DrawableColor)~='table' then
DrawableColor={DrawableColor,DrawableColor}
end
local jianbians = luajava.loadlayout({
GradientDrawable,
color = 0xff000000,
gradientType = GradientDrawable.LINEAR_GRADIENT,
orientation = GradientDrawable.Orientation.TOP_BOTTOM ,
})
jianbians:setColors(DrawableColor)
jianbians:setStroke(StrokeWidth or 0,StrokeColor or 0xffffffff)
if type(Radius)=='table' then
jianbians:setCornerRadii({Radius[1],Radius[1],Radius[2],Radius[2],Radius[3],Radius[3],Radius[4],Radius[4]})
else
jianbians:setCornerRadius(Radius or 0)
end
return jianbians
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end
function wtcf(lujing,neirong)
write("/sdcard/锦木千束国体范围/配置文件/"..lujing,neirong)
end
function rdcf(lujing)
return read("/sdcard/锦木千束国体范围/配置文件/"..lujing)
end
开 = "开" 关 = "关"
function checkimg(tmp,ii)
if file.length("/sdcard/锦木千束国体范围/图片/"..tmp[1],false)<200 then
gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待")
luajava.download(tmp[2],"/sdcard/锦木千束国体范围/图片/"..tmp[1])
end
end
ckimg = {
{'quarkcheckoff','https://cccimg.com/view.php/2569312c453c8e469a8da02236e21119'},
{'quarkcheckon','https://cccimg.com/view.php/7d969ed814699db3711dd7011e5398d5'},
{'xfctb','https://cccimg.com/view.php/b9de0cb5a03f88d6e19a9b9456a27773'},
{'yx','https://cccimg.com/view.php/ed248003934582a63b91fad2fade143f'},
{'zsjtb','https://cccimg.com/view.php/ead0d7129929ea682bbcfb139269c582'},
{'zsjx','https://cccimg.com/view.php/5eaf3846c0749bf7c94a689bf3f7d92e'},
{'bjt','https://cccimg.com/view.php/d13f160f004f5c4984fdf7db634c0db2'},
{'hei_right','https://cccimg.com/view.php/dfcc155180c66711a66a1c6540db5e03'},
{'classes3.dex','https://cccimg.com/down.php/29e1a4722ddf781d8f8d95a68f4e07ad.dex'},
{'wow.mp3','https://wp.kayyw.com/f/NLQVtq/wow.mp3'},
}
for i = 1,#ckimg do
checkimg(ckimg[i],i)
end
function checkimg(tmp,ii)
if file.length("/storage/emulated/0/锦木千束国体范围/图片/"..tmp[1],false)<200 then
gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待")
luajava.download(tmp[2],"/storage/emulated/0/锦木千束国体范围/图片/"..tmp[1])
end
end
ckimg = {
{'j','https://cccimg.com/down.php/393b54eed04effdd96bafc7df1da6237.'},
{'y','https://cccimg.com/down.php/8723abc7d7e841edeb17997dd492662c.'}
}
for i = 1,#ckimg do
checkimg(ckimg[i],i)
end
function 获取图片(txt)
txt = string.url(txt,"de")
ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1)
if string.find(tostring(txt),"http") ~= nil then
if panduan("/sdcard/锦木千束国体范围/图片/"..ntxt) == false then
file.download(txt,"/sdcard/锦木千束国体范围/图片/"..ntxt)
else
if file.length("/sdcard/锦木千束国体范围/图片/"..ntxt) <= 1 then
file.download(txt,"/sdcard/锦木千束国体范围/图片/"..ntxt)
end
end
txt = "/sdcard/锦木千束国体范围/图片/"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
function getRes(x)
return 获取图片("/sdcard/锦木千束国体范围/图片/"..x)
end
function particle()
local webView = luajava.webView(function(webView)
webView:loadData([[
]]..标题..[[
]], 'text/html', 'UTF-8')
webView:setBackgroundColor(0x0)
end)
return webView
end
function particle2()
local webView = luajava.webView(function(webView)
webView:loadData([[
Purple Meteor Shower
]], 'text/html', 'UTF-8')
webView:setBackgroundColor(0x0)
end)
return webView
end
function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)
return jianbians
end
function getCorner(gtvb1,gtvb3,gtvb4,gtvb5,g1,g2,g3,g4)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
jianbians:setCornerRadii({g1,g1,g2,g2,g3,g3,g4,g4})
return jianbians
end
function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
return jianbians
end
context = app.context
window = context:getSystemService("window") -- 获取窗口管理器
function getLayoutParams()
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
layoutParams.type = LayoutParams.TYPE_PHONE
end
layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度
return layoutParams
end
slctb = getVerticalBG({0xffefefef,0xffefefef},10)
slcta = getHorizontalBG({0xff0077ff,0xff975DFF},10)
function getButtonBG()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0x33fffffff,0x33fffffff},15))
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({0x55ffffff,0x55ffffff},15))
return selector
end
function getSelector()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slcta) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctb) -- 没点击的背景
return selector
end
hanshu = function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.x
y = mainLayoutParams.y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX)
mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(floatWindow, mainLayoutParams)
end
end
YoYoImpl = luajava.getYoYoImpl()
changan.menu = function(sview)
parti=particle()
菜单页数=#sview
当前分区={} 分区页数={}
侧边={} 功能区={} 顶边={
LinearLayout,
layout_height='match_parent',
layout_width='match_parent',
}
beij=getHorizontalBG({0xffffffff,0xffffffff},25)
侧边ui={
LinearLayout,
layout_width='wrap_content',
layout_height='match_parent',
id='cebians',
gravity='center',
}
jmbg={}
for i = 1,菜单页数 do
分区页数[i]= #sview[i]
table.insert(顶边,{
LinearLayout,
orientation='vertical',
gravity='center_horizontal',
{
TextView,
layout_height='match_parent',
layout_weight=1,
layout_width='wrap_content',
padding={'15dp','2dp','15dp','2dp'},
text=sview[i]['分页名字'],
textColor='#000000',
textSize='13sp',
gravity='center',
id='ding'..i,
elevation='2dp',
layout_margin='4dp',
-- background=getVerticalBG({0xffffffff,0xffffffff},10),
onClick=function() 切换(i) end,
},{
LinearLayout,
visibility='gone',
layout_width='26dp',
__onFinish=function(v)
_ENV['dingb'..i]=v
end,
layout_height='2dp',
background=getVerticalBG({0xffB76670,0xffB76670},20),
}})
功能区[i]={}
jmbg[i]={}
local cebian = {
LinearLayout,
layout_height = "match_parent",
layout_width = "wrap_content",
orientation = "horizontal",
gravity = "center",
orientation='vertical',
}
local layoutm={
LinearLayout,
id = "layoutm"..i,
padding='4dp',
layout_width = "match_parent",
orientation = "vertical",
gravity = "center_horizontal",
}
for j = 1,分区页数[i] do
jmbg[i][j]={
getBG(0xff0f87fa,{0,10,10,0}),
getVerticalBG({0x00f7f8fa,0x00f7f8fa},0)
}
cebian[#cebian+1] =
{
TextView,
id = "jm"..i..j,
background=jmbg[i][j][1],
text = sview[i][j]['分区名字'],
gravity = "center",
textSize = "12sp",
textColor = "#000000",
layout_height = "34dp",
layout_width = "68dp",
onClick=function() 分区(j) end
}
local menulayout={
LinearLayout,
layout_width='match_parent',
layout_height='wrap_content',
visibility = "gone",
orientation = "vertical",
id='menu'..i..j,
}
for k,v in pairs(sview[i][j]['功能配置']) do
table.insert(menulayout,v)
end
local menulayout=luajava.loadlayout(menulayout)
功能区[i][j]=menulayout
table.insert(layoutm,menulayout)
end
侧边[i] = luajava.loadlayout(
{
ScrollView,
visibility='gone',
layout_height = "wrap_content",
layout_width = "wrap_content",
cebian
})
table.insert(侧边ui,侧边[i])
local menus={
LinearLayout,
layout_width = "300dp",
layout_height = "300dp",
visibility = "gone",
orientation = "vertical",
background={
GradientDrawable,
color = "#ffffffff",
cornerRadius = 0
},--调节长度大小
{
ScrollView,
fillViewport = "true",
--padding = "10dp",
gravity = "center",
layout_width = "match_parent",
layout_height = "300dp",
orientation = "horizontal",
layoutm
}}
_ENV["layout"..i] = luajava.loadlayout(menus)
end
ckou = {
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
{ScrollView,
layout_height='match_parent',
layout_width='wrap_content',
layout_marginTop='85dp',
侧边ui}
}
for i = 1,菜单页数 do
ckou[#ckou+1] = _ENV["layout"..i]
end
ckou = luajava.loadlayout(ckou)
floatWindow = {
FrameLayout,
id = "motion",
elevation = "10dp",
onTouch = hanshu,
onClick = function() end,
layout_width = "wrap_content",
orientation = "vertical",
gravity = "center_vertical",
layout_height = "wrap_content",
{LinearLayout,
orientation='vertical',
id='chuangk',
visibility='gone',
{--顶部栏
FrameLayout,
orientation = "horizontal",
padding = "2dp",
layout_height='55dp',
layout_width="fill_parent",
background=getCorner({0xffffffff,0xffffffff},20,0,0x99ffffff,25,25,0,0),
{LinearLayout,
layout_width='match_parent',
layout_height='35dp',
layout_marginTop='20dp',
layout_marginRight='100dp',
onClick=function() end,
onTouch=hanshu,
顶边
},
{
FrameLayout,
layout_gravity='center_horizontal',
layout_marginLeft='10dp',
{
LinearLayout,
layout_width='180dp',
layout_height='20dp',
id='canv',
},
{
LinearLayout,
layout_width='180dp',
layout_height='20dp',
onClick=function()
end,
onTouch=hanshu
},
},
{
LinearLayout,
padding={"2dp","2dp","8dp","2dp"},
layout_marginLeft='10dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
layout_width = "40dp",
layout_height = "24dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
{ImageView,
layout_height='27dp',
layout_width='27dp',
src=获取图片(悬浮窗图标),
}
},
{
LinearLayout,
layout_gravity="right",
padding={"2dp","2dp","8dp","2dp"},
layout_marginLeft='2dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
layout_width = "40dp",
layout_height = "24dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
{ImageView,
layout_height='48dp',
layout_width='48dp',
src=getRes('zsjx'),
}
}
},
ckou,
},
{LinearLayout,
id='zysj',
layout_height='80dp',
layout_width='80dp',
layout_gravity='top|center_horizontal',
layout_marginRight='145dp',
layout_marginTop='60dp',
background = 左下角图片,
onClick=function() end,
onTouch=hanshu,
},{
ImageView,
id = "control",
background = 获取图片(悬浮窗图标),
layout_width = "45dp",
layout_height = "45dp",
onTouch = hanshu,
onClick = 隐藏,
}
}
local function invoke()
local ok
local RawX, RawY, x, y
mainLayoutParams = getLayoutParams()
floatWindow = luajava.loadlayout(floatWindow)
local function invoke2()
window:addView(floatWindow, mainLayoutParams)
canv:addView(parti)
--webv_:addView(particle2())
block('end')
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
block('join')
local isMove
end
invoke(swib1,swib2)
切换(1) 分区(1)
隐藏()
if loadingBox~=nil then loadingBox['关闭']() end
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
qhkai = 0
qiehuan = function()
if qhkai == 0 then
qhkai = 1
luajava.runUiThread(function()
changan.controlSmall(floatWindow,400)
end)
gg.sleep(400)
luajava.runUiThread(function()
floatWindow:setVisibility(View.GONE)
end)
else
qhkai = 0
luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) end)
luajava.runUiThread(function()
changan.controlBig(floatWindow,400)
end)
end
end
jlts=1
dexloader=dex.loadfile('/sdcard/锦木千束国体范围/图片/classes3.dex')
MySensorManager = dexloader:loadClass('yaocn.rlyun.yaoyiyao.MySensorManager')
luajava.runOnUiThread(function()
MySensorManager(context, sensor)
end)
if yyfunc~=nil then yyfunc() end
if ylfunc~=nil then ylfunc() end
while true do
if tuichu == 1 then break end
if 音量键 then
jianting3(qiehuan) end
gg.sleep(300)
end
luajava.setFloatingWindowHide(false)
end
changan.controlRotation9 = function(control, time,t)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
time,t
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(400)
xuanzhuandonghua:start()
end)
end
function visi (tid , ttid)
vibra:vibrate(4)
local tview = luajava.getIdValue (tid)
local ttview = luajava.getIdValue (ttid)
if not tview then
return 0
end
if tonumber (tostring (tview : getVisibility ())) == 8.0 then
tview : setVisibility (View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid])
changan.controlRotation9(boxpic[tid],0,90)
else
tview : setVisibility (View.GONE)
changan.controlWater (_ENV [tid.."6"] , 200)
changan.controlRotation9(boxpic[tid],90,0)
end
end
boxes = {} boxpic = {}
function changan.box (views)
local tid = "box"..guid ()
boxpic[tid] = luajava.loadlayout {
ImageView ,
background = getRes("hei_right"),
layout_width = "24dp" ,
layout_height = "24dp" ,
}
local ttid = tid.."6"
local t1id = guid ()
firadio = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "2dp" ,
layout_marginBottom = "2dp" ,
orientation = "vertical" ,
}
if type (views [1]) == "string" or type (views [1]) == "number" then
firadio [# firadio + 1] = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "40dp" ,
gravity = "center_vertical" ,
layout_marginTop = "2dp" ,
layout_marginLeft='2dp',
layout_marginRight='2dp',
elevation='2dp',
layout_marginBottom = "4dp" ,
onClick = function ()
visi (tid , ttid)
end
,
background = getButtonBG(),
{
TextView , text = views [1] ,
textSize = "13sp" ,
layout_marginLeft = "15dp" ,
layout_width = "match_parent" ,
layout_weight=1,
textColor = "#000000" ,
gravity = "left" ,
},{
LinearLayout ,
padding={"0dp","0dp","10dp","0dp"},
layout_width = "30dp" ,
layout_height = "30dp" ,
gravity = "center",
boxpic[tid],
}
} else
gg.alert ("changan.box的table内第一个元素必须是string") os.exit ()
end
radios = {
LinearLayout ,
layout_marginLeft = "0dp" ,
layout_marginRight = "0dp" ,
orientation = "vertical" ,
visibility = "gone" ,
id = luajava.newId (tid) ,
padding = "0dp" ,
layout_width = 'fill_parent' ,
}
for i = 2 , # views do
radios [# radios + 1] = views [i]
end
boxes[tid] = luajava.loadlayout(radios)
firadio [# firadio + 1] = boxes[tid]
_ENV [t1id] = luajava.loadlayout (firadio)
return _ENV [t1id]
end
corbk = true
当前ui = 1
function 分区(x)
当前分区[当前ui]=x
luajava.runUiThread(function()
for i=1,分区页数[当前ui] do
_ENV['menu'..当前ui..i]:setVisibility(View.GONE)
_ENV['jm'..当前ui..i]:setTextColor(0xff9C9FA5)
_ENV['jm'..当前ui..i]:setBackground(jmbg[当前ui][i][2])
end
_ENV['menu'..当前ui..当前分区[当前ui]]:setVisibility(View.VISIBLE)
_ENV['jm'..当前ui..当前分区[当前ui]]:setTextColor(0xffffffff)
_ENV['jm'..当前ui..当前分区[当前ui]]:setBackground(jmbg[当前ui][当前分区[当前ui]][1])
end)
end
function 切换(x)
当前ui = x
luajava.runUiThread(function()
if 当前分区[当前ui]==nil then
分区(1)
end
for i = 1,菜单页数 do
_ENV["ding"..i]:setTextColor(0xff545454)
_ENV["dingb"..i]:setVisibility(View.GONE)
_ENV["layout"..i]:setVisibility(View.GONE)
侧边[i]:setVisibility(View.GONE)
end
_ENV["ding"..当前ui]:setTextColor(0xffB76670)
_ENV["dingb"..当前ui]:setVisibility(View.VISIBLE)
changan.controlBigY(_ENV["dingb"..当前ui],800)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
侧边[当前ui]:setVisibility(View.VISIBLE)
--YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui])
end)
end
显示 = 0
beij2 = luajava.loadlayout({
GradientDrawable,
color = "#001E1C27",
cornerRadius = 10
})
显示 = 0
changan.controlBigY = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
changan.controlSmallY = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1,0.7,0.4,0
}):setDuration(time):start()
end) end
function 隐藏()
luajava.runUiThread(function()
if tonumber(tostring(chuangk:getVisibility())) == 8.0 then
control:setVisibility(View.GONE)
显示 = 1
zysj:setVisibility(View.VISIBLE)
chuangk:setVisibility(View.VISIBLE)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(500):playOn(floatWindow)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
window : updateViewLayout (floatWindow , mainLayoutParams)
changan.controlBigY(floatWindow,500)
floatWindow:setBackground(beij)
else
zysj:setVisibility(View.GONE)
chuangk:setVisibility(View.GONE)
floatWindow:setBackground(beij2)
control:setVisibility(View.VISIBLE) 显示 = 0
_ENV["layout"..当前ui]:setVisibility(View.GONE)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
window : updateViewLayout (floatWindow , mainLayoutParams)
--changan.controlSmallY(floatWindow,300)
end
end)
end
import("android.media.AudioManager")
audi = context:getSystemService("audio")
audiotype = {
AudioManager.STREAM_ALARM, --手机闹铃的声音
AudioManager.STREAM_MUSIC, --手机音乐的声音
AudioManager.STREAM_NOTIFICATION, --系统提示的通知
AudioManager.STREAM_RING, --电话铃声的声音
AudioManager.STREAM_SYSTEM, --手机系统的声音
AudioManager.STREAM_VOICE_CALL, --语音电话的声音
AudioManager.STREAM_DTMF, --DTMF音调的声音
}
yinl = {}
for i = 1,#audiotype do
yinl[i] = {}
yinl[i].type = audiotype[i]
yinl[i].min = audi:getStreamMinVolume(audiotype[i])
yinl[i].max = audi:getStreamMaxVolume(audiotype[i])
yinl[i].now = audi:getStreamVolume(audiotype[i])
end
function jianting2()
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].min = audi:getStreamMinVolume(audiotype[i])
yinln[i].max = audi:getStreamMaxVolume(audiotype[i])
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
gg.alert("up")
elseif yinln[i].now < yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_RAISE,0)
gg.alert("down\n"..yinln[i].now.."\n"..yinl[i].now)
end
end
end
yltype = 0
function jianting3(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 1 then
yltype = 0
func()
end
elseif yinln[i].now < yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 0 then
yltype = 1
func()
end
end
end
end
function jianting(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now >= yinl[i].max then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
end
if yinln[i].now > yinl[i].now then
audi:setStreamVolume(yinln[i].type,yinl[i].now,0)
func()
end
end
end
function guid()
seed = {
'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
}
tb = {}
for i = 1,32 do
table.insert(tb,seed[math.random(1,16)])
end
sid = table.concat(tb)
return string.format('%s%s%s%s%s',
string.sub(sid,1,8),
string.sub(sid,10,12),
string.sub(sid,21,22))
..string.format('%s%s%s%s%s',
string.sub(sid,1,6),
string.sub(sid,21,25)
)
end
local function exit()
tuichu = 1
luajava.setFloatingWindowHide(false)
luajava.post(function()
window:removeView(floatWindow)
end)
end
setExitEvent(exit)
changan.controlWater = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.8, 0.9, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1,0.8,0.9,1
}):setDuration(time):start()
end) end
changan.controlSmall = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
changan.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
switches = {} kgs={}
function 开关3(name,func1,func2,nid)
local sname = nid
local gnname=name
name = name
kgs[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
local outfunc=function()
namers = kgs[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
YoYoImpl:with("ZoomInLeft"):duration(600):playOn(switches["2s"..sname])
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbg)
end)
kgs[name] = "开"
colorvs[nid]={true,"switch"}
pcall(func1)
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
YoYoImpl:with("ZoomInRight"):duration(600):playOn(switches["1s"..sname])
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbga)
end)
colorvs[nid]={false,"switch"}
kgs[name] = "关"
pcall(func2)
end
end
if localname=="摇一摇隐藏UI" then yyfunc=outfunc end
if localname=="音量键隐藏UI" then ylfunc=outfunc end
return outfunc
end
end
namelist = {}
param1 = {}
floattable = {}
function 打开页面(name)
if _ENV['fenye'..name]==nil then gg.alert(name..'页面未创建') return 0 end
if floattable['fenye'..name]==1 then 关闭页面(name) return end
floattable['fenye'..name]=1
window = context:getSystemService("window") -- 获取窗口管理器
local function invoke(name,func1,func2)
local function invoke2()
window:addView(_ENV['fenye'..name], param1[name])
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
invoke(name,func1,func2)
end
function 关闭页面(name)
if _ENV['fenye'..name]==nil then gg.alert(name..'页面未创建') return 0 end
if floattable['fenye'..name]==0 then return 0 end
floattable['fenye'..name]=0
local function invoke2()
window:removeView(_ENV['fenye'..name])
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
function 创建页面(name,vs)
if type(vs)~='table' then gg.alert(name..'创建页面格式错误') os.exit() end
local tmp={LinearLayout,
layout_width='match_parent',
orientation='vertical'
}
for i=1,#vs do
table.insert(tmp,vs[i])
end
param1[name] = getLayoutParams2()
_ENV['fenye'..name] = luajava.loadlayout(
{
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
orientation='vertical',
gravity='center_horizontal',
background=luajava.loadlayout({
GradientDrawable ,
color = "#aaefb9c5" ,
cornerRadius = 15
} ),
padding={'10dp','5dp','10dp','5dp'},
{
TextView,
text = name,
textSize='14sp',
gravity = "center",
layout_width = "70dp",
layout_height = "wrap_content",
onClick=function()
local vis=luajava.getIdView(name)
if vis:getVisibility()==8.0 then
vis:setVisibility(View.VISIBLE)
else
vis:setVisibility(View.GONE)
end
end,
onTouch=function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = param1[name].x
y = param1[name].y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
param1[name].x = tonumber(x) + (event:getRawX() - RawX)
param1[name].y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(_ENV['fenye'..name], param1[name])
end
end,
},
{ScrollView,
visibility='gone',
id=luajava.newId(name),
layout_width='125dp',
layout_height='250dp',
tmp
}
})
if type(_ENV['fenye'..name])~='userdata' then gg.alert(name..'生成失败') os.exit() end
end
paramt = {}
titletable = {}
corb = true
function getLayoutParams2()
local prm = luajava.new(WindowManager.LayoutParams)
layoutParams1 = prm
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY
else
layoutParams1.type = prm.TYPE_PHONE
end
layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams1.gravity = Gravity.CENTER -- 重力设置
layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度
layoutParams1.height = prm.WRAP_CONTENT -- 布局高度
return layoutParams1
end
function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(7,tmp3)--边框宽度和颜色
return jianbians
end
function getShape2(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(24,tmp3)--边框宽度和颜色
return jianbians
end
swcDraw=ColorStateList({
{android.R.attr.state_checked},
{-android.R.attr.state_checked},
}, {
0xffB76670,
0x33d7d7d7,
})
local swctrack=ColorStateList({
{android.R.attr.state_checked},
{-android.R.attr.state_checked},
},
{
'0x00ffffff',
0xffB76670,
})
swcThumb=ColorStateList({
{android.R.attr.state_checked},
{android.R.attr.state_pressed},
{-android.R.attr.state_pressed},
}, {
0xffffffff,
'0x88161616',
0xffB76670
})
swfuncs={}
function changan.switch(name,func1,func2,miaoshu)
local nid = name..guid()
swfuncs[nid]= {func1,func2}
if not name then name = "未设置" end
kid=guid().."switch"
rest = luajava.loadlayout({
LinearLayout,
elevation = "5dp",
layout_width = 'fill_parent',
layout_height = "48dp",
gravity = "center_vertical",
{
LinearLayout,
id=luajava.newId(kid),
layout_width = 'fill_parent',
layout_height = "40dp",
layout_marginLeft="3dp",
layout_marginRight="3dp",
layout_marginTop="3dp",
layout_marginBottom="3dp",
gravity = "center_vertical",
elevation="3dp",
background = newbg2(_ENV['控件颜色2'],15),
padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView,
id=luajava.newId(kid.."sw"),
gravity = "top",
text = name,
textColor = "#000000",
textSize = "13sp",
layout_weight = 1,
layout_width = '80dp',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
TextView,
gravity = "center",
layout_height = "match_parent",
text = miaoshu,
textSize = "11sp",
layout_width = "wrap_content",
layout_marginLeft = "-50dp",
layout_weight = 1,
textColor = "#A5A5A5",
},
{
MaterialSwitch,
id=luajava.newId(nid),
--background = checkbga,
--elevation = "1dp",
__onFinish=function(v)
v:setTrackTintList(swcDraw)
v:setThumbTintList(swcThumb)
v:setTrackDecorationTintList(swctrack)
if name=='音量键隐藏UI' then
音量键=true
v:setChecked(true)
end
if name=='摇一摇隐藏UI' then
摇一摇=true
v:setChecked(true)
end
luajava.setInterface(v, 'setOnCheckedChangeListener',
{onCheckedChanged=function(view,isc)
if isc then
local func=swfuncs[nid][1]
if func~=nil then
luajava.newThread(function() func() end):start()
end
else
local func=swfuncs[nid][2]
if func~=nil then
luajava.newThread(function() func() end):start()
end
end
end})
end,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
}}
})
return rest
end
function changan.switch2(name,func1,func2,miaoshu)
nid = name..guid()
local func = 开关(name,func1,func2,nid)
if not name then name = "未设置" end
local kid=guid().."switch"
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "48dp",
gravity = "center_vertical",
{
LinearLayout,
id=luajava.newId(kid),
layout_width = 'fill_parent',
layout_height = "40dp",
layout_marginLeft="3dp",
layout_marginRight="3dp",
layout_marginTop="3dp",
layout_marginBottom="3dp",
gravity = "center_vertical",
elevation="2dp",
background = newbg2(_ENV['控件颜色2'],15),
padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView,
id=luajava.newId(kid.."sw"),
gravity = "top",
text = name,
textColor = "#000000",
textSize = "13sp",
layout_weight = 1,
layout_width = '80dp',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
TextView,
gravity = "center",
layout_height = "match_parent",
text = miaoshu,
textSize = "11sp",
layout_width = "wrap_content",
layout_marginLeft = "-50dp",
layout_weight = 1,
textColor = "#A5A5A5",
},
{
Switch,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
__onFinish=function(v)
v:setTrackTintList(swcDraw)
v:setThumbTintList(swcThumb)
end,
gravity = "left",
padding="1dp",
}}
})
return rest
end
spics={
}
for i=1,55 do
spics[i]="opo"..i
end
switchs={}
tcheck=10
local nulfunc=function() end
changan.controlRotation9 = function(control, time,t)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
time,t
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(400)
xuanzhuandonghua:start()
end)
end
function 开关(name , func1 , func2 )
local localname=name
local tname=name..guid()
if func1 == nil then
func1 = ""
end
if func2 == nil then
func2 = ""
end
if type(func1 ) == "function" then
return function()
namers = _ENV [ tname ]
if namers ~= "开" then
_ENV [ tname ] = "开"
pcall(func1 )
else
_ENV [ tname ] = "关"
pcall(func2 )
end
end
end
end
function visi (tid , ttid)
vibra:vibrate(4)
local tview = luajava.getIdValue (tid)
local ttview = luajava.getIdValue (ttid)
if not tview then
return 0
end
if tonumber (tostring (tview : getVisibility ())) == 8.0 then
tview : setVisibility (View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid])
changan.controlRotation9(boxpic[tid],0,90)
boxpic[tid]:setColorFilter('0xff'.._ENV['控件颜色'])
colorvs[tid]={true,"box"}
else
tview : setVisibility (View.GONE)
changan.controlWater (_ENV [tid.."6"] , 200)
changan.controlRotation9(boxpic[tid],90,0)
boxpic[tid]:setColorFilter(nil)
colorvs[tid]={false,"box"}
end
end
boxes = {} boxpic = {}
function changan.box (views)
local tid = "box"..guid ()
boxpic[tid] = luajava.loadlayout {
ImageView ,
src = getRes("hei_right"),
layout_width = "24dp" ,
layout_height = "24dp" ,
}
local ttid = tid.."6"
local t1id = guid ()
firadio = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "2dp" ,
layout_marginBottom = "2dp" ,
orientation = "vertical" ,
}
local kid=guid().."box"
if type (views [1]) == "string" or type (views [1]) == "number" then
firadio [# firadio + 1] = {
LinearLayout ,
id=luajava.newId(kid),
layout_width = 'fill_parent' ,
layout_height = "40dp" ,
gravity = "center_vertical" ,
layout_marginTop = "3dp" ,
layout_marginLeft="3dp",
layout_marginRight="3dp",
layout_marginBottom = "3dp" ,
elevation="2dp",
onClick = function ()
visi (tid , ttid)
end,
background = getButtonB(),
{
TextView ,
id=luajava.newId(kid.."bt"),
text = views [1] ,
textSize = "13sp" ,
layout_marginLeft = "15dp" ,
layout_width = "match_parent" ,
layout_weight=1,
textColor = "#000000" ,
gravity = "left" ,
},{
LinearLayout ,
padding={"0dp","0dp","10dp","0dp"},
layout_width = "30dp" ,
layout_height = "30dp" ,
gravity = "center",
boxpic[tid],
}
} else
gg.alert ("changan.box的table内第一个元素必须是string") os.exit ()
end
radios = {
LinearLayout ,
layout_marginLeft = "0dp" ,
layout_marginRight = "0dp" ,
orientation = "vertical" ,
visibility = "gone" ,
id = luajava.newId (tid) ,
padding = "0dp" ,
layout_width = 'fill_parent' ,
}
for i = 2 , # views do
radios [# radios + 1] = views [i]
end
boxes[tid] = luajava.loadlayout(radios)
firadio [# firadio + 1] = boxes[tid]
_ENV [t1id] = luajava.loadlayout (firadio)
return _ENV [t1id]
end
buts={}
heir=getRes("heir")
function changan.button(txt,func,txtc)
if not txt then txt = "未设置" end
if not txtc then txtc="#000000" end
local tid="Cbutton"..guid()
buts[tid]=luajava.loadlayout(
{
LinearLayout,
layout_width = 'match_parent',
layout_height = "wrap_content", {
LinearLayout,
id=luajava.newId(tid),
layout_width = "fill_parent",
gravity = "center_vertical",
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
layout_marginLeft="3dp",
layout_marginRight="3dp",
elevation="2dp",
background = getButtonB(),
padding="10dp",
onClick = function()
changan.controlWater(buts[tid],300)
-- uiadtext('执行 '..txt,"#C62828")
vibra:vibrate(10)
luajava.newThread(func):start() end,
{
TextView,
id = luajava.newId(tid.."bt"),
textColor = txtc,
text = txt,
textSize = "13sp",
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_weight=1,
},{ImageView,
src=heir,
layout_height="14dp",
layout_width="14dp",
colorFilter=0x99B76670
}
}})
return buts[tid]
end
function newbg2(gtvb1,gtvb3)
local jianbians = luajava.loadlayout({
GradientDrawable,
color = gtvb1,
cornerRadius=gtvb3,
gradientType = GradientDrawable.LINEAR_GRADIENT,
orientation = GradientDrawable.Orientation.TOP_BOTTOM,
strokeWidth = 0,
strokeColor = 0xff000000
})
return jianbians
end
function getButtonB()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, newbg2(0x33d7d7d7,15))
selector:addState({
-android.R.attr.state_pressed
}, newbg2(_ENV['控件颜色2'],15))
return selector
end
当前ui=1
function changan.image(img,height,width,pad,func)
if not func then func=function() end end
if not pad then pad="0dp" end
if not height then height="80dp" end
if not width then width="80dp" end
return luajava.loadlayout({
LinearLayout,
layout_height="wrap_content",
layout_width="fill_parent",
gravity="center",
{
ImageView,
layout_height=height,
layout_width=width,
padding=pad,
src=获取图片(img),
onClick=function() luajava.newThread(func):start() end,
}})
end
function changan.edit (name , hint)
_ENV [name] = name..guid ()
if not hint then
hint = name
end
rest = luajava.loadlayout ( {
LinearLayout ,
layout_width = 'match_parent' ,
{
LinearLayout ,
layout_width = 'match_parent' ,
gravity = "center_vertical" ,
{
EditText ,
background = getButtonB(),
gravity = "center" ,
hint = hint ,
textColor=0xff000000,
textSize = "13sp",
layout_height = "36dp" ,
layout_marginTop = "5dp" ,
layout_marginBottom = "5dp" ,
layout_marginRight='3dp',
layout_marginLeft='3dp',
elevation='2dp',
id=luajava.newId(_ENV [name]),
layout_width = 'match_parent' ,
}
}
})
luajava.getIdValue(_ENV [name]):setHintTextColor(0xff545454)
return rest
end
function changan.getedit (name)
edit = tostring (luajava.getIdValue (_ENV [name]) : getText ())
return edit
end
function changan.setedit (name , txt)
txt = tostring (txt)
luajava.runUiThread (function ()
luajava.getIdValue (_ENV [name]) : setText (txt)
end
)
end
local dpi=context:getResources():getDisplayMetrics().densityDpi
function getpx(x)
if type(x)=='string' then
if string.find(x,'dp') then
x=string.gsub(x,'dp','')
x=tonumber(x)
end
return x*(dpi/160)
else
return x
end
end
function getdp(x)
if type(x)=='number' then
return x/(dpi/160)..'dp'
else
return x
end
end
sliders={}
function changan.seek(name,bian,smin,smax,nows)
_ENV[bian] =nows
smin=tonumber(smin) smax=tonumber(smax)
if _ENV[bian] == nil then _ENV[bian] = 1.0 end
if not name then name = "未设置" end
local names = name..guid()
local kid=guid().."sk"
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'match_parent',
{
LinearLayout,
layout_width = 'match_parent',
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
layout_marginLeft='3dp',
layout_marginRight='3dp',
elevation='2dp',
background=getVerticalBG({_ENV['控件颜色2'],_ENV['控件颜色2']},15),
gravity = "center_vertical",
{
TextView,
padding={"5dp","10dp","0dp","10dp",},
gravity = "top",
textColor='#000000',
textSize='13sp',
text = name,
id = luajava.newId(names),
layout_width = '100dp',
layout_marginLeft = "5dp",
},
{
Slider,
thumbHeight='23dp',
trackHeight='15dp',
tickVisible=false,
__onFinish=function(v)
colorvs[kid]={true,'seek',v}
table.insert(sliders,v)
v:setTrackActiveTintList(ColorStateList({{},},{'0xff'.._ENV['控件颜色']}))
v:setTrackInactiveTintList(ColorStateList({{},},{'0x55'.._ENV['控件颜色']}))
v:setThumbTintList(ColorStateList({{},},{'0xff'.._ENV['控件颜色']}))
luajava.setInterface(v, 'addOnChangeListener',
function(SeekBar, var2, var3)
_ENV[bian] = var2
end)
end,
layout_width = 'match_parent',
id=luajava.newId(name.."seekbar"),
valueFrom=smin,
valueTo=smax,
value=nows,
stepSize=1.0,
}
}})
-- luajava.getIdView(name..'seekbar'):setHaloRadius(20)--拖动时背景阴影大小
return rest
end
function 勾选1(tab)
local t={}
for i=1,#tab do
table.insert(t,{
tab[i]['名字'],
tab[i]['开启'],
tab[i]['关闭'],
tab[i]['图片'],
})
end
return changan.check2(t,1)
end
function 勾选2(tab)
local t={}
for i=1,#tab do
table.insert(t,{
tab[i]['名字'],
tab[i]['开启'],
tab[i]['关闭'],
})
end
return changan.check2(t,2)
end
function changan.check2(cklist,typ)
if #cklist==0 then return nil end
local rest = {
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center",
orientation="vertical",
}
for i = 1, #cklist,4 do
local tempTable = {LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "left",
orientation="horizontal"
}
for j = 0, 3 do
if cklist[i + j] ~= nil then
local name = cklist[i + j][1]
local func1 = cklist[i + j][2]
local func2 = cklist[i + j][3]
local picurl=cklist[i+j][4]
if not name then name = "未设置" end
if typ==1 then
rstt = changan.intcheck(name,func1,func2,picurl)
else
rstt = changan.intcheck2(name,func1,func2)
end
table.insert(tempTable, rstt)
else
table.insert(tempTable, {LinearLayout,
layout_width = 'match_parent',
layout_weight=1,})
end
end
table.insert(rest, tempTable)
end
return luajava.loadlayout(rest)
end
switchs={}
function changan.intcheck(name,func1,func2,picurl)
nid = name..guid()
local func = 开关5(name,func1,func2,nid)
if not name then name = "未设置" end
switchs[nid] = {
LinearLayout,
layout_width = '65dp',
layout_height = "wrap_content",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
orientation='vertical',
gravity='center_horizontal',
{ImageView,
layout_height='45dp',
layout_width='45dp',
background=(picurl),
onClick = function() luajava.newThread(function() func() end):start() end,
},
{
LinearLayout,
padding="3dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_horizontal",
--background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71),
{
TextView,
id=luajava.newId(nid.."t"),
gravity = "center",
text = name,
textColor='#555658',
textSize = "10sp",
--layout_marginLeft="8dp",
layout_width = '40dp',
},{
FrameLayout,
id = luajava.newId(nid),
background = checkbg3,
layout_width = '15dp',
layout_height = '15dp',
padding = "0dp",
},
}
}
return switchs[nid]
end
checkbg1 = getRes("quarkcheckoff")
checkbg2 = getRes("quarkcheckon")
checkbg3 = getVerticalBG({0x00aaaaaa,0x00aaaaaa},360,8,0xff999999)
checkbg4 = getVerticalBG({0x00000000,0x00000000},360,10,0xff000000)
function changan.intcheck2(name,func1,func2)
nid = name..guid()
local func = 开关6(name,func1,func2,nid)
if not name then name = "未设置" end
switchs[nid] = {
LinearLayout,
layout_width = '65dp',
layout_height = "wrap_content",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
orientation='vertical',
gravity='center_horizontal',
{
LinearLayout,
padding="3dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
--background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71),
{
FrameLayout,
id = luajava.newId(nid),
background = checkbg1,
layout_width = '25dp',
layout_height = '25dp',
padding = "0dp",
},{
TextView,
id=luajava.newId(nid.."t"),
gravity = "left",
text = name,
textColor='#555658',
textSize = "12sp",
--layout_marginLeft="8dp",
layout_width = 'match_parent',
layout_weight=1,
},
}
}
return switchs[nid]
end
function 开关6(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if type(func1) ~= 'function' then func1 = function() end end
if type(func2) ~= 'function' == nil then func2 = function() end end
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg2)
luajava.getIdValue(nid.."t"):setTextColor(0xff000000)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "开"
pcall(func1)
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg1)
luajava.getIdValue(nid.."t"):setTextColor(0xff555658)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
function 开关5(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if type(func1) ~= 'function' then func1 = function() end end
if type(func2) ~= 'function' == nil then func2 = function() end end
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg4)
luajava.getIdValue(nid.."t"):setTextColor(0xff000000)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "开"
pcall(func1)
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg3)
luajava.getIdValue(nid.."t"):setTextColor(0xff555658)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
无=function() end
function changan.check(cklist)
local gid=guid()
local rest = {
GridLayout,
id=luajava.newId(gid),
columnCount = '3',
layout_width = "270dp",
layout_height = "wrap_content",
gravity = "center",
}
for i = 1,#cklist do
local name = cklist[i][1]
local func1 = cklist[i][2] or 无
local func2 = cklist[i][3] or 无
local pic = cklist[i][4]
if not name then name = "未设置" end
rstt = changan.intcheck3(name,func1,func2,i,gid,pic)
rest[#rest+1] = rstt
end
return {luajava.loadlayout({
LinearLayout,rest
})}
end
function 开关7(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
--luajava.getIdValue(nid.."t"):setTextColor(switch颜色)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "开"
pcall(func1)
else
vibra:vibrate(9)
luajava.runUiThread(function()
--luajava.getIdValue(nid.."t"):setTextColor(0xff232323)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
end
function changan.intcheck4(name,func1,func2)
local nid = name..guid()
local func = 开关7(name,func1,func2,nid)
if not name then name = "未设置" end
switchs[nid] = {
LinearLayout,
layout_width = 'match_parent',
layout_weight=1,
layout_height = "42dp",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
{
LinearLayout,
padding="3dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
--background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71),
{
CheckBox,
id=luajava.newId(nid.."c"),
layout_width = '32dp',
layout_height = '32dp',
padding = "0dp",
onClick = function() luajava.newThread(function() func() end):start() end,
},{
TextView,
id=luajava.newId(nid.."t"),
gravity = "left",
text = name,
textColor="#161616",
textSize = "14sp",
--layout_marginLeft="8dp",
layout_width = 'match_parent',
layout_weight=1,onClick = function()
local v=luajava.getIdView(nid..'c')
if v:isChecked() then
v:setChecked(false)
else
v:setChecked(true)
end
luajava.newThread(function() func() end):start()
end,
},
}
}
return switchs[nid]
end
function changan.check3(cklist)
if #cklist==0 then return nil end
local rest = {
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center",
orientation="vertical",
}
for i = 1, #cklist,2 do
local tempTable = {LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "left",
orientation="horizontal"
}
for j = 0, 1 do
if cklist[i + j] ~= nil then
local name = cklist[i + j][1]
local func1 = cklist[i + j][2]
local func2 = cklist[i + j][3]
if not name then name = "未设置" end
rstt = changan.intcheck4(name,func1,func2)
table.insert(tempTable, rstt)
else
table.insert(tempTable, {LinearLayout,
layout_width = 'match_parent',
layout_weight=1,})
end
end
table.insert(rest, tempTable)
end
return luajava.loadlayout(rest)
end
shous={}
function 收起ck(gid,ii)
if shous[gid] ==false then
shous[gid]=true
luajava.getIdView(gid..ii.."p"):setRotation(0)
for i=1,ii-1 do
if i>=9 then
luajava.post(function()
luajava.getIdView(gid):removeView(luajava.getIdView(gid..i))
end)
end
end
else
shous[gid]=false
luajava.post(function()
luajava.getIdView(gid):removeView(luajava.getIdView(gid..ii))
for i=1,ii-1 do
if i>=9 then
luajava.getIdView(gid):addView(luajava.getIdView(gid..i))
end
end
luajava.getIdView(gid):addView(luajava.getIdView(gid..ii))
end)
luajava.getIdView(gid..ii.."p"):setRotation(180)
end
end
opou=getRes("opou")
boxes = {} boxpic = {}
function changan.box2 (views)
firadio = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "wrap_content" ,
layout_margin='3dp',
orientation = "vertical" ,
background=newbg2(_ENV['控件颜色2'],15),
elevation='2dp',
}
radios = {
LinearLayout ,
orientation = "vertical" ,
layout_width = 'fill_parent' ,
}
for i = 1 , # views do
radios [# radios + 1] = views [i].view
end
firadio [# firadio + 1] = radios
return {view=firadio}
end
function changan.intcheck3(name,func1,func2,ii,gid,pic)
if pic~=nil then
tocheck=获取图片(pic)
else
if tcheck>=55 then
tcheck=1
else
tcheck=tcheck+1
end
tocheck=getRes(spics[tcheck])
end
local func = 开关check(name,func1,func2,gid..ii)
if not name then name = "未设置" end
switchs[gid..ii] = luajava.loadlayout{
LinearLayout,
id = luajava.newId(gid..ii),
layout_width = "90dp",
layout_height = "wrap_content",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
{
LinearLayout,
padding="3dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_horizontal",
orientation="vertical",
{
ImageView,
id = luajava.newId(gid..ii.."p"),
gravity="center",
src = tocheck,
layout_width = '30dp',
layout_height = '30dp',
padding='8dp',
background=getVerticalBG({0xff161616,0xff161616},3600)
},{
TextView,
id=luajava.newId(gid..ii.."t"),
gravity = "center",
text = name,
textColor="#161616",
textSize = "11sp",
layout_width = 'match_parent',
layout_weight=1,
},
}
}
return switchs[gid..ii]
end
function 开关check(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."t"):setTextColor(0xff0081FF)
luajava.getIdValue(nid.."p"):setColorFilter(0xff0081FF)
end)
_ENV[name] = "开"
pcall(func1)
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."t"):setTextColor(0xff161616)
luajava.getIdValue(nid.."p"):setColorFilter(0xffd7d7d7)
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
end
ckbg=getVerticalBG({0xff3A3A3C,0xff3A3A3C},360)
function changan.text(text,color,size,isjz)
if not color then color="#161616" end
if isjz then
return luajava.loadlayout(
{
TextView,
text=text,
textColor=color,
textSize=size,
gravity="center",
layout_height="wrap_content",
layout_width="match_parent",
autoSizeTextType="uniform",
})
else
return luajava.loadlayout({
TextView,
text=text,
textColor=color,
textSize=size,
layout_height="wrap_content",
layout_width="match_parent",
autoSizeTextType="uniform",
})
end
end
spics={
}
for i=1,55 do
spics[i]="opo"..i
end
function getwyyv()
wyyget=""
function huoqu(txt)
return table.json(gg.makeRequest(wyyget.."song/url/v1?id="..txt.."&level=standard").content)
end
function souyy(txt)
return table.json(gg.makeRequest("http://music.163.com/api/search/get?s="..txt.."&type=1&offset=0&total=true&limit=10").content)
end
function develo(tabb)
gg.alert(tostring(tabb))
end
function develo2(tabb)
gg.copyText(tostring(tabb))
end
function tablekIn(tbl, key)
if tbl == nil then
return false
end
for k, v in pairs(tbl) do
if k == key then
return true
end
end
return false
end
function getbg()
return getButtonB()
end
function searchmusic()
if not lasttm then
lasttm = os.time()
else
if os.time() - lasttm <= 5 then
gg.alert("请在" .. (5 - (os.time() - lasttm)) .. "秒冷却后搜索")
return 0
end
end
if not wryt then
else
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):removeView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
end
mustxt = luajava.getIdView("搜索"):getText()
if string.len(tostring(mustxt)) <= 2 or tostring(mustxt) == nil then
gg.alert("至少输入2个字符")
return 0
end
mustxt = tostring(mustxt)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.VISIBLE)
luajava.getIdView("stxt"):setVisibility(View.GONE)
end)
lasttm = os.time()
mustable = souyy(mustxt)
mustable = mustable.result.songs
-- print(mustable)
musnames = {}
musids = {}
musarts = {}
musictable = {}
for k, v in pairs(mustable) do
musictable[#musictable + 1] = v
end
wrfun = {}
wryt = {
LinearLayout,
id = luajava.newId("搜索结果"),
layout_marginTop = "5dp",
layout_width = "match_parent",
layout_marginBottom = "5dp",
orientation = "vertical"
}
for i = 1, #musictable do
musid = musictable[i].id
musids[#musids + 1] = musid
musname = musictable[i].name
if tablekIn(musictable[i], "transNames") ~= false then
musname = musname .. "\n(" .. musictable[i].transNames[0] .. ")"
end
musnames[#musnames + 1] = musname
musart = musictable[i].artists[0].name
musarts[#musarts + 1] = musart
wryt[#wryt + 1] = {
LinearLayout,
orientation = "vertical",
layout_marginTop = "2dp",
layout_marginBottom = "2dp",
layout_marginLeft='5dp',
layout_marginRight='5dp',
layout_width = "match_parent",
background = getbg(),
id = luajava.newId("音" .. musid),
onClick = function()
thread = luajava.getThread(function()
bofang(musname, musid)
end)
thread:start()
end,
{
TextView,
layout_marginTop = "5dp",
textSize = "13sp",
textColor = 0xFF000000,
layout_marginBottom = "0dp",
text = musname,
layout_hight = "10dp",
layout_width = "match_parent",
gravity = "center"
},
{
TextView,
layout_marginTop = "0dp",
textColor = "#FF000000",
textSize = "11sp",
layout_marginBottom = "5dp",
text = musart,
layout_hight = "10dp",
layout_width = "match_parent",
gravity = "center"
}
}
wryt[#wryt].onClick = function()
luajava.startThread(function()
bofang(musnames[i] .. musarts[i], musids[i])
end)
end
end
wyr = luajava.loadlayout(wryt)
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):addView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.GONE)
luajava.getIdView("stxt"):setVisibility(View.VISIBLE)
end)
end
function bofang(gqmz, gdmn)
luajava.runUiThread(function()
luajava.getIdView("搜索结果"):setVisibility(View.GONE)
luajava.getIdView("加载"):setVisibility(View.VISIBLE)
end)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..gdmn.."" or huoqu(gdmn).data[0].url)
gg.sleep(2000)
luajava.runUiThread(function()
luajava.getIdView("加载"):setVisibility(View.GONE)
luajava.getIdView("搜索结果"):setVisibility(View.VISIBLE)
end)
end
stxt = {
TextView,
text = "搜索",
textColor="#000000",
background=getbg(),
layout_height="match_parent",
visibility = "visible",
gravity="center",
layout_marginRight="5dp",
id = luajava.newId("stxt"),
layout_marginLeft = "3dp",
textSize = "13sp",
padding={"13.5dp","0dp","13.5dp","0dp"},
onClick = function()
thread = luajava.getThread(function()
searchmusic()
end)
thread:start()
end
}
jzz = {
TextView,
text = "加载中",
visibility = "gone",
id = luajava.newId("jzz"),
layout_marginLeft = "10dp",
textSize = "12sp",
textColor="#000000",
}
jiaz = {
TextView,
text = "正在加载歌曲资源",
visibility = "gone",
id = luajava.newId("加载"),
textSize = "15sp",
gravity = "center",
textColor="#000000",
}
wyylog = luajava.loadlayout({
LinearLayout,
orientation="vertical",
layout_width = "match_parent",
{
ScrollView,
layout_hight = "match_parent",
gravity="center_horizontal",
layout_width = "match_parent",
{
LinearLayout,
layout_width = "match_parent",
{LinearLayout,
padding="4dp",
gravity="center",
orientation="vertical",
id=luajava.newId("固定音乐"),
},
id = luajava.newId("搜索列表"),
orientation = "vertical",
layout_width = "match_parent",
gravity="center_horizontal",
{
LinearLayout,
orientation = "horizontal",
layout_width = "match_parent",
{
EditText,
hint = "搜索歌曲名称",
textColor="#000000",
id = luajava.newId("搜索"),
background = getbg(),
layout_marginLeft='5dp',
focusable=true,
focusableInTouchMode=true,
textSize='13sp',
singleLine = "true",
layout_weight=1,
gravity="center",
layout_width = "match_parent",
__onFinish=function(v)
v:setHintTextColor(0xff646464)
v:requestFocus()
end
},
stxt,
jzz
},
jiaz
}
}
})
return wyylog
end
_ENV['控件颜色']='03A9F4'
_ENV['控件颜色2']='0xffffffff'
--0x44ffffff 半透明
--0xffffffff 纯白色
loadingBox = getLoadingBox('正在加载\n请耐心等待...点任意处可隐藏')
标题='锦木千束国体范围'
主背景图='/sdcard/锦木千束国体范围/图片/bjt1'
左下角图片='/sdcard/锦木千束国体范围/图片/zsjtb'
悬浮窗图标 = "/sdcard/锦木千束国体范围/图片/xfctb"
function huiz()---绘制必须放在这里面
end
第一页 = {--创建分页,结尾调用
['分页名字']="主界面",
[1]={--第一分区
['分区名字']="公告区",
['功能配置']={
changan.image(
"/storage/emulated/0/锦木千束国体范围/图片/bjt",
"100dp","140dp",--图片高度宽度(可省略)
"0dp",--内边距(可省略)
function()
隐藏()
--gg.alert("例子")
--gg.QQgroup("群号")---qq群
gg.intent("https://t.me/qingmhb6")--网页(tg群)
end--点击图片执行的功能(可省略)
),
changan.text('频道@HYHOOK78','#aaefb9c5','25sp'),
changan.button(
"选择进程",
function()
gg.setProcessX()
end),
changan.switch("防闪",
function()
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x3F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x430}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x550}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x5D8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x300}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
wow()
end),
}
},
[2]={--第二分区
['分区名字']="功能区",
['功能配置']={
changan.switch(
"爆头范围",
function()
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(50)
gg.editAll("90", gg.TYPE_FLOAT)
gg.clearResults()
gg.toast("开启成功")
wow()
end,
function()
end),
changan.switch(
"自改爆头范围",
function()
OP=gg.prompt({'推荐 60~90'},{[1]='80'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("9.20161819458;15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResultCount()
gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(1000)
gg.editAll(OP[1], gg.TYPE_FLOAT)
end
gg.toast("开启成功")
wow()
end,
function()
end),
changan.switch(
"循环爆头范围",
function()
while true do
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(50)
gg.editAll("60", gg.TYPE_FLOAT)
gg.clearResults()
-- 等待60秒 循环一次
wow()
gg.sleep(60000)
end
end,
function()
end),
changan.switch("淡水免root注入",
function()
loadYunLua('https://pan.29o.cn/down.php/bb6218ec44e96f77fe0c5904f3d36196.lua')
end,
function()
end),
changan.box({
"特效",
勾选1({--样式1
{
['名字']='特效一',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber('10;46',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber('10;46',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.getResults(100)
gg.editAll('999',gg.TYPE_FLOAT)
gg.toast("开启成功")
wow()
end,
['关闭']=无 ,--无被我定义了空function
},{
['名字']='特效二',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("-299365883", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0)
revert = gg.getResults(200, nil, nil, nil, nil, nil, nil, nil, nil)
gg.editAll("10", gg.TYPE_DWORD)
gg.processResume()
gg["toast"]("")
gg.clearResults()
gg.setRanges(32)
gg.searchNumber("10.0F;10.0F;10.0F;10.0F;45:193", 16, false, 536870912, 0, -1)
gg.searchNumber("10", 16, false, 536870912, 0, -1)
gg.getResults(100)
gg.editAll("-700", 16)
gg.toast("开启成功")
wow()
end,
['关闭']=function()
gg.alert(2)
end,
},{
['名字']='特效三',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
gg.alert(1)
end,
['关闭']=无 ,
},{
['名字']='特效四',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
gg.alert(1)
end,
['关闭']=无 ,
},
}),
}),
changan.box({
"防卡伤",
勾选1({--样式1
{
['名字']='防卡伤RROMAX',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
if gg.getRangesList("libanogs.so:bss")[1] then
local t = {}
t[1] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0xA2F4; --那年初夏工具箱 数值地址:0x6F409EA2F4
t[2] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0xA31C; --那年初夏工具箱 数值地址:0x6F409EA31C
t[3] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0xA320; --那年初夏工具箱 数值地址:0x6F409EA320
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -698416192,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = -698416192,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -698416192,
freeze = true,
},
})
gg.toast("开启成功")
end wow()
end,
['关闭']=function()
end,
},{
['名字']='防卡伤MAX',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x4F6C54; --初源工具箱 数值地址:0x6ED7529C54
t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x9D5F40; --初源工具箱 数值地址:0x6ED7A08F40
t[3] = gg.getRangesList("libUE4.so")[1]["start"] + 0xBFE65C; --初源工具箱 数值地址:0x6ED7C3165C
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = 335544320,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = 335544320,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = 335544320,
freeze = true,
},
})
gg.toast("开启成功")
end wow()
end,
['关闭']=function()
end,
},{
['名字']='防卡伤PRO',
['图片']='/storage/emulated/0/锦木千束国体范围/图片/bjt',
['开启']=function()
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x4F6C54; --初源工具箱 数值地址:0x6EE750AC54
t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x9D5F40; --初源工具箱 数值地址:0x6EE79E9F40
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = 335544320,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = -721215457,
freeze = true,
},
})
gg.toast("开启成功")
end wow()
end,
['关闭']=function()
end,
}
}),
}),
}
},
}
第二页 = {
['分页名字']="设置",
[1]={--第一分区
['分区名字']="脚本设置",
['功能配置']={
changan.switch(
"音量键隐藏UI",
function()
音量键=true
end,
function()
音量键=false
end
),
changan.switch(
"摇一摇隐藏UI",
function()
摇一摇=true
end,
function()
摇一摇=false
end
),
changan.switch("去水印",
function()
draw.remove()
end,
function()
end),
changan.button(
"退出",
function()
tuichu=1
end),
}
},
[2]={
['分区名字']='音乐',
['功能配置']={
changan.switch("懒得加 受着吧",
function()
end,
function()
end),
}
},
}
changan.menu({
第一页,--调用上边的分页配置
第二页,
第三页,
第四页,
})