├── .github ├── FUNDING.yml └── workflows │ ├── convert.yml │ └── on_push.yml ├── .gitignore ├── AppList.json5 ├── LICENSE ├── README.md ├── Template.md ├── libs ├── AIsouler.json5 ├── Adpro.json5 └── offical.json5 ├── ltt.json ├── package.json ├── patch.ts ├── pnpm-lock.yaml ├── src ├── convert.ts ├── method.ts ├── types.ts ├── updateMd.ts └── writeAppList.ts └── tsconfig.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ["https://afdian.com/a/Adpro"] 2 | -------------------------------------------------------------------------------- /.github/workflows/convert.yml: -------------------------------------------------------------------------------- 1 | name: convert 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | convert: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | with: 12 | fetch-depth: 0 13 | 14 | - uses: actions/setup-node@v4 15 | 16 | - uses: pnpm/action-setup@v3 17 | 18 | - run: pnpm install 19 | 20 | - id: update_list 21 | run: pnpm run list 22 | 23 | - id: convert 24 | run: pnpm convert 25 | 26 | - name: Git commit 27 | id: commit 28 | run: | 29 | git config --local user.email github-actions[bot]@users.noreply.github.com 30 | git config --local user.name github-actions[bot] 31 | git config --global core.autocrlf true 32 | git config --global core.safecrlf false 33 | git status 34 | git add . 35 | git commit -a -m "chore: convert" 36 | continue-on-error: true 37 | 38 | - name: Git push 39 | if: ${{ steps.commit.outcome == 'success' }} 40 | uses: ad-m/github-push-action@master 41 | with: 42 | github_token: ${{ secrets.GITHUB_TOKEN }} 43 | branch: ${{ github.ref }} 44 | -------------------------------------------------------------------------------- /.github/workflows/on_push.yml: -------------------------------------------------------------------------------- 1 | name: on_push 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - 'main' 8 | 9 | jobs: 10 | on_push: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | with: 15 | fetch-depth: 0 16 | 17 | - uses: actions/setup-node@v4 18 | 19 | - uses: pnpm/action-setup@v3 20 | 21 | - run: pnpm install 22 | 23 | - id: updateMd 24 | run: pnpm exec tsx ./src/updateMd.ts 25 | 26 | - name: Git commit 27 | id: commit 28 | run: | 29 | git config --local user.email github-actions[bot]@users.noreply.github.com 30 | git config --local user.name github-actions[bot] 31 | git config --global core.autocrlf true 32 | git config --global core.safecrlf false 33 | git status 34 | git add . 35 | git commit -a -m "docs: README.md" 36 | continue-on-error: true 37 | 38 | - name: Git push 39 | if: ${{ steps.commit.outcome == 'success' }} 40 | uses: ad-m/github-push-action@master 41 | with: 42 | github_token: ${{ secrets.GITHUB_TOKEN }} 43 | branch: ${{ github.ref }} 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | src/writeExtList.ts 4 | logs -------------------------------------------------------------------------------- /AppList.json5: -------------------------------------------------------------------------------- 1 | [{appId:'com.ylmf.androidclient',appName:'115',hash:'1302159877'},{appId:'com.fiveplay',appName:'5EPlay',hash:'364079795'},{appId:'com.apkpure.aegon',appName:'APKPure',hash:'-374083365'},{appId:'info.muge.appshare',appName:'AppShare',hash:'-85806714'},{appId:'com.bilibili.app.in',appName:'bilibili',hash:'-51321781'},{appId:'com.soft.blued',appName:'Blued',hash:'-2112108781'},{appId:'make.more.r2d2.cellular_z',appName:'Cellular-Z',hash:'1181245932'},{appId:'com.lxt.cfmoto',appName:'CFMOTO',hash:'-1668846253'},{appId:'com.cimoc.haleydu',appName:'Cimoc',hash:'-1206660712'},{appId:'com.example.robortx.clousx6F',appName:'Clousx6',hash:'-852919017'},{appId:'com.panaceasoft.pswallpaper',appName:'ClrvAI',hash:'-1024760183'},{appId:'net.csdn.csdnplus',appName:'CSDN',hash:'199342455'},{appId:'com.ctm',appName:'CTM Buddy',hash:'948519983'},{appId:'com.spotware.ct',appName:'cTrader',hash:'5044563'},{appId:'com.xiangzi.dislikecn',appName:'Dislike',hash:'1075953901'},{appId:'com.eco.global.app',appName:'ECOVACS HOME',hash:'1805911008'},{appId:'com.microsoft.emmx',appName:'Edge',hash:'-487636640'},{appId:'com.fengeek.f002',appName:'fiil+',hash:'983138900'},{appId:'com.google.android.gm',appName:'Gmail',hash:'-543674259'},{appId:'com.gspace.android',appName:'Gspace',hash:'1788294285'},{appId:'com.huawei.hwid',appName:'HMS Core',hash:'-846675676'},{appId:'com.igpsport.igpsportandroid',appName:'iGPSPORT',hash:'-549392882'},{appId:'com.instagram.android',appName:'Instagram',hash:'-662003450'},{appId:'xxx.pornhub.fuck',appName:'JavDB',hash:'207618305'},{appId:'com.jiaohua_browser',appName:'JMComic2',hash:'421678243'},{appId:'com.vgjump.jump',appName:'Jump',hash:'-1345286800'},{appId:'com.gotokeep.keep',appName:'Keep',hash:'495814814'},{appId:'lab.vie.two',appName:'LIBVIO',hash:'-404099313'},{appId:'com.lofter.android',appName:'LOFTER',hash:'1240817292'},{appId:'com.m.mfood',appName:'mFood',hash:'647542301'},{appId:'com.qjy.youqulife.io',appName:'MINO 4K',hash:'580883440'},{appId:'com.superrhino.rarering',appName:'Nico',hash:'-902030118'},{appId:'com.banshenghuo.mobile.ofdm',appName:'OmoFun',hash:'472797977'},{appId:'com.cyl.musiccy.ou',appName:'OMOFUN',hash:'353576350'},{appId:'com.ksf.yyx',appName:'OMOFUN',hash:'839823355'},{appId:'com.xifeng.fun',appName:'OmoFun',hash:'567484871'},{appId:'com.maertsno.m',appName:'OnStream',hash:'1398473101'},{appId:'com.excean.gspace',appName:'OurPlay',hash:'-1963822210'},{appId:'com.picacomic.fregata',appName:'PicACG',hash:'1564483305'},{appId:'com.qcymall.earphonesetup',appName:'QCY',hash:'1338445701'},{appId:'com.tencent.mobileqq',appName:'QQ',hash:'361910168'},{appId:'com.rarlab.rar',appName:'RAR',hash:'5992780'},{appId:'com.example.raylink_flutter',appName:'RayLink',hash:'2058261520'},{appId:'com.reddit.frontpage',appName:'Reddit',hash:'-909466251'},{appId:'com.sec.android.app.music',appName:'Samsung Music',hash:'-205204913'},{appId:'com.allinone.callerid',appName:'Showcaller',hash:'1075839687'},{appId:'cn.soulapp.android',appName:'Soul',hash:'1661249612'},{appId:'org.zwanoo.android.speedtest',appName:'SpeedTest',hash:'-1053900032'},{appId:'com.steampy.app',appName:'SteamPY',hash:'1509218591'},{appId:'com.taptap',appName:'TapTap',hash:'1238325805'},{appId:'org.telegram.messenger.web',appName:'Telegram',hash:'-733096426'},{appId:'com.dubox.drive',appName:'TeraBox',hash:'1519830345'},{appId:'com.enflick.android.TextNow',appName:'TextNow',hash:'236541809'},{appId:'com.zhiliaoapp.musically',appName:'TikTok',hash:'543597367'},{appId:'com.tencent.tim',appName:'TIM',hash:'-103517822'},{appId:'youqu.android.todesk',appName:'ToDesk',hash:'1428883134'},{appId:'downloadtwittervideo.twitterdownloader.twittervideodownloader.twittersaver',appName:'TwiTake',hash:'-1804663505'},{appId:'com.vmos.pro',appName:'VMOS Pro',hash:'1544852199'},{appId:'com.google.android.apps.googlevoice',appName:'Voice',hash:'624283748'},{appId:'com.sina.weibocare',appName:'WeiboBig',hash:'1589826273'},{appId:'cn.wps.moffice_eng',appName:'WPS Office',hash:'2075805265'},{appId:'com.twitter.android',appName:'X(Twitter)',hash:'10619783'},{appId:'com.google.android.youtube',appName:'YouTube',hash:'-2075712516'},{appId:'com.google.android.apps.youtube.music',appName:'YouTube Music',hash:'1713433253'},{appId:'com.myzaker.ZAKER_Phone',appName:'ZAKER',hash:'265290890'},{appId:'com.xiaomi.hm.health',appName:'Zepp Life',hash:'1966418623'},{appId:'org.daimhim.zzzfun',appName:'ZzzFun',hash:'-691135470'},{appId:'dxwt.questionnaire.ui',appName:'10000社区',hash:'631428252'},{appId:'com.mfcloudcalculate.networkdisk',appName:'123云盘',hash:'-447647532'},{appId:'com.canghai.haoka',appName:'172号卡',hash:'-503928022'},{appId:'com.thestore.main',appName:'1号会员店',hash:'-29829078'},{appId:'com.tianqi2345',appName:'2345天气王',hash:'714822921'},{appId:'com.qihoo.srouter.n300',appName:'360家庭防火墙',hash:'1990194946'},{appId:'com.qihoo.camera',appName:'360摄像机',hash:'1908025072'},{appId:'cn.net.shizheng.study',appName:'365时政',hash:'1988170475'},{appId:'com.m4399.gamecenter',appName:'4399游戏盒',hash:'246082294'},{appId:'com.changyou.app.qi',appName:'777影视',hash:'607088732'},{appId:'com.daysko.safp',appName:'7天澳門統考',hash:'-221906754'},{appId:'com.excean.na',appName:'99手游加速器',hash:'884834226'},{appId:'com.alibaba.wireless',appName:'阿里巴巴',hash:'644871869'},{appId:'com.alibaba.aliyun',appName:'阿里云',hash:'1706309971'},{appId:'com.alicloud.databox',appName:'阿里云盘',hash:'-1854575849'},{appId:'com.qiyi.video',appName:'爱奇艺',hash:'-1864872766'},{appId:'com.qiyi.video.lite',appName:'爱奇艺极速版',hash:'876496474'},{appId:'com.baidu.xin.aiqicha',appName:'爱企查',hash:'651433099'},{appId:'com.hanweb.android.sdzwfw.activity',appName:'爱山东',hash:'1745698237'},{appId:'com.byyoung.setting',appName:'爱玩机工具箱',hash:'-1427631338'},{appId:'com.shanghaionstar',appName:'安吉星',hash:'-959256183'},{appId:'com.antutu.ABenchMark',appName:'安兔兔评测',hash:'-1620256882'},{appId:'com.julanling.app',appName:'安心记加班',hash:'2067983594'},{appId:'com.giraffe',appName:'安易加速器',hash:'1311067143'},{appId:'com.mem.MacaoLife',appName:'澳覓',hash:'-815812685'},{appId:'tw.com.gamer.android.activecenter',appName:'巴哈姆特',hash:'-1325258816'},{appId:'com.jiongji.andriod.card',appName:'百词斩',hash:'1493251118'},{appId:'com.baidu.searchbox',appName:'百度',hash:'-796004189'},{appId:'com.baidu.baike',appName:'百度百科',hash:'325847140'},{appId:'com.baidu.BaiduMap',appName:'百度地图',hash:'744792033'},{appId:'com.baidu.input',appName:'百度输入法',hash:'332706122'},{appId:'com.baidu.input_huawei',appName:'百度输入法华为定制版',hash:'-967850372'},{appId:'com.baidu.tieba',appName:'百度贴吧',hash:'342704719'},{appId:'com.baidu.netdisk',appName:'百度网盘',hash:'1791072826'},{appId:'com.baidu.netdisk.samsung',appName:'百度网盘-三星版本',hash:'-173567930'},{appId:'com.byfen.market',appName:'百分网游戏盒子',hash:'1116671583'},{appId:'com.banjixiaoguanjia.app',appName:'班级小管家',hash:'-1667971590'},{appId:'com.boohee.one',appName:'薄荷健康',hash:'-750543605'},{appId:'com.bluemobile.flutterbabylife',appName:'宝宝生活记录',hash:'-324187895'},{appId:'com.babytree.apps.pregnancy',appName:'宝宝树孕育',hash:'-1336343298'},{appId:'com.baseus.intelligent',appName:'倍思',hash:'-1382362683'},{appId:'com.byd.aeri.caranywhere',appName:'比亚迪王朝',hash:'553643370'},{appId:'com.svm.hbyy',appName:'比翼多开',hash:'-110279573'},{appId:'com.bilibili.studio',appName:'必剪',hash:'467897871'},{appId:'tv.danmaku.bili',appName:'哔哩哔哩',hash:'1994036591'},{appId:'tv.danmaku.bilibilihd',appName:'哔哩哔哩HD',hash:'148882991'},{appId:'cn.com.langeasy.LangEasyLexis',appName:'不背单词',hash:'-1637834197'},{appId:'com.buyanchuantong.buyanshufa',appName:'不厌书法',hash:'-77211157'},{appId:'com.wibo.bigbang.ocr',appName:'布丁扫描',hash:'1420042598'},{appId:'com.lptiyu.tanke',appName:'步道乐跑',hash:'-1198177105'},{appId:'com.lanjinger.choiassociatedpress',appName:'财联社',hash:'-297379007'},{appId:'com.ddyc.lotterytool',appName:'彩虹多多',hash:'768646346'},{appId:'com.nowcasting.activity',appName:'彩云天气',hash:'-1717626045'},{appId:'com.cainiao.wireless',appName:'菜鸟',hash:'1073158053'},{appId:'com.csmbcx.candada',appName:'餐大大',hash:'-1238901533'},{appId:'io.microshow.fm',appName:'畅听FM',hash:'48179676'},{appId:'com.xtuone.android.syllabus',appName:'超级课程表',hash:'1214265880'},{appId:'com.ygkj.chelaile.standard',appName:'车来了',hash:'-649267606'},{appId:'cn.com.drivedu.chexuetang',appName:'车学堂',hash:'1204087793'},{appId:'com.skyworthdigital.picamera',appName:'创维智慧云',hash:'585440078'},{appId:'com.galaxy.qbyd',appName:'春木漫画',hash:'-1662657523'},{appId:'me.chunyu.ChunyuDoctor',appName:'春雨医生',hash:'936241655'},{appId:'com.jarworld.bleach.bvn.sjm.cyc',appName:'次元城动漫',hash:'-338791352'},{appId:'com.kuangxiangciweimao.novel',appName:'刺猬猫阅读',hash:'1971779962'},{appId:'cisdom.com.bigteaapp',appName:'大茶肆',hash:'-1274782709'},{appId:'cn.damai',appName:'大麦',hash:'992979061'},{appId:'com.zhiyin.qingdan.dashixiong',appName:'大师兄影视',hash:'1060301516'},{appId:'com.dataoke.union',appName:'大淘客联盟',hash:'-571728749'},{appId:'com.zmzx.college.search',appName:'大学搜题酱',hash:'740556751'},{appId:'com.yoloho.dayima',appName:'大姨妈',hash:'511775938'},{appId:'com.dianping.v1',appName:'大众点评',hash:'-1459422248'},{appId:'com.jingcai.apps.qualitydev',appName:'到梦空间',hash:'386107370'},{appId:'com.zhizhou.days',appName:'倒计日',hash:'679457571'},{appId:'com.delicloud.app.smartoffice',appName:'得力e+',hash:'-99706220'},{appId:'com.shizhuang.duapp',appName:'得物',hash:'-759128068'},{appId:'com.mxchip.petmarvel',appName:'滴宠生活',hash:'466784116'},{appId:'com.sdu.didi.psnger',appName:'滴滴',hash:'-918490570'},{appId:'com.didapinche.booking',appName:'嘀嗒出行',hash:'185118245'},{appId:'com.dianxinai.mobile',appName:'点心云',hash:'-1443036310'},{appId:'com.zlfcapp.batterymanager',appName:'电池容量检测管理',hash:'22970665'},{appId:'com.hpbr.directhires',appName:'店长直聘',hash:'-1842262803'},{appId:'com.ddsy.songyao',appName:'叮当快药',hash:'1713500535'},{appId:'com.alibaba.android.rimet',appName:'钉钉',hash:'1335515207'},{appId:'com.eastmoney.android.berlin',appName:'东方财富',hash:'-358087111'},{appId:'com.ss.android.auto',appName:'懂车帝',hash:'378881071'},{appId:'com.dongqiudi.news',appName:'懂球帝',hash:'-2002547408'},{appId:'com.citiccard.mobilebank',appName:'动卡空间',hash:'1266951777'},{appId:'com.dmzj.manhua',appName:'动漫之家',hash:'-1206397310'},{appId:'com.dmzjsq.manhua',appName:'动漫之家社区',hash:'461016036'},{appId:'tw.com.gamer.android.animad',appName:'動畫瘋',hash:'-625142119'},{appId:'com.ss.android.ugc.aweme.mobile',appName:'抖音',hash:'2105508070'},{appId:'com.ss.android.ugc.aweme',appName:'抖音',hash:'313184810'},{appId:'com.ss.android.ugc.aweme.lite',appName:'抖音极速版',hash:'-1414602254'},{appId:'air.tv.douyu.android',appName:'斗鱼',hash:'-1667428321'},{appId:'com.douban.frodo',appName:'豆瓣',hash:'-1670877294'},{appId:'com.cf.dubaji',appName:'毒霸姬',hash:'-904561267'},{appId:'com.duitang.main',appName:'堆糖',hash:'1901051414'},{appId:'com.wm.dmall',appName:'多点',hash:'1414777133'},{appId:'com.duokan.reader',appName:'多看',hash:'1271186538'},{appId:'com.example.ourom',appName:'多系统工具箱',hash:'-542021895'},{appId:'me.ele',appName:'饿了么',hash:'-1079643320'},{appId:'com.diershoubing.erbing',appName:'二柄',hash:'859890657'},{appId:'com.dragon.read',appName:'番茄免费小说',hash:'949069732'},{appId:'com.fanli.android.apps',appName:'返利',hash:'167193980'},{appId:'com.feeyo.vz.pro.cdm',appName:'飞常准业内版',hash:'246960416'},{appId:'com.ideal.flyerteacafes',appName:'飞客',hash:'-1716991232'},{appId:'cn.ms.pages',appName:'飞鸟听书',hash:'-2089860193'},{appId:'com.ss.android.lark',appName:'飞书',hash:'379189486'},{appId:'com.vo.icea',appName:'飞韵听书',hash:'1847931358'},{appId:'com.feicui.vdhelper',appName:'翡翠视频',hash:'-2114933808'},{appId:'cn.com.livelab',appName:'纷玩岛',hash:'-1914948431'},{appId:'com.fenbi.android.servant',appName:'粉笔',hash:'1236563725'},{appId:'com.fcbox.hivebox',appName:'丰巢管家',hash:'661638318'},{appId:'com.sfexpress.sfim',appName:'丰声',hash:'-292286379'},{appId:'com.yaerxing.fkst',appName:'疯狂刷题',hash:'-1908708056'},{appId:'com.ifeng.news2',appName:'凤凰新闻',hash:'-991295163'},{appId:'com.fbank.mobile',appName:'富民银行',hash:'987544507'},{appId:'com.autonavi.minimap',appName:'高德地图',hash:'1254578009'},{appId:'com.shangfang.gylm',appName:'高佣联盟',hash:'-1785254347'},{appId:'com.hlg.daydaytobusiness',appName:'稿定设计',hash:'-1266579789'},{appId:'com.doc360.client',appName:'个人图书馆',hash:'-1986536393'},{appId:'com.xpx365.projphoto',appName:'工程相机',hash:'-2066471802'},{appId:'com.maidu.gkld',appName:'公考雷达',hash:'204325937'},{appId:'com.qingwatq.weather',appName:'呱呱天气',hash:'1989762283'},{appId:'com.codoon.gps',appName:'咕咚',hash:'-725947553'},{appId:'org.gushiwen.gushiwen',appName:'古诗文网',hash:'-566862108'},{appId:'com.guwendao.gwd',appName:'古文岛',hash:'1662102643'},{appId:'com.google.android.apps.photos',appName:'谷歌相册',hash:'568722390'},{appId:'com.x.istar',appName:'观星',hash:'1816845784'},{appId:'com.cebbank.mobile.cemb',appName:'光大银行',hash:'767936228'},{appId:'com.vphonegaga.titan',appName:'光速虚拟机',hash:'389064535'},{appId:'com.example.servyouappzhuhai',appName:'广东税务',hash:'-170143438'},{appId:'com.crgt.ilife',appName:'国铁吉讯',hash:'1653974688'},{appId:'com.guodongbaohe.app',appName:'果冻宝盒',hash:'1035476968'},{appId:'com.jingyao.easybike',appName:'哈啰',hash:'-1502821745'},{appId:'com.haier.uhome.uplus',appName:'海尔智家',hash:'33660823'},{appId:'com.rytong.hnair',appName:'海南航空',hash:'1081899614'},{appId:'tool.seagull.v',appName:'海鸥加速器',hash:'658193839'},{appId:'com.babycloud.hanju',appName:'韩小圈',hash:'-164768604'},{appId:'com.dtdream.publictransit',appName:'杭州公共交通',hash:'-1287521950'},{appId:'com.smk',appName:'杭州市民卡',hash:'948535140'},{appId:'com.umetrip.android.msky.app',appName:'航旅纵横',hash:'-899649745'},{appId:'com.xmcy.hykb',appName:'好游快爆',hash:'-562730018'},{appId:'com.cmcc.hebao',appName:'和包',hash:'1516206044'},{appId:'com.hnnx.pmbank',appName:'河南农信',hash:'-1060018390'},{appId:'me.piebridge.brevent',appName:'黑阈',hash:'-755746661'},{appId:'com.hd.smartVillage',appName:'恒大智慧社区',hash:'1026267112'},{appId:'com.redfinger.app',appName:'红手指云手机',hash:'74024896'},{appId:'cn.chuci.and.wkfenshen',appName:'猴子分身',hash:'-698746809'},{appId:'com.hupu.games',appName:'虎扑',hash:'-1065232334'},{appId:'com.duowan.kiwi',appName:'虎牙直播',hash:'-895188853'},{appId:'com.huaban.android',appName:'花瓣',hash:'-1731456471'},{appId:'com.wallstreetcn.news',appName:'华尔街见闻',hash:'1881162844'},{appId:'com.huatu.handheld_huatu',appName:'华图在线',hash:'62356864'},{appId:'com.huawei.browser',appName:'华为浏览器',hash:'-139113938'},{appId:'com.huawei.wallet',appName:'华为钱包',hash:'-1497285581'},{appId:'com.huawei.himovie',appName:'华为视频',hash:'631196117'},{appId:'com.huawei.android.totemweather',appName:'华为天气',hash:'-1493701396'},{appId:'com.android.mediacenter',appName:'华为音乐',hash:'-2004763571'},{appId:'com.huawei.music',appName:'华为音乐',hash:'-472574293'},{appId:'com.huawei.appmarket',appName:'华为应用市场',hash:'-1637701853'},{appId:'com.huawei.health',appName:'华为运动健康',hash:'-1923356010'},{appId:'com.huawei.android.thememanager',appName:'华为主题',hash:'-1872735843'},{appId:'com.huabenapp',appName:'话本小说',hash:'1261790077'},{appId:'com.dongao.kaoqian.phone',appName:'会计云课堂',hash:'-54707921'},{appId:'com.jihuanshe',appName:'集换社',hash:'665828906'},{appId:'com.handsgo.jiakao.android',appName:'驾考宝典',hash:'2039875207'},{appId:'com.jxedt',appName:'驾校一点通',hash:'1001216250'},{appId:'com.lemon.lv',appName:'剪映',hash:'-1567553486'},{appId:'com.baidu.searchcraft',appName:'简单搜索',hash:'-454852872'},{appId:'com.jianshu.haruki',appName:'简书',hash:'400126721'},{appId:'com.tipsoon.android',appName:'简讯',hash:'1975107178'},{appId:'com.tmri.app.main',appName:'交管12123',hash:'-1721645705'},{appId:'com.bankcomm.Bankcomm',appName:'交通银行',hash:'-1005507551'},{appId:'com.jym.mall',appName:'交易猫',hash:'-248012079'},{appId:'com.hello.pet',appName:'街猫',hash:'612868566'},{appId:'com.fileunzip.zxwknight',appName:'解压专家',hash:'1098264407'},{appId:'com.ss.android.article.news',appName:'今日头条',hash:'195266379'},{appId:'com.wisedu.cpdaily',appName:'今日校园',hash:'1203503392'},{appId:'cn.wps.yun',appName:'金山文档',hash:'886316827'},{appId:'com.jin10',appName:'金十数据',hash:'1000776385'},{appId:'com.jingdong.app.mall',appName:'京东',hash:'1174097286'},{appId:'com.jingdong.pdj',appName:'京东到家',hash:'1580813841'},{appId:'com.jd.app.reader',appName:'京东读书',hash:'-2032141129'},{appId:'com.jd.jrapp',appName:'京东金融',hash:'841170930'},{appId:'com.jd.pingou',appName:'京喜',hash:'470336991'},{appId:'com.jd.jdlite',appName:'京喜特价',hash:'293886959'},{appId:'com.viva.note',appName:'囧次元',hash:'-628324587'},{appId:'com.juduoduo.app',appName:'剧多多',hash:'654059851'},{appId:'cn.trinea.android.developertools',appName:'开发助手',hash:'428970556'},{appId:'com.kaoshibaodian.app',appName:'考试宝',hash:'-1504645267'},{appId:'com.copymanga.app',appName:'拷貝漫畫',hash:'-213870747'},{appId:'com.keke.ysh1.tz08051h',appName:'可可影视',hash:'247724200'},{appId:'com.coolapk.market',appName:'酷安',hash:'847156324'},{appId:'com.kugou.android.lite',appName:'酷狗概念版',hash:'-1491765371'},{appId:'com.kugou.android',appName:'酷狗音乐',hash:'460049591'},{appId:'com.quark.browser',appName:'夸克',hash:'-2086095549'},{appId:'com.kuaiduizuoye.scan',appName:'快对',hash:'1524190212'},{appId:'com.kuaikan.comic',appName:'快看漫画',hash:'233958982'},{appId:'com.kkeji.news.client',appName:'快科技',hash:'-2117910481'},{appId:'world.letsgo.booster.android.pro',appName:'快连VPN',hash:'163972830'},{appId:'com.kmsoft.fvplayer',appName:'快码万能播放器',hash:'226318438'},{appId:'com.smile.gifmaker',appName:'快手',hash:'1659293491'},{appId:'com.kuaishou.nebula',appName:'快手极速版',hash:'473713875'},{appId:'com.dewmobile.kuaiya',appName:'快牙',hash:'1552103645'},{appId:'com.loyea.adnmb',appName:'蓝岛',hash:'-897710057'},{appId:'com.app.lantt.xs',appName:'蓝豚豚',hash:'1809433514'},{appId:'bubei.tingshu',appName:'懒人听书',hash:'1596265335'},{appId:'com.mm.android.lc',appName:'乐橙',hash:'-1730999113'},{appId:'com.zhl.bmi',appName:'乐看视频',hash:'958074657'},{appId:'com.ecellsz.watch.guard',appName:'乐康守护',hash:'-2059247911'},{appId:'client.android.yixiaotong',appName:'乐校通',hash:'1695652805'},{appId:'com.iflytek.womusicclient',appName:'联通视频彩铃',hash:'-1833488723'},{appId:'com.woapp.hebei',appName:'联通智家',hash:'-629891177'},{appId:'com.lenovo.club.app',appName:'联想',hash:'-134660905'},{appId:'com.lenovo.browser.hd',appName:'联想浏览器HD',hash:'-1048503824'},{appId:'com.lenovo.leos.appstore',appName:'联想应用中心',hash:'-602066461'},{appId:'com.lolaage.tbulu.tools',appName:'两步路户外助手',hash:'-54547863'},{appId:'cn.timesneighborhood.app.c',appName:'邻里邦',hash:'-184994247'},{appId:'com.sina.oasis',appName:'绿洲',hash:'1529239731'},{appId:'com.maque.app',appName:'麻雀省钱',hash:'-2119779021'},{appId:'com.antfortune.wealth',appName:'蚂蚁财富',hash:'1567751284'},{appId:'com.android.tnaant',appName:'蚂蚁加速器',hash:'748174284'},{appId:'com.mcdonalds.gma.cn',appName:'麦当劳',hash:'-173326286'},{appId:'com.manmanbuy.bijia',appName:'慢慢买',hash:'843952070'},{appId:'com.jisu.manhua',appName:'漫画人极速版',hash:'-853792998'},{appId:'ltd.sky.okay.cn',appName:'漫天星',hash:'912288422'},{appId:'com.hunantv.imgo.activity',appName:'芒果TV',hash:'201325446'},{appId:'com.sankuai.movie',appName:'猫眼',hash:'588474247'},{appId:'com.github.catvod.app',appName:'猫影视',hash:'926997926'},{appId:'com.romielf.mrsc',appName:'每日赛车',hash:'98778506'},{appId:'com.eusoft.ting.en',appName:'每日英语听力',hash:'829184674'},{appId:'com.mt.mtxx.mtxx',appName:'美图秀秀',hash:'-1433071276'},{appId:'com.sankuai.meituan',appName:'美团',hash:'-1709882794'},{appId:'com.sankuai.meituan.takeoutnew',appName:'美团外卖',hash:'-949179023'},{appId:'com.sankuai.meituan.dispatch.crowdsource',appName:'美团众包',hash:'-2044859348'},{appId:'com.jc.avatar.mm',appName:'萌妹',hash:'-936730835'},{appId:'cn.emagsoftware.gamehall',appName:'咪咕快游',hash:'30935361'},{appId:'com.cmcc.cmvideo',appName:'咪咕视频',hash:'1185278458'},{appId:'cmccwm.mobilemusic',appName:'咪咕音乐',hash:'-129596299'},{appId:'com.xiaomi.smarthome',appName:'米家',hash:'1877659010'},{appId:'com.mihoyo.hyperion',appName:'米游社',hash:'-1346391036'},{appId:'com.mxbc.mxsa',appName:'蜜雪冰城',hash:'-1681719666'},{appId:'com.mxbc.ohsa',appName:'蜜雪冰城鸿蒙版',hash:'-1681675460'},{appId:'com.jf.my',appName:'蜜源',hash:'1000627441'},{appId:'com.sjm.zhuanzhuan.mcy',appName:'喵次元',hash:'423959738'},{appId:'com.paokeji.yiqu',appName:'喵趣漫画',hash:'2121355864'},{appId:'com.sjm.xiaodesecond.mw',appName:'喵物次元',hash:'2078997727'},{appId:'com.modian.app',appName:'摩点',hash:'173016020'},{appId:'com.motoband',appName:'摩托邦',hash:'660454687'},{appId:'com.jdd.motorfans',appName:'摩托范',hash:'-1839413884'},{appId:'com.feiyu.morin',appName:'魔音MORIN',hash:'-1103181952'},{appId:'com.mostone.life',appName:'默往',hash:'1861694804'},{appId:'com.maxhom.weibu',appName:'暮瑟',hash:'-1913638993'},{appId:'com.csair.mbp',appName:'南方航空',hash:'-1565978566'},{appId:'com.csg.palmhall',appName:'南网在线',hash:'1057608655'},{appId:'com.xhgd.jx',appName:'柠檬解析',hash:'-819991646'},{appId:'com.nowcoder.app.florida',appName:'牛客',hash:'-1296692226'},{appId:'com.schunshang.bij.niuniu',appName:'牛牛视频',hash:'-893553352'},{appId:'com.xiaohu.olevodmobile',appName:'欧乐影院',hash:'1386065562'},{appId:'com.qiekj.user',appName:'胖乖生活',hash:'1065293722'},{appId:'com.wondertek.paper',appName:'澎湃新闻',hash:'-111011088'},{appId:'cn.xiaochuankeji.zuiyouLite',appName:'皮皮搞笑',hash:'232580377'},{appId:'com.gentle.ppcat',appName:'皮皮喵',hash:'1014810514'},{appId:'com.sup.android.superb',appName:'皮皮虾',hash:'229330387'},{appId:'com.xunmeng.pinduoduo',appName:'拼多多',hash:'-69877540'},{appId:'com.pingan.paces.ccms',appName:'平安口袋银行',hash:'-859962506'},{appId:'cn.com.spdb.mobilebank.per',appName:'浦发银行',hash:'-342447280'},{appId:'com.pywm.fund',appName:'普益基金',hash:'677482631'},{appId:'com.kmxs.reader',appName:'七猫免费小说',hash:'1366626055'},{appId:'com.magicalstory.AppStore',appName:'奇妙应用',hash:'-880053212'},{appId:'com.android.icredit',appName:'企查查',hash:'246848950'},{appId:'com.tencent.wework',appName:'企业微信',hash:'-30315083'},{appId:'com.qidian.QDReader',appName:'起点读书',hash:'-920735187'},{appId:'com.cubic.autohome',appName:'汽车之家',hash:'-7542465'},{appId:'com.luna.music',appName:'汽水音乐',hash:'-1606001344'},{appId:'com.vivo.wallet',appName:'钱包',hash:'644506254'},{appId:'com.dw.btime',appName:'亲宝宝',hash:'-1350376735'},{appId:'com.qinlin.edoor',appName:'亲邻开门',hash:'-558836051'},{appId:'com.qingdaonews.bus',appName:'青岛公交查询',hash:'-584168039'},{appId:'com.wepie.ivy',appName:'青藤之恋',hash:'-1569226033'},{appId:'io.sbyd.app',appName:'轻松阅',hash:'1615666069'},{appId:'zhongxinjiantou.szkingdom.android.newphone',appName:'蜻蜓点金',hash:'-1068307206'},{appId:'fm.qingting.qtradio',appName:'蜻蜓FM',hash:'-1865688240'},{appId:'com.quqi.quqioffice',appName:'曲奇云盘',hash:'-1586749315'},{appId:'com.klcxkj.zqxy',appName:'趣智校园',hash:'-986824604'},{appId:'com.tencent.tmgp.kgame.ppcr',appName:'全民泡泡超人',hash:'857484566'},{appId:'com.tencent.karaoke',appName:'全民K歌',hash:'1175536078'},{appId:'com.jincheng.supercaculator',appName:'全能计算器',hash:'1757639598'},{appId:'com.black.unique',appName:'全球购骑士特权',hash:'-1682941971'},{appId:'com.miui.virtualsim',appName:'全球上网',hash:'-409053443'},{appId:'com.lbe.security.miui',appName:'权限管理服务',hash:'1884443122'},{appId:'com.tuying.kuimg.rjm',appName:'热剧猫',hash:'-833922423'},{appId:'com.facetech.konking',appName:'人民日报',hash:'-921040269'},{appId:'com.peopledailychina.activity',appName:'人民日报',hash:'-678908157'},{appId:'com.example.pptv',appName:'人人视频',hash:'813824467'},{appId:'com.pmph.irenwei',appName:'人卫',hash:'1019008413'},{appId:'com.hihonor.servicecenter',appName:'荣耀快服务',hash:'-1097070216'},{appId:'cn.honor.qinxuan',appName:'荣耀亲选',hash:'1391185017'},{appId:'com.hihonor.vmall',appName:'荣耀商城',hash:'-238027848'},{appId:'com.hihonor.cloudmusic',appName:'荣耀音乐',hash:'791770530'},{appId:'com.hihonor.appmarket',appName:'荣耀应用市场',hash:'1984858827'},{appId:'com.hihonor.health',appName:'荣耀运动健康',hash:'802875374'},{appId:'com.hihonor.magichome',appName:'荣耀智慧空间',hash:'1887328570'},{appId:'com.android.packageinstaller',appName:'软件包安装程序',hash:'394871662'},{appId:'com.google.android.packageinstaller',appName:'软件包安装程序',hash:'307846473'},{appId:'com.samsung.android.packageinstaller',appName:'软件包安装程序',hash:'-472626718'},{appId:'com.lucky.luckyclient',appName:'瑞幸咖啡',hash:'2119572352'},{appId:'com.mci.smagazine',appName:'三星阅读',hash:'-320836417'},{appId:'com.intsig.camscanner',appName:'扫描全能王',hash:'1659335438'},{appId:'com.shark.jizhang',appName:'鲨鱼记账',hash:'-1793882281'},{appId:'com.leiting.lt65207',appName:'山东人在山西',hash:'1870385845'},{appId:'cn.samsclub.app',appName:'山姆会员商店',hash:'1887546880'},{appId:'app.esou',appName:'闪电侠',hash:'1122144961'},{appId:'com.sh.gj',appName:'上海公交',hash:'1008998511'},{appId:'com.bz.yilianlife.sd',appName:'深(新)度搜索',hash:'1955211648'},{appId:'com.smzdm.client.android',appName:'什么值得买',hash:'-1509786562'},{appId:'com.fan.app',appName:'十六番旅行',hash:'189312345'},{appId:'chuxin.shimo.shimowendang',appName:'石墨文档',hash:'1531338873'},{appId:'com.hupu.shihuo',appName:'识货',hash:'1687434365'},{appId:'com.practical.master.toolsme',appName:'实用大师',hash:'557236717'},{appId:'com.hj119.sygjx',appName:'实用工具箱',hash:'-1584560117'},{appId:'com.zbx.ct.tvzhibo',appName:'手机电视高清直播',hash:'-1756866252'},{appId:'com.tmall.wireless',appName:'手机天猫',hash:'1197124177'},{appId:'com.cnki.client',appName:'手机知网',hash:'-283041437'},{appId:'com.zivn.cloudbrush3',appName:'书法字典大全',hash:'79243828'},{appId:'com.shuqi.controller',appName:'书旗小说',hash:'1474929983'},{appId:'com.sf.activity',appName:'顺丰速运',hash:'407978845'},{appId:'com.longshine.nanwang.electric.charge',appName:'顺易充',hash:'-612949335'},{appId:'com.bw30.zsch',appName:'四川航空',hash:'-945104851'},{appId:'com.sohu.sohuvideo',appName:'搜狐视频',hash:'321803898'},{appId:'com.flyersoft.seekbooks',appName:'搜书大师',hash:'-2080401695'},{appId:'com.android.quicksearchbox',appName:'搜索',hash:'-1507407806'},{appId:'com.sodalife.sodax',appName:'苏打校园',hash:'-222694669'},{appId:'com.jim.qrcode',appName:'随便扫',hash:'1163015419'},{appId:'com.wenhua.bamboo',appName:'随身行',hash:'1175178977'},{appId:'com.mymoney',appName:'随手记',hash:'-1499971801'},{appId:'com.tima.carnet.m.main',appName:'钛马星',hash:'552768007'},{appId:'com.taobao.taobao',appName:'淘宝',hash:'1855462465'},{appId:'com.leixun.taofen8',appName:'淘粉吧',hash:'780205387'},{appId:'com.taobao.movie.android',appName:'淘票票',hash:'-613470402'},{appId:'com.taobao.litetao',appName:'淘特',hash:'-886542463'},{appId:'com.yunxiang.wuyu',appName:'特狗APP',hash:'786120868'},{appId:'com.qq.ac.android',appName:'腾讯动漫',hash:'-1544055932'},{appId:'com.tencent.qqlive',appName:'腾讯视频',hash:'-191341086'},{appId:'com.tencent.cmocmna',appName:'腾讯手游加速器',hash:'-1288689076'},{appId:'com.tencent.qqsports',appName:'腾讯体育',hash:'1011486453'},{appId:'com.qq.qcloud',appName:'腾讯微云',hash:'1907791813'},{appId:'com.tencent.docs',appName:'腾讯文档',hash:'1085443729'},{appId:'com.tencent.news',appName:'腾讯新闻',hash:'1085732649'},{appId:'com.chinarainbow.tft',appName:'天府通',hash:'216533792'},{appId:'com.miaoying.appmy',appName:'天空影视',hash:'762675327'},{appId:'com.alibaba.ailabs.tg',appName:'天猫精灵',hash:'-1527971724'},{appId:'com.eastmoney.android.fund',appName:'天天基金',hash:'750598940'},{appId:'com.myapp.app.xaoorti',appName:'天天视频',hash:'196519371'},{appId:'com.gkid.crazyrope',appName:'天天跳绳',hash:'1896237793'},{appId:'com.cn21.ecloud',appName:'天翼云盘',hash:'898562695'},{appId:'com.baidu.tieba_mini',appName:'贴吧极速版',hash:'-741821369'},{appId:'com.baidutieba.davy',appName:'贴吧一键签到大师',hash:'-420630611'},{appId:'com.chinatower.tthd',appName:'铁塔换电',hash:'-1676116629'},{appId:'com.android.contacts',appName:'通讯录与拨号',hash:'-845193793'},{appId:'com.tongcheng.android',appName:'同程旅行',hash:'991394745'},{appId:'com.hexin.plat.android',appName:'同花顺',hash:'-1556709909'},{appId:'com.ss.android.article.lite',appName:'头条搜索极速版',hash:'195210534'},{appId:'com.chan.cwallpaper',appName:'图凌',hash:'1711386286'},{appId:'com.jsguohua.youquanmall.tt',appName:'图图影视',hash:'851219663'},{appId:'cn.TuHu.android',appName:'途虎养车',hash:'713993394'},{appId:'com.wacai365',appName:'挖财记账',hash:'869076894'},{appId:'com.waimaiii.waimaiii',appName:'歪麦霸王餐',hash:'-1380211775'},{appId:'com.etalien.booster',appName:'外星人加速器',hash:'-438744915'},{appId:'com.pwrd.steam.esports',appName:'完美世界电竞',hash:'374397022'},{appId:'com.newcapec.mobile.ncp',appName:'完美校园',hash:'-609316736'},{appId:'com.growing.topwidgets',appName:'万能小组件 Top Widgets',hash:'1565851046'},{appId:'com.duokan.phone.remotecontroller',appName:'万能遥控',hash:'-189732215'},{appId:'com.youloft.calendar',appName:'万年历',hash:'1391093257'},{appId:'com.sgcc.wsgw.cn',appName:'网上国网',hash:'1875899872'},{appId:'cn.lezhi.speedtest',appName:'网速管家',hash:'-1703753270'},{appId:'cn.speedtest.lite',appName:'网速管家极速版',hash:'-21800954'},{appId:'com.onethingcloud.android',appName:'网心云',hash:'859517377'},{appId:'com.netease.gl',appName:'网易大神',hash:'-557468363'},{appId:'com.netease.mkey',appName:'网易将军令',hash:'1143996194'},{appId:'com.netease.snailread',appName:'网易蜗牛读书',hash:'662377423'},{appId:'com.netease.newsreader.activity',appName:'网易新闻',hash:'400412247'},{appId:'com.netease.yanxuan',appName:'网易严选',hash:'2007337216'},{appId:'com.netease.mobimail',appName:'网易邮箱',hash:'1841532656'},{appId:'com.netease.mail',appName:'网易邮箱大师',hash:'1143986695'},{appId:'com.youdao.dict',appName:'网易有道词典',hash:'222589124'},{appId:'com.netease.cloudmusic',appName:'网易云音乐',hash:'1979515232'},{appId:'com.sina.weibo',appName:'微博',hash:'1536737232'},{appId:'com.sina.weibolite',appName:'微博极速版',hash:'1590102142'},{appId:'com.weico.international',appName:'微博轻享版',hash:'-2126153222'},{appId:'com.koudai.weidian.buyer',appName:'微店',hash:'203023820'},{appId:'com.pleasure.trace_wechat',appName:'微拾',hash:'1872909140'},{appId:'com.tencent.mm',appName:'微信',hash:'-973170826'},{appId:'com.tencent.weread',appName:'微信读书',hash:'-30474182'},{appId:'com.zhouyu.music',appName:'微音乐',hash:'-1433190988'},{appId:'com.example.maintenancemaster',appName:'维护大师',hash:'1569640836'},{appId:'com.android.documentsui',appName:'文件',hash:'-1605005728'},{appId:'com.baidu.newapp',appName:'文心一言',hash:'1858978561'},{appId:'com.wzwh.bzpaipan',appName:'问真八字排盘',hash:'952819050'},{appId:'com.hihonor.phoneservice',appName:'我的荣耀',hash:'-1255202407'},{appId:'com.github.eprendre.tingshu',appName:'我的听书',hash:'874151145'},{appId:'com.wls.weex',appName:'我联智慧用电',hash:'-1841851010'},{appId:'cn.com.ruijie.magicbox',appName:'无线魔盒',hash:'125486076'},{appId:'com.cmi.jegotrip',appName:'无忧行',hash:'103550244'},{appId:'com.ss.android.article.video',appName:'西瓜视频',hash:'1765779203'},{appId:'com.xfani.app',appName:'稀饭动漫',hash:'-1914691532'},{appId:'com.daimajia.gold',appName:'稀土掘金',hash:'-1902185409'},{appId:'com.ximalaya.ting.android',appName:'喜马拉雅',hash:'706813998'},{appId:'com.ximalaya.ting.lite',appName:'喜马拉雅极速版',hash:'900544335'},{appId:'com.miui.securityadd',appName:'系统服务组件',hash:'-1549876624'},{appId:'com.android.updater',appName:'系统更新',hash:'-1628863011'},{appId:'com.xiachufang',appName:'下厨房',hash:'-1488821919'},{appId:'com.wan.tools',appName:'下载工具箱',hash:'896101924'},{appId:'com.taobao.idlefish',appName:'闲鱼',hash:'1276497535'},{appId:'com.coloros.gallery3d',appName:'相册',hash:'1897569679'},{appId:'com.sec.android.app.camera',appName:'相机',hash:'1923638331'},{appId:'com.whpe.qrcode.hunan_xiangtan',appName:'湘潭出行',hash:'-308045458'},{appId:'com.oray.sunlogin',appName:'向日葵远程控制',hash:'-821599709'},{appId:'com.xiaomi.mico',appName:'小爱音箱',hash:'277685102'},{appId:'com.xbxxhz.box',appName:'小白学习打印',hash:'1169047910'},{appId:'run.xbud.android',appName:'小步点',hash:'256930557'},{appId:'com.realtech.xiaocan',appName:'小蚕霸王餐',hash:'703998628'},{appId:'com.baidu.duer.superapp',appName:'小度',hash:'-2004523722'},{appId:'com.xiaoenai.app',appName:'小恩爱',hash:'557907056'},{appId:'com.xiaofeiji.app.disk',appName:'小飞机网盘',hash:'-1192118917'},{appId:'com.max.xiaoheihe',appName:'小黑盒',hash:'-357240877'},{appId:'com.xingin.xhs',appName:'小红书',hash:'-1031558479'},{appId:'com.dz.xmbnxj',appName:'小卖部逆袭记',hash:'-1650339618'},{appId:'com.android.browser',appName:'小米浏览器',hash:'-1243492292'},{appId:'com.xiaomi.shop',appName:'小米商城',hash:'277863260'},{appId:'com.xiaomi.vipaccount',appName:'小米社区',hash:'-1898417322'},{appId:'com.miui.securitycenter',appName:'小米手机管家',hash:'-1417479130'},{appId:'com.miui.player',appName:'小米音乐',hash:'-612834190'},{appId:'com.xiaomi.market',appName:'小米应用商店',hash:'560468770'},{appId:'com.xiaomi.gamecenter.sdk.service',appName:'小米游戏服务',hash:'-1565570240'},{appId:'com.xiaomi.gamecenter',appName:'小米游戏中心',hash:'947418797'},{appId:'com.xiaomi.youpin',appName:'小米有品',hash:'917042172'},{appId:'com.miui.cloudservice',appName:'小米云服务',hash:'596478897'},{appId:'com.mi.health',appName:'小米运动健康',hash:'-766051647'},{appId:'com.craftvpn.craft',appName:'小牛加速器',hash:'-2054039917'},{appId:'com.sjmly.sjmtask.xsh',appName:'小柿子',hash:'-1872371646'},{appId:'com.xiaote',appName:'小特',hash:'1359779485'},{appId:'com.okii.watch.global',appName:'小天才',hash:'1055998759'},{appId:'com.xtc.watch',appName:'小天才',hash:'967024859'},{appId:'com.ukids.client.phone',appName:'小小优趣',hash:'-97668828'},{appId:'com.firebear.androil',appName:'小熊油耗',hash:'408105024'},{appId:'com.xiaoxiongyhh',appName:'小熊有好货',hash:'-423839442'},{appId:'com.ants360.yicamera',appName:'小蚁摄像机',hash:'1611303695'},{appId:'com.fenbi.android.leo',appName:'小猿口算',hash:'-721924846'},{appId:'com.fenbi.android.solar',appName:'小猿搜题',hash:'2021687741'},{appId:'me.zhouzhuo810.zznote',appName:'小周便签',hash:'1187536795'},{appId:'io.iftech.android.box',appName:'小组件盒子',hash:'-747700391'},{appId:'moc.nauxuoyoaixoaix.www',appName:'晓晓优选',hash:'-590073849'},{appId:'ctrip.android.view',appName:'携程旅行',hash:'1310504938'},{appId:'com.youloft.icloser',appName:'心动日常',hash:'1825226488'},{appId:'com.miaoying.appmy.cs',appName:'新小财神影视',hash:'483718207'},{appId:'yyc.xk',appName:'星空视频壁纸',hash:'-716096642'},{appId:'com.jz.xydj',appName:'星芽免费短剧',hash:'103210424'},{appId:'cn.nlyuming.duanju.ting',appName:'星影视频',hash:'1903966807'},{appId:'cn.ylkj.xingying',appName:'星影视频',hash:'-1807057236'},{appId:'com.xsj.app',appName:'星影视频',hash:'-503859947'},{appId:'com.xt.retouch',appName:'醒图',hash:'1756130951'},{appId:'com.cib.xyk',appName:'兴业生活',hash:'2039741931'},{appId:'com.uanmi.miaojiaccount',appName:'熊猫记账',hash:'1713474343'},{appId:'com.showstartfans.activity',appName:'秀动',hash:'-645952219'},{appId:'cn.xuexi.android',appName:'学习强国',hash:'1191029559'},{appId:'com.chaoxing.mobile',appName:'学习通',hash:'-1672769786'},{appId:'com.xuexiaoyi.xxy',appName:'学小易',hash:'1527361173'},{appId:'com.xueqiu.android',appName:'雪球',hash:'1056984291'},{appId:'com.xueqiu.fund',appName:'雪球基金',hash:'-441401135'},{appId:'com.xunlei.downloadprovider',appName:'迅雷',hash:'-894368837'},{appId:'cn.wsds.gamemaster',appName:'迅游手游加速器',hash:'588175028'},{appId:'com.cctv.yangshipin.app.androidp',appName:'央视频',hash:'-1830100133'},{appId:'com.cctv.cctv5ultimate',appName:'央视体育',hash:'247229029'},{appId:'com.hihanhan.one.rt45',appName:'一个',hash:'-1447473461'},{appId:'com.baidu.youavideo',appName:'一刻相册',hash:'1593492249'},{appId:'com.xingluo.allcolor',appName:'一起来涂色',hash:'-746761855'},{appId:'com.taobao.etao',appName:'一淘',hash:'2137812208'},{appId:'com.yikaobang.yixue',appName:'医考帮',hash:'-564126754'},{appId:'cn.com.hkgt.gasapp',appName:'易捷加油',hash:'1546784438'},{appId:'com.hose.ekuaibao',appName:'易快报',hash:'-524659007'},{appId:'com.chinatelecom.bestpayclient',appName:'翼支付',hash:'-1166160754'},{appId:'com.heytap.music',appName:'音乐',hash:'-1838799925'},{appId:'com.oplus.appdetail',appName:'应用安装器',hash:'-858444256'},{appId:'com.miui.packageinstaller',appName:'应用包管理组件',hash:'-1665025453'},{appId:'com.yingyonghui.market',appName:'应用汇',hash:'1669653651'},{appId:'com.sec.android.app.samsungapps',appName:'应用商店',hash:'-1225090538'},{appId:'com.videogo',appName:'萤石云视频',hash:'1725919030'},{appId:'com.movie.store',appName:'影视仓',hash:'381157302'},{appId:'com.le123.ysdq',appName:'影视大全',hash:'-366666135'},{appId:'com.flttrade.flt1064trade.gong',appName:'影视工场',hash:'888450571'},{appId:'cn.yonghui.hyd',appName:'永辉生活',hash:'1325136463'},{appId:'com.ky.medical.reference',appName:'用药参考',hash:'1023222267'},{appId:'com.youku.phone',appName:'优酷视频',hash:'-1692253156'},{appId:'com.yek.android.uniqlo',appName:'优衣库',hash:'967012255'},{appId:'com.yitong.mbank.psbc',appName:'邮储银行',hash:'1773314214'},{appId:'com.gamersky',appName:'游民星空',hash:'-955767762'},{appId:'com.youdao.translator',appName:'有道翻译官',hash:'2091523240'},{appId:'com.youdao.note',appName:'有道云笔记',hash:'222893312'},{appId:'io.dcloud.H576E6CC7',appName:'鱼泡网',hash:'720845573'},{appId:'com.yuque.mobile.android.app',appName:'语雀',hash:'-493301492'},{appId:'com.wwwscn.yuexingbao',appName:'悦通行',hash:'-826470281'},{appId:'com.heytap.reader',appName:'阅读',hash:'-1040394275'},{appId:'com.cmstop.shaoxing',appName:'越牛新闻',hash:'410164738'},{appId:'com.miHoYo.cloudgames.hkrpg',appName:'云·星穹铁道',hash:'1135379692'},{appId:'com.miHoYo.cloudgames.ys',appName:'云·原神',hash:'-1855861260'},{appId:'com.mosoink.teach',appName:'云班课',hash:'1857675522'},{appId:'com.huawei.hidisk',appName:'云空间',hash:'-1919575464'},{appId:'com.unionpay',appName:'云闪付',hash:'515982662'},{appId:'com.jovetech.CloudSee.temp',appName:'云视通',hash:'-96917203'},{appId:'com.shinyv.cnr',appName:'云听',hash:'-277627811'},{appId:'com.zjwh.android_wh_physicalfitness',appName:'运动世界校园',hash:'-1534473421'},{appId:'com.cheersedu.app',appName:'湛庐阅读',hash:'-1797056842'},{appId:'com.lphtsccft',appName:'涨乐财富通',hash:'648308836'},{appId:'com.tencent.qt.sns',appName:'掌上穿越火线',hash:'-190408189'},{appId:'com.tencent.djcity',appName:'掌上道聚城',hash:'-570252857'},{appId:'com.mygolbs.mybus',appName:'掌上公交',hash:'1175026466'},{appId:'com.cmbchina.ccd.pluto.cmbActivity',appName:'掌上生活',hash:'1893781697'},{appId:'com.seebaby',appName:'掌通家园',hash:'-1050288068'},{appId:'com.zgnet.eClass',appName:'掌医课堂',hash:'-2057031746'},{appId:'cmb.pb',appName:'招商银行',hash:'-1357050264'},{appId:'com.huodao.hdphone',appName:'找靓机',hash:'611363169'},{appId:'com.hanweb.android.zhejiang.activity',appName:'浙里办',hash:'-371662184'},{appId:'com.zhengnengliang.precepts',appName:'正气',hash:'-901853874'},{appId:'com.eg.android.AlipayGphone',appName:'支付宝',hash:'2049668591'},{appId:'pansong291.xposed.quickenergy.repair',appName:'芝麻粒',hash:'1821317411'},{appId:'com.ping.cimoc',appName:'芝士漫画',hash:'-1156981780'},{appId:'com.able.wisdomtree',appName:'知到',hash:'119117702'},{appId:'com.zhihu.android',appName:'知乎',hash:'752555548'},{appId:'com.pcs.knowing_weather',appName:'知天气-决策',hash:'-442549199'},{appId:'com.cnki.view',appName:'知网文化',hash:'-1465651651'},{appId:'android.zhibo8',appName:'直播吧',hash:'132785423'},{appId:'com.zzw.october',appName:'志愿汇',hash:'878104636'},{appId:'com.hyww.wisdomtree',appName:'智慧树',hash:'-1859812145'},{appId:'com.huawei.search',appName:'智慧搜索',hash:'-1608430110'},{appId:'com.xiaolian.prometheus',appName:'智慧笑联',hash:'-1921265086'},{appId:'com.zhaopin.social',appName:'智联招聘',hash:'-807718193'},{appId:'com.crirp.zhipu',appName:'智谱',hash:'-2007503491'},{appId:'com.yipiao',appName:'智行火车票',hash:'1388849156'},{appId:'com.ct.client',appName:'中国电信',hash:'1983218619'},{appId:'com.icbc',appName:'中国工商银行',hash:'-660489432'},{appId:'com.ai.obc.cbn.app',appName:'中国广电',hash:'803810283'},{appId:'com.chinamworld.main',appName:'中国建设银行',hash:'909131224'},{appId:'cn.mil.junhao',appName:'中国军号',hash:'793967092'},{appId:'com.sinovatech.unicom.ui',appName:'中国联通',hash:'-1635319800'},{appId:'com.android.bankabc',appName:'中国农业银行',hash:'-1731486278'},{appId:'com.greenpoint.android.mc10086.activity',appName:'中国移动',hash:'2091464343'},{appId:'com.xinhang.mobileclient',appName:'中国移动河南',hash:'-1339081927'},{appId:'com.jsmcc',appName:'中国移动江苏',hash:'1001074935'},{appId:'com.chinamobile.mcloud',appName:'中国移动云盘',hash:'1868020298'},{appId:'com.ecitic.bank.mobile',appName:'中信银行',hash:'1076661718'},{appId:'com.badmintoncn.bbs',appName:'中羽在线',hash:'-1098208439'},{appId:'com.android.thememanager',appName:'主题壁纸',hash:'1799462192'},{appId:'com.wuba.zhuanzhuan',appName:'转转',hash:'-1943382780'},{appId:'com.sjm.luobo',appName:'追剧达人',hash:'1441662894'},{appId:'com.mj.mjyd',appName:'追漫大全',hash:'-1987653716'},{appId:'com.pandabus.android.zb',appName:'淄博出行',hash:'588368802'},{appId:'com.zidongdianji',appName:'自动点击器',hash:'1196783729'},{appId:'com.dep.biguo',appName:'自考笔果题库',hash:'1017502926'},{appId:'com.zmsoft.forwatch',appName:'子腾园',hash:'-485387222'},{appId:'cn.xiaochuankeji.tieba',appName:'最右',hash:'-2119218027'},{appId:'com.zuoyebang.knowledge',appName:'作业帮家长版',hash:'887198459'},{appId:'com.pcncn.jj',appName:'作业精灵',hash:'-648739979'},{appId:'com.dfsly.bbs',appName:'AC匿名版',hash:'-1372625002'},{appId:'com.chunqiu.ah',appName:'AH视频',hash:'2066500643'},{appId:'com.google.android.documentsui',appName:'Android 系统文件选择器',hash:'650999717'},{appId:'com.njh.biubiu',appName:'biubiu加速器',hash:'-1991835185'},{appId:'com.danlan.xiaolan',appName:'Blued极速版',hash:'1544041185'},{appId:'com.hpbr.bosszhipin',appName:'BOSS直聘',hash:'-2069018544'},{appId:'cn.ccspeed',appName:'CC加速器',hash:'-54120092'},{appId:'com.viva.time_todo',appName:'CliCli动漫',hash:'-58806987'},{appId:'com.sdhs.easy.high.road',appName:'e高速',hash:'1998166565'},{appId:'com.estrongs.android.pop',appName:'ES文件浏览器',hash:'-133843480'},{appId:'com.uroad.carclub',appName:'ETC车宝',hash:'476514564'},{appId:'com.x2era.xcloud.app',appName:'Fa米家',hash:'-1584753583'},{appId:'com.gvsoft.gofun',appName:'GoFun出行',hash:'-1451433393'},{appId:'com.google.android.gms',appName:'Google Play 服务',hash:'325967270'},{appId:'com.android.vending',appName:'Google Play 商店',hash:'-1046965711'},{appId:'com.google.android.apps.translate',appName:'Google翻译',hash:'1062746585'},{appId:'com.leduoworks.gpstoolbox',appName:'GPS工具箱',hash:'-623814035'},{appId:'com.moutai.mall',appName:'i茅台',hash:'-2040150964'},{appId:'com.bbk.theme',appName:'i主题',hash:'-721978855'},{appId:'com.ruanmei.ithome',appName:'IT之家',hash:'43250948'},{appId:'net.pchome.kds',appName:'kds宽带山',hash:'2116133007'},{appId:'com.miui.systemAdSolution',appName:'miui系统广告',hash:'-1239952740'},{appId:'bin.mt.plus.canary',appName:'MT管理器Pro',hash:'-660001428'},{appId:'com.mxtech.videoplayer.ad',appName:'MX 播放器',hash:'-59110827'},{appId:'gov.pianzong.androidnga',appName:'NGA玩家社区',hash:'-173873869'},{appId:'com.wn.app.np',appName:'NP管理器',hash:'-1726468231'},{appId:'com.heytap.market',appName:'OPPO软件商店',hash:'-1186720938'},{appId:'com.oppo.store',appName:'OPPO商城',hash:'1283073952'},{appId:'com.coloros.phonemanager',appName:'OPPO手机管家',hash:'922111699'},{appId:'com.xyhui',appName:'PU口袋校园',hash:'1014178734'},{appId:'com.tencent.qqlite',appName:'QQ极速版',hash:'-191341148'},{appId:'com.tencent.mtt',appName:'QQ浏览器',hash:'-103524201'},{appId:'com.tencent.qqmusic',appName:'QQ音乐',hash:'-1635328017'},{appId:'com.tencent.androidqqmail',appName:'QQ邮箱',hash:'-1518567568'},{appId:'com.qq.reader',appName:'QQ阅读',hash:'1937929252'},{appId:'com.realmecomm.app',appName:'realme社区',hash:'-165785086'},{appId:'so.tita',appName:'tita搜索',hash:'-2087381004'},{appId:'com.midea.vm.washer',appName:'U净',hash:'-208116820'},{appId:'com.UCMobile',appName:'UC浏览器',hash:'270694045'},{appId:'com.upupoo.apu.mobile',appName:'UPUPOO动态壁纸',hash:'1293827157'},{appId:'com.chaozh.iReader',appName:'VIVO 电子书',hash:'2070851436'},{appId:'com.vivo.space',appName:'vivo 官网',hash:'1541553105'},{appId:'com.vivo.browser',appName:'vivo浏览器',hash:'1831923507'},{appId:'com.bbk.appstore',appName:'vivo应用商店',hash:'801604880'},{appId:'com.snda.wifilocating',appName:'WiFi万能钥匙',hash:'559984781'},{appId:'com.wifitutu',appName:'WiFi万能钥匙',hash:'-527159516'},{appId:'com.cto51.student',appName:'51CTO',hash:'1330427866'},{appId:'com.attempt.afusekt',appName:'AfuseKt',hash:'78730141'},{appId:'com.paget96.batteryguru',appName:'Battery Guru',hash:'370483461'},{appId:'com.hichip.campro',appName:'CamHipro',hash:'704827154'},{appId:'com.closeli.ipc',appName:'Eyeplus',hash:'-755430602'},{appId:'com.overlook.android.fing',appName:'Fing',hash:'-535753271'},{appId:'com.codium.hydrocoach',appName:'Hydro Coach',hash:'822816578'},{appId:'tw.com.icash.a.icashpay',appName:'icash Pay',hash:'731853923'},{appId:'com.kmb.app1933',appName:'KMB . LWB',hash:'450564750'},{appId:'com.vlending.apps.mubeat',appName:'Mubeat',hash:'1549126038'},{appId:'com.qc.mycomic',appName:'MyComic',hash:'-86962464'},{appId:'tw.nekomimi.nekogram',appName:'Nekogram',hash:'924119810'},{appId:'tw.net.pic.m.openpoint',appName:'OPENPOINT',hash:'-1426962267'},{appId:'com.zhiwei.rjm',appName:'RJmao',hash:'1454768980'},{appId:'cn.runningquotient.rq',appName:'RQrun',hash:'-1562497050'},{appId:'com.realme.securitycheck',appName:'SecurityAnalysis',hash:'-494716963'},{appId:'com.tradingview.tradingviewapp',appName:'TradingView',hash:'-1494329008'},{appId:'com.xfinity.digitalhome',appName:'Xfinity',hash:'1365466327'},{appId:'anddea.youtube',appName:'YouTube RVX',hash:'978422014'},{appId:'com.qihoo.smart',appName:'360智慧生活',hash:'353766558'},{appId:'com.taitedi.hdd.ayi',appName:'爱其意',hash:'345436962'},{appId:'com.ssports.mobile.video',appName:'爱奇艺体育',hash:'1120693560'},{appId:'com.aiwu.market',appName:'爱吾游戏宝盒',hash:'-500861641'},{appId:'com.at.a552360580763717',appName:'安心加速器',hash:'1621949448'},{appId:'com.generalcomp.batian',appName:'霸天安云',hash:'-805951099'},{appId:'com.wn.app.bl',appName:'布蕾4K',hash:'-1726468607'},{appId:'com.vehicles.activities',appName:'车旺大卡',hash:'2020216199'},{appId:'com.anshibo.activity',appName:'车e兴',hash:'-1235511146'},{appId:'com.sainti.eduread',appName:'出口成章',hash:'-487464941'},{appId:'mikuclub.app',appName:'初音社',hash:'-2134803729'},{appId:'com.neusoft.tax',appName:'楚税通',hash:'197239448'},{appId:'me.drakeet.puremosaic',appName:'纯纯打码',hash:'1758610218'},{appId:'net.duohuo.cyc',appName:'次元城动画',hash:'-359640844'},{appId:'com.dlmetro.app',appName:'大连交通e出行',hash:'-1257019561'},{appId:'com.lxkj.dmhw',appName:'呆萌价',hash:'-276541618'},{appId:'com.sdu.didi.gsui',appName:'滴滴车主',hash:'-702898867'},{appId:'com.android.email',appName:'电子邮件',hash:'1534272944'},{appId:'com.ss.android.yumme.video',appName:'抖音精选',hash:'1977694710'},{appId:'com.tnscreen.main',appName:'多屏互动',hash:'883124628'},{appId:'cn.cty.hbzw',appName:'鄂汇办',hash:'635847648'},{appId:'com.duoduo.child.story',appName:'儿歌多多',hash:'445397378'},{appId:'com.fzfengzheng.fzboyp',appName:'风筝影评',hash:'1798643919'},{appId:'com.alcidae.smarthome',appName:'海雀',hash:'-1297141276'},{appId:'com.haixing.phonelive',appName:'海星体育',hash:'-598737351'},{appId:'com.huaxiaozhu.rider',appName:'花小猪打车',hash:'-457503443'},{appId:'com.huawei.hwread.dz',appName:'华为阅读',hash:'-544712315'},{appId:'com.heytap.headset',appName:'欢律',hash:'1822426792'},{appId:'camera.timestamp.mark.watermark',appName:'今日水印相机',hash:'-1117471484'},{appId:'com.jdcar.jch',appName:'京东养车',hash:'-159637874'},{appId:'com.jdcloud.mt.smartrouter',appName:'京东云无线宝',hash:'-1282477909'},{appId:'com.jd.jxj',appName:'京粉',hash:'952829749'},{appId:'com.llmm.huiyuanuxiang',appName:'囧次元',hash:'-2079399752'},{appId:'com.example.yr',appName:'剧兔',hash:'1408666794'},{appId:'com.nursinghome.monitor',appName:'看护家',hash:'2083546360'},{appId:'com.bx.game.dgg',appName:'看剧',hash:'1534776819'},{appId:'com.kk.ysk3.tz12063k',appName:'可可影视',hash:'-1223317968'},{appId:'com.kurogame.kjq',appName:'库街区',hash:'623362154'},{appId:'cn.kuwo.player',appName:'酷我音乐',hash:'1429484426'},{appId:'com.lanlanys.app',appName:'懒懒视频',hash:'1387372026'},{appId:'com.nn.accelerator.box',appName:'雷神加速器',hash:'-1284113113'},{appId:'com.zb.sph.zaobaosingapore',appName:'联合早报',hash:'-1463644096'},{appId:'com.chinaunicom.bol.cloudapp',appName:'联通云盘',hash:'-1303817106'},{appId:'com.yfoo.listen',appName:'聆听音乐',hash:'-401876933'},{appId:'com.topgether.sixfoot',appName:'六只脚',hash:'1609454281'},{appId:'com.android.soundrecorder',appName:'录音机',hash:'-1147242271'},{appId:'com.bankcomm.maidanba',appName:'买单吧',hash:'771221524'},{appId:'com.taou.maimai',appName:'脉脉',hash:'-1431590866'},{appId:'com.lingan.seeyou',appName:'美柚',hash:'-13255958'},{appId:'com.rocoplayer.app.nm',appName:'柠檬听书',hash:'53015651'},{appId:'com.spdbccc.app',appName:'浦大喜奔',hash:'872971470'},{appId:'com.finshell.wallet',appName:'钱包',hash:'-1763354987'},{appId:'com.mipay.wallet',appName:'钱包',hash:'174938600'},{appId:'com.m17qcc.mm',appName:'青创网',hash:'74231043'},{appId:'com.allhistory.dls.marble',appName:'全知识',hash:'-743190034'},{appId:'com.lcworld.haiwainet',appName:'人民日报海外版',hash:'-934698994'},{appId:'com.zhongduomei.rrmj.society',appName:'人人视频',hash:'712620453'},{appId:'com.hihonor.baidu.browser',appName:'荣耀浏览器',hash:'1291563139'},{appId:'com.samsung.android.app.sreminder',appName:'三星生活助手',hash:'502671992'},{appId:'com.svw.sc.mos',appName:'上汽大众',hash:'1957348794'},{appId:'com.shaoniandream',appName:'少年梦阅读',hash:'-1859612085'},{appId:'com.liuzh.deviceinfo',appName:'设备信息',hash:'-364079111'},{appId:'com.sqsp.movie',appName:'视趣',hash:'504849226'},{appId:'cn.gov.pbc.dcep',appName:'数字人民币',hash:'-322418038'},{appId:'com.oneshareclap.malaysian',appName:'水果派',hash:'-429475581'},{appId:'com.ruYUVE.bgGRHf',appName:'水果派',hash:'1874436545'},{appId:'com.simplesecurity.english',appName:'水果派',hash:'1334335105'},{appId:'com.example.administrator.searchpicturetool',appName:'搜图神器',hash:'-1488249828'},{appId:'com.sobo.app',appName:'素博影院',hash:'2010508329'},{appId:'com.jiutian.jiutianapp.sss',appName:'速搜视频',hash:'15994513'},{appId:'com.duoduo.cimoc.su',appName:'速映影院',hash:'-1603546922'},{appId:'com.viva.todo',appName:'泰剧兔',hash:'-628146327'},{appId:'com.p1.mobile.putong',appName:'探探',hash:'1327136549'},{appId:'com.bokecc.dance',appName:'糖豆',hash:'1219356505'},{appId:'com.flutter3.ctangxin.vf0egg',appName:'糖心Vlog',hash:'-1681660939'},{appId:'com.taobao.htao.android',appName:'淘宝Lite',hash:'-1063537778'},{appId:'com.tencent.wemeet.app',appName:'腾讯会议',hash:'1380298910'},{appId:'com.coloros.weather2',appName:'天气',hash:'154133778'},{appId:'com.hihonor.android.totemweather',appName:'天气',hash:'-798707644'},{appId:'com.ataaw.tianyi',appName:'天翼生活',hash:'-282425047'},{appId:'com.tt.turbo',appName:'甜糖',hash:'-1881064707'},{appId:'com.MobileTicket',appName:'铁路12306',hash:'-1284596293'},{appId:'com.chinarailway.globalticketing',appName:'铁路12306',hash:'-846804648'},{appId:'com.tongtongsuo.app',appName:'通通锁',hash:'1439376043'},{appId:'com.woaika.kashen',appName:'我爱卡',hash:'1012578559'},{appId:'com.wujie.connect',appName:'无界趣连',hash:'1984618167'},{appId:'com.hxzd.wcf',appName:'五寸方',hash:'94023987'},{appId:'com.readunion.ireader',appName:'息壤阅读',hash:'-1954914998'},{appId:'com.android.providers.downloads.ui',appName:'下载管理',hash:'-1050713937'},{appId:'com.miui.gallery',appName:'相册',hash:'-1520738335'},{appId:'com.xiaomi.scanner',appName:'小爱视觉',hash:'1266373592'},{appId:'com.ixyzh.question',appName:'小包搜题',hash:'-728400055'},{appId:'com.xiaoe.client',appName:'小鹅通',hash:'-345963360'},{appId:'com.didi.live.spring',appName:'小红帽',hash:'-78172680'},{appId:'com.vson.smarthome',appName:'小美智能',hash:'1327854627'},{appId:'com.miui.huanji',appName:'小米换机',hash:'-833566134'},{appId:'com.miui.video',appName:'小米视频',hash:'539874506'},{appId:'com.wanbangauto.chargepile',appName:'星星充电',hash:'-436739082'},{appId:'com.xingye.app',appName:'星野',hash:'-581825610'},{appId:'com.viva.timeplan.p5',appName:'烟花动漫',hash:'1281997498'},{appId:'cn.cntvnews',appName:'央视新闻',hash:'-470677853'},{appId:'com.cmri.universalapp',appName:'移动爱家',hash:'1314748790'},{appId:'enfc.metro',appName:'亿通行',hash:'1137752145'},{appId:'com.lieju.lws.escanu',appName:'易视看',hash:'-220646271'},{appId:'com.tencent.android.qqdownloader',appName:'应用宝',hash:'-860300598'},{appId:'zte.com.market',appName:'应用中心',hash:'-1088578900'},{appId:'com.fongmi.android.tv',appName:'影视',hash:'1113359812'},{appId:'com.zhishan.washer',appName:'悠洗',hash:'581010410'},{appId:'com.yujian.ResideMenuDemo',appName:'雨见',hash:'662317925'},{appId:'com.heytap.cloud',appName:'云服务',hash:'-1848306725'},{appId:'com.yunzhi.tiyu',appName:'云运动',hash:'244170057'},{appId:'com.tencent.qt.qtl',appName:'掌上英雄联盟',hash:'-190409932'},{appId:'com.chaozh.iReaderFree',appName:'掌阅',hash:'-1131240456'},{appId:'com.xiaolan.tv.chat',appName:'真不卡',hash:'-1581354685'},{appId:'tkaxv7s.xposed.sesame',appName:'芝麻粒',hash:'93576321'},{appId:'com.zhihu.android.lite',appName:'知乎极速版',hash:'1629832512'},{appId:'cn.edu.buaa.wxwork',appName:'智慧北航',hash:'-901880238'},{appId:'com.zol.android',appName:'中关村在线',hash:'-2087954837'},{appId:'com.cloudpower.netsale.activity',appName:'中国人保',hash:'205625770'},{appId:'com.chinamworld.bocmbci',appName:'中国银行',hash:'-912745742'},{appId:'com.wisentsoft.chinapost.android',appName:'中国邮政',hash:'-421196693'},{appId:'com.hihonor.android.thememanager',appName:'主题',hash:'-1177742091'},{appId:'com.whale.whaleshop.ced',appName:'追剧达人',hash:'490255745'},{appId:'com.learn.team.congrong',appName:'卓聚',hash:'-1804690507'},{appId:'com.ziroom.ziroomcustomer',appName:'自如',hash:'-924284001'},{appId:'com.doudoubird.weather',appName:'最准天气',hash:'-1606419188'},{appId:'com.baidu.homework',appName:'作业帮',hash:'-2092209424'},{appId:'coding.yu.ccompiler.new',appName:'C语言编译器',hash:'1908221542'},{appId:'com.sgcc.evs.echarge',appName:'e充电',hash:'-1892077856'},{appId:'com.pingan.smt',appName:'i深圳',hash:'311511704'},{appId:'ai.ling.luka.app',appName:'Luka阅读养成',hash:'1419415556'},{appId:'bin.mt.plus',appName:'MT管理器',hash:'-532693094'},{appId:'npgl.jsitcx.xlpqi',appName:'NP管理器',hash:'1709950198'},{appId:'com.custom.zktimehelp',appName:'ZK助手',hash:'-1948444369'},{appId:'tv.acfundanmaku.video',appName:'AcFun',hash:'1219220171'},{appId:'cn.xiaolongonly.andpodsop',appName:'AndPods',hash:'298167682'},{appId:'com.netease.buff',appName:'BUFF',hash:'1143678115'},{appId:'com.xxx.svideo',appName:'BaseLibrary',hash:'-878021717'},{appId:'com.catlinks.app',appName:'CATLINK',hash:'-296680797'},{appId:'com.hujiang.cctalk',appName:'CCtalk',hash:'1958626233'},{appId:'com.hichip',appName:'CamHi',hash:'901765594'},{appId:'com.weaver.emobile7',appName:'EMobile7',hash:'-506597855'},{appId:'com.edifier.edifierconnect',appName:'Edifier Connect',hash:'-1789439887'},{appId:'vstc.AKCXKJ.client',appName:'FOWL',hash:'-866604167'},{appId:'com.lerist.fakelocation',appName:'Fake Location',hash:'-615243494'},{appId:'li.songe.gkd',appName:'GKD',hash:'1269307345'},{appId:'com.lws207lws',appName:'LWSCAM',hash:'-817016310'},{appId:'com.shanghaigm.android.mycadillac',appName:'MyCadillac',hash:'-300827072'},{appId:'com.chipsea.btcontrol',appName:'OKOK',hash:'1036869107'},{appId:'com.yunding.noopsychebrush',appName:'Oclean Care',hash:'768490445'},{appId:'com.picovr.assistantphone',appName:'PICO VR',hash:'1168953488'},{appId:'com.picooc',appName:'PICOOC',hash:'1130805702'},{appId:'com.msnothing.airpodsking',appName:'Pods King',hash:'1404564987'},{appId:'com.qooapp.qoohelper',appName:'QooApp',hash:'1380806606'},{appId:'com.blackbees.xlife',appName:'Xlife',hash:'14296649'},{appId:'yesoul.yesoulmobile',appName:'Yesoul',hash:'-147269904'},{appId:'com.molink.john.hummingbird',appName:'bebird',hash:'-1149627184'},{appId:'cn.cj.pe',appName:'139邮箱',hash:'992263577'},{appId:'com.qihoo360.antilostwatch',appName:'360儿童卫士',hash:'1277455077'},{appId:'com.qihoo.dr',appName:'360行车助手',hash:'1963462105'},{appId:'com.when.coco',appName:'365日历',hash:'-1714432033'},{appId:'insigma.waybook.jinan',appName:'369出行',hash:'1234476824'},{appId:'com.android36kr.app',appName:'36氪',hash:'-1714656705'},{appId:'com.HaoTuBang.H3DBodyFree',appName:'3Dbody解剖',hash:'-262597285'},{appId:'com.zhangdan.app',appName:'51信用卡管家',hash:'-964320219'},{appId:'com.ncili.jie',appName:'BT磁力下载器',hash:'794332476'},{appId:'com.bmw.app.bundle',appName:'Bimmer控制器',hash:'-1753408866'},{appId:'com.gstarmc.android',appName:'CAD看图王',hash:'1593320355'},{appId:'com.ccbhome.lanhai',appName:'CCB建融家园',hash:'2063283473'},{appId:'com.linlic.ccmtv.yx',appName:'CCMTV临床频道',hash:'2091637546'},{appId:'com.lemon.faceu',appName:'Faceu激萌',hash:'187439632'},{appId:'com.didikee.gifparser',appName:'GIF助手',hash:'1870842441'},{appId:'uni.UNIE7FC6F0',appName:'MERIT超燃脂',hash:'737364255'},{appId:'com.oppo.community',appName:'OPPO 社区',hash:'-252647640'},{appId:'com.heytap.browser',appName:'OPPO浏览器',hash:'1178046286'},{appId:'com.excean.splay',appName:'OurPlay加速器',hash:'1887302600'},{appId:'com.vidure.papago',appName:'PAPAGO焦点',hash:'129480820'},{appId:'com.rcgd.app',appName:'Roco攻略',hash:'-1659424562'},{appId:'com.appbyme.app283982',appName:'SDGun社区',hash:'-53316932'},{appId:'com.bjsk.intelligent',appName:'WiFi智能钥匙',hash:'1286910710'},{appId:'windinfo.android',appName:'Wind金融终端',hash:'645333303'},{appId:'com.lovebizhi.wallpaper',appName:'爱壁纸',hash:'1355988041'},{appId:'com.ikang.official',appName:'爱康约体检查报告',hash:'673527470'},{appId:'com.iqiyi.hotchat',appName:'爱奇艺热聊',hash:'1441581467'},{appId:'com.cqcsy.ifvod',appName:'爱壹帆',hash:'1568464078'},{appId:'com.anjuke.android.app',appName:'安居客',hash:'-945730221'},{appId:'com.baidu.searchbox.lite',appName:'百度极速版',hash:'596174617'},{appId:'com.baidu.wenku',appName:'百度文库',hash:'345365066'},{appId:'com.zhangkongapp.joke.bamenshenqi',appName:'八门神器',hash:'44697671'},{appId:'com.bytxmt.banyuetan',appName:'半月谈',hash:'999522536'},{appId:'com.sinyee.babybus.recommendapp',appName:'宝宝巴士',hash:'1546297161'},{appId:'mo.gov.dsat.bis',appName:'巴士報站',hash:'-162775988'},{appId:'com.beisen.italent',appName:'北森italent',hash:'143492810'},{appId:'com.bilibili.comic',appName:'哔哩哔哩漫画',hash:'-138386686'},{appId:'com.yumc.phsuperapp',appName:'必胜客',hash:'1485282829'},{appId:'com.byd.sea',appName:'比亚迪海洋',hash:'1612146273'},{appId:'cn.wenyu.bodian',appName:'波点音乐',hash:'-1355436652'},{appId:'com.sfacg',appName:'菠萝包轻小说',hash:'1008987813'},{appId:'com.caing.news',appName:'财新',hash:'2053958218'},{appId:'com.cankaoxiaoxi.app1',appName:'参考消息',hash:'1298432120'},{appId:'com.xxwolo.cc5',appName:'测测',hash:'-976295089'},{appId:'com.changba',appName:'唱吧',hash:'2012078823'},{appId:'cn.fszt.trafficapp',appName:'畅驾',hash:'1032224520'},{appId:'com.ichangtou',appName:'长投学堂',hash:'45571361'},{appId:'com.lion.market',appName:'虫虫助手',hash:'-827494047'},{appId:'com.happy.cloud',appName:'磁力云',hash:'1356953786'},{appId:'io.dcloud.H514D19D6',appName:'代练通',hash:'-367549575'},{appId:'com.dangdang.buy2',appName:'当当',hash:'-436563327'},{appId:'com.djttw.news',appName:'党建头条',hash:'1954422141'},{appId:'com.shougang.shiftassistant',appName:'倒班助手',hash:'2124008335'},{appId:'com.sdo.sdaccountkey',appName:'叨鱼',hash:'-1739809120'},{appId:'com.chaozh.iReader.dj',appName:'得间免费小说',hash:'-175062456'},{appId:'tv.tvguo.androidphone',appName:'电视果',hash:'308840794'},{appId:'com.taobao.live',appName:'点淘',hash:'2138010815'},{appId:'com.shct.yi',appName:'电信云宽带',hash:'-965759733'},{appId:'com.qiqi.hhvideo',appName:'电影猎手',hash:'878698762'},{appId:'info.zzjdev.musicdownload',appName:'嘀嘀动漫',hash:'-960714518'},{appId:'com.cartoon.dddm',appName:'嘀嘀动漫',hash:'1299819222'},{appId:'com.dingda.app',appName:'叮嗒出行',hash:'-1551429061'},{appId:'com.vyou.vcameraclient',appName:'盯盯拍',hash:'353542894'},{appId:'com.yaya.zone',appName:'叮咚买菜',hash:'-150433123'},{appId:'net.dingblock.mobile',appName:'盯链',hash:'-369938094'},{appId:'cn.dxy.idxyer',appName:'丁香园',hash:'-1936708587'},{appId:'com.futurefleet.dongguantongbus.ui.dg',appName:'东莞通',hash:'-837767156'},{appId:'com.naver.linewebtoon.cn',appName:'咚漫漫画',hash:'1569108298'},{appId:'net.dxzq.jgzx',appName:'东兴198',hash:'2009372525'},{appId:'com.douguo.recipe',appName:'豆果美食',hash:'-955505160'},{appId:'com.duomai.duomai',appName:'多麦',hash:'368436257'},{appId:'com.digitalchina.mobile.dfhfz1',appName:'e福州',hash:'285071841'},{appId:'com.cs_credit_bank',appName:'发现精彩',hash:'1963691648'},{appId:'com.fiio.music',appName:'飞傲音乐',hash:'-796270675'},{appId:'vz.com',appName:'飞常准',hash:'-802588841'},{appId:'com.zy.flt_yishang',appName:'飞猫管家',hash:'-933809310'},{appId:'com.gxaisen.feiyu',appName:'飞鱼短剧',hash:'-1396138578'},{appId:'com.taobao.trip',appName:'飞猪',hash:'2138257400'},{appId:'com.fcbox.hiveconsumer',appName:'丰巢',hash:'-925431053'},{appId:'com.yongyou',appName:'丰云行',hash:'274542339'},{appId:'com.citymobi.fufu',appName:'服服',hash:'1290006667'},{appId:'com.samsung.android.voc',appName:'盖乐世社区',hash:'1007789290'},{appId:'com.gtgj.view',appName:'高铁管家',hash:'-1759993066'},{appId:'com.icbc.elife',appName:'工银e生活',hash:'-513565029'},{appId:'cn.guancha.app',appName:'观察者',hash:'-1053841711'},{appId:'com.cgbchina.xpt',appName:'广发银行',hash:'-1680065548'},{appId:'com.cloudy.component',appName:'广汽传祺',hash:'-111279808'},{appId:'com.yitong.bbw.mbank.android',appName:'广西北部湾银行',hash:'-68128490'},{appId:'cn.com.gzbank.mbank',appName:'广银信用卡',hash:'-1983261286'},{appId:'cn.gyyx.phonekey',appName:'光宇游戏',hash:'1102983083'},{appId:'com.glyh.mbank.pro',appName:'桂林银行',hash:'1701946555'},{appId:'cn.hsa.app',appName:'国家医保服务平台',hash:'527904358'},{appId:'com.service.android.gov.cn',appName:'国家政务服务平台',hash:'-537120368'},{appId:'com.hundsun.stockwinner.gszq',appName:'国盛通',hash:'1563657166'},{appId:'com.hualu.heb.zhidabus',appName:'哈尔滨交通出行',hash:'-21625361'},{appId:'cn.edu.hit.welink',appName:'哈工大APP',hash:'1122250654'},{appId:'com.hiby.music',appName:'海贝音乐',hash:'-218965924'},{appId:'com.onecard.hainan',appName:'海南一卡通',hash:'-1707434224'},{appId:'com.baidu.haokan',appName:'好看视频',hash:'1683280386'},{appId:'com.manwei.djz',appName:'嗨探',hash:'-394139756'},{appId:'com.wudaokou.hippo',appName:'盒马',hash:'190393290'},{appId:'com.whty.wicity.china',appName:'和生活',hash:'-34617839'},{appId:'flipboard.cn',appName:'红板报',hash:'1364515808'},{appId:'cn.nubia.bbs',appName:'红魔社区',hash:'20455381'},{appId:'com.hwabao.hbstockwarning',appName:'华宝智投',hash:'-1888287901'},{appId:'com.hcrs',appName:'华彩人生',hash:'-660518711'},{appId:'net.huanci.hsjpro',appName:'画世界Pro',hash:'-341751605'},{appId:'com.tencent.southpole.appstore',appName:'华硕应用市场',hash:'66887167'},{appId:'com.huawei.lives',appName:'华为生活服务',hash:'-473852531'},{appId:'cn.com.yusys.app.HuBeiBank',appName:'湖北银行',hash:'-256496389'},{appId:'com.hsbank.mobilebank',appName:'徽商银行',hash:'1021743416'},{appId:'com.huxiu',appName:'虎嗅',hash:'999298250'},{appId:'com.android.bbkmusic',appName:'i 音乐',hash:'-1332391354'},{appId:'com.foxconn.caa.ipebg.eprotal',appName:'i好办',hash:'1131627681'},{appId:'com.glodon.constructioncalculators',appName:'建工计算器',hash:'-2104463304'},{appId:'com.zeekrlife.mobile',appName:'极氪',hash:'1911355520'},{appId:'com.terminus.tmall',appName:'金币云商',hash:'-315047210'},{appId:'com.jd.iots',appName:'京东小家',hash:'-527086868'},{appId:'com.jjwxc.reader',appName:'晋江小说阅读\t',hash:'-1833543908'},{appId:'com.nionco.todaysm',appName:'今日水木',hash:'-2015041984'},{appId:'com.xhey.xcamera',appName:'今日相机',hash:'-354305888'},{appId:'com.elenut.gstone',appName:'集石',hash:'-207695024'},{appId:'com.jiucaigongshe',appName:'韭研公社',hash:'483680301'},{appId:'com.phoenixtree.decidecat',appName:'决定喵',hash:'437818304'},{appId:'com.hz.czfw.app',appName:'开吧',hash:'1097641770'},{appId:'com.yek.android.kfc.activitys',appName:'肯德基',hash:'-641892861'},{appId:'com.pocket.snh48.activity',appName:'口袋48',hash:'-63576489'},{appId:'com.Kingdee.Express',appName:'快递100',hash:'-106111774'},{appId:'com.skyplatanus.crucio',appName:'快点阅读',hash:'690843811'},{appId:'com.android.tiku.union',appName:'快题库',hash:'1237005612'},{appId:'com.kuaitong.driver',appName:'快通驾考',hash:'205005091'},{appId:'com.kwai.videoeditor',appName:'快影',hash:'616434203'},{appId:'com.cotticoffee.cotticlient',appName:'库迪咖啡',hash:'-106104778'},{appId:'com.qunhe.designer',appName:'酷家乐设计师',hash:'-253373505'},{appId:'com.flatter.app.kuafu',appName:'蓝奏浏览器',hash:'1295250854'},{appId:'yitu.tv.laobai.www',appName:'老白故事',hash:'1866917928'},{appId:'com.mm.android.lchg',appName:'乐橙含光',hash:'-1337800714'},{appId:'cn.ledongli.ldl',appName:'乐动力',hash:'96940387'},{appId:'com.hxak.liangongbao',appName:'链工宝',hash:'981634110'},{appId:'com.fxicrazy.sjml',appName:'联掌门户',hash:'1872813277'},{appId:'cn.medlive.guideline.android',appName:'临床指南',hash:'-415837192'},{appId:'com.lltskb.lltskb',appName:'路路通',hash:'-408037567'},{appId:'bluechips.app.greenlife',appName:'绿地智生活',hash:'-1424651695'},{appId:'com.mfw.roadbook',appName:'马蜂窝',hash:'-502843578'},{appId:'com.tvbc.maiduidui',appName:'埋堆堆',hash:'-1001549641'},{appId:'com.mangshe.tvdown',appName:'蟒蛇下载',hash:'849867580'},{appId:'cn.missevan',appName:'猫耳FM',hash:'-396646979'},{appId:'com.maofan.app',appName:'猫番阅读',hash:'-963891816'},{appId:'com.meitu.meiyancamera',appName:'美颜相机',hash:'-118960061'},{appId:'com.mmzztt.app',appName:'美之图',hash:'1932235040'},{appId:'com.meizu.flyme.flymebbs',appName:'魅族社区',hash:'1900986362'},{appId:'cn.silent.comic',appName:'免漫',hash:'-1400749019'},{appId:'cn.paperang.mm',appName:'喵喵机',hash:'-17764931'},{appId:'com.henzanapp.miaomiaozhe',appName:'喵喵折',hash:'-662871885'},{appId:'com.aster.zhbj',appName:'喵上漫画',hash:'-1408664990'},{appId:'com.wondertek.miguaikan',appName:'咪咕视频爱看版',hash:'-1263633718'},{appId:'cn.com.cmbc.newmbank',appName:'民生银行',hash:'261914236'},{appId:'com.masadoraandroid',appName:'魔法集市 Global',hash:'-806290778'},{appId:'com.moji.mjweather',appName:'墨迹天气',hash:'1488133239'},{appId:'com.immomo.momo',appName:'陌陌',hash:'633261597'},{appId:'top.xuante.moloc',appName:'摩尼定位',hash:'191266436'},{appId:'com.xsd.xasud',appName:'末忆-铁锈盒子',hash:'112641319'},{appId:'cn.com.open.mooc',appName:'慕课网',hash:'-1538980950'},{appId:'com.benew.ntt',appName:'牛听听',hash:'154683472'},{appId:'com.lstech.rehealth',appName:'派健康',hash:'1866021395'},{appId:'com.aihuishou.opt',appName:'拍机堂',hash:'1038362471'},{appId:'pxb7.com',appName:'螃蟹账号代售',hash:'-389559248'},{appId:'com.pingan.carowner',appName:'平安好车主',hash:'874135777'},{appId:'com.pingan.lifecircle',appName:'平安好生活',hash:'-1118310450'},{appId:'com.hundsun.winner.pazq',appName:'平安证券',hash:'101952197'},{appId:'com.pupumall.customer',appName:'朴朴超市',hash:'1047154881'},{appId:'com.ptfish.forum',appName:'莆鱼网',hash:'-1355576740'},{appId:'com.job.android',appName:'前程无忧51Job',hash:'1788138577'},{appId:'csii.com.qny',appName:'黔农云',hash:'-1046497871'},{appId:'com.jooan.qiaoanzhilian',appName:'乔安智联',hash:'-1924703890'},{appId:'com.qh.tesla',appName:'巧虎官方',hash:'-580146099'},{appId:'com.tencent.tv.qie',appName:'企鹅体育',hash:'-102675785'},{appId:'com.appbyme.app89001',appName:'青白江论坛',hash:'696584506'},{appId:'com.sdjictec.qdmetro',appName:'青岛地铁',hash:'-1768436508'},{appId:'com.miui.fm',appName:'蜻蜓FM',hash:'-1950890280'},{appId:'com.smarlife.qingtong',appName:'清瞳',hash:'-2007445473'},{appId:'com.digitalmall.chery',appName:'奇瑞汽车',hash:'2082688888'},{appId:'com.cnspeedtest.globalspeed',appName:'全球网测',hash:'-1623425929'},{appId:'fit.flutter.dsm_helper',appName:'群晖助手',hash:'305460062'},{appId:'com.rym.door',appName:'日淘任意门',hash:'809314147'},{appId:'com.honor.club',appName:'荣耀俱乐部',hash:'-1431914937'},{appId:'com.jv.samsungeshop',appName:'三星商城',hash:'958768150'},{appId:'com.hypergryph.skland',appName:'森空岛',hash:'1912987914'},{appId:'com.huachenjie.shandong_school',appName:'闪动校园',hash:'1930857904'},{appId:'com.tikbee.customer',appName:'閃蜂',hash:'-1971800845'},{appId:'com.mobi.shtp',appName:'上海交警',hash:'-15205175'},{appId:'com.srcb.pmbank',appName:'上海农商银行',hash:'-1417659972'},{appId:'cn.com.shbank.mper',appName:'上海银行',hash:'-2018645283'},{appId:'com.saicmotor.tocapp',appName:'上汽荣威',hash:'-1828168665'},{appId:'com.sh.tlzgh',appName:'上铁职工家园',hash:'-1389277609'},{appId:'com.huicent',appName:'山航掌尚飞',hash:'-1761099465'},{appId:'cn.ishansong',appName:'闪送',hash:'2092235517'},{appId:'deepal.com.cn.app',appName:'深蓝汽车',hash:'1385537378'},{appId:'com.rednet.moment',appName:'时刻新闻',hash:'188768533'},{appId:'com.shixiseng.activity',appName:'实习僧',hash:'505093402'},{appId:'com.shineyue.sjgjj',appName:'手机公积金',hash:'-810658867'},{appId:'com.shuashuati.app',appName:'刷刷题',hash:'-1022371721'},{appId:'com.heytap.book',appName:'书城',hash:'1880012931'},{appId:'com.tencent.zebra',appName:'水印相机',hash:'-690964112'},{appId:'com.funinput.digit',appName:'数字尾巴',hash:'719970103'},{appId:'com.sohu.inputmethod.sogou',appName:'搜狗输入法',hash:'-1805061386'},{appId:'com.lingwei.materialcalculator',appName:'算料宝',hash:'1714368735'},{appId:'com.bwton.szfreego',appName:'苏e行',hash:'-1068493672'},{appId:'com.tadu.read',appName:'塔读小说免费版',hash:'-588468839'},{appId:'com.gwm.tank',appName:'坦克TANK',hash:'1338692744'},{appId:'com.alimama.moon',appName:'淘宝联盟',hash:'-785489290'},{appId:'com.tencent.map',appName:'腾讯地图',hash:'-103524794'},{appId:'com.tencent.qqpimsecure',appName:'腾讯手机管家',hash:'-245593387'},{appId:'com.tencent.gamereva',appName:'腾讯先锋',hash:'-733761434'},{appId:'com.android.tiancity.mobilesecurity',appName:'天成账号管家',hash:'1690074423'},{appId:'com.bwton.tjmetro',appName:'天津地铁',hash:'816703910'},{appId:'sina.mobile.tianqitong',appName:'天气通',hash:'1502048277'},{appId:'com.zhima.charge',appName:'天天充电',hash:'1071760128'},{appId:'cc.kinva.smartqa',appName:'挑战答题助手',hash:'1496978200'},{appId:'com.haien.app.TrainPassNative',appName:'铁路人',hash:'-1429820063'},{appId:'net.joydao.radio',appName:'听听广播',hash:'1435191804'},{appId:'com.bxkj.student',appName:'体适能',hash:'-1355297585'},{appId:'com.tdx.AndroidNew',appName:'通达信',hash:'-1332782460'},{appId:'com.voice.broadcastassistant',appName:'通知播报助手',hash:'-1919018682'},{appId:'com.wandafilm.app',appName:'万达电影',hash:'182008427'},{appId:'com.wandoujia.phoenix2',appName:'豌豆荚',hash:'551552610'},{appId:'org.daai.netcheck',appName:'网络万用表',hash:'-847509910'},{appId:'com.welove520.welove',appName:'微爱',hash:'-1829630872'},{appId:'com.shunwang.weihuyun',appName:'维护云',hash:'-1020408422'},{appId:'com.achievo.vipshop',appName:'唯品会',hash:'2123438483'},{appId:'com.tencent.weishi',appName:'微视',hash:'-30728625'},{appId:'com.chinavisionary.microtang',appName:'微棠',hash:'-1237862446'},{appId:'com.wenshushu.app.android',appName:'文叔叔',hash:'288343399'},{appId:'com.changsha.apps.android.mycs',appName:'我的长沙',hash:'-1860264755'},{appId:'com.unicde.smartcity_lyg',appName:'我的连云港',hash:'-674617470'},{appId:'com.hoperun.intelligenceportal',appName:'我的南京',hash:'-1861979913'},{appId:'com.benqu.wuta',appName:'无他相机',hash:'-1791626505'},{appId:'com.newskyer.draw',appName:'享做笔记',hash:'117723543'},{appId:'com.jujie.xbreader',appName:'小白PDF阅读器',hash:'-1226299667'},{appId:'com.gfd.ecprint',appName:'小白智慧打印',hash:'-11058599'},{appId:'xin.banghua.beiyuan0',appName:'小贝乐园平台',hash:'198701156'},{appId:'com.heytap.speechassist',appName:'小布助手',hash:'-104850075'},{appId:'com.huiyou.xiaoding',appName:'校钉',hash:'-1078578725'},{appId:'com.xiaoji.emulator',appName:'小鸡模拟器',hash:'-370280392'},{appId:'com.ponyemu.main',appName:'小马模拟器',hash:'2106523537'},{appId:'com.mi.print',appName:'小米打印',hash:'1922734504'},{appId:'com.xiaomi.account',appName:'小米账号',hash:'-1821906937'},{appId:'com.okcam.ookcam',appName:'小鹰看看',hash:'-261153140'},{appId:'app.podcast.cosmos',appName:'小宇宙',hash:'-641838655'},{appId:'com.smarlife.xiaozhi',appName:'小值智能',hash:'-1484095710'},{appId:'com.cib.cibmb',appName:'兴业银行',hash:'1667032946'},{appId:'im.xingzhe',appName:'行者骑行',hash:'-2096096381'},{appId:'com.dingtai.wxhn.activity',appName:'新湖南',hash:'802976953'},{appId:'com.youxiang.soyoungapp',appName:'新氧医美',hash:'-1344102564'},{appId:'com.tencent.tgclub',appName:'心悦俱乐部',hash:'-114954113'},{appId:'com.nd.android.pandareader',appName:'熊猫看书',hash:'1398692083'},{appId:'com.iflytek.aistudyclient.parentcontrol',appName:'讯飞AI学',hash:'-481861050'},{appId:'com.iflytek.inputmethod',appName:'讯飞输入法',hash:'1407696064'},{appId:'com.atour.atourlife',appName:'亚朵',hash:'692415699'},{appId:'cn.edu.just.iportal',appName:'扬帆科大',hash:'-156474002'},{appId:'com.tiqiaa.icontrol',appName:'遥控精灵',hash:'-492888312'},{appId:'com.chenai.eyes',appName:'夜间模式',hash:'1407412717'},{appId:'com.yiban.app',appName:'易班',hash:'2026227333'},{appId:'com.crland.mixc',appName:'一点万象',hash:'1297991470'},{appId:'com.chinamobile.hycloudphone',appName:'移动云手机',hash:'-92212468'},{appId:'com.yidoutang.app',appName:'一兜糖',hash:'1932639654'},{appId:'com.ehai',appName:'一嗨租车',hash:'-660603816'},{appId:'com.oppo.market',appName:'一加软件商店',hash:'931347805'},{appId:'cn.medlive.android',appName:'医脉通',hash:'-1603251274'},{appId:'com.sqlitecd.meaning',appName:'萤光阅读',hash:'-1929014455'},{appId:'com.kwai.m2u',appName:'一甜相机',hash:'-571138269'},{appId:'cn.com.yunma.school.app',appName:'易校园',hash:'-1557755873'},{appId:'io.dcloud.H55BDF6BE',appName:'甬派',hash:'-711071352'},{appId:'cn.dxy.medicinehelper',appName:'用药助手',hash:'-1864021132'},{appId:'com.youbao.app',appName:'邮宝',hash:'-243809071'},{appId:'com.youxiake',appName:'游侠客旅行',hash:'136491512'},{appId:'com.ydtx.camera',appName:'元道经纬相机',hash:'2078960183'},{appId:'co.runner.app',appName:'悦跑圈',hash:'-265649883'},{appId:'com.tbc.android.defaults',appName:'云端学习',hash:'-2100910505'},{appId:'com.lphtsccft.zlqqt2',appName:'涨乐全球通',hash:'1052835674'},{appId:'com.zl.fqbao',appName:'招联金融',hash:'1462703990'},{appId:'com.tutu.zhianxing',appName:'智安星',hash:'830754483'},{appId:'com.huawei.smarthome',appName:'智慧生活',hash:'-1012862034'},{appId:'com.hnjiajie.zhixiaole',appName:'智校乐',hash:'1510560060'},{appId:'cn.suanya.zhixing',appName:'智行旅行',hash:'-584193999'},{appId:'bbs.zhixun.com',appName:'智讯社区',hash:'-690698140'},{appId:'com.pointercn.smarthouse',appName:'智之屋',hash:'375974794'},{appId:'com.hf',appName:'中国天气',hash:'-1354875765'},{appId:'com.jx.cmcc.ict.ibelieve',appName:'中国移动江西',hash:'-1636700176'},{appId:'com.example.businesshall',appName:'中国移动浙江',hash:'825695306'},{appId:'com.galaxy.stock',appName:'中国银河证券',hash:'-401915'},{appId:'cn.etouch.ecalendar',appName:'中华万年历日历',hash:'-179660078'},{appId:'cn.beekee.zhongtong',appName:'中通快递',hash:'1388959468'},{appId:'com.bocop.cbsp',appName:'中银跨境GO',hash:'1993820928'},{appId:'com.ss.android.homed',appName:'住小帮',hash:'-1133309723'},{appId:'com.vanke.activity',appName:'住这儿',hash:'-688392659'},{appId:'com.csii.zijin',appName:'紫金农商银行',hash:'-2119820753'},{appId:'com.ruanmei.zuihuimai',appName:'最会买',hash:'1774373421'},{appId:'online.bangumi',appName:'アニメ新番組',hash:'-920504578'}] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LTT2GKD 2 | 3 | 李跳跳规则转GKD规则 4 | 5 | 网页版上线,欢迎使用。 6 | 7 | [点此跳转](https://ltt2gkd.adproqwq.top) 8 | 9 | ## 使用教程 10 | 11 | ### 1. 步骤 12 | 13 | #### Github Actions 14 | 15 | Fork 本仓库的 `main`分支。 16 | 17 | 在你的仓库中,将以数组包裹的形似 18 | ```json 19 | [ 20 | {规则1}, 21 | {规则2}, 22 | ... 23 | ] 24 | ``` 25 | 的李跳跳规则填写进入`ltt.json`,然后运行 github action 里的 `convert`。 26 | 27 | 运行成功后,转换结果会出现在`-2.json`。 28 | 29 | 参考[教程](https://ltt2gkd.adproqwq.xyz/tutoril.html)导入GKD使用。 30 | 31 | 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 32 | 33 | #### 本地运行 34 | 35 | 以 Windows系统 为例,其它系统可参考。 36 | 37 | 请事先准备好 node.js 环境! 38 | 39 | 下载 本仓库的 `main`分支 的源码。 40 | 41 | 将以数组包裹的形似 42 | ```json 43 | [ 44 | {规则1}, 45 | {规则2}, 46 | ... 47 | ] 48 | ``` 49 | 的李跳跳规则填写进入`ltt.json`,然后使用命令行依次运行: 50 | 51 | ```shell 52 | pnpm i 53 | 54 | pnpm convert 55 | ``` 56 | 57 | 运行成功后,转换结果会出现在`-2.json`。 58 | 59 | 参考[教程](https://ltt2gkd.adproqwq.xyz/tutoril.html)导入GKD使用。 60 | 61 | 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 62 | 63 | ### 2. 补丁 64 | 65 | 上文提到 66 | 67 | > 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 68 | 69 | 本仓库目前收录有许多个应用,但总会有应用未被覆盖,这就会导致该应用的规则被丢弃。 70 | 71 | 那么,没有办法解决吗? 72 | 73 | 当然有,你可以通过补丁的方式,将一些没有被收录的应用添加进去,使其能够被解析。 74 | 75 | 只需要在 **根目录** 下的`patch.ts`文件中,在中括号里添加形如: 76 | 77 | ```json5 78 | { 79 | packgeName: '应用包名1', 80 | appName: '应用名称1', 81 | }, 82 | { 83 | packgeName: '应用包名2', 84 | appName: '应用名称2', 85 | }, 86 | ... 87 | ``` 88 | 89 | (本地运行需要执行此步骤)然后在命令行工具输入 90 | 91 | ```shell 92 | pnpm run list 93 | ``` 94 | 95 | 就可以了 96 | 97 | **注意:用户补丁按照上面的格式放入patch.ts即可,libs文件夹内放的是GKD的订阅文件,也可以起到补丁效果,但必须是订阅文件!** 98 | 99 | ## 仓库信息 100 | 101 | 当前收录应用 1152 个,其中,添加应用补丁 0 个。 102 | 103 | ## 致谢 104 | 105 | 应用库提供 By [@AIsouler](https://github.com/AIsouler)、[@gkd-kit](https://github.com/gkd-kit) 106 | 107 | 李跳跳测试规则提供 By [@Snoopy1866](https://github.com/Snoopy1866)、[@FreezingArts](https://github.com/FreezingArts) 108 | 109 | 部分思路帮助 By [@Snoopy1866](https://github.com/Snoopy1866) 110 | 111 | ## 许可证 112 | 113 | 所有代码(仅在本分支内)遵循GPL-3.0许可证 -------------------------------------------------------------------------------- /Template.md: -------------------------------------------------------------------------------- 1 | # LTT2GKD 2 | 3 | 李跳跳规则转GKD规则 4 | 5 | 网页版上线,欢迎使用。 6 | 7 | [点此跳转](https://ltt2gkd.adproqwq.top) 8 | 9 | ## 使用教程 10 | 11 | ### 1. 步骤 12 | 13 | #### Github Actions 14 | 15 | Fork 本仓库的 `main`分支。 16 | 17 | 在你的仓库中,将以数组包裹的形似 18 | ```json 19 | [ 20 | {规则1}, 21 | {规则2}, 22 | ... 23 | ] 24 | ``` 25 | 的李跳跳规则填写进入`ltt.json`,然后运行 github action 里的 `convert`。 26 | 27 | 运行成功后,转换结果会出现在`-2.json`。 28 | 29 | 参考[教程](https://ltt2gkd.adproqwq.xyz/tutoril.html)导入GKD使用。 30 | 31 | 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 32 | 33 | #### 本地运行 34 | 35 | 以 Windows系统 为例,其它系统可参考。 36 | 37 | 请事先准备好 node.js 环境! 38 | 39 | 下载 本仓库的 `main`分支 的源码。 40 | 41 | 将以数组包裹的形似 42 | ```json 43 | [ 44 | {规则1}, 45 | {规则2}, 46 | ... 47 | ] 48 | ``` 49 | 的李跳跳规则填写进入`ltt.json`,然后使用命令行依次运行: 50 | 51 | ```shell 52 | pnpm i 53 | 54 | pnpm convert 55 | ``` 56 | 57 | 运行成功后,转换结果会出现在`-2.json`。 58 | 59 | 参考[教程](https://ltt2gkd.adproqwq.xyz/tutoril.html)导入GKD使用。 60 | 61 | 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 62 | 63 | ### 2. 补丁 64 | 65 | 上文提到 66 | 67 | > 由于hash的不可逆性,部分规则会因无法获取具体的应用信息,而被抛弃,具体抛弃数量可以查看`log.txt`。 68 | 69 | 本仓库目前收录有许多个应用,但总会有应用未被覆盖,这就会导致该应用的规则被丢弃。 70 | 71 | 那么,没有办法解决吗? 72 | 73 | 当然有,你可以通过补丁的方式,将一些没有被收录的应用添加进去,使其能够被解析。 74 | 75 | 只需要在 **根目录** 下的`patch.ts`文件中,在中括号里添加形如: 76 | 77 | ```json5 78 | { 79 | packgeName: '应用包名1', 80 | appName: '应用名称1', 81 | }, 82 | { 83 | packgeName: '应用包名2', 84 | appName: '应用名称2', 85 | }, 86 | ... 87 | ``` 88 | 89 | (本地运行需要执行此步骤)然后在命令行工具输入 90 | 91 | ```shell 92 | pnpm run list 93 | ``` 94 | 95 | 就可以了 96 | 97 | **注意:用户补丁按照上面的格式放入patch.ts即可,libs文件夹内放的是GKD的订阅文件,也可以起到补丁效果,但必须是订阅文件!** 98 | 99 | ## 仓库信息 100 | 101 | 当前收录应用 --APPCOUNT-- 个,其中,添加应用补丁 --PATCHCOUNT-- 个。 102 | 103 | ## 致谢 104 | 105 | 应用库提供 By [@AIsouler](https://github.com/AIsouler)、[@gkd-kit](https://github.com/gkd-kit) 106 | 107 | 李跳跳测试规则提供 By [@Snoopy1866](https://github.com/Snoopy1866)、[@FreezingArts](https://github.com/FreezingArts) 108 | 109 | 部分思路帮助 By [@Snoopy1866](https://github.com/Snoopy1866) 110 | 111 | ## 许可证 112 | 113 | 所有代码(仅在本分支内)遵循GPL-3.0许可证 -------------------------------------------------------------------------------- /ltt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adpro-Team/LTT2GKD/15ce8c4e6fd343f2c6250e21de055c636a4c4847/ltt.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "scripts": { 4 | "convert": "pnpm exec tsx ./src/convert.ts", 5 | "list": "pnpm exec tsx ./src/writeAppList.ts" 6 | }, 7 | "dependencies": { 8 | "@gkd-kit/api": "^0.6.0", 9 | "hashj": "^1.0.2", 10 | "json5": "^2.2.3", 11 | "tsx": "^4.19.2" 12 | }, 13 | "devDependencies": { 14 | "@types/node": "^22.13.1", 15 | "typescript": "^5.7.3" 16 | }, 17 | "packageManager": "pnpm@10.2.0" 18 | } 19 | -------------------------------------------------------------------------------- /patch.ts: -------------------------------------------------------------------------------- 1 | import { PatchApps } from './src/types'; 2 | 3 | export const PatchAppList: PatchApps = [ 4 | 5 | ]; -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@gkd-kit/api': 12 | specifier: ^0.6.0 13 | version: 0.6.0 14 | hashj: 15 | specifier: ^1.0.2 16 | version: 1.0.2 17 | json5: 18 | specifier: ^2.2.3 19 | version: 2.2.3 20 | tsx: 21 | specifier: ^4.19.2 22 | version: 4.19.2 23 | devDependencies: 24 | '@types/node': 25 | specifier: ^22.13.1 26 | version: 22.13.1 27 | typescript: 28 | specifier: ^5.7.3 29 | version: 5.7.3 30 | 31 | packages: 32 | 33 | '@esbuild/aix-ppc64@0.23.1': 34 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 35 | engines: {node: '>=18'} 36 | cpu: [ppc64] 37 | os: [aix] 38 | 39 | '@esbuild/android-arm64@0.23.1': 40 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 41 | engines: {node: '>=18'} 42 | cpu: [arm64] 43 | os: [android] 44 | 45 | '@esbuild/android-arm@0.23.1': 46 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 47 | engines: {node: '>=18'} 48 | cpu: [arm] 49 | os: [android] 50 | 51 | '@esbuild/android-x64@0.23.1': 52 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 53 | engines: {node: '>=18'} 54 | cpu: [x64] 55 | os: [android] 56 | 57 | '@esbuild/darwin-arm64@0.23.1': 58 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 59 | engines: {node: '>=18'} 60 | cpu: [arm64] 61 | os: [darwin] 62 | 63 | '@esbuild/darwin-x64@0.23.1': 64 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 65 | engines: {node: '>=18'} 66 | cpu: [x64] 67 | os: [darwin] 68 | 69 | '@esbuild/freebsd-arm64@0.23.1': 70 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 71 | engines: {node: '>=18'} 72 | cpu: [arm64] 73 | os: [freebsd] 74 | 75 | '@esbuild/freebsd-x64@0.23.1': 76 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 77 | engines: {node: '>=18'} 78 | cpu: [x64] 79 | os: [freebsd] 80 | 81 | '@esbuild/linux-arm64@0.23.1': 82 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 83 | engines: {node: '>=18'} 84 | cpu: [arm64] 85 | os: [linux] 86 | 87 | '@esbuild/linux-arm@0.23.1': 88 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 89 | engines: {node: '>=18'} 90 | cpu: [arm] 91 | os: [linux] 92 | 93 | '@esbuild/linux-ia32@0.23.1': 94 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 95 | engines: {node: '>=18'} 96 | cpu: [ia32] 97 | os: [linux] 98 | 99 | '@esbuild/linux-loong64@0.23.1': 100 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 101 | engines: {node: '>=18'} 102 | cpu: [loong64] 103 | os: [linux] 104 | 105 | '@esbuild/linux-mips64el@0.23.1': 106 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 107 | engines: {node: '>=18'} 108 | cpu: [mips64el] 109 | os: [linux] 110 | 111 | '@esbuild/linux-ppc64@0.23.1': 112 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 113 | engines: {node: '>=18'} 114 | cpu: [ppc64] 115 | os: [linux] 116 | 117 | '@esbuild/linux-riscv64@0.23.1': 118 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 119 | engines: {node: '>=18'} 120 | cpu: [riscv64] 121 | os: [linux] 122 | 123 | '@esbuild/linux-s390x@0.23.1': 124 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 125 | engines: {node: '>=18'} 126 | cpu: [s390x] 127 | os: [linux] 128 | 129 | '@esbuild/linux-x64@0.23.1': 130 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 131 | engines: {node: '>=18'} 132 | cpu: [x64] 133 | os: [linux] 134 | 135 | '@esbuild/netbsd-x64@0.23.1': 136 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 137 | engines: {node: '>=18'} 138 | cpu: [x64] 139 | os: [netbsd] 140 | 141 | '@esbuild/openbsd-arm64@0.23.1': 142 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 143 | engines: {node: '>=18'} 144 | cpu: [arm64] 145 | os: [openbsd] 146 | 147 | '@esbuild/openbsd-x64@0.23.1': 148 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 149 | engines: {node: '>=18'} 150 | cpu: [x64] 151 | os: [openbsd] 152 | 153 | '@esbuild/sunos-x64@0.23.1': 154 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 155 | engines: {node: '>=18'} 156 | cpu: [x64] 157 | os: [sunos] 158 | 159 | '@esbuild/win32-arm64@0.23.1': 160 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 161 | engines: {node: '>=18'} 162 | cpu: [arm64] 163 | os: [win32] 164 | 165 | '@esbuild/win32-ia32@0.23.1': 166 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 167 | engines: {node: '>=18'} 168 | cpu: [ia32] 169 | os: [win32] 170 | 171 | '@esbuild/win32-x64@0.23.1': 172 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 173 | engines: {node: '>=18'} 174 | cpu: [x64] 175 | os: [win32] 176 | 177 | '@gkd-kit/api@0.6.0': 178 | resolution: {integrity: sha512-QRzbC3FRVUbsabKRr02QfzKPcez4JAPJqytK+jo8Ts8F0CX5+65Akh3gV/R2tqqzaelvdHjzrgL4j3O6v9KpKQ==} 179 | 180 | '@types/node@22.13.1': 181 | resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} 182 | 183 | esbuild@0.23.1: 184 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 185 | engines: {node: '>=18'} 186 | hasBin: true 187 | 188 | fsevents@2.3.3: 189 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 190 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 191 | os: [darwin] 192 | 193 | get-tsconfig@4.10.0: 194 | resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} 195 | 196 | hashj@1.0.2: 197 | resolution: {integrity: sha512-0tDJxWGArbkowuu5KEzAt37yfvKJIdEV5gC0k1M8qVF/sSluviBvfBsNA1aCrRBhnDB33StY7Y3pc9lK8uCI+g==} 198 | 199 | json5@2.2.3: 200 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 201 | engines: {node: '>=6'} 202 | hasBin: true 203 | 204 | long@5.2.4: 205 | resolution: {integrity: sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==} 206 | 207 | resolve-pkg-maps@1.0.0: 208 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 209 | 210 | tsx@4.19.2: 211 | resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} 212 | engines: {node: '>=18.0.0'} 213 | hasBin: true 214 | 215 | typescript@5.7.3: 216 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 217 | engines: {node: '>=14.17'} 218 | hasBin: true 219 | 220 | undici-types@6.20.0: 221 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 222 | 223 | snapshots: 224 | 225 | '@esbuild/aix-ppc64@0.23.1': 226 | optional: true 227 | 228 | '@esbuild/android-arm64@0.23.1': 229 | optional: true 230 | 231 | '@esbuild/android-arm@0.23.1': 232 | optional: true 233 | 234 | '@esbuild/android-x64@0.23.1': 235 | optional: true 236 | 237 | '@esbuild/darwin-arm64@0.23.1': 238 | optional: true 239 | 240 | '@esbuild/darwin-x64@0.23.1': 241 | optional: true 242 | 243 | '@esbuild/freebsd-arm64@0.23.1': 244 | optional: true 245 | 246 | '@esbuild/freebsd-x64@0.23.1': 247 | optional: true 248 | 249 | '@esbuild/linux-arm64@0.23.1': 250 | optional: true 251 | 252 | '@esbuild/linux-arm@0.23.1': 253 | optional: true 254 | 255 | '@esbuild/linux-ia32@0.23.1': 256 | optional: true 257 | 258 | '@esbuild/linux-loong64@0.23.1': 259 | optional: true 260 | 261 | '@esbuild/linux-mips64el@0.23.1': 262 | optional: true 263 | 264 | '@esbuild/linux-ppc64@0.23.1': 265 | optional: true 266 | 267 | '@esbuild/linux-riscv64@0.23.1': 268 | optional: true 269 | 270 | '@esbuild/linux-s390x@0.23.1': 271 | optional: true 272 | 273 | '@esbuild/linux-x64@0.23.1': 274 | optional: true 275 | 276 | '@esbuild/netbsd-x64@0.23.1': 277 | optional: true 278 | 279 | '@esbuild/openbsd-arm64@0.23.1': 280 | optional: true 281 | 282 | '@esbuild/openbsd-x64@0.23.1': 283 | optional: true 284 | 285 | '@esbuild/sunos-x64@0.23.1': 286 | optional: true 287 | 288 | '@esbuild/win32-arm64@0.23.1': 289 | optional: true 290 | 291 | '@esbuild/win32-ia32@0.23.1': 292 | optional: true 293 | 294 | '@esbuild/win32-x64@0.23.1': 295 | optional: true 296 | 297 | '@gkd-kit/api@0.6.0': {} 298 | 299 | '@types/node@22.13.1': 300 | dependencies: 301 | undici-types: 6.20.0 302 | 303 | esbuild@0.23.1: 304 | optionalDependencies: 305 | '@esbuild/aix-ppc64': 0.23.1 306 | '@esbuild/android-arm': 0.23.1 307 | '@esbuild/android-arm64': 0.23.1 308 | '@esbuild/android-x64': 0.23.1 309 | '@esbuild/darwin-arm64': 0.23.1 310 | '@esbuild/darwin-x64': 0.23.1 311 | '@esbuild/freebsd-arm64': 0.23.1 312 | '@esbuild/freebsd-x64': 0.23.1 313 | '@esbuild/linux-arm': 0.23.1 314 | '@esbuild/linux-arm64': 0.23.1 315 | '@esbuild/linux-ia32': 0.23.1 316 | '@esbuild/linux-loong64': 0.23.1 317 | '@esbuild/linux-mips64el': 0.23.1 318 | '@esbuild/linux-ppc64': 0.23.1 319 | '@esbuild/linux-riscv64': 0.23.1 320 | '@esbuild/linux-s390x': 0.23.1 321 | '@esbuild/linux-x64': 0.23.1 322 | '@esbuild/netbsd-x64': 0.23.1 323 | '@esbuild/openbsd-arm64': 0.23.1 324 | '@esbuild/openbsd-x64': 0.23.1 325 | '@esbuild/sunos-x64': 0.23.1 326 | '@esbuild/win32-arm64': 0.23.1 327 | '@esbuild/win32-ia32': 0.23.1 328 | '@esbuild/win32-x64': 0.23.1 329 | 330 | fsevents@2.3.3: 331 | optional: true 332 | 333 | get-tsconfig@4.10.0: 334 | dependencies: 335 | resolve-pkg-maps: 1.0.0 336 | 337 | hashj@1.0.2: 338 | dependencies: 339 | long: 5.2.4 340 | 341 | json5@2.2.3: {} 342 | 343 | long@5.2.4: {} 344 | 345 | resolve-pkg-maps@1.0.0: {} 346 | 347 | tsx@4.19.2: 348 | dependencies: 349 | esbuild: 0.23.1 350 | get-tsconfig: 4.10.0 351 | optionalDependencies: 352 | fsevents: 2.3.3 353 | 354 | typescript@5.7.3: {} 355 | 356 | undici-types@6.20.0: {} 357 | -------------------------------------------------------------------------------- /src/convert.ts: -------------------------------------------------------------------------------- 1 | import json5 from 'json5'; 2 | import { RawSubscription, RawApp, RawAppGroup, RawAppRule, IArray } from '@gkd-kit/api'; 3 | import { Root } from './types'; 4 | import { getJsonArrayLength, iArrayToArray, textRuleConvert, boundsRuleConvert } from './method' 5 | import fs from 'node:fs/promises'; 6 | 7 | const convert = async () => { 8 | const AppListFile = await fs.readFile(process.cwd() + '/AppList.json5', 'utf-8'); 9 | const AppExtListFile = await fs.readFile(process.cwd() + '/AppExtList.json5', 'utf-8'); 10 | const lttSub = await fs.readFile(process.cwd() + '/ltt.json', 'utf-8'); 11 | const AppList: Root = json5.parse(AppListFile); 12 | const AppExtList: Root = json5.parse(AppExtListFile); 13 | const List = AppList.concat(AppExtList); 14 | const origin = json5.parse(lttSub); 15 | const originLength = getJsonArrayLength(origin); 16 | let throwCount = 0; 17 | 18 | let thisSub: RawSubscription = { 19 | id: -2, 20 | name: '本地订阅', 21 | version: 0, 22 | author: 'gkd', 23 | globalGroups: [], 24 | categories: [], 25 | apps: [], 26 | }; 27 | 28 | origin.forEach((a: any) => { 29 | if(Object.keys(a)[0].match(/-?[0-9]+/) === null) return; 30 | let isInclude = false; 31 | let index: number | null = null; 32 | let hash = Object.keys(a); 33 | for(let i = 0;i < List.length;i++){ 34 | if(hash[0] == List[i].hash){ 35 | isInclude = true; 36 | index = i; 37 | break; 38 | } 39 | } 40 | if(isInclude){ 41 | let thisApp: RawApp = { 42 | id: List[index as number].appId, 43 | name: List[index as number].appName, 44 | groups: [], 45 | }; 46 | let LappConfig = json5.parse(a[hash[0]]); 47 | if(!LappConfig.hasOwnProperty('popup_rules')) return; 48 | let Lrules = LappConfig.popup_rules; 49 | let groupKeyCount = 1; 50 | let ruleKeyCount = 0; 51 | let thisGroup: RawAppGroup; 52 | 53 | Lrules.forEach((r: any) => { 54 | if(r == null) return; 55 | 56 | if(ruleKeyCount == 0){ 57 | thisGroup = { 58 | key: groupKeyCount, 59 | name: `${List[index as number].appName}-${String(groupKeyCount)}`, 60 | rules: [], 61 | }; 62 | } 63 | 64 | let thisRule: RawAppRule = { 65 | key: ruleKeyCount, 66 | matches: [], 67 | }; 68 | 69 | if(r.hasOwnProperty('times')) thisRule.actionMaximum = r.times; 70 | 71 | if(LappConfig.hasOwnProperty('delay')) thisRule.actionDelay = LappConfig.delay; 72 | 73 | const thisRuleMatches = iArrayToArray(thisRule.matches as IArray); 74 | 75 | if(r.action == 'GLOBAL_ACTION_BACK') thisRule.action = 'back'; 76 | else{ 77 | let isBounds = r.action.split(','); 78 | if(isBounds.length < 4) thisRuleMatches.push(textRuleConvert(r.action)); 79 | else if(isBounds.length == 4 || isBounds.length == 5){ 80 | thisRule.position = boundsRuleConvert(r.action); 81 | thisRuleMatches.push('[id="android:id/content"]'); 82 | } 83 | } 84 | 85 | thisRule.matches = thisRuleMatches; 86 | 87 | const thisGroupRules = iArrayToArray(thisGroup.rules as IArray); 88 | 89 | thisGroupRules.push(thisRule); 90 | thisGroup.rules = thisGroupRules; 91 | if(LappConfig.hasOwnProperty('unite_popup_rules')){ 92 | if(LappConfig.unite_popup_rules == true){ 93 | if(ruleKeyCount < getJsonArrayLength(Lrules) - 1) ruleKeyCount++; 94 | else{ 95 | thisApp.groups.push(thisGroup); 96 | groupKeyCount++; 97 | } 98 | } 99 | } 100 | else{ 101 | thisApp.groups.push(thisGroup); 102 | groupKeyCount++; 103 | } 104 | }); 105 | 106 | const thisSubApps = iArrayToArray(thisSub.apps as RawApp[]); 107 | 108 | thisSubApps.push(thisApp); 109 | thisSub.apps = thisSubApps; 110 | } 111 | else throwCount++; 112 | }); 113 | 114 | await fs.writeFile(process.cwd() + '/log.txt', `共识别到应用${originLength}个,已抛弃${throwCount}个未知应用的规则`); 115 | 116 | await fs.writeFile(process.cwd() + '/-2.json', JSON.stringify(thisSub)); 117 | }; 118 | convert(); -------------------------------------------------------------------------------- /src/method.ts: -------------------------------------------------------------------------------- 1 | import type { IArray, Position } from "@gkd-kit/api"; 2 | 3 | export const iArrayToArray = (array: IArray = []): T[] => { 4 | return Array().concat(array); 5 | }; 6 | 7 | export const getJsonArrayLength = (jsonArray: any) => { 8 | let length = 0; 9 | for(let i in jsonArray){ 10 | length++; 11 | } 12 | return length; 13 | }; 14 | 15 | export const textRuleConvert = (lttRule: string) => { 16 | let temp = lttRule.split('&'); 17 | for(let i = 0;i < temp.length;i++){ 18 | if(temp[i].startsWith('+')) temp[i] = temp[i].replace('+','^="'); 19 | else if(temp[i].startsWith('-')) temp[i] = temp[i].replace('-','$="'); 20 | else if(temp[i].startsWith('=')) temp[i] = temp[i].replace('=','="'); 21 | else temp[i] = '*="' + temp[i]; 22 | temp[i] += '"'; 23 | } 24 | let rule = `[(text${temp[0]}||desc${temp[0]}||id${temp[0]})`; 25 | for(let i = 1;i < temp.length;i++){ 26 | rule += `&&(text${temp[i]}||desc${temp[i]}||id${temp[i]})`; 27 | } 28 | rule += ']'; 29 | return rule; 30 | }; 31 | 32 | export const boundsRuleConvert = (lttRule: string) => { 33 | const temp = lttRule.split(','); 34 | const left = Number(temp[0]), top = Number(temp[1]), right = Number(temp[2]), bottom = Number(temp[3]); 35 | const horizontalCenter = right - (right - left) / 2; 36 | const verticalCenter = bottom - (bottom - top) / 2; 37 | const position = { 38 | left: horizontalCenter, 39 | top: verticalCenter 40 | }; 41 | return position; 42 | }; -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type Root = RawApp[]; 2 | 3 | export type PatchApps = RawPatchApp[]; 4 | 5 | export type LogApps = LogRawApp[]; 6 | 7 | export type RawApp = { 8 | /** 9 | * 应用包名 10 | */ 11 | appId: string; 12 | 13 | /** 14 | * 应用名称 15 | */ 16 | appName: string; 17 | 18 | /** 19 | * 应用包名对应的Hash 20 | */ 21 | hash: string; 22 | }; 23 | 24 | export type RawPatchApp = { 25 | /** 26 | * 应用包名 27 | */ 28 | packageName: string; 29 | 30 | /** 31 | * 应用名称 32 | */ 33 | appName: string; 34 | }; 35 | 36 | export type LogRawApp = { 37 | /** 38 | * 包名 39 | */ 40 | id: string; 41 | 42 | /** 43 | * 应用名称 44 | */ 45 | name: string; 46 | 47 | /** 48 | * 应用版本号 49 | */ 50 | versionCode: number; 51 | 52 | /** 53 | * 应用版本名 54 | */ 55 | versionName: number; 56 | 57 | /** 58 | * 是否为系统应用 59 | */ 60 | isSystem: boolean; 61 | 62 | /** 63 | * 最后更新时间,使用时间戳 64 | */ 65 | mtime: number; 66 | 67 | /** 68 | * 是否为隐藏应用 69 | */ 70 | hidden: boolean; 71 | }; -------------------------------------------------------------------------------- /src/updateMd.ts: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises'; 2 | import json5 from 'json5'; 3 | import { getJsonArrayLength } from "./method"; 4 | import { PatchAppList } from '../patch'; 5 | 6 | export const UpdateMd = async () => { 7 | const AppListFile = await fs.readFile(process.cwd() + '/AppList.json5', 'utf-8'); 8 | const AppList = json5.parse(AppListFile); 9 | const totalAppCount = getJsonArrayLength(AppList); 10 | 11 | const patchCount = getJsonArrayLength(PatchAppList); 12 | 13 | const template = await fs.readFile(process.cwd() + '/Template.md', 'utf-8'); 14 | const mdFile = template. 15 | replace('--APPCOUNT--',String(totalAppCount)). 16 | replace('--PATCHCOUNT--',String(patchCount)); 17 | await fs.writeFile(process.cwd() + '/README.md', mdFile); 18 | }; 19 | UpdateMd(); -------------------------------------------------------------------------------- /src/writeAppList.ts: -------------------------------------------------------------------------------- 1 | import { createRequire } from "module"; 2 | import type { Root, RawPatchApp } from "./types"; 3 | import { RawApp } from '@gkd-kit/api'; 4 | import { PatchAppList } from '../patch'; 5 | import { getJsonArrayLength } from "./method"; 6 | import fs from 'node:fs/promises'; 7 | import json5 from 'json5'; 8 | const require = createRequire(import.meta.url); 9 | const hashj = require('hashj'); 10 | 11 | export const writeList = async() => { 12 | const libDir = await fs.readdir(process.cwd() + '/libs'); 13 | var List: Root = []; 14 | var id: string[] = [''], name: string[] = [''], hash: string[] = ['']; 15 | var count = 0; 16 | for(let i in libDir){ 17 | const subFile = await fs.readFile(process.cwd() + '/libs/' + libDir[i], 'utf-8'); 18 | const sub = json5.parse(subFile); 19 | const apps = sub.apps; 20 | apps.forEach((a: RawApp) => { 21 | if(id.indexOf(a.id) == -1){ 22 | id.push(a.id); 23 | name.push(a.name as string); 24 | hash.push(String(hashj.jHashCode(a.id))); 25 | count++; 26 | } 27 | }); 28 | } 29 | 30 | let PatchCount = getJsonArrayLength(PatchAppList); 31 | if(PatchCount != 0){ 32 | PatchAppList.forEach((a: RawPatchApp) => { 33 | if(id.indexOf(a.packageName) == -1){ 34 | id.push(a.packageName); 35 | name.push(a.appName); 36 | hash.push(String(hashj.jHashCode(a.packageName))); 37 | count++; 38 | } 39 | }); 40 | } 41 | 42 | for(let i = 1;i <= count;i++){ 43 | List.push({ 44 | appId: id[i], 45 | appName: name[i], 46 | hash: hash[i], 47 | }); 48 | } 49 | 50 | await fs.writeFile(process.cwd() + '/AppList.json5', json5.stringify(List)); 51 | }; 52 | writeList(); -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | "lib": ["ESNext"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "ESNext", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | "moduleResolution": "Bundler", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 42 | "resolveJsonModule": true, /* Enable importing .json files. */ 43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 45 | 46 | /* JavaScript Support */ 47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 50 | 51 | /* Emit */ 52 | "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 53 | "declarationMap": true, /* Create sourcemaps for d.ts files. */ 54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 55 | "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 58 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 59 | // "removeComments": true, /* Disable emitting comments. */ 60 | // "noEmit": true, /* Disable emitting files from a compilation. */ 61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 62 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 63 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 64 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 65 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 68 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 69 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 72 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 75 | 76 | /* Interop Constraints */ 77 | "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 78 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 79 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 80 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 81 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 82 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 83 | 84 | /* Type Checking */ 85 | "strict": true, /* Enable all strict type-checking options. */ 86 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 87 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 88 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 89 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 90 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 91 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 92 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 93 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 94 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 95 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 96 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 97 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 98 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 99 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 100 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 101 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 102 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 103 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 104 | 105 | /* Completeness */ 106 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 107 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 108 | }, 109 | "include": ["./src/*.ts", "./*.ts"] 110 | } 111 | --------------------------------------------------------------------------------