├── .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 |
--------------------------------------------------------------------------------