清理指定应用钥匙链及文件函数

发布于 2019-05-30 20:16:51

首先声明,操作数据库及删除文件属于危险操作,在没有把握的情况下不要擅自使用,对使用下面代码造成的白苹果,跳激活等问题概不负责.

函数: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 条评论

发布
问题