首先声明,操作数据库及删除文件属于危险操作,在没有把握的情况下不要擅自使用,对使用下面代码造成的白苹果,跳激活等问题概不负责.
函数:Clean
参数 | 类型 | 说明 |
---|---|---|
Package | 文本型 | 应用包名 |
DataPath | 文本型 | 应用文档路径 |
使用方法:
function main()
Package = 'com.touchelf.evan'; --应用包名
DataPath = appDataPath(Package or error("获取程序目录失败",0)); --获取应用文档目录
Clean.Doc(DataPath); --清理文档
Clean.Key(Package); --清理钥匙链
Clean.All(Package,DataPath); --清理文档及钥匙链
end
函数代码
Clean = {
Doc = (function(DataPath)
if DataPath and #DataPath>1 then
exec("rm -rf "..DataPath.."/Documents/*")
exec("rm -rf "..DataPath.."/Library/*")
exec("rm -rf "..DataPath.."/tmp/*")
mSleep(1000)
end
end),
Key = (function(Package)
if Package and #Package>1 then
sqlite3 = require("lsqlite3")
local DB = sqlite3.open('/var/Keychains/keychain-2.db')
DB:exec('DELETE From genp where agrp Like "%'..Package..'%"', function (ud, ncols, values, names)
return sqlite3.OK
end)
DB:exec('DELETE From keys where agrp Like "%'..Package..'%"', function (ud, ncols, values, names)
return sqlite3.OK
end)
DB:exec('DELETE From cert where agrp Like "%'..Package..'%"', function (ud, ncols, values, names)
return sqlite3.OK
end)
DB:exec('DELETE From inet where agrp Like "%'..Package..'%"', function (ud, ncols, values, names)
return sqlite3.OK
end)
DB:close()
end
end),
All = (function(Package,DataPath)
Clean.Doc(DataPath)
Clean.Key(Package)
end),
}
function exec(command)
local res = io.popen(command);
if res then
local ret = res:read("*a");
res:close();
return ret;
else
return -1;
end
end
值了。10块钱能解决的问题,很值
提示 "DB"(a nil value),怎么解决
@evan
DB:exec('DELETE From genp where agrp Like "%'..Package..'%"', function (ud, ncols, values, names)
是这一条提示
@shadow 无法读取数据库吗?是不是越狱软件问题,什么机器什么系统什么越狱软件?
具体使用什么越狱软件见 #触摸精灵常见问题解决办法
测试了,IOS12 Chimera越狱,无法清除keychain
@chenchen0754 那你试试用触摸自带的cleanPhone能不能清理.如果不能那还是越狱的问题.
@evan 自带的可以清的,请问钥匙链要全部清空该怎么写,不用指定包名
@chenchen0754 全部清空用系统自带的即可
真好用 简直了