├── .gitignore ├── LICENSE ├── README.md ├── app_collections.txt ├── configure.sh ├── gpu_usage_analysis ├── 360.entropy_report.filtered.packages ├── 360.entropy_report.libinfo.csv ├── 360.gpuusage ├── count_gpuuse_apps.py ├── gplay.entropy_report.filtered.packages ├── gplay.entropy_report.libinfo.csv ├── gplay.gpuusage ├── mengweidl.entropy_report.filtered.packages ├── mengweidl.entropy_report.libinfo.csv ├── ml_gpu_apps.txt ├── tencent.entropy_report.filtered.packages ├── tencent.entropy_report.libinfo.csv ├── tencent.gpuusage ├── us.entropy_report.filtered.packages └── us.entropy_report.libinfo.csv ├── intercept_scripts ├── frida101.txt ├── intercept_template.js ├── intercept_template_bottom.js ├── intercept_template_top.js ├── shell_template_mid.sh └── shell_template_top.sh ├── measure_lic_reuse ├── README.md ├── all_apps_licenses.txt ├── all_apps_licenses.txt.reuse_analysis ├── all_apps_licenses.txt.reuse_analysis.suspected ├── lic_reuse_analyzer.py ├── lic_scanner.py ├── modelxray_360_decomposed.txt ├── modelxray__360_decomposed.txt.reuse_analysis ├── modelxray__360_decomposed.txt.reuse_analysis.suspected ├── modelxray__gplay_decomposed.txt ├── modelxray__gplay_decomposed.txt.reuse_analysis ├── modelxray__gplay_decomposed.txt.reuse_analysis.suspected ├── modelxray__tencent_decomposed.txt ├── modelxray__tencent_decomposed.txt.reuse_analysis ├── modelxray__tencent_decomposed.txt.reuse_analysis.suspected ├── modelxray__www_decomposed_dir.txt ├── modelxray__www_decomposed_dir.txt.reuse_analysis ├── modelxray__www_decomposed_dir.txt.reuse_analysis.suspected └── rename.sh ├── measure_remote_models ├── .gitignore ├── MobileDL__data__raw_apks.txt ├── Spider__360app_raw_apks.txt ├── Spider__baiduapp_raw_apks.txt ├── Spider__tencentapp_raw_apks.txt ├── classify_remote_models.py ├── classify_remote_models_results.txt ├── compare_remote_local.py ├── non_ml_apklist.txt ├── online_ai_analyzer.py └── rename.sh ├── ml_app_profile_analysis ├── .gitignore ├── entropy-distribution │ └── eval.sh ├── marketawareness │ ├── 360.entropy_report.encrypted.filtered │ ├── 360.entropy_report.filtered │ ├── chn.models │ ├── chn.models.enc │ ├── count_unique_models.py │ ├── gplay.entropy_report.encrypted.filtered │ ├── gplay.entropy_report.filtered │ ├── mengweidl.entropy_report.encrypted.filtered │ ├── mengweidl.entropy_report.filtered │ ├── tencent.entropy_report.encrypted.filtered │ ├── tencent.entropy_report.filtered │ ├── us.entropy_report.encrypted.filtered │ ├── us.entropy_report.filtered │ ├── us.models │ └── us.models.enc ├── ml_app_profile_filter.sh ├── ml_usage_analysis │ ├── 360.result │ ├── fw_purpose.tbl │ ├── fw_purpose_stat.py │ ├── fw_purpose_stat.sh │ ├── gplay.result │ ├── run.sh │ ├── tencent.result │ └── usefulcmds.txt ├── model_suffix_analysis │ ├── modelsuffix.sh │ ├── modelsuffix.txt │ └── tool.py ├── offline_model_update_analysis │ ├── offline_model_update_analyze.py │ └── offline_model_update_analyzer.sh ├── reportanalyzer.py ├── reports │ ├── 360.entropy_report │ ├── 360.entropy_report.encrypted.filtered │ ├── 360.entropy_report.encrypted.filtered.packages │ ├── 360.entropy_report.filtered │ ├── 360.entropy_report.filtered.packages │ ├── 360.entropy_report.libinfo.csv │ ├── 360.entropy_report.packages │ ├── gplay.entropy_report │ ├── gplay.entropy_report.encrypted.filtered │ ├── gplay.entropy_report.encrypted.filtered.packages │ ├── gplay.entropy_report.filtered │ ├── gplay.entropy_report.filtered.packages │ ├── gplay.entropy_report.libinfo.csv │ ├── gplay.entropy_report.packages │ ├── mengweidl.entropy_report │ ├── mengweidl.entropy_report.encrypted.filtered │ ├── mengweidl.entropy_report.encrypted.filtered.packages │ ├── mengweidl.entropy_report.filtered │ ├── mengweidl.entropy_report.filtered.packages │ ├── mengweidl.entropy_report.libinfo.csv │ ├── mengweidl.entropy_report.packages │ ├── quantized.filtered │ ├── suspected_packages_download_model.txt │ ├── tencent.entropy_report │ ├── tencent.entropy_report.encrypted.filtered │ ├── tencent.entropy_report.encrypted.filtered.packages │ ├── tencent.entropy_report.filtered │ ├── tencent.entropy_report.filtered.packages │ ├── tencent.entropy_report.libinfo.csv │ ├── tencent.entropy_report.packages │ ├── us.encrypted.filtered │ ├── us.entropy_report │ ├── us.entropy_report.encrypted.filtered │ ├── us.entropy_report.encrypted.filtered.packages │ ├── us.entropy_report.filtered │ ├── us.entropy_report.filtered.packages │ ├── us.entropy_report.libinfo.csv │ └── us.entropy_report.packages └── useful_cmds.sh ├── model_encoding_analyzer ├── .gitignore ├── bincopypat.py ├── commencmds.txt ├── demanglecppname.py ├── extractpb.sh ├── header.sh ├── hexdumper.sh └── hexdumperraw.sh ├── modelxray.config └── modelxray.py /.gitignore: -------------------------------------------------------------------------------- 1 | apkfiles/ 2 | output_dir/ 3 | decomposed_dir 4 | *.swp 5 | *.log 6 | *.str 7 | *.pb 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ModelXRay: On-device Machine Learning Model Analyzer and Extractor for Android Apps 2 | 3 | This repository is the static app analysis tool ModelXRay for our paper ["Mind Your Weight(s): A 4 | Large-scale Study on Insufficient Machine Learning Model Protection in Mobile Apps"(USENIX Security'21)][1]. 5 | The main tool is `modelxray.py`, it requires a default config file `modelxray.config`. 6 | The input of ModelXRay can be either an Android APK file or a directory contains APK files, the output is a directory 7 | for each analyzed app. The directory stores the app's profile containing the detailed information about the model files, 8 | the machine learning libraries and the evidence. For each machine learning model, it also generate one line 9 | containing the model's meta data and stored in a file called `reports`. 10 | 11 | ModelXTractor is based on [Frida](https://frida.re/docs/hacking/). For each app, ModelXRay generates the customized 12 | instrumentation script for Frida. 13 | 14 | ## Contents 15 | 16 | - `modelxray.py`: our main tool ModelXRay. 17 | - `modelxray.config`: default config file for ModelXRay. 18 | - `configure.sh`: check the other tools that ModelXRay relies on. 19 | - `app_collections.txt`: statistics for our app collection (we do not provide the original app packages which are huge). 20 | - `measure_lic_reuse`: measure the license reuse among different apps. 21 | - `gpu_usage_analysis`: measure how widely GPU acceleration is used among ML apps/libraries. 22 | - `intercept_scripts`: intermediate scripts used by `modelxray.py` to generate analysis script for ModelXTractor. 23 | - `measure_remote_models`: measure how many apps use remote models (or cloud-based ML services). 24 | - `model_encoding_analyzer`: some tools used for analyzing model encoding. 25 | - `ml_app_profile_analysis`: further analysis based on the results generated by ModelXRay on our collected apps. 26 | 27 | ## Requirements 28 | 29 | - ModelXRay is a static analysis tool, it requires a linux/macOS machine with the prerequisite tools listed in `configure.sh`. 30 | - ModelXTractor refers the dynamic analysis, it requires a rooted phone with Frida installed. You also need to install the Android 31 | app for analysis. Once this is set, you can run frida on your host machine with the instrumentation script(ModelXTractor) generated 32 | by ModelXRay. ModelXTractor will store the suspected model buffer on your phone, and you can pull it onto your host machine for 33 | verification. 34 | 35 | ## Usage of ModelXRay 36 | 37 | ``` 38 | usage: modelxray [-h] [-c CONFIG_FILE] [-r] [-l] [-v] [-f] [-s] [-t] [-j] [-p] 39 | [-d] 40 | apkpath 41 | 42 | positional arguments: 43 | apkpath path to apk file or directory 44 | 45 | optional arguments: 46 | -h, --help show this help message and exit 47 | -c CONFIG_FILE, --config-file CONFIG_FILE 48 | the path of modelxray config file 49 | -r, --regenerate-report 50 | regenerate report even if report is there 51 | -l, --log-file store log in modelxray.log(default to stdout) 52 | -v, --verbose verbose logging info 53 | -f, --fast-run run fast by only analyzing library and assets, not 54 | smali code 55 | -s, --space-efficient 56 | save space by not storing non-machine learning 57 | decomposed apps 58 | -t, --test-only donot do anything, just test work splitting for 59 | multiprocessing 60 | -j, --json-script automatically generate json for dynamic 61 | instrumentation java script 62 | -p, --package-name use package name as output directory name, default use 63 | apk path name 64 | -d, --decomposed-package 65 | start analysis from already decomposed packages 66 | 67 | ``` 68 | 69 | 70 | 71 | ## Issues 72 | If you encounter any problem while using our tool, please open an issue. 73 | 74 | For other communications, you can email sun.zhi [at] northeastern.edu. 75 | 76 | 77 | ## Citing our [paper](https://arxiv.org/pdf/1802.03462.pdf) 78 | ```bibtex 79 | @inproceedings {272264, 80 | author = {Zhichuang Sun and Ruimin Sun and Long Lu and Alan Mislove}, 81 | title = {Mind Your Weight(s): A Large-scale Study on Insufficient Machine Learning Model Protection in Mobile Apps}, 82 | booktitle = {30th {USENIX} Security Symposium ({USENIX} Security 21)}, 83 | year = {2021}, 84 | url = {https://www.usenix.org/conference/usenixsecurity21/presentation/sun-zhichuang}, 85 | publisher = {{USENIX} Association}, 86 | month = aug, 87 | } 88 | ``` 89 | 90 | ## Disclaimer 91 | 92 | All implementations are only research prototypes! 93 | 94 | Our code is NOT safe for production use! Please use it only for tests. 95 | 96 | ## License 97 | 98 | Licensed under the Apache License, Version 2.0 (the "License"); 99 | you may not use this file except in compliance with the License. 100 | You may obtain a copy of the License at 101 | 102 | [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) 103 | 104 | Unless required by applicable law or agreed to in writing, software 105 | distributed under the License is distributed on an "AS IS" BASIS, 106 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 107 | See the License for the specific language governing permissions and 108 | limitations under the License. 109 | 110 | [1]: https://www.usenix.org/conference/usenixsecurity21/presentation/sun-zhichuang "Mind Your Weight(s): A Large-scale Study on Insufficient Machine Learning Model Protection in Mobile Apps" 111 | 112 | ## Q&A 113 | 114 | ### How to detect encrypted model file? 115 | 116 | We use file [entropy](https://en.wikipedia.org/wiki/Entropy_(information_theory)#Data_compression) as indicator for encryption. File entropy in the context of computing measures the degree of randomness of the data. High entropy file fall into three categories: 117 | * P1: Pure Random Data 118 | * P2: Compressed files 119 | * P3: Encrypted files 120 | 121 | For suspected model files with high entropy, we rule out P1, assuming it is a model file. Compressed files usually can be detected with file format checking. 122 | For example, we can use file extention(.zip, .gzip, etc.) to rule out P2. For the rest, we now have some confidence that the high entropy file is encrypted. 123 | See the paper for how we decide on the boundary of encryption for file entropy value. By the way, file entropy can easily calculated with Linux cmdline tool `ent` ([see here](https://wiki.alpinelinux.org/wiki/Entropy_and_randomness0)). 124 | 125 | ### Where to get the information about the apps? 126 | 127 | Please find the app profiles under `ml_app_profile_analysis/reports/` grouped by app store names. For example, [ml_app_profile_analysis/reports/gplay.entropy_report.filtered](https://github.com/RiS3-Lab/ModelXRay/blob/main/ml_app_profile_analysis/reports/gplay.entropy_report.filtered) are the suspected app with ML models from Google Play. 128 | 129 | Note, the suffix are used to indicate what filter has been applied. `.filtered` means the initial suspected models are filtered with three 130 | metrics mentioned in the paper. `.filtered.ecrypted` means the encrypted models among the filtered models. 131 | -------------------------------------------------------------------------------- /app_collections.txt: -------------------------------------------------------------------------------- 1 | 360 App Store: 2 | Around 31323 apps(results of `ls -lR |wc -l`) 3 | 4 | Baidu App Store: 5 | Around 2343 apps 6 | 7 | Tencent App Store: 8 | Around 2220 apps 9 | 10 | Google Play Apps: 11 | Around 12542 apps 12 | -------------------------------------------------------------------------------- /configure.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "make sure you have the following tools installed:" 3 | echo "\taapt, apktool, silversearch-ag, nm, ent(entropy), md5sum" 4 | sudo apt-get install aapt apktool silversearch-ag nm ent md5sum 5 | -------------------------------------------------------------------------------- /gpu_usage_analysis/count_gpuuse_apps.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | def get_ml_gpu_apps(ml_apps, ml_libs, libfile): 4 | lines = open(libfile, 'r').readlines() 5 | #print(lines[0]) 6 | target_apps = [] 7 | gpu_libs = [] 8 | for l in lines: 9 | fields = l.split('/') 10 | app = fields[0] 11 | lib = fields[2][:-5] 12 | #print("app:%s, lib:%s"%(app,lib)) 13 | if lib in ml_libs and app in ml_apps and app not in target_apps: 14 | target_apps.append(app) 15 | if lib in ml_libs and lib not in gpu_libs: 16 | gpu_libs.append(lib) 17 | #print "[get_ml_gpu_apps]" 18 | #print target_apps 19 | print "GPU Libs %d"%len(gpu_libs) 20 | return target_apps 21 | 22 | def get_ml_apps(packages): 23 | lines = open(packages, 'r').readlines() 24 | target_apps = [] 25 | #print(lines[0]) 26 | for l in lines: 27 | target_apps.append(l.strip()) 28 | #print "[get_ml_apps]" 29 | #print target_apps 30 | return target_apps 31 | 32 | def get_ml_libs(libcsv): 33 | lines = open(libcsv, 'r').readlines() 34 | #print(lines[0]) 35 | target_libs = [] 36 | for l in lines: 37 | fields = l.split(',') 38 | target_libs.append(fields[0]) 39 | #print "[get_ml_libs]" 40 | #print target_libs 41 | return target_libs 42 | 43 | def run(packages, libcsv, gpuusefile): 44 | ml_apps = get_ml_apps(packages) 45 | ml_libs = get_ml_libs(libcsv) 46 | ml_gpu_apps = get_ml_gpu_apps(ml_apps, ml_libs, gpuusefile) 47 | return ml_gpu_apps 48 | 49 | 50 | if __name__ == "__main__": 51 | packages = "360.entropy_report.filtered.packages" 52 | libcsv = "360.entropy_report.libinfo.csv" 53 | gpuusefile = "360.gpuusage" 54 | ml_gpu_apps = run(packages, libcsv, gpuusefile) 55 | print "360 ML GPU Apps :%d"%len(ml_gpu_apps) 56 | print ml_gpu_apps 57 | 58 | packages = "gplay.entropy_report.filtered.packages" 59 | libcsv = "gplay.entropy_report.libinfo.csv" 60 | gpuusefile = "gplay.gpuusage" 61 | ml_gpu_apps = run(packages, libcsv, gpuusefile) 62 | print "GPlay ML GPU Apps :%d"%len(ml_gpu_apps) 63 | print ml_gpu_apps 64 | 65 | packages = "tencent.entropy_report.filtered.packages" 66 | libcsv = "tencent.entropy_report.libinfo.csv" 67 | gpuusefile = "tencent.gpuusage" 68 | ml_gpu_apps = run(packages, libcsv, gpuusefile) 69 | print "Tecent ML GPU Apps :%d"%len(ml_gpu_apps) 70 | print ml_gpu_apps 71 | -------------------------------------------------------------------------------- /gpu_usage_analysis/gplay.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.nick.android.nickjr 2 | com.naver.vapp 3 | com.androidworks.videocalling 4 | app.vivoo.io 5 | com.asiainno.uplive.aiglamour 6 | com.camera.galaxyx 7 | com.camera.one.s10.camera 8 | com.beauty.photoedit.camera.makeup 9 | com.camscanner.documentscanner.pdfreader 10 | com.bitstrips.imoji 11 | com.badoo.mobile 12 | com.familyfit.google.baduanjin 13 | com.draw.now.drawit 14 | com.eraserphoto.cutout.backgroundeditor 15 | com.fishbrain.app 16 | com.face.predictor.fantastic.face.secret 17 | com.dongby.android.mmshow.inter 18 | com.dazz.hoop 19 | com.framy.placey 20 | com.cut.cutout.photo.background.editor 21 | com.draw.clash.drawit 22 | com.dailyselfie.newlook.studio 23 | com.gokoo.hamo 24 | com.google.audio.hearing.visualization.accessibility.scribe 25 | com.grammarly.android.keyboard 26 | com.google.android.apps.photos 27 | com.geico.mobile 28 | com.google.android.apps.cultural 29 | com.google.android.apps.photosgo 30 | com.futureme.palmreader 31 | com.lyrebirdstudio.face_camera 32 | com.littlebee.beauty.selfie.camera 33 | com.icameraapple.ioscamera.xscamera.icamera 34 | com.live.videochat.india 35 | com.huya.nimo 36 | com.magicvcam.super.selfiecam.camera 37 | com.pure.camera.detector.road 38 | com.photo.pipcam.eidtor.camera 39 | com.senegence.android.senelooks 40 | com.shutterfly 41 | com.photoeditor.imagecutter.cameffect 42 | com.tyndale.filament 43 | com.thmobile.sketchphotomaker 44 | com.unico.live 45 | com.ua.building.Lokicraft 46 | com.text.metal.effect 47 | com.ua.toybuilding.survival 48 | face.hw.com.facehub 49 | ctrip.android.view 50 | cutcut.cut.out.paste.background.remove.photo.cutout 51 | ProjectXAndroid.imbin 52 | ProjectXAndroidAC.imbin 53 | com.vyroai.AiBlurEditor 54 | facetechstudio.future.me 55 | com.waze 56 | co.theguru.dali 57 | com.usablenet.mobile.walgreen 58 | ir.hafhashtad.android780 59 | stickerwhatsapp.com.stickers 60 | sg.bigo.date 61 | video.like 62 | valencia.magic.selfie.makeup.camer.photo.editor 63 | io.trade.tradeio.eu 64 | org.dayup.stocks 65 | ru.mail 66 | -------------------------------------------------------------------------------- /gpu_usage_analysis/gplay.entropy_report.libinfo.csv: -------------------------------------------------------------------------------- 1 | libctrip_android_train.so,1,ctrip.android.view 2 | libvpsdk.so,2,sg.bigo.date,video.like 3 | libvenus.so,2,com.senegence.android.senelooks,video.like 4 | libtess.so,1,com.camscanner.documentscanner.pdfreader 5 | libeffect_core.so,1,com.magicvcam.super.selfiecam.camera 6 | libctrip_android_destination.so,1,ctrip.android.view 7 | libbigonn.so,2,sg.bigo.date,video.like 8 | libnama.so,2,com.badoo.mobile,com.live.videochat.india 9 | libctrip_android_flight_xproduct.so,1,ctrip.android.view 10 | libwaze.so,1,com.waze 11 | libopencv_java3.so,2,com.camscanner.documentscanner.pdfreader,facetechstudio.future.me 12 | libtraeimp-rtmp-armeabi.so,1,com.live.videochat.india 13 | libctrip_android_customerservice.so,1,ctrip.android.view 14 | libstellite_http_client.so,1,com.naver.vapp 15 | libtensorflowlite_gpu_jni.so,1,com.familyfit.google.baduanjin 16 | libnativeai.so,2,com.eraserphoto.cutout.backgroundeditor,com.photoeditor.imagecutter.cameffect 17 | libVuforia.so,2,ProjectXAndroid.imbin,co.theguru.dali 18 | libCnnSegment.so,1,video.like 19 | libFaceSDK.so,2,com.beauty.photoedit.camera.makeup,com.photo.pipcam.eidtor.camera 20 | libtensorflow_inference.so,7,com.bitstrips.imoji,com.cut.cutout.photo.background.editor,com.shutterfly,com.thmobile.sketchphotomaker,cutcut.cut.out.paste.background.remove.photo.cutout,com.vyroai.AiBlurEditor,ir.hafhashtad.android780 21 | libulsCppTracker_unity_lite.so,1,co.theguru.dali 22 | libijkffmpeg.so,1,com.huya.nimo 23 | libbvtMobile.so,2,sg.bigo.date,video.like 24 | libyylivesdk4cloud.so,1,com.gokoo.hamo 25 | libsmsdk.so,3,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.unico.live 26 | liborangefilterjni.so,1,com.gokoo.hamo 27 | libRSSupport.so,1,cutcut.cut.out.paste.background.remove.photo.cutout 28 | libj2v8.so,1,com.shutterfly 29 | libSkyFilter.so,1,valencia.magic.selfie.makeup.camer.photo.editor 30 | libcaffe.so,1,com.dailyselfie.newlook.studio 31 | libctrip_android_tour_bussiness.so,1,ctrip.android.view 32 | libjingle_peerconnection_so.so,1,com.live.videochat.india 33 | libfotobeautyengine.so,1,valencia.magic.selfie.makeup.camer.photo.editor 34 | libActionId.so,1,video.like 35 | libavformat-57.so,3,com.camera.galaxyx,com.camera.one.s10.camera,com.icameraapple.ioscamera.xscamera.icamera 36 | libcronet.63.0.3203.0.so,1,ctrip.android.view 37 | libtoyger.so,1,ctrip.android.view 38 | libtraeimp-rtmp-armeabi-v7a.so,1,com.live.videochat.india 39 | libulsCppTracker_native_lite.so,2,com.nick.android.nickjr,co.theguru.dali 40 | libgoogle_recognizer_with_speakerid_jni.so,1,com.google.audio.hearing.visualization.accessibility.scribe 41 | libiconv.so,1,ir.hafhashtad.android780 42 | libctrip_android_livestream.so,1,ctrip.android.view 43 | libctrip_android_train_part.so,1,ctrip.android.view 44 | libctrip_android_destination_strategy.so,1,ctrip.android.view 45 | libgame.so,3,com.mastercraft.game.explorationn,com.ua.building.Lokicraft,com.ua.toybuilding.survival 46 | liblookalike_shared_jni.so,1,com.google.android.apps.cultural 47 | libLiveDriverSDK.so,2,ProjectXAndroid.imbin,ProjectXAndroidAC.imbin 48 | libjni_liveness_interactive.so,1,org.dayup.stocks 49 | libncnn_style.0.2.so,1,valencia.magic.selfie.makeup.camer.photo.editor 50 | libcardrecognizer.so,1,io.trade.tradeio.eu 51 | libagora-rtc-sdk-jni.so,1,com.badoo.mobile 52 | libst_mobile.so,14,com.naver.vapp,com.asiainno.uplive.aiglamour,com.camera.galaxyx,com.camera.one.s10.camera,com.dongby.android.mmshow.inter,com.dailyselfie.newlook.studio,com.gokoo.hamo,com.littlebee.beauty.selfie.camera,com.icameraapple.ioscamera.xscamera.icamera,com.huya.nimo,com.pure.camera.detector.road,com.unico.live,ctrip.android.view,video.like 53 | libctrip_android_pay.so,1,ctrip.android.view 54 | libzegoliveroom.so,3,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.unico.live 55 | libstmobile_jni.so,9,com.naver.vapp,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.dailyselfie.newlook.studio,com.gokoo.hamo,com.huya.nimo,com.unico.live,ctrip.android.view,video.like 56 | libana-sdk.so,1,com.magicvcam.super.selfiecam.camera 57 | libulsTracker_native.so,1,com.lyrebirdstudio.face_camera 58 | libMTLabFace.so,1,com.magicvcam.super.selfiecam.camera 59 | libtensorflowlite_jni.so,9,app.vivoo.io,com.familyfit.google.baduanjin,com.draw.now.drawit,com.fishbrain.app,com.dazz.hoop,com.draw.clash.drawit,com.google.audio.hearing.visualization.accessibility.scribe,com.live.videochat.india,com.tyndale.filament 60 | libstidinteractive_liveness.so,1,org.dayup.stocks 61 | libcaffe_jni.so,1,com.dailyselfie.newlook.studio 62 | libjsc.so,1,com.geico.mobile 63 | libface_detector_v2_jni.so,10,com.androidworks.videocalling,com.face.predictor.fantastic.face.secret,com.framy.placey,com.geico.mobile,com.futureme.palmreader,com.live.videochat.india,com.text.metal.effect,face.hw.com.facehub,com.usablenet.mobile.walgreen,stickerwhatsapp.com.stickers 64 | libbdEASRAndroid.so,1,ctrip.android.view 65 | libctrip_android_chat.so,1,ctrip.android.view 66 | libctrip_android_destination_story.so,1,ctrip.android.view 67 | libSegUpper.so,1,video.like 68 | libvoip_armv7-a-neon.so,1,ru.mail 69 | libnative.so,2,com.google.android.apps.photos,com.google.android.apps.photosgo 70 | libmspell-jni.so,1,com.grammarly.android.keyboard 71 | -------------------------------------------------------------------------------- /gpu_usage_analysis/mengweidl.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.iart.camera.photo 2 | com.pic.photoeditor 3 | com.roberts.croberts.mantis 4 | com.nhn.android.webtoon 5 | com.asiainno.uplive 6 | com.xingin.xhs 7 | pip.face.selfie.beauty.camera.photo.editor 8 | com.concur.breeze 9 | com.muper.radella 10 | sweetsnap.lite.snapchat 11 | com.camera.galaxyx 12 | com.fotoable.faceswap.c403 13 | ch.zhaw.facerecognition 14 | com.magicv.airbrush 15 | com.urbandroid.sleep 16 | com.galaxys.camera4k 17 | com.facebook.talk 18 | com.best.photoeditor.beautyeditorpro 19 | com.azarlive.android 20 | horse.schvung.equilab 21 | cn.jingling.motu.photowonder 22 | com.fotoable.enstyle 23 | com.joytunes.simplypiano 24 | com.mico 25 | com.seefoodtechnologies.nothotdog 26 | com.cyberlink.youcammakeup 27 | com.total.photostudio 28 | com.pic.pipcamera 29 | com.lyrebirdstudio.makeup 30 | com.youdao.hindict 31 | com.pipcamera.activity 32 | io.anyline.examples.store 33 | com.homesecurity.firstone 34 | com.google.android.googlequicksearchbox 35 | com.hefe.pro.editor 36 | com.bitstrips.imoji 37 | com.video.chat.spark 38 | com.meet.android 39 | org.tensorflow.detect 40 | com.meitu.makeup 41 | com.meitu.partynow 42 | com.fotoable.snapfilters 43 | com.commsource.beautyplus 44 | com.huanshi.awe.another 45 | com.apus.camera.id 46 | com.kwai.video 47 | com.disney.datg.videoplatforms.android.watchdc 48 | com.omronhealthcare.omronconnect 49 | com.meitu.meiyancamera 50 | com.naver.vapp 51 | com.eg.android.AlipayGphone 52 | com.perfectcorp.ycf 53 | com.lyrebirdstudio.emoji_camera 54 | com.baidu.BaiduMap 55 | com.taobao.taobao 56 | com.instagram.android 57 | sweet.snapface.facefilter 58 | machinelearning.tensorflow.speech 59 | com.google.android.apps.translate 60 | com.iconparking 61 | com.google.android.tts 62 | com.google.android.apps.photos.scanner 63 | com.bolangdev.poni 64 | com.fotoable.makeup 65 | com.apusapps.fulakora 66 | kr.co.robin.android.tflite.objectdetector 67 | com.linecorp.b612.android 68 | com.campmobile.snow 69 | com.jingdong.app.mall 70 | com.infocomltd.ugvassistant 71 | com.fishbrain.app 72 | com.meitu.beautyplusme 73 | com.fabbyhair.android 74 | com.abrmobileapp 75 | com.lyrebirdstudio.beauty 76 | com.abtnprojects.ambatana 77 | com.accordion.perfectme 78 | com.fotoable.selfieplus 79 | com.alivecor.aliveecg 80 | com.uc.vmate 81 | com.lyrebirdstudio.colorizer.lite 82 | com.modiface.loreal.stylemyhair 83 | com.google.android.apps.cultural 84 | com.ufotosoft.justshot 85 | com.bruxlabsnore 86 | com.fotoable.cartoon.cam 87 | fluidsim.de.interactivedrop 88 | com.grammarly.android.keyboard 89 | com.nhn.android.search 90 | com.shutterfly 91 | com.input.funnykeyboard 92 | jp.naver.line.android 93 | com.joeware.android.gpulumera 94 | com.statefarm.pocketagent 95 | co.vero.app 96 | video.like 97 | com.pic.mycamera 98 | com.easilydo.mail 99 | com.alibaba.intl.android.apps.poseidon 100 | com.baseapp.eyeem 101 | com.instagram.igtv 102 | com.asiainno.uplive.yuanfen 103 | uk.tensorzoom 104 | com.snapchat.android 105 | com.icomedias.hybridforms 106 | com.fotoable.fotobeauty 107 | com.google.android.apps.photos 108 | com.cam001.selfie 109 | sweet.selfie.lite 110 | ai.fritz.heartbeat 111 | com.duowan.supervideo 112 | com.sina.weibo 113 | com.mt.mtxx.mtxx 114 | com.camera.s9.camera 115 | -------------------------------------------------------------------------------- /gpu_usage_analysis/mengweidl.entropy_report.libinfo.csv: -------------------------------------------------------------------------------- 1 | libjdface.so,1,com.jingdong.app.mall 2 | libvenus.so,3,com.cyberlink.youcammakeup,com.perfectcorp.ycf,video.like 3 | libMFETFHairTracking.so,1,com.modiface.loreal.stylemyhair 4 | libclasses.so,1,com.taobao.taobao 5 | libYSFDWrapper.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 6 | libthingsdet.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 7 | libFaceSDK.so,10,com.pic.photoeditor,com.best.photoeditor.beautyeditorpro,cn.jingling.motu.photowonder,com.total.photostudio,com.pic.pipcamera,com.video.chat.spark,com.meet.android,com.accordion.perfectme,com.input.funnykeyboard,com.pic.mycamera 8 | libgraphicsengine-arengineservices-messengereffectservicehost-native.so,1,com.facebook.talk 9 | libchipset.so,1,com.facebook.talk 10 | libtensorflow_inference.so,28,machinelearning.tensorflow.classifier,com.iart.camera.photo,com.roberts.croberts.mantis,pip.face.selfie.beauty.camera.photo.editor,com.concur.breeze,ch.zhaw.facerecognition,com.urbandroid.sleep,horse.schvung.equilab,com.joytunes.simplypiano,com.seefoodtechnologies.nothotdog,com.homesecurity.firstone,com.bitstrips.imoji,org.tensorflow.detect,com.omronhealthcare.omronconnect,machinelearning.tensorflow.speech,com.linecorp.b612.android,com.campmobile.snow,com.infocomltd.ugvassistant,com.fishbrain.app,com.alivecor.aliveecg,com.modiface.loreal.stylemyhair,com.nhn.android.search,com.shutterfly,com.statefarm.pocketagent,co.vero.app,uk.tensorzoom,com.snapchat.android,ai.fritz.heartbeat 11 | libgoogle_speech_micro_jni.so,1,com.google.android.googlequicksearchbox 12 | libBaiduSpeechSDK.so,1,com.baidu.BaiduMap 13 | libbd_etts.so,1,com.baidu.BaiduMap 14 | libj2v8.so,1,com.shutterfly 15 | libopenalpr.so,1,com.abrmobileapp 16 | libmp4operations.so,1,com.facebook.talk 17 | commons-io-2.4.jar,2,com.linecorp.b612.android,com.campmobile.snow 18 | libjingle_peerconnection_so.so,1,com.cyberlink.youcammakeup 19 | libYSFFT.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 20 | libavformat-57.so,3,com.camera.galaxyx,com.galaxys.camera4k,com.camera.s9.camera 21 | libtensorflow-android.so,1,com.grammarly.android.keyboard 22 | libnative-lib.so,2,com.linecorp.b612.android,com.campmobile.snow 23 | libeffects-framework_graphics-engineAndroid.so,3,com.facebook.talk,com.instagram.android,com.instagram.igtv 24 | libimagepipeline.so,1,com.nhn.android.webtoon 25 | libmlabmakeup.so,3,com.meitu.makeup,com.meitu.partynow,com.mt.mtxx.mtxx 26 | libjscAndroid.so,2,com.facebook.talk,com.instagram.igtv 27 | libmtphotosegment.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 28 | libMailCore.so,1,com.easilydo.mail 29 | libAgeGender.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 30 | libcom.jd.lib.community.so,1,com.jingdong.app.mall 31 | libdAvatarDnn.so,1,com.kwai.video 32 | libcaffe2_caffe2_igAndroid.so,2,com.instagram.android,com.instagram.igtv 33 | libst_mobile.so,19,com.nhn.android.webtoon,com.asiainno.uplive,com.xingin.xhs,com.camera.galaxyx,com.galaxys.camera4k,com.mico,com.commsource.beautyplus,com.meitu.meiyancamera,com.naver.vapp,com.linecorp.b612.android,com.campmobile.snow,com.uc.vmate,jp.naver.line.android,com.joeware.android.gpulumera,video.like,com.asiainno.uplive.yuanfen,com.duowan.supervideo,com.sina.weibo,com.camera.s9.camera 34 | libyoudaoocr.so,1,com.youdao.hindict 35 | libzegoliveroom.so,3,com.asiainno.uplive,com.mico,com.sina.weibo 36 | libstmobile_jni.so,15,com.nhn.android.webtoon,com.asiainno.uplive,com.xingin.xhs,com.mico,com.commsource.beautyplus,com.meitu.meiyancamera,com.naver.vapp,com.linecorp.b612.android,com.campmobile.snow,com.uc.vmate,jp.naver.line.android,com.joeware.android.gpulumera,video.like,com.asiainno.uplive.yuanfen,com.duowan.supervideo 37 | libcom.jd.lib.commune.so,1,com.jingdong.app.mall 38 | libfbjsc.so,1,com.instagram.android 39 | libAPSE_1.4.12.so,1,com.eg.android.AlipayGphone 40 | libair.so,1,com.uc.vmate 41 | libcaffe_jni.so,1,ch.zhaw.facerecognition 42 | libaudioengine.so,1,com.duowan.supervideo 43 | libaqts.so,1,com.sina.weibo 44 | libhere_blue_component.so,1,com.google.android.googlequicksearchbox 45 | libcom.jd.lib.frostfire.so,1,com.jingdong.app.mall 46 | libLiveStreamer.so,1,com.naver.vapp 47 | libsnap-cv.1.0-release.10.41.6d1abe7.1895.so,1,com.snapchat.android 48 | libGrindingPredictionJavaLib.so,1,com.bruxlabsnore 49 | libface.so,1,com.snapchat.android 50 | libsophix.so,1,com.alibaba.intl.android.apps.poseidon 51 | libeffect_core.so,1,com.meitu.makeup 52 | libsgmain.so,2,com.alibaba.intl.android.apps.poseidon,com.sina.weibo 53 | libsmart_reply_jni.so,1,com.easilydo.mail 54 | libmerged-slink-bundles-res.so,1,com.eg.android.AlipayGphone 55 | libMegviiFacepp-0.4.7.so,1,com.iart.camera.photo 56 | libAwe.so,1,com.huanshi.awe.another 57 | libant3d.so,1,com.eg.android.AlipayGphone 58 | libeagle_base_processor.so,3,sweetsnap.lite.snapchat,com.cam001.selfie,sweet.selfie.lite 59 | libHair.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 60 | libAliNN_CL.so,1,com.taobao.taobao 61 | libmmocr.so,2,com.eg.android.AlipayGphone,com.alibaba.intl.android.apps.poseidon 62 | libmodelsmerged.so,1,com.facebook.talk 63 | libxnn.so,2,com.eg.android.AlipayGphone,com.alibaba.intl.android.apps.poseidon 64 | libsmsdk.so,3,com.asiainno.uplive,com.xingin.xhs,com.asiainno.uplive.yuanfen 65 | libcom.jd.lib.jdmiaosha.so,1,com.jingdong.app.mall 66 | libbdSpilWakeup.so,1,com.baidu.BaiduMap 67 | libcaffe2merged.so,1,com.facebook.talk 68 | libdnn.so,1,com.snapchat.android 69 | libsegmentation.0.0.4+6d1abe7.so,1,com.snapchat.android 70 | libpldroid_mmprocessing.so,1,com.asiainno.uplive.yuanfen 71 | libffmpeg.so,4,com.meitu.makeup,com.meitu.partynow,com.meitu.meiyancamera,com.mt.mtxx.mtxx 72 | libanylineCore.so,2,io.anyline.examples.store,com.icomedias.hybridforms 73 | libu3player.so,1,com.uc.vmate 74 | libtts_android.so,1,com.google.android.tts 75 | libcom.jd.lib.message.so,1,com.jingdong.app.mall 76 | libscnn.so,1,com.snapchat.android 77 | libgnustl_shared.so,1,com.abrmobileapp 78 | libcardrecognizer.so,1,com.iconparking 79 | libmidi.so,1,com.joytunes.simplypiano 80 | libtts_android_neon.so,1,com.google.android.tts 81 | libk3y.so,1,com.concur.breeze 82 | libopticomn.so,4,com.meitu.makeup,com.meitu.partynow,com.meitu.meiyancamera,com.mt.mtxx.mtxx 83 | libtensorflowlite_jni.so,4,kr.co.robin.android.tflite.objectdetector,com.abtnprojects.ambatana,com.modiface.loreal.stylemyhair,ai.fritz.heartbeat 84 | libtranslate.so,1,com.google.android.apps.translate 85 | libSnapFill.so,1,com.snapchat.android 86 | libARKernelInterface.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 87 | libmspell-jni.so,1,com.grammarly.android.keyboard 88 | libmtbodypose.so,1,com.commsource.beautyplus 89 | liborangefilterjni.so,1,com.duowan.supervideo 90 | libalinnface-v7a.so,1,com.taobao.taobao 91 | librelease_sig.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 92 | libkuru.so,3,com.linecorp.b612.android,com.campmobile.snow,jp.naver.line.android 93 | libliger-native.so,1,com.instagram.igtv 94 | liblookalike_shared_jni.so,1,com.google.android.apps.cultural 95 | libopencv_java3.so,1,com.infocomltd.ugvassistant 96 | libhyperfast.so,1,com.azarlive.android 97 | libkscnnrenderlib.so,1,com.kwai.video 98 | libvpsdk.so,1,video.like 99 | libfb_ffmpeg.so,3,com.facebook.talk,com.instagram.android,com.instagram.igtv 100 | libsgavmp.so,1,com.taobao.taobao 101 | libulsCppTracker_unity_lite.so,1,com.disney.datg.videoplatforms.android.watchdc 102 | libSkyFilter.so,4,com.pipcamera.activity,com.fotoable.makeup,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 103 | liboffline_actions_jni.so,1,com.google.android.googlequicksearchbox 104 | libRSSupport.so,2,com.fishbrain.app,co.vero.app 105 | libmapbox-gl.so,1,com.fishbrain.app 106 | libst_sensear.so,2,video.like,com.sina.weibo 107 | libgraphicsengine-arengineservices-igeffectservicehost-native.so,2,com.instagram.android,com.instagram.igtv 108 | libcaffe.so,1,ch.zhaw.facerecognition 109 | liblept.so,2,com.infocomltd.ugvassistant,com.abrmobileapp 110 | libmmu_lib.so,1,com.kwai.video 111 | libActionId.so,1,video.like 112 | libtoyger.so,1,com.eg.android.AlipayGphone 113 | libCnnSegment.so,1,video.like 114 | libmstyle.so,1,com.mt.mtxx.mtxx 115 | libapp.so,1,com.fabbyhair.android 116 | libjs.so,1,com.iart.camera.photo 117 | libWebViewCore_2.13.2.27.09201403_7z_uc.so,1,com.eg.android.AlipayGphone 118 | libNCNN.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 119 | libwbquicklook.so,1,com.sina.weibo 120 | libmtbana-rsa-sdk.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 121 | libulsTracker_native.so,9,com.fotoable.faceswap.c403,com.azarlive.android,com.lyrebirdstudio.makeup,com.fotoable.snapfilters,com.lyrebirdstudio.emoji_camera,sweet.snapface.facefilter,com.lyrebirdstudio.beauty,com.lyrebirdstudio.colorizer.lite,com.ufotosoft.justshot 122 | libmlabsegment.so,4,com.magicv.airbrush,com.meitu.partynow,com.commsource.beautyplus,com.meitu.beautyplusme 123 | libyuki-effect.so,1,jp.naver.line.android 124 | libmtcrypt.so,5,com.meitu.makeup,com.meitu.partynow,com.commsource.beautyplus,com.meitu.meiyancamera,com.mt.mtxx.mtxx 125 | libyuv_utils.so,1,com.mico 126 | libMTAlbum.so,2,com.commsource.beautyplus,com.mt.mtxx.mtxx 127 | libapp_BaiduMapApplib.so,1,com.baidu.BaiduMap 128 | libaliplayer-1.2.4.so,1,com.eg.android.AlipayGphone 129 | libtess.so,2,com.infocomltd.ugvassistant,com.abrmobileapp 130 | libtensorflow.so,1,fluidsim.de.interactivedrop 131 | libgoogle_speech_jni.so,1,com.google.android.googlequicksearchbox 132 | libvenusjni.so,1,com.duowan.supervideo 133 | libnama.so,1,com.muper.radella 134 | libarlink.so,1,com.instagram.android 135 | libJavaScriptCore.so,1,com.taobao.taobao 136 | libtensorflow_demo.so,8,machinelearning.tensorflow.classifier,com.seefoodtechnologies.nothotdog,org.tensorflow.detect,machinelearning.tensorflow.speech,com.fishbrain.app,com.nhn.android.search,com.baseapp.eyeem,uk.tensorzoom 137 | libtensorflow_imageutils.so,1,com.statefarm.pocketagent 138 | libweexjss.so,1,com.alibaba.intl.android.apps.poseidon 139 | libmm.so,1,jp.naver.line.android 140 | libmtfaceanalysis.so,1,com.meitu.makeup 141 | libapp_BaiduNaviApplib.so,1,com.baidu.BaiduMap 142 | libyuki-camera-effect.so,1,jp.naver.line.android 143 | libalpr.so,1,com.abrmobileapp 144 | libcom.jd.lib.icssdk.so,1,com.jingdong.app.mall 145 | libfotobeautyengine.so,8,com.fotoable.faceswap.c403,com.fotoable.enstyle,com.pipcamera.activity,com.fotoable.snapfilters,com.fotoable.makeup,com.fotoable.selfieplus,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 146 | libjpgt.so,1,com.abrmobileapp 147 | libcronet.so,1,com.sina.weibo 148 | libfastdnn.so,1,com.snapchat.android 149 | libulsCppTracker_native_lite.so,1,com.disney.datg.videoplatforms.android.watchdc 150 | libncnn_style.0.2.so,4,com.pipcamera.activity,com.fotoable.makeup,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 151 | libturbonet.so,1,com.baidu.BaiduMap 152 | libSnapCut.so,1,com.snapchat.android 153 | libMTSkin.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 154 | libtraeimp-rtmp-armeabi-v7a.so,1,com.mico 155 | libpqul.so,2,com.nhn.android.search,jp.naver.line.android 156 | libbigonn.so,1,video.like 157 | libidcardtextcut_v1.1.4.so,1,com.eg.android.AlipayGphone 158 | libMTLabFace.so,2,com.meitu.partynow,com.meitu.beautyplusme 159 | libmtaestheticsassessment.so,1,com.commsource.beautyplus 160 | libYSFD.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 161 | libmtnn.so,5,com.magicv.airbrush,com.meitu.makeup,com.commsource.beautyplus,com.meitu.meiyancamera,com.mt.mtxx.mtxx 162 | libcronet.65.0.3325.109.so,1,com.snapchat.android 163 | libmodpdfium.so,1,com.concur.breeze 164 | libtbffmpeg.so,2,com.taobao.taobao,com.alibaba.intl.android.apps.poseidon 165 | libmobilexrayjni.so,1,com.facebook.talk 166 | libycmediayuv.so,1,com.duowan.supervideo 167 | libnative.so,2,com.google.android.apps.photos.scanner,com.google.android.apps.photos 168 | -------------------------------------------------------------------------------- /gpu_usage_analysis/tencent.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.jingdong.pdj 2 | com.tencent.karaoke 3 | com.sina.weibo 4 | com.taobao.qianniu 5 | com.pipcamera.activity 6 | com.shunfengche.ride 7 | com.qihoo.loan 8 | com.rongcai.show 9 | com.shineyie.aijianji 10 | com.xhqb.app 11 | com.jingyao.easybike 12 | com.A17zuoye.mobile.homework 13 | com.wuba.zhuanzhuan 14 | com.lakala.android 15 | com.meelive.ingkee 16 | com.jsbc.lznews 17 | com.hpbr.bosszhipin 18 | com.news.shangyounews 19 | com.mujirenben.liangchenbufu 20 | com.taobao.trip 21 | com.gorgeous.lite 22 | com.kaola 23 | com.xiaomi.smarthome 24 | com.yy.android.udbsec 25 | com.pplive.androidphone 26 | com.baidu.searchbox 27 | com.ucredit.financial.android 28 | com.youdao.translator 29 | com.rrh.jdb 30 | com.zhenai.android 31 | com.tmall.wireless 32 | com.qq.qcloud 33 | com.fotoable.fotobeauty 34 | com.autonavi.minimap 35 | cn.jingling.motu.photowonder 36 | com.baidu.netdisk 37 | com.unionpay 38 | com.business.king 39 | com.baidu.tieba 40 | com.able.wisdomtree 41 | com.taobao.mobile.dipei 42 | cn.mchang 43 | com.cainiao.wireless 44 | com.duowan.mobile 45 | com.smile.gifmaker 46 | com.duowan.yylove 47 | com.tencent.qqlive 48 | com.soufun.app 49 | com.hepai.hepaiandroid 50 | com.xingjiabi.shengsheng 51 | com.vsco.cam 52 | com.tencent.tgp 53 | com.changba 54 | com.duowan.kiwi 55 | com.cwtcn.kt 56 | com.tencent.weishi 57 | com.haodai.flashloan 58 | com.instamag.activity 59 | cn.eclicks.wzsearch 60 | com.lufax.android 61 | com.making.business.king 62 | com.tuhao.laosiji 63 | com.alibaba.wireless 64 | com.lejent.zuoyeshenqi.afanti 65 | com.cubic.autohome 66 | com.fenqile.fenqile 67 | com.meitu.wheecam 68 | com.alpha.lago 69 | com.babytree.apps.lama 70 | com.by.butter.camera 71 | com.felink.videopaper 72 | com.taobao.idlefish 73 | com.duowan.bi 74 | cn.mifengkong.huaxiaapp 75 | com.alibaba.android.rimet 76 | com.impression.a9513.client 77 | com.aixuedai.axd 78 | me.yidui 79 | com.jingdong.app.mall 80 | com.lemon.faceu 81 | com.csair.mbp 82 | com.sohu.sohuvideo 83 | ctrip.android.view 84 | im.yixin 85 | tv.xiaoka.live 86 | com.gotokeep.keep 87 | com.jiayuan 88 | tv.acfundanmaku.video 89 | cn.j.hers 90 | cn.caocaokeji.user 91 | com.ss.android.ugc.live 92 | com.yijin.fastticket 93 | com.huodao.hdphone 94 | com.tmri.app.main 95 | com.jfbank.wanka 96 | com.cmcm.gamemaster 97 | com.youdao.note 98 | com.huajiao.camera 99 | com.infothinker.gzmetro 100 | com.syqy.wecash 101 | com.meituan.qcs.r.android 102 | com.taobao.taobao 103 | com.wbitech.medicine 104 | com.android.haitong 105 | com.tencent.tv.qie 106 | com.baosight.carsharing 107 | com.homelink.android 108 | com.c2vl.kgamebox 109 | com.ehai 110 | com.suning.mobile.ebuy 111 | com.baidu.baidutranslate 112 | com.tinmanarts.JoJoSherlock 113 | com.hlg.daydaytobusiness 114 | com.meitu.meipaimv 115 | com.umetrip.android.msky.app 116 | com.yitong.mbank.psbc 117 | com.business.scanning 118 | com.yqh.yaoqianhua 119 | com.guagua.guagua 120 | com.google.android.googlequicksearchbox 121 | com.ali.money.shield 122 | com.basestonedata.instalment 123 | com.gdhbgh.activity 124 | com.chinamworld.bocmbci 125 | com.chinamworld.main 126 | com.campmobile.snowcamera 127 | com.meitu.makeup 128 | com.cmbchina.ccd.pluto.cmbActivity 129 | com.hw.okm 130 | com.android.bankabc 131 | com.baidu.BaiduMap 132 | com.lanjingren.ivwen 133 | cn.myhug.baobao 134 | com.hcc.app 135 | com.greenpoint.android.mc10086.activity 136 | com.wali.live 137 | com.immomo.momo 138 | com.longzhu.tga 139 | com.zl.fqbao 140 | com.greate.myapplication 141 | com.gov.cn 142 | cn.poco.jane 143 | com.google.android.apps.photos 144 | com.zhangdan.app 145 | com.knowbox.rc.student.pk 146 | com.yunjibuyer.yunji 147 | com.meitu.meiyancamera 148 | com.kwai.videoeditor 149 | cn.v6.sixrooms 150 | com.yiqizuoye.jzt 151 | com.benqu.wuta 152 | com.meitu.meipu 153 | com.jym.mall 154 | com.meitu.boxxcam 155 | com.lesports.glivesports 156 | -------------------------------------------------------------------------------- /gpu_usage_analysis/us.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.grammarly.android.keyboard 2 | com.apusapps.fulakora 3 | com.apus.camera.id 4 | com.bolangdev.poni 5 | com.hefe.pro.editor 6 | com.commsource.beautyplus 7 | com.magicv.airbrush 8 | com.magicvcam.super.selfiecam.camera 9 | com.meitu.beautyplusme 10 | com.meitu.makeup 11 | com.meitu.meiyancamera 12 | com.mt.mtxx.mtxx 13 | com.eraserphoto.cutout.backgroundeditor 14 | com.photoeditor.imagecutter.cameffect 15 | com.alivecor.aliveecg 16 | com.omronhealthcare.omronconnect 17 | com.google.android.apps.translate 18 | io.anyline.examples.store 19 | com.baidu.BaiduMap 20 | com.abrmobileapp 21 | com.mastercraft.game.explorationn 22 | com.ua.building.Lokicraft 23 | com.ua.toybuilding.survival 24 | com.icomedias.hybridforms 25 | horse.schvung.equilab 26 | com.eg.android.AlipayGphone 27 | com.snapchat.android 28 | io.trade.tradeio.eu 29 | com.facebook.talk 30 | com.iconparking 31 | com.camscanner.documentscanner.pdfreader 32 | com.infocomltd.ugvassistant 33 | com.google.android.tts 34 | com.gokoo.hamo 35 | com.familyfit.google.baduanjin 36 | com.google.android.googlequicksearchbox 37 | com.modiface.loreal.stylemyhair 38 | com.youdao.hindict 39 | com.senegence.android.senelooks 40 | com.alibaba.intl.android.apps.poseidon 41 | com.nhn.android.search 42 | com.easilydo.mail 43 | com.google.android.apps.photosgo 44 | kr.co.robin.android.tflite.objectdetector 45 | com.joytunes.simplypiano 46 | com.cut.cutout.photo.background.editor 47 | com.thmobile.sketchphotomaker 48 | pip.face.selfie.beauty.camera.photo.editor 49 | com.androidworks.videocalling 50 | com.face.predictor.fantastic.face.secret 51 | com.framy.placey 52 | com.futureme.palmreader 53 | com.geico.mobile 54 | com.google.android.apps.cultural 55 | com.live.videochat.india 56 | com.text.metal.effect 57 | com.usablenet.mobile.walgreen 58 | face.hw.com.facehub 59 | facetechstudio.future.me 60 | stickerwhatsapp.com.stickers 61 | cn.jingling.motu.photowonder 62 | com.beauty.photoedit.camera.makeup 63 | com.best.photoeditor.beautyeditorpro 64 | com.fotoable.cartoon.cam 65 | com.fotoable.enstyle 66 | com.fotoable.faceswap.c403 67 | com.fotoable.fotobeauty 68 | com.fotoable.makeup 69 | com.fotoable.selfieplus 70 | com.fotoable.snapfilters 71 | com.input.funnykeyboard 72 | com.photo.pipcam.eidtor.camera 73 | com.pic.mycamera 74 | com.pic.photoeditor 75 | com.pic.pipcamera 76 | com.pipcamera.activity 77 | com.total.photostudio 78 | valencia.magic.selfie.makeup.camer.photo.editor 79 | com.accordion.perfectme 80 | com.fishbrain.app 81 | com.abtnprojects.ambatana 82 | com.campmobile.snow 83 | com.linecorp.b612.android 84 | ai.fritz.heartbeat 85 | com.waze 86 | ch.zhaw.facerecognition 87 | com.homesecurity.firstone 88 | com.instagram.android 89 | com.instagram.igtv 90 | com.roberts.croberts.mantis 91 | com.meet.android 92 | com.video.chat.spark 93 | com.iart.camera.photo 94 | com.tyndale.filament 95 | com.google.audio.hearing.visualization.accessibility.scribe 96 | com.seefoodtechnologies.nothotdog 97 | machinelearning.tensorflow.speech 98 | org.tensorflow.detect 99 | fluidsim.de.interactivedrop 100 | com.perfectcorp.ycf 101 | com.google.android.apps.photos.scanner 102 | com.statefarm.pocketagent 103 | com.cyberlink.youcammakeup 104 | co.vero.app 105 | com.urbandroid.sleep 106 | com.uc.vmate 107 | uk.tensorzoom 108 | com.google.android.apps.photos 109 | machinelearning.tensorflow.classifier 110 | com.disney.datg.videoplatforms.android.watchdc 111 | com.lyrebirdstudio.beauty 112 | com.lyrebirdstudio.colorizer.lite 113 | com.lyrebirdstudio.emoji_camera 114 | com.lyrebirdstudio.face_camera 115 | com.lyrebirdstudio.makeup 116 | com.nick.android.nickjr 117 | com.ufotosoft.justshot 118 | co.theguru.dali 119 | sweet.snapface.facefilter 120 | com.bruxlabsnore 121 | com.azarlive.android 122 | com.naver.vapp 123 | com.vyroai.AiBlurEditor 124 | cutcut.cut.out.paste.background.remove.photo.cutout 125 | com.taobao.taobao 126 | app.vivoo.io 127 | ir.hafhashtad.android780 128 | com.draw.clash.drawit 129 | com.draw.now.drawit 130 | com.dazz.hoop 131 | com.badoo.mobile 132 | com.shutterfly 133 | com.meitu.partynow 134 | com.jingdong.app.mall 135 | com.huanshi.awe.another 136 | video.like 137 | com.huya.nimo 138 | com.xingin.xhs 139 | ctrip.android.view 140 | com.pure.camera.detector.road 141 | com.dongby.android.mmshow.inter 142 | com.unico.live 143 | com.littlebee.beauty.selfie.camera 144 | com.asiainno.uplive.yuanfen 145 | com.kwai.video 146 | com.asiainno.uplive.aiglamour 147 | com.asiainno.uplive 148 | com.cam001.selfie 149 | sweet.selfie.lite 150 | sweetsnap.lite.snapchat 151 | ru.mail 152 | org.dayup.stocks 153 | jp.naver.line.android 154 | com.dailyselfie.newlook.studio 155 | com.fabbyhair.android 156 | com.muper.radella 157 | sg.bigo.date 158 | com.joeware.android.gpulumera 159 | com.nhn.android.webtoon 160 | com.sina.weibo 161 | com.duowan.supervideo 162 | com.camera.galaxyx 163 | com.camera.one.s10.camera 164 | com.camera.s9.camera 165 | com.galaxys.camera4k 166 | com.icameraapple.ioscamera.xscamera.icamera 167 | com.mico 168 | com.bitstrips.imoji 169 | com.baseapp.eyeem 170 | com.concur.breeze 171 | ProjectXAndroidAC.imbin 172 | ProjectXAndroid.imbin 173 | -------------------------------------------------------------------------------- /intercept_scripts/frida101.txt: -------------------------------------------------------------------------------- 1 | frida -U -f com.youdao.note -l intercept_sysload2.js --no-pause 2 | Memory.scan(ptr(0x896834c0),32*1024,"69 6e 70", {onMatch: function (address, size){console.warn("matched!");},onError:function(reason){console.warn("error");},onComplete:function(){console.warn("completed!");}}) 3 | Memory.readByteArray(ptr(0x896834c0),10) 4 | Process.enumerateModules() 5 | hexdump -e '8/1 "%02X ""\n"" "' -n 30 6 | -------------------------------------------------------------------------------- /intercept_scripts/intercept_template.js: -------------------------------------------------------------------------------- 1 | Java.perform(function() { 2 | const System = Java.use('java.lang.System'); 3 | const Runtime = Java.use('java.lang.Runtime'); 4 | const VMStack = Java.use('dalvik.system.VMStack'); 5 | var mfl = []; //modelfdlist=[]; 6 | //var libnamedic = require("./liballdic.json"); 7 | //var libnamedic = require("./libfwdic.json"); 8 | //var libnamedic = require("./libmagicdic.json"); 9 | var libnamedic = {"libname":["func1","func2"],"libname2":["func1","func2"]}; 10 | //hookopen(); 11 | //hookmmap(); 12 | System.loadLibrary.implementation = function(library) { 13 | try { 14 | console.log('System.loadLibrary("' + library + '")'); 15 | const loaded = Runtime.getRuntime().loadLibrary0(VMStack.getCallingClassLoader(), library); 16 | //var libnamedic = {"libname":["func1","func2"],}; 17 | for (var libname in libnamedic) { 18 | if (library === libname){ 19 | console.log("after loading " + libname + " let's do hook"); 20 | hooknative(libname, libnamedic[libname]); 21 | }; 22 | } 23 | return loaded; 24 | } catch(ex) { 25 | console.log(ex); 26 | } 27 | }; 28 | 29 | System.load.implementation = function(library) { 30 | try { 31 | console.log('System.load("' + library + '")'); 32 | const loaded = Runtime.getRuntime().load0(VMStack.getCallingClassLoader(), library); 33 | var libnamedic = {"libname":["func1","func2"],}; 34 | for (libname in libnamedic) { 35 | if (library === libname){ 36 | console.log("after loading " + libname + " let's do hook"); 37 | hooknative(libname, libnamedic[libname]); 38 | }; 39 | } 40 | return loaded; 41 | } catch(ex) { 42 | console.log(ex); 43 | } 44 | }; 45 | 46 | function bufferToHex(buffer) { // buffer is an ArrayBuffer 47 | var res = ""; 48 | var len = buffer.byteLength; 49 | var uint8buf = new Uint8Array(buffer); 50 | for (var i = 0; i < len; i++) { 51 | res += uint8buf[i].toString(16).slice(-2) + ' '; 52 | } 53 | return res; 54 | }; 55 | 56 | function testmfl(){ 57 | if (mfl) { 58 | mfl.push(1); 59 | console.log("mfl defined, length:"+mfl.length); 60 | if (mfl.indexOf(1) != -1) { 61 | console.log("mfl includes 1, length:"+mfl.length); 62 | } else{ 63 | console.log("mfl don't includes 1, length:"+mfl.length); 64 | } 65 | }; 66 | }; 67 | 68 | function hookaddr(libname,funcname, addr,n) { 69 | Interceptor.attach (Module.findBaseAddress(libname).add(addr), { 70 | onEnter: function(args) { 71 | console.warn(" ***" + funcname + " entered open, n="+n); 72 | var i = 0; 73 | for (i = 0; i < n; i++) { 74 | try { 75 | console.log("arg " +i+ ":"+args[i]); 76 | if (args[i] > 0x10000000) { 77 | var arg = Memory.readCString(ptr(args[i])); 78 | console.log("arg " +i+ ":"+arg); 79 | } 80 | } catch(ex) { 81 | console.log(ex); 82 | }; 83 | } 84 | 85 | console.log("Backtrace:" + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("")); 86 | }, 87 | onLeave: function (retval) { 88 | console.log("retval: " + retval); 89 | } 90 | }); 91 | }; 92 | function hookfunc(libname,funcname,n) { 93 | Interceptor.attach (Module.findExportByName ( libname, funcname), { 94 | onEnter: function(args) { 95 | console.warn(" ***" + funcname + " entered open, n="+n); 96 | var i = 0; 97 | for (i = 0; i < n; i++) { 98 | try { 99 | console.log("arg " +i+ ":"+args[i]); 100 | if (args[i] > 0x10000000) { 101 | var arg = Memory.readCString(ptr(args[i])); 102 | console.log("arg " +i+ ":"+arg); 103 | var mem = Memory.readByteArray(args[i], 4); 104 | console.log("Read bytes: " + mem.byteLength.toString()); 105 | var buf; 106 | if (mem[0] == 0x0A) { 107 | console.log("found model file! print 100 byte:"); 108 | buf = Memory.readByteArray(args[i], 100); 109 | bufferToHex(buf); 110 | } else { 111 | console.log("arg " +i+ "in hex(10 bytes):"); 112 | buf = Memory.readByteArray(args[i], 10); 113 | console.log('buf defined:' + bufferToHex(buf)); 114 | } 115 | } 116 | } catch(ex) { 117 | console.log(ex); 118 | } 119 | } 120 | 121 | console.log("Backtrace:" + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("")); 122 | }, 123 | onLeave: function (retval) { 124 | console.log("retval: " + retval); 125 | if (retval > 0x10000000) { 126 | var arg = Memory.readCString(ptr(retval)); 127 | console.log("ret: "+arg); 128 | } 129 | } 130 | }); 131 | }; 132 | function hookmmap(){ 133 | Interceptor.attach(Module.getExportByName('libc.so', 'mmap'), { 134 | onEnter: function (args) { 135 | this.fd = args[4].toInt32(); 136 | try { 137 | if (mfl.indexOf(this.fd) != -1){ 138 | console.log("mmap fd : " + this.fd); 139 | this.buf = args[0]; 140 | this.count = args[1].toInt32(); 141 | this.offset= args[5].toInt32(); 142 | 143 | if (this.count == 699048) { 144 | console.log("find CNN_....end!"); 145 | } 146 | 147 | console.log("buf:"+this.buf + " this.count:" + this.count + " offset:"+this.offset); 148 | }; 149 | } catch(ex) { 150 | console.log(ex); 151 | } 152 | }, 153 | onLeave: function (result) { 154 | var bf = result; 155 | if (bf != null && bf[0] == 0x84 && bf[1] == 0xAA) { 156 | console.log("find CNN_....end!"); 157 | console.log(hexdump(bf, { length: 64, ansi: true })); 158 | }; 159 | if (mfl.indexOf(this.fd) != -1){ 160 | if (bf != null) { 161 | if (bf[0] == 0x84 && bf[1] == 0xAA) { 162 | console.log(hexdump(bf, { length: 64, ansi: true })); 163 | }; 164 | } 165 | console.log('mmap Result : ' + bf); 166 | } 167 | } 168 | }); 169 | }; 170 | function hookopen(){ 171 | Interceptor.attach(Module.getExportByName('libc.so', 'open'), { 172 | onEnter: function (args) { 173 | this.filefn = args[0].readUtf8String(); 174 | //if (this.filefn.includes("model") && this.filefn.endsWith(".enc")){ 175 | if (this.filefn.includes("model")){ 176 | console.log("open:"+this.filefn); 177 | } 178 | }, 179 | onLeave: function (retval) { 180 | //if (this.filefn.includes("model") && this.filefn.endsWith(".enc")){ 181 | if (this.filefn.includes("model")){ 182 | if (retval.toInt32() > 0) { 183 | /* do something with this.fileDescriptor */ 184 | console.log("fd:" + retval); 185 | console.log("mfl.length:" + mfl.length); 186 | console.log("mfl:" + mfl.toString()); 187 | 188 | if ( mfl.indexOf(retval.toInt32()) == -1) { 189 | mfl.push(retval.toInt32()); 190 | console.log("mfl:" + mfl.toString()); 191 | } 192 | } 193 | } 194 | }, 195 | }); 196 | }; 197 | function hooknative(libname, funclist){ 198 | for (var i = 0; i < funclist.length; i++) { 199 | hookfunc('lib'+libname+'.so', funclist[i], 4); 200 | } 201 | }; 202 | }); 203 | -------------------------------------------------------------------------------- /intercept_scripts/intercept_template_bottom.js: -------------------------------------------------------------------------------- 1 | ; 2 | // var appname = com.xx.yy; 3 | //hookopen(); 4 | //hookmmap(); 5 | System.loadLibrary.implementation = function(library) { 6 | try { 7 | console.log('System.loadLibrary("' + library + '")'); 8 | const loaded = Runtime.getRuntime().loadLibrary0(VMStack.getCallingClassLoader(), library); 9 | //var libnamedic = {"libname":["func1","func2"],}; 10 | for (var libname in libnamedic) { 11 | if (library === libname){ 12 | console.log("after loading " + libname + " let's do hook"); 13 | // hook malloc and free 14 | if (flag_malloc_hooked == false) { 15 | hookmalloc(); 16 | hookfree(); 17 | flag_malloc_hooked = true; 18 | }; 19 | var target = libnamedic[libname] 20 | if (target instanceof Array) { 21 | console.log("hooking " + libname); 22 | hooknative(libname, libnamedic[libname]); 23 | } else { // dictionary 24 | console.log("It seems this library has dependencies, let's hook them all!"); 25 | for (var l in target) { 26 | console.log("hooking " + l); 27 | hooknative(l, target[l]); 28 | } 29 | }; 30 | }; 31 | } 32 | return loaded; 33 | } catch(ex) { 34 | console.log(ex); 35 | } 36 | }; 37 | 38 | function bufferToHex(buffer) { // buffer is an ArrayBuffer 39 | var res = ""; 40 | var len = buffer.byteLength; 41 | var uint8buf = new Uint8Array(buffer); 42 | for (var i = 0; i < len; i++) { 43 | res += uint8buf[i].toString(16).slice(-2) + ' '; 44 | } 45 | return res; 46 | }; 47 | 48 | function hookfunc(libname,funcname, n) { 49 | Interceptor.attach (Module.findExportByName ( libname, funcname), { 50 | onEnter: function(args) { 51 | console.warn(" ***" + funcname + " entered open, n="+n); 52 | var i = 0; 53 | for (i = 0; i < n; i++) { 54 | try { 55 | console.log("arg " +i+ ":"+args[i]); 56 | if (args[i] > 0x10000000) { 57 | var arg = Memory.readCString(ptr(args[i])); 58 | console.log("arg " +i+ ":"+arg); 59 | var mem = Memory.readByteArray(args[i], 4); 60 | console.log("Read bytes: " + mem.byteLength.toString()); 61 | var buf; 62 | if (mem[0] == 0x0A) { 63 | console.log("found model file! print 100 byte:"); 64 | buf = Memory.readByteArray(args[i], 100); 65 | bufferToHex(buf); 66 | } else { 67 | console.log("arg " +i+ "in hex(10 bytes):"); 68 | buf = Memory.readByteArray(args[i], 10); 69 | console.log('buf defined:' + bufferToHex(buf)); 70 | } 71 | } 72 | } catch(ex) { 73 | console.log(ex); 74 | } 75 | } 76 | 77 | console.log("Backtrace:" + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("")); 78 | }, 79 | onLeave: function (retval) { 80 | console.log("retval: " + retval); 81 | if (retval > 0x10000000) { 82 | var arg = Memory.readCString(ptr(retval)); 83 | console.log("ret: "+arg); 84 | } 85 | } 86 | }); 87 | }; 88 | // instrument free like function 89 | function hookfreex(libname,funcname) { 90 | Interceptor.attach (Module.findExportByName ( libname, funcname), { 91 | onEnter: function (args) { 92 | if (args[0] & 0xf == 0) { // only care about large buffer 93 | console.warn(" ***freex*** " + funcname + " entered open"); 94 | this.freeptr = args[0]; 95 | console.log("free some buffer , ptr: "+ args[0]); 96 | var buf = Memory.readByteArray(args[0], 100); 97 | console.log('buf freed:' + bufferToHex(buf)); 98 | var bfsize = "freex"; 99 | dumpFreeBuffer(args[0], 10*1024, args[0], bfsize); 100 | } 101 | }, 102 | }); 103 | }; 104 | function hookmmap(){ 105 | Interceptor.attach(Module.getExportByName('libc.so', 'mmap'), { 106 | onEnter: function (args) { 107 | this.fd = args[4].toInt32(); 108 | try { 109 | if (mfl.indexOf(this.fd) != -1){ 110 | console.log("mmap fd : " + this.fd); 111 | this.buf = args[0]; 112 | this.count = args[1].toInt32(); 113 | this.offset= args[5].toInt32(); 114 | 115 | if (this.count == 699048) { 116 | console.log("find CNN_....end!"); 117 | } 118 | 119 | console.log("buf:"+this.buf + " this.count:" + this.count + " offset:"+this.offset); 120 | }; 121 | } catch(ex) { 122 | console.log(ex); 123 | } 124 | }, 125 | onLeave: function (result) { 126 | var bf = result; 127 | if (bf != null && bf[0] == 0x84 && bf[1] == 0xAA) { 128 | console.log("find CNN_....end!"); 129 | console.log(hexdump(bf, { length: 64, ansi: true })); 130 | }; 131 | if (mfl.indexOf(this.fd) != -1){ 132 | if (bf != null) { 133 | if (bf[0] == 0x84 && bf[1] == 0xAA) { 134 | console.log(hexdump(bf, { length: 64, ansi: true })); 135 | }; 136 | } 137 | console.log('mmap Result : ' + bf); 138 | } 139 | } 140 | }); 141 | }; 142 | function hookopen(){ 143 | Interceptor.attach(Module.getExportByName('libc.so', 'open'), { 144 | onEnter: function (args) { 145 | this.filefn = args[0].readUtf8String(); 146 | //if (this.filefn.includes("model") && this.filefn.endsWith(".enc")){ 147 | if (this.filefn.includes("model")){ 148 | console.log("open:"+this.filefn); 149 | } 150 | }, 151 | onLeave: function (retval) { 152 | //if (this.filefn.includes("model") && this.filefn.endsWith(".enc")){ 153 | if (this.filefn.includes("model")){ 154 | if (retval.toInt32() > 0) { 155 | /* do something with this.fileDescriptor */ 156 | console.log("fd:" + retval); 157 | console.log("mfl.length:" + mfl.length); 158 | console.log("mfl:" + mfl.toString()); 159 | 160 | if ( mfl.indexOf(retval.toInt32()) == -1) { 161 | mfl.push(retval.toInt32()); 162 | console.log("mfl:" + mfl.toString()); 163 | } 164 | } 165 | } 166 | }, 167 | }); 168 | }; 169 | function printbml(bml) { 170 | if (bml.length > 0) { 171 | bml.forEach(function(element) { 172 | console.log("print big buffer:"+ ptr(element)); 173 | buf = Memory.readByteArray(ptr(element), 100); 174 | bufferToHex(buf); 175 | }); 176 | } 177 | }; 178 | function dumpFreeBuffer(bp, size, fn, bfsize) { 179 | var fname = '/sdcard/mallocbuffer/'+appname+'/' + fn + '_'+bfsize+'_'+count+ '_10KB.pb'; 180 | count += 1; 181 | console.log("dump freed large buffer! filename: " + fname); 182 | var newf = new File(fname, 'wb'); 183 | //var fbuf = Memory.readByteArray(args[0], 1024*1024); 184 | var fbuf = Memory.readByteArray(bp, size); 185 | newf.write(fbuf); 186 | newf.flush(); 187 | newf.close(); 188 | }; 189 | function hookencrypt(libname, funcname) { 190 | Interceptor.attach (Module.findExportByName ( libname, funcname), { 191 | onEnter: function (args) { 192 | console.warn(" ***encrypt/decrypt*** " + funcname + " open"); 193 | 194 | this.arg0 = args[0]; 195 | this.arg1 = args[1]; 196 | var i = 0; 197 | var n = 6 198 | for (i = 0; i < n; i++) { 199 | try { 200 | console.log("arg " +i+ ":"+args[i]); 201 | if (args[i] > 0x10000000) { 202 | var arg = Memory.readCString(ptr(args[i])); 203 | console.log("arg " +i+ ":"+arg); 204 | var mem = Memory.readByteArray(args[i], 4); 205 | console.log("Read bytes: " + mem.byteLength.toString()); 206 | var buf; 207 | if (mem[0] == 0x0A) { 208 | console.log("found model file! print 100 byte:"); 209 | buf = Memory.readByteArray(args[i], 100); 210 | bufferToHex(buf); 211 | } else { 212 | console.log("arg " +i+ "in hex(10 bytes):"); 213 | buf = Memory.readByteArray(args[i], 10); 214 | console.log('buf defined:' + bufferToHex(buf)); 215 | } 216 | } 217 | } catch(ex) { 218 | console.log(ex); 219 | } 220 | } 221 | }, 222 | onLeave: function (retval) { 223 | //var args = this.dargs; 224 | console.warn(" ***encrypt/decrypt*** " + funcname + " before leave "); 225 | console.log("decrypted/encrypted some buffer , ptr: "+ this.arg1); 226 | var buf1 = Memory.readByteArray(this.arg0, 100); 227 | console.log('buf in:' + bufferToHex(buf1)); 228 | var buf2 = Memory.readByteArray(this.arg1, 100); 229 | console.log('buf out:' + bufferToHex(buf2)); 230 | var bfsize1 = "enc_in"; 231 | dumpFreeBuffer(this.arg0, 10*1024, this.arg0, bfsize1); 232 | var bfsize2 = "enc_out"; 233 | dumpFreeBuffer(this.arg1, 10*1024, this.arg0, bfsize2); 234 | } 235 | }); 236 | }; 237 | function hookfree(){ 238 | Interceptor.attach(Module.getExportByName('libc.so', 'free'), { 239 | onEnter: function (args) { 240 | this.freeptr = args[0]; 241 | //if (bml.indexOf(this.freeptr.toInt32()) != -1) { 242 | if (this.freeptr.toInt32() in bml) { 243 | console.log("free big buffer > 1MB, ptr: "+ args[0]); 244 | //if( fml.indexOf(this.freeptr.toInt32()) == -1) { 245 | var buf = Memory.readByteArray(args[0], 100); 246 | console.log('buf freed:' + bufferToHex(buf)); 247 | var bfsize = bml[this.freeptr.toInt32()]; 248 | //dumpFreeBuffer(args[0], 10*1024, args[0]); 249 | dumpFreeBuffer(args[0], 10*1024, args[0], bfsize); 250 | } 251 | }, 252 | }); 253 | }; 254 | function hookmalloc(){ 255 | Interceptor.attach(Module.getExportByName('libc.so', 'malloc'), { 256 | onEnter: function (args) { 257 | this.mallocsz = args[0]; 258 | if (this.mallocsz > 100*1024) { 259 | console.log("malloc big buffer > 1MB, size: "+ args[0]); 260 | this.flag = 1; 261 | } else { this.flag = 0}; 262 | 263 | }, 264 | onLeave: function (retval) { 265 | if (this.flag == 1) { 266 | console.log("malloc big buffer > 1MB, print buffer pointer: " + retval); 267 | //bml.push(retval.toInt32()); 268 | bml[retval.toInt32()] = this.mallocsz.toInt32(); 269 | } 270 | }, 271 | }); 272 | }; 273 | function hooknative(libname, funclist){ 274 | for (var i = 0; i < funclist.length; i++) { 275 | if (funclist[i].includes('free') || funclist[i].includes('Free')) { 276 | hookfreex('lib'+libname+'.so', funclist[i]); 277 | } else if(funclist[i].includes('encrypt') || funclist[i].includes('decrypt')) { 278 | hookencrypt('lib'+libname+'.so', funclist[i]); 279 | } else { 280 | hookfunc('lib'+libname+'.so', funclist[i], 1); 281 | } 282 | } 283 | }; 284 | }); 285 | -------------------------------------------------------------------------------- /intercept_scripts/intercept_template_top.js: -------------------------------------------------------------------------------- 1 | Java.perform(function() { 2 | const System = Java.use('java.lang.System'); 3 | const Runtime = Java.use('java.lang.Runtime'); 4 | const VMStack = Java.use('dalvik.system.VMStack'); 5 | var mfl = []; //modelfdlist=[]; 6 | //var bml = []; // big malloc list; 7 | var bml = {}; // big malloc list; 8 | var fml = []; // already freed list; 9 | var flag_malloc_hooked = false; 10 | var count = 1; 11 | //var libnamedic = require("./liballdic.json"); 12 | //var libnamedic = require("./libfwdic.json"); 13 | //var libnamedic = require("./libmagicdic.json"); 14 | var libnamedic = 15 | -------------------------------------------------------------------------------- /intercept_scripts/shell_template_mid.sh: -------------------------------------------------------------------------------- 1 | #WorkingPath=/sdcard/com.xx.yy 2 | IsDir=`adb shell ls $WorkingPath &> /dev/null ; echo "$?"` 3 | if [ $IsDir == 0 ] ; then 4 | echo "App Buffer Folder Exist!" 5 | else 6 | echo "App Buffer Folder Don't Exist! Creating Folder" 7 | adb shell mkdir $WorkingPath 8 | fi 9 | -------------------------------------------------------------------------------- /intercept_scripts/shell_template_top.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script is automatically generated for running frida tool. 3 | # Use it with caution: 4 | # `frida -U -f app_name -l intercept_script.js --no-pause` 5 | # 6 | # Note: 7 | # the default app_name might be wrong! If so, Replace app_name 8 | # with the real app_name. If you don't know, run 9 | # `ps grep app_keyword` 10 | # on adb shell to check it. 11 | 12 | # create folder for dumping malloc buffers 13 | BufferPath=/sdcard/mallocbuffer/ 14 | IsDir=`adb shell ls $BufferPath &> /dev/null ; echo "$?"` 15 | if [ $IsDir == 0 ] ; then 16 | echo "Exist!" 17 | else 18 | echo "Folder Don't Exist! Creating Folder!" 19 | adb shell mkdir $BufferPath 20 | fi 21 | 22 | -------------------------------------------------------------------------------- /measure_lic_reuse/README.md: -------------------------------------------------------------------------------- 1 | ## Licenses Reuse Analysis 2 | This folder documents our license reuse analysis. 3 | 4 | - `lic_scanner.py` collects all license files from suspected apps(`.lic` files). 5 | - `lic_reuse_analysis.py` analyze license reuse. 6 | 7 | The analysis is based on the assumption that differnet apps who bought the same SDK should get different licenses. If the license is the same, it might be illegal 8 | reuse of license. 9 | 10 | ### Naming Rules 11 | Some explanation on the naming of the analysis results: 12 | - `.txt` means the results of license scanner, it records all the extracted license file and it’s md5; 13 | - `.txt.reuse_analysis` is the results of license reuse analysis, it group all the apps and licenses under the same md5; 14 | - `.txt.reuse_analysis.suspected` is the results of suspected cases, it filter out licenses that are not reused or are reused by likely same app developers, 15 | only list licenses that are reused by different apps. 16 | 17 | The examples are as follows: 18 | - all_apps_licenses.txt 19 | - all_apps_licenses.txt.reuse_analysis 20 | - all_apps_licenses.txt.reuse_analysis.suspected 21 | 22 | 23 | ### Example of License Reuse 24 | One example: 68bfc3d4: 25 | - `com.rrs.waterstationbuyer_78 liveness.lic` 26 | - `com.chinawidth.module.mashanghua_27 liveness.lic` 27 | 28 | These two apps are very likely from different developers but are using the same license: 29 | - [com.chinawidth.module.mashanghua_27](https://android.kuchuan.com/page/detail/download?package=com.chinawidth.module.mashanghua&infomarketid=7&site=0#!/day/com.chinawidth.module.mashanghua) 30 | - [com.rrs.waterstationbuyer_78](https://www.qimai.cn/andapp/baseinfo/appid/566649) 31 | 32 | ### Q&A 33 | 1. How do we know these license files are ML license? 34 | >We are not 100 percent sure about it. I collected these licenses file from suspected ML apps. 35 | >Some of them you can tell by name, like `liveness.lic`. Btw, at least all SenseTime license are for ML. 36 | 37 | 2. How do we know the apps are from different companies? 38 | >We are also not quite sure for now, that’s why I mark it suspected. 39 | >I already excluded apps with similar names or under same company, only mark those apps who are very different and seems to be from different companies. 40 | >I manually checked a few, and I found both possitive and negative cases. For example, it's possible that two apps look very different but from the same company. 41 | >It's also possible they are from different companines. like these two apps: 42 | -------------------------------------------------------------------------------- /measure_lic_reuse/lic_reuse_analyzer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import argparse 4 | import os 5 | import subprocess 6 | import logging 7 | import time 8 | 9 | def main(args): 10 | path = args.licpath 11 | licf = open(path, 'r') 12 | lic_dic = {} 13 | 14 | lines = licf.readlines() 15 | for line in lines: 16 | fields = line.split() 17 | if len(fields) != 2 or len(fields[0]) != 8: 18 | continue 19 | md5 = fields[0] 20 | lic_path = fields[1] 21 | apk_name = lic_path.split('/')[6] 22 | lic_name = lic_path.split('/')[-1] 23 | if md5 not in lic_dic: 24 | apps = [] 25 | apps.append((apk_name, lic_name,)) 26 | lic_dic[md5] = apps 27 | else: 28 | lic_dic[md5].append((apk_name, lic_name, )) 29 | 30 | output_path = os.path.basename(path)+'.reuse_analysis' 31 | susp_path = os.path.basename(path)+'.reuse_analysis.suspected' 32 | 33 | result_fd = open(output_path,'w') 34 | susp_fd = open(susp_path,'w') 35 | 36 | susp_count = 0 37 | for md5 in lic_dic: 38 | if len(lic_dic[md5]) == 1: 39 | continue 40 | result_fd.write('%s:\n'%md5) 41 | for record in lic_dic[md5]: 42 | line = ("\t%s %s\n" % (record[0], record[1])) 43 | result_fd.write(line) 44 | result_fd.write('\n') 45 | 46 | cur_head = lic_dic[md5][0][0][:9] 47 | suspected = False 48 | for record in lic_dic[md5][1:]: 49 | head = record[0][:9] 50 | if head != cur_head: 51 | suspected = True 52 | susp_count += 1 53 | break 54 | 55 | if (suspected is True): 56 | susp_fd.write('%s:\n'%md5) 57 | for record in lic_dic[md5]: 58 | line = ("\t%s %s\n" % (record[0], record[1])) 59 | susp_fd.write(line) 60 | susp_fd.write('\n') 61 | 62 | print("Identified %d suspected license reuse cases among different apps" % susp_count) 63 | 64 | susp_fd.write("\nIdentified %d suspected license reuse cases among different apps\n" % susp_count) 65 | result_fd.close() 66 | susp_fd.close() 67 | licf.close() 68 | return 69 | 70 | if __name__ == '__main__': 71 | 72 | parser = argparse.ArgumentParser(prog='lic_reuse_analyzer') 73 | parser.add_argument('licpath', 74 | help = 'license file path') 75 | args = parser.parse_args() 76 | main(args) 77 | -------------------------------------------------------------------------------- /measure_lic_reuse/lic_scanner.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # analyze app license. 4 | # Input: Android APK Decomposed Dir 5 | # Output: md5, appname, license name 6 | 7 | 8 | import argparse 9 | import os 10 | import subprocess 11 | import logging 12 | import time 13 | 14 | def get_time_tag(): 15 | ts = time.gmtime() 16 | return time.strftime("%Y-%m-%d-%H-%M-%S", ts) 17 | 18 | def run_w(shell_cmd): 19 | """ 20 | run shell cmds with result returned 21 | """ 22 | logging.debug("executing shell cmd : " + shell_cmd) 23 | try: 24 | res = os.popen(shell_cmd).read().strip() 25 | except: 26 | logging.error("error in executing : " + shell_cmd) 27 | res = "" 28 | return res 29 | 30 | def main(args, output=".txt"): 31 | path = args.apkpath 32 | time_str = get_time_tag() 33 | prefix = '__'.join(os.path.abspath(path).split('/')[2:]) 34 | output_path = prefix + output 35 | output_h = open(output_path, 'w+') 36 | output_h.write("Analyzing %s\n%s\n\n" %(os.path.abspath(path), time_str)) 37 | output_h.write("MD5\t\tLicense Path and Name\n") 38 | for subdir, dirs, files in os.walk(path): 39 | for file in files: 40 | filepath = os.path.join(subdir, file) 41 | if filepath.endswith('.lic'): 42 | md5_cmd = "md5sum %s"%(filepath) 43 | res_md5 = run_w(md5_cmd) 44 | md5 = res_md5.split()[0][:8] 45 | report_line = "%s %s\n"%(md5, filepath) 46 | output_h.write(report_line) 47 | 48 | output_h.close() 49 | return 50 | 51 | if __name__ == '__main__': 52 | parser = argparse.ArgumentParser(prog='lic_scanner') 53 | parser.add_argument('apkpath', 54 | help = 'path to apk file or directory') 55 | args = parser.parse_args() 56 | 57 | logging.basicConfig(filename='analyzer.log', level=logging.DEBUG) 58 | 59 | main(args) 60 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__360_decomposed.txt.reuse_analysis.suspected: -------------------------------------------------------------------------------- 1 | 291ccc15: 2 | com.ccb.bluesearent_27 liveness.lic 3 | com.hxyd.hebgjj_119 liveness.lic 4 | 5 | 37ad272e: 6 | com.tmri.app.main_20302 SenseID_Liveness.lic 7 | com.cmbc.cc.mbank_60000 SenseID_Liveness.lic 8 | 9 | 17dedde0: 10 | com.jiaoyang.shangshangqian_100 SenseID_Liveness_Interactive.lic 11 | com.letianpai.lzyq_102 SenseID_Liveness_Interactive.lic 12 | 13 | ae0ad9b6: 14 | com.suning.mobile.epa_301 SenseID_Liveness_Silent.lic 15 | com.longzhu.tga_2019071214 SenseID_Liveness_Silent.lic 16 | 17 | add69754: 18 | com.cmf.cqwallet_33 liveness.lic 19 | com.xky.app.patient_63 liveness.lic 20 | 21 | af04fc1e: 22 | com.epay.impay.ui.yjqb_67 7332DBAFD2FD18301EF6.lic 23 | com.epay.impay.ui.flinmen_78 7332DBAFD2FD18301EF6.lic 24 | com.leadu.taimengbao_103 7332DBAFD2FD18301EF8.lic 25 | com.leadu.taimengbao_103 7332DBAFD2FD18301EF6.lic 26 | com.leadu.taimengbao_103 7332DBAFD2FD18301EF7.lic 27 | 28 | d120d486: 29 | com.jieyisoft.weex.yktApp_123 liveness.lic 30 | com.entrobus.dreamlife_116 liveness.lic 31 | 32 | c0025861: 33 | com.time.android.vertical_new_henanzhuizi_65055 SenseME.lic 34 | com.waqu.android.vertical_huangmeixi_65050 SenseME.lic 35 | com.zhiyuan.android.vertical_s_quju_65055 SenseME.lic 36 | com.zhiyuan.android.vertical_s_henanxiqu_65050 SenseME.lic 37 | com.waqu.android.vertical_yuju_65050 SenseME.lic 38 | com.time.android.vertical_new_minjianxiaodiao_65055 SenseME.lic 39 | com.time.android.vertical_new_liyuanchun_65055 SenseME.lic 40 | com.tianming.android.vertical_5huaguxi_65055 SenseME.lic 41 | com.waqu.android.vertical_g_taiji_65055 SenseME.lic 42 | com.zhiyuan.android.vertical_s_henanyuju_65055 SenseME.lic 43 | com.zhiyuan.android.vertical_s_guizhoushange_65050 SenseME.lic 44 | com.time.android.vertical_new_guangchangwu_65050 SenseME.lic 45 | 46 | e2a8012d: 47 | com.hzkx.youqianbao_119 SenseID_OCR.lic 48 | com.gych.yinyinyq_105 SenseID_OCR.lic 49 | com.hfjh.jiangjund_103 SenseID_OCR.lic 50 | com.sdkj.jinlaijie_111 SenseID_OCR.lic 51 | com.wkjf.qianmiaodai_153 SenseID_OCR.lic 52 | com.scyghy.yangguangmd_109 SenseID_OCR.lic 53 | cn.sd.miaodaofenqi_103 SenseID_OCR.lic 54 | com.hyxc.huiyaoxc_105 SenseID_OCR.lic 55 | com.yqybwl.yanlesd_109 SenseID_OCR.lic 56 | com.kyxx.jikeh_109 SenseID_OCR.lic 57 | com.zjyr.xdd_115 SenseID_OCR.lic 58 | com.gtkj.miaoquxh_113 SenseID_OCR.lic 59 | 60 | fa45eac9: 61 | com.kaixin.android.vertical_3_pingju_66085 SenseME.lic 62 | com.waqu.android.vertical_exo_66085 SenseME.lic 63 | com.kaixin.android.vertical_3_baixuegongzhu_66085 SenseME.lic 64 | com.time.android.vertical_new_taiquandaosp_66085 SenseME.lic 65 | com.zhiyuan.android.vertical_s_jianmeicao_66085 SenseME.lic 66 | com.waqu.android.vertical_mingruoxiaoxi_66085 SenseME.lic 67 | com.kaixin.android.vertical_3_yanbaojiancao_66085 SenseME.lic 68 | com.kaixin.android.vertical_3_sakesi_66085 SenseME.lic 69 | com.kaixin.android.vertical_3_yuebing_66085 SenseME.lic 70 | com.tianming.android.vertical_5h1z1_66085 SenseME.lic 71 | com.time.android.vertical_new_chenshitaijiquan_66085 SenseME.lic 72 | com.time.android.vertical_new_yangyang_66085 SenseME.lic 73 | com.time.android.vertical_new_xingjihuoxian_66085 SenseME.lic 74 | com.tianming.android.vertical_5maozibianzhi_66085 SenseME.lic 75 | com.time.android.vertical_new_jiaobanche_66085 SenseME.lic 76 | com.zhiyuan.android.vertical_s_maozibianzhi_66085 SenseME.lic 77 | com.kaixin.android.vertical_3_ertongxtwd_66085 SenseME.lic 78 | com.time.android.vertical_new_changgejiqiao_66085 SenseME.lic 79 | com.tongxing.android.vertical_tong_xiaolingwanjudq_66085 SenseME.lic 80 | com.time.android.vertical_new_pukepaimoshu_66085 SenseME.lic 81 | com.kaixin.android.vertical_3_etgqsp_66085 SenseME.lic 82 | com.waqu.android.vertical_kemu3_66085 SenseME.lic 83 | com.time.android.vertical_new_btsp_66085 SenseME.lic 84 | com.kaixin.android.vertical_3_lingdaidafa_66085 SenseME.lic 85 | com.kaixin.android.vertical_3jianzhi_66085 SenseME.lic 86 | com.zhiyuan.android.vertical_s_kaishu_66085 SenseME.lic 87 | com.tianming.android.vertical_5guzheng_66085 SenseME.lic 88 | com.zhiyuan.android.vertical_s_djwuqu_66085 SenseME.lic 89 | com.zhiyuan.android.vertical_s_daoche_66085 SenseME.lic 90 | com.tianming.android.vertical_5donghuapian_66085 SenseME.lic 91 | com.kaixin.android.vertical_3_gangbishufa_66085 SenseME.lic 92 | com.tianming.android.vertical_5baoabaotongyao_66085 SenseME.lic 93 | com.time.android.vertical_new_jidujiao_66085 SenseME.lic 94 | com.zhiyuan.android.vertical_s_zaojiao_66085 SenseME.lic 95 | com.time.android.vertical_new_sanbucai_66085 SenseME.lic 96 | com.zhiyuan.android.vertical_s_mingedaquan_66085 SenseME.lic 97 | com.time.android.vertical_3_yuejumingqu_66085 SenseME.lic 98 | com.waqu.android.vertical_dabeizhou_66085 SenseME.lic 99 | com.tianming.android.vertical_5tudouxia_66085 SenseME.lic 100 | com.tianming.android.vertical_5jingjumao_66085 SenseME.lic 101 | com.tianming.android.vertical_5longzhuchao_66085 SenseME.lic 102 | com.waqu.android.vertical_xiaopingguo_66085 SenseME.lic 103 | com.kaixin.android.vertical_3_baozi_66085 SenseME.lic 104 | com.kaixin.android.vertical_3_jiamusi_66085 SenseME.lic 105 | com.zhiyuan.android.vertical_s_shuyazi_66085 SenseME.lic 106 | com.zhiyuan.android.vertical_s_buqileleyuan_66085 SenseME.lic 107 | 108 | d417f7ad: 109 | com.xiaomi.hm.health_8046 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 110 | com.huami.watch.hmwatchmanager_32528 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 111 | 112 | 0f579640: 113 | com.suma.gztong_103 liveness.lic 114 | szhome.bbs_476 liveness.lic 115 | 116 | 095fbbdb: 117 | com.grcbank.zxbank_1087 Wa_SenseID_Liveness.lic 118 | com.hanweb.android.jszwfw.activity_86 Wa_SenseID_Liveness.lic 119 | com.xmd.yuejmt_12 Wa_SenseID_Liveness.lic 120 | com.hoperun.intelligenceportal_93 Wa_SenseID_Liveness.lic 121 | 122 | 845ea79d: 123 | com.xiaomi.hm.health_8046 3304-145-888527118b1a5d87d3e4a251d1b23555.lic 124 | com.huami.watch.hmwatchmanager_32528 3304-145-888527118b1a5d87d3e4a251d1b23555.lic 125 | 126 | 55a2ee56: 127 | com.hzkx.youqianbao_119 SenseID_Liveness_Interactive.lic 128 | com.gych.yinyinyq_105 SenseID_Liveness_Interactive.lic 129 | com.hfjh.jiangjund_103 SenseID_Liveness_Interactive.lic 130 | com.sdkj.jinlaijie_111 SenseID_Liveness_Interactive.lic 131 | com.wkjf.qianmiaodai_153 SenseID_Liveness_Interactive.lic 132 | com.scyghy.yangguangmd_109 SenseID_Liveness_Interactive.lic 133 | cn.sd.miaodaofenqi_103 SenseID_Liveness_Interactive.lic 134 | com.hyxc.huiyaoxc_105 SenseID_Liveness_Interactive.lic 135 | com.yqybwl.yanlesd_109 SenseID_Liveness_Interactive.lic 136 | com.kyxx.jikeh_109 SenseID_Liveness_Interactive.lic 137 | com.zjyr.xdd_115 SenseID_Liveness_Interactive.lic 138 | com.gtkj.miaoquxh_113 SenseID_Liveness_Interactive.lic 139 | 140 | eb995814: 141 | com.zte.grandband_183 license.lic 142 | com.coolvi.kw50_74 license.lic 143 | 144 | 6d73d211: 145 | com.xiaomi.hm.health_8046 C8C90F0B-2120-4D1A-A538-F59BA39D8F52.lic 146 | com.huami.watch.hmwatchmanager_32528 C8C90F0B-2120-4D1A-A538-F59BA39D8F52.lic 147 | 148 | 67753094: 149 | com.netease.epay_693 SenseID_OCR.lic 150 | im.yixin_300 SenseID_OCR.lic 151 | com.netease.yanxuan_1500 SenseID_OCR.lic 152 | 153 | 0d5cf97b: 154 | com.pp.jdloan_973 SENSEID_OCR_CF62900E-6F30-4C0E-BBA3-19B5BAEFB5A5.lic 155 | com.pp.TimelyLoan_2138 SENSEID_OCR_CF62900E-6F30-4C0E-BBA3-19B5BAEFB5A5.lic 156 | 157 | d41d8cd9: 158 | com.shineyie.aijianji_63 meishesdk.lic 159 | howbuy.android.palmfund_181 wms_license.lic 160 | com.duowan.bi_5031 SenseME.lic 161 | 162 | b242442f: 163 | com.gto.app.geeler_93 SenseID_OCR.lic 164 | com.dhh.easy.easyim_51 SenseID_OCR.lic 165 | 166 | 18fdad1a: 167 | com.phone580.cn.FBSMarket_235 liveness.lic 168 | com.htffund.mobile.ec.ui_74 liveness.lic 169 | 170 | 6f7dc2e6: 171 | com.caixiaoxian_12 SenseID_OCR.lic 172 | com.caixiaoxian_12 SenseID_Liveness.lic 173 | com.zrb_92 SenseID_OCR.lic 174 | 175 | 7f38f43c: 176 | com.youhuo.live_435 SenseAR_Android.lic 177 | com.baby.live_435 SenseAR_Android.lic 178 | com.sixbo.live_435 SenseAR_Android.lic 179 | 180 | 1ad6aa9a: 181 | com.xiuba.xbvideo_14 SenseME.lic 182 | cn.yanzijia.beautyassistant_501 SenseME.lic 183 | cn.lnts.android.sghome_48 SenseME.lic 184 | 185 | 3e1c79d8: 186 | com.xiaomi.hm.health_8046 77A658D9-C6FD-4B8C-975E-6F08E4C34166.lic 187 | com.huami.watch.hmwatchmanager_32528 77A658D9-C6FD-4B8C-975E-6F08E4C34166.lic 188 | 189 | 9385b83f: 190 | com.qlscupgrade_20190820 SenseID_Liveness.lic 191 | com.gov.cn_21 SenseID_Liveness.lic 192 | 193 | 1b678277: 194 | com.enniu.xiaowuqianbao_3 SenseID_OCR.lic 195 | com.enniu.renpindai_30 SenseID_OCR.lic 196 | com.enniu.jiedao_16 SenseID_OCR.lic 197 | com.zhangdan.app_8137 SenseID_OCR.lic 198 | com.enniu.fund_100 SenseID_OCR.lic 199 | 200 | c185c936: 201 | com.jiaoyang.shangshangqian_100 SenseID_OCR.lic 202 | com.letianpai.lzyq_102 SenseID_OCR.lic 203 | 204 | fc6a4511: 205 | com.tiange.hz.happy88_542 LinkfaceID.lic 206 | com.lawu.live_221 LinkfaceID.lic 207 | com.tiange.hz.paopao8_442 LinkfaceID.lic 208 | 209 | ee10cf0a: 210 | com.zhiyuan.android.vertical_s_jinju_65055 SenseME.lic 211 | com.waqu.android.general_aged_65060 SenseME.lic 212 | com.tianming.android.vertical_5chaoju_65055 SenseME.lic 213 | 214 | caac1b36: 215 | com.netease.cc_451849 SenseID_Liveness.lic 216 | com.kaola_40150600 SenseID_Liveness.lic 217 | com.netease.cbg_4045 SenseID_Liveness.lic 218 | com.netease.gl_22112 SenseID_Liveness.lic 219 | 220 | 5ba3a43d: 221 | com.maimob.khw_160 SenseID_OCR.lic 222 | cn.maimob.lydai_35 SenseID_OCR.lic 223 | 224 | a5586195: 225 | com.hoge.android.app.yantaibaoye_20190518 liveness.lic 226 | cn.lnts.android.sghome_48 liveness.lic 227 | 228 | 8d9880d4: 229 | com.hunan.weizhang_51 liveness.lic 230 | com.gian.punkhoo_131 liveness.lic 231 | 232 | 419fff71: 233 | com.netease.epay_693 SenseID_Liveness_Interactive.lic 234 | im.yixin_300 SenseID_Liveness_Interactive.lic 235 | com.netease.yanxuan_1500 SenseID_Liveness_Interactive.lic 236 | 237 | d52a8a33: 238 | com.bluelight.elevatorguard_401 liveness.lic 239 | com.hoge.android.wuxiwireless_95 liveness.lic 240 | com.tzhtc.goodPark_19 liveness.lic 241 | 242 | f05cc9be: 243 | com.pp.jdloan_973 SenseID_Liveness_Interactive.lic 244 | com.pp.TimelyLoan_2138 SenseID_Liveness_Interactive.lic 245 | 246 | fdabb184: 247 | com.example.wangshang_182 license.lic 248 | com.oceansoft.pap_90 license.lic 249 | cn.kinglian.health.healthmanager_108 license.lic 250 | cn.kinglian.dc_129 license.lic 251 | cn.com.vdin.scSCDT.androidphone_1 license.lic 252 | com.fadada_34 license.lic 253 | com.wsjr.xiaomijiao_120 license.lic 254 | com.wm.realname_45 license.lic 255 | hnga.jmtapp_60 license.lic 256 | 257 | ac9adacb: 258 | com.xiaomi.hm.health_8046 B73EA76D-9F9C-4C9B-AD62-009F950AB7B9.lic 259 | com.huami.watch.hmwatchmanager_32528 B73EA76D-9F9C-4C9B-AD62-009F950AB7B9.lic 260 | 261 | 44996fe5: 262 | com.ddcinemaapp_1067 my.lic 263 | com.osgh.movie_544 my.lic 264 | 265 | f6f34bdf: 266 | com.zhiyuan.android.vertical_s_dongwushijie_66065 SenseME.lic 267 | com.zhiyuan.android.vertical_s_wudaojiaoxue_66065 SenseME.lic 268 | com.waqu.android.vertical_awkward_66065 SenseME.lic 269 | com.waqu.android.vertical_youtube_66065 SenseME.lic 270 | com.kaixin.android.vertical_3_jtrmjx_66065 SenseME.lic 271 | com.time.android.vertical_new_youkelili_66065 SenseME.lic 272 | com.kaixin.android.vertical_3_gbwjw_66065 SenseME.lic 273 | com.waqu.android.vertical_makeup_66065 SenseME.lic 274 | com.kaixin.android.vertical_3_CADzhitu_66065 SenseME.lic 275 | com.waqu.android.guitar_66065 SenseME.lic 276 | com.waqu.android.vertical_streetdance_66065 SenseME.lic 277 | com.waqu.android.general_guangchangwu_66065 SenseME.lic 278 | com.waqu.android.vertical_meiju_66065 SenseME.lic 279 | com.tianming.android.vertical_5kouqin_66065 SenseME.lic 280 | 281 | 2ff72acc: 282 | com.waqu.android.vertical_yoga_66070 SenseME.lic 283 | com.waqu.android.vertical_sxb_66070 SenseME.lic 284 | com.waqu.android.vertical_food_66070 SenseME.lic 285 | com.waqu.android.vertical_kemu2_66070 SenseME.lic 286 | com.time.android.vertical_new_psjiaocheng_66070 SenseME.lic 287 | com.time.android.vertical_new_dizirm_66070 SenseME.lic 288 | com.kaixin.android.vertical_3_jswjx_66070 SenseME.lic 289 | com.tianming.android.vertical_5sgzzfwly_66070 SenseME.lic 290 | com.zhiyuan.android.vertical_s_psxiutu_66070 SenseME.lic 291 | com.kaixin.android.vertical_3_zdyjfc_66070 SenseME.lic 292 | com.kaixin.android.vertical_3_diaoyu_66070 SenseME.lic 293 | com.tianming.android.vertical_5suona_66070 SenseME.lic 294 | com.zhiyuan.android.vertical_dangao_66070 SenseME.lic 295 | com.waqu.android.vertical_hairstyle_66070 SenseME.lic 296 | com.zhiyuan.android.vertical_s_wubishuru_66070 SenseME.lic 297 | com.zhiyuan.android.vertical_s_yingbishufa_66070 SenseME.lic 298 | com.time.android.vertical_new_taiquandao_66070 SenseME.lic 299 | com.kaixin.android.vertical_3_maobizi_66070 SenseME.lic 300 | com.time.android.vertical_new_mofang_66070 SenseME.lic 301 | com.zhiyuan.android.vertical_s_zhenzhixiezi_66070 SenseME.lic 302 | com.zhiyuan.android.vertical_s_huameiniaojs_66070 SenseME.lic 303 | com.time.android.vertical_new_shouliandebianfa_66070 SenseME.lic 304 | com.zhiyuan.android.vertical_s_aoteman_66070 SenseME.lic 305 | com.waqu.android.vertical_yunfuyoga_66070 SenseME.lic 306 | com.tongxing.android.vertical_tong_kongshoudao_66070 SenseME.lic 307 | com.kaixin.android.vertical_3_damajiang_66070 SenseME.lic 308 | 309 | 68bfc3d4: 310 | com.rrs.waterstationbuyer_78 liveness.lic 311 | com.chinawidth.module.mashanghua_27 liveness.lic 312 | 313 | 0f80daa2: 314 | com.xncredit.xdy_240 LinkfaceID.lic 315 | com.greate.myapplication_466 LinkfaceID.lic 316 | com.xncredit.fqd_4550 LinkfaceID.lic 317 | com.xncredit.sbkd_466 LinkfaceID.lic 318 | com.xncredit.xybt_466 LinkfaceID.lic 319 | 320 | 341ed19f: 321 | com.tencent.nijigen_157 com_tencent_2118.lic 322 | com.tencent.zebra_313 com_tencent_2118.lic 323 | com.qzone_123 com_tencent_2118.lic 324 | com.tencent.funcam_687 com_tencent_2118.lic 325 | com.tencent.now_1961 com_tencent_2118.lic 326 | com.tencent.weishi_595 com_tencent_2118.lic 327 | com.tencent.ttpic_60202 com_tencent_2118.lic 328 | 329 | d9bf6b5e: 330 | com.tiange.hz.happy88_542 SenseID_Liveness.lic 331 | com.lawu.live_221 SenseID_Liveness.lic 332 | com.tiange.hz.paopao8_442 SenseID_Liveness.lic 333 | 334 | 377db9a4: 335 | com.xiaomi.hm.health_8046 807EB4BC-2FD0-46FA-B607-ABA3F6CE7250.lic 336 | com.huami.watch.hmwatchmanager_32528 807EB4BC-2FD0-46FA-B607-ABA3F6CE7250.lic 337 | 338 | 174cdf81: 339 | com.enniu.xiaowuqianbao_3 SenseID_Liveness.lic 340 | com.enniu.renpindai_30 SenseID_Liveness.lic 341 | com.enniu.jiedao_16 SenseID_Liveness.lic 342 | com.zhangdan.app_8137 SenseID_Liveness.lic 343 | com.enniu.fund_100 SenseID_Liveness.lic 344 | 345 | 77dc3c2b: 346 | com.xiaomi.hm.health_8046 33F513E5-5CA2-4C23-A6D4-8466202EE698.lic 347 | com.huami.watch.hmwatchmanager_32528 33F513E5-5CA2-4C23-A6D4-8466202EE698.lic 348 | 349 | 4abf0a68: 350 | com.xiaomi.hm.health_8046 12BB667E-32CC-4511-BB3E-07BE054A2896.lic 351 | com.huami.watch.hmwatchmanager_32528 12BB667E-32CC-4511-BB3E-07BE054A2896.lic 352 | 353 | c4d9bb9d: 354 | com.buick_101 8F702103353728F80AA4.lic 355 | com.shanghaionstar_57 8F702103353728F80AA4.lic 356 | com.shanghaigm.mychevy_25 8F702103353728F80AA4.lic 357 | 358 | 359 | Identified 52 suspected license reuse cases among different apps 360 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__gplay_decomposed.txt: -------------------------------------------------------------------------------- 1 | Analyzing /home/ruimin/nfs/modelxray/gplay_decomposed 2 | 2020-07-30-03-48-06 3 | 4 | MD5 License Path and Name 5 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.master/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 6 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.master/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 7 | d6e73660 /home/ruimin/nfs/modelxray/gplay_decomposed/com.badoo.mobile/assets/AgLenses.lic 8 | 86d64cb6 /home/ruimin/nfs/modelxray/gplay_decomposed/com.naver.vapp/assets/SenseME.lic 9 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.techxstar.guessthemarvelcharacter/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 10 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.techxstar.guessthemarvelcharacter/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 11 | 291affe8 /home/ruimin/nfs/modelxray/gplay_decomposed/com.usatoday.android.news/assets/littlstar_android_vrstories.lic 12 | 514a28b1 /home/ruimin/nfs/modelxray/gplay_decomposed/com.usatoday.android.news/assets/littlstar_android_usatoday.key.lic 13 | 0892553e /home/ruimin/nfs/modelxray/gplay_decomposed/com.huya.nimo/assets/br_SenseME_Test.lic 14 | 8992bdff /home/ruimin/nfs/modelxray/gplay_decomposed/com.huya.nimo/assets/br_SenseME.lic 15 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.tpsdev.ladybug.noir.wallpaper/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 16 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.tpsdev.ladybug.noir.wallpaper/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 17 | 72b8f85d /home/ruimin/nfs/modelxray/gplay_decomposed/com.asiainno.uplive.aiglamour/assets/SenseME.lic 18 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.theendlesshills.message_of_stars/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 19 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.theendlesshills.message_of_stars/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 20 | 436b7aa5 /home/ruimin/nfs/modelxray/gplay_decomposed/com.dailyselfie.newlook.studio/assets/SenseME.lic 21 | 30bc06f3 /home/ruimin/nfs/modelxray/gplay_decomposed/ctrip.android.view/assets/SenseME.lic 22 | bc7e9276 /home/ruimin/nfs/modelxray/gplay_decomposed/com.dongby.android.mmshow.inter/assets/SenseME.lic 23 | e4bdb259 /home/ruimin/nfs/modelxray/gplay_decomposed/com.cmcm.live/assets/SenseME.lic 24 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.x43169197/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 25 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.x43169197/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 26 | bc7e9276 /home/ruimin/nfs/modelxray/gplay_decomposed/com.unico.live/assets/SenseME.lic 27 | b007a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/video.like/assets/SenseME.lic 28 | fc115dfb /home/ruimin/nfs/modelxray/gplay_decomposed/sg.bigo.live/assets/senseAr/SenseME.lic 29 | fc535def /home/ruimin/nfs/modelxray/gplay_decomposed/com.gokoo.hamo/assets/SenseME.lic 30 | e50f4018 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/0785C0D9-12E7-4A3D-9496-6199F9FDDD2C.lic 31 | 45224209 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/C6273A8F-C899-4765-8BFC-E683EE37AA84.lic 32 | 0f8944b4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/1698-95-390731dd5604e2d252ff18173dbc8c30.lic 33 | a21d1186 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/1CEE3777-A813-4378-AD52-7B264BD0CC4D.lic 34 | 8b9c5d53 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/A8A4344D-45DA-460F-A18F-C0E2355FE864.lic 35 | 01e860fd /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/FCB9BB97-CEA2-4588-8997-C52BE2358D5E.lic 36 | 1b42900e /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/C02204D0-F3C3-495E-B65C-9F2C79E68573.lic 37 | 20fd5530 /home/ruimin/nfs/modelxray/gplay_decomposed/com.duks.amazer/assets/39DA0799-01A5-44F6-958E-6C840715331E.lic 38 | c6f6520d /home/ruimin/nfs/modelxray/gplay_decomposed/com.sharpened.androidfileviewer/assets/Aspose.Email.lic 39 | ae00a8c4 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.x172976915/assets/E14FEE65-71A0-4717-9D66-3397B6C11223.lic 40 | 2ff90233 /home/ruimin/nfs/modelxray/gplay_decomposed/com.narvii.amino.x172976915/assets/license/3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 41 | 16071d42 /home/ruimin/nfs/modelxray/gplay_decomposed/org.dayup.stocks/assets/SenseID_Liveness_Interactive.lic 42 | fc115dfb /home/ruimin/nfs/modelxray/gplay_decomposed/com.huya.niko/assets/senseAr/SenseME.lic 43 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__gplay_decomposed.txt.reuse_analysis: -------------------------------------------------------------------------------- 1 | ae00a8c4: 2 | com.narvii.amino.master E14FEE65-71A0-4717-9D66-3397B6C11223.lic 3 | com.techxstar.guessthemarvelcharacter E14FEE65-71A0-4717-9D66-3397B6C11223.lic 4 | com.tpsdev.ladybug.noir.wallpaper E14FEE65-71A0-4717-9D66-3397B6C11223.lic 5 | com.theendlesshills.message_of_stars E14FEE65-71A0-4717-9D66-3397B6C11223.lic 6 | com.narvii.amino.x43169197 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 7 | com.narvii.amino.x172976915 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 8 | 9 | bc7e9276: 10 | com.dongby.android.mmshow.inter SenseME.lic 11 | com.unico.live SenseME.lic 12 | 13 | fc115dfb: 14 | sg.bigo.live SenseME.lic 15 | com.huya.niko SenseME.lic 16 | 17 | 2ff90233: 18 | com.narvii.amino.master 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 19 | com.techxstar.guessthemarvelcharacter 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 20 | com.tpsdev.ladybug.noir.wallpaper 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 21 | com.theendlesshills.message_of_stars 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 22 | com.narvii.amino.x43169197 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 23 | com.narvii.amino.x172976915 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 24 | 25 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__gplay_decomposed.txt.reuse_analysis.suspected: -------------------------------------------------------------------------------- 1 | ae00a8c4: 2 | com.narvii.amino.master E14FEE65-71A0-4717-9D66-3397B6C11223.lic 3 | com.techxstar.guessthemarvelcharacter E14FEE65-71A0-4717-9D66-3397B6C11223.lic 4 | com.tpsdev.ladybug.noir.wallpaper E14FEE65-71A0-4717-9D66-3397B6C11223.lic 5 | com.theendlesshills.message_of_stars E14FEE65-71A0-4717-9D66-3397B6C11223.lic 6 | com.narvii.amino.x43169197 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 7 | com.narvii.amino.x172976915 E14FEE65-71A0-4717-9D66-3397B6C11223.lic 8 | 9 | bc7e9276: 10 | com.dongby.android.mmshow.inter SenseME.lic 11 | com.unico.live SenseME.lic 12 | 13 | fc115dfb: 14 | sg.bigo.live SenseME.lic 15 | com.huya.niko SenseME.lic 16 | 17 | 2ff90233: 18 | com.narvii.amino.master 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 19 | com.techxstar.guessthemarvelcharacter 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 20 | com.tpsdev.ladybug.noir.wallpaper 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 21 | com.theendlesshills.message_of_stars 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 22 | com.narvii.amino.x43169197 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 23 | com.narvii.amino.x172976915 3366-136-f45e980df7b7d83243dbb384c82a97a6.lic 24 | 25 | 26 | Identified 4 suspected license reuse cases among different apps 27 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__tencent_decomposed.txt.reuse_analysis: -------------------------------------------------------------------------------- 1 | ec7c8bdc: 2 | cn.mifengkong.huaxiaapp SenseID_Liveness_Interactive.lic 3 | cn.yuanguan.shandianjiekuan SenseID_Liveness_Interactive.lic 4 | 5 | 08b2e5ea: 6 | com.haodai.flashloan SenseID_OCR.lic 7 | com.haodai.flashloan SenseID_Liveness.lic 8 | 9 | 341ed19f: 10 | com.qzone com_tencent_2118.lic 11 | com.tencent.weishi com_tencent_2118.lic 12 | 13 | a2d7ee56: 14 | com.cloudpower.netsale.activity rel_picc_piccinsurance.lic 15 | com.cloudpower.netsale.activity rel_picc_piccinsurance.lic 16 | 17 | 1fcffede: 18 | com.icbc.im bh_liveness_extr.lic 19 | com.icbc bh_liveness_extr.lic 20 | 21 | e9812620: 22 | com.haodai.flashloan LinkfaceID_OCR.lic 23 | com.haodai.flashloan LinkfaceID_Liveness.lic 24 | 25 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__tencent_decomposed.txt.reuse_analysis.suspected: -------------------------------------------------------------------------------- 1 | ec7c8bdc: 2 | cn.mifengkong.huaxiaapp SenseID_Liveness_Interactive.lic 3 | cn.yuanguan.shandianjiekuan SenseID_Liveness_Interactive.lic 4 | 5 | 341ed19f: 6 | com.qzone com_tencent_2118.lic 7 | com.tencent.weishi com_tencent_2118.lic 8 | 9 | 1fcffede: 10 | com.icbc.im bh_liveness_extr.lic 11 | com.icbc bh_liveness_extr.lic 12 | 13 | 14 | Identified 3 suspected license reuse cases among different apps 15 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__www_decomposed_dir.txt: -------------------------------------------------------------------------------- 1 | Analyzing /home/ruimin/nfs/modelxray/www_decomposed_dir 2 | 2020-07-30-03-49-10 3 | 4 | MD5 License Path and Name 5 | 8931b9b5 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.asiainno.uplive/assets/SenseME.lic 6 | 01a79798 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.commsource.beautyplus/assets/libHADetector.bundle/SenseME.lic 7 | 01a79798 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.meitu.meiyancamera/assets/libHADetector.bundle/SenseME.lic 8 | 86419bfb /home/ruimin/nfs/modelxray/www_decomposed_dir/com.campmobile.snow/assets/SenseME.lic 9 | 0a5c6e5c /home/ruimin/nfs/modelxray/www_decomposed_dir/com.campmobile.snow/assets/SenseME-test.lic 10 | 66d87bb2 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.asiainno.uplive.yuanfen/assets/SenseME.lic 11 | 37d8f0ce /home/ruimin/nfs/modelxray/www_decomposed_dir/com.nhn.android.webtoon/assets/SenseME.lic 12 | 3e1486f9 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.xingin.xhs/assets/SenseME.lic 13 | 08119262 /home/ruimin/nfs/modelxray/www_decomposed_dir/com.mico/assets/SenseME.lic 14 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__www_decomposed_dir.txt.reuse_analysis: -------------------------------------------------------------------------------- 1 | 01a79798: 2 | com.commsource.beautyplus SenseME.lic 3 | com.meitu.meiyancamera SenseME.lic 4 | 5 | -------------------------------------------------------------------------------- /measure_lic_reuse/modelxray__www_decomposed_dir.txt.reuse_analysis.suspected: -------------------------------------------------------------------------------- 1 | 01a79798: 2 | com.commsource.beautyplus SenseME.lic 3 | com.meitu.meiyancamera SenseME.lic 4 | 5 | 6 | Identified 1 suspected license reuse cases among different apps 7 | -------------------------------------------------------------------------------- /measure_lic_reuse/rename.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | for f in $(ls ruimin_*) 4 | do 5 | echo $f 6 | newf=${f#ruimin__nfs__} 7 | mv $f $newf 8 | done 9 | -------------------------------------------------------------------------------- /measure_remote_models/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | -------------------------------------------------------------------------------- /measure_remote_models/MobileDL__data__raw_apks.txt: -------------------------------------------------------------------------------- 1 | Analyzing /home/ruimin/nfs/MobileDL/data/raw_apks 2 | 2020-07-30-02-33-37 3 | 4 | com.usps Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.usps/smali/com/google/firebase/ml/vision/FirebaseVision.smali 5 | ctrip.android.view Baidu:NLP, librsjni.so libctrip_android_flight_order.so libstmobile_jni.so libpanorenderer.so libjscexecutor.so libreactnativejni.so libBaiduMapSDK_base_v5_3_3.so libgifimage.so libctrip_android_flight.so libctrip_android_myctrip.so libctrip_android_tour_search.so libctrip_android_train_part.so libctrip_android_tour_bussiness.so libBaiduSpeechSDK.so libctrip_android_destination_story.so libctrip_android_train_crh.so libctrip_android_destination_strategy.so libctrip_android_tour.so libbsdjni.so libctrip_android_destination.so libindoor.so libctrip_android_view_scan.so libctrip_android_publicproduct.so libbridge.so libctrip_android_customerservice.so libctrip_android_ar.so libuptsmaddonmi.so liblivenessdetection_v2.4.7.so libBaiduMapSDK_map_v5_3_3.so libfolly_json.so libweibosdkcore.so libctrip_android_tour_im.so libctrip_android_voice.so libyoga.so libuptsmaddon.so libctripenc.so libvad.dnn.so libfb.so libtraContext.so libphoneclient.so libctrip_android_train.so libctrip_android_search.so libarcore_sdk_c.so libwind.so libctripjsc.so libctrip_android_flight_xproduct.so libctrip_android_login.so libjsc.so libctrip_android_hotel_detail.so libxcrash.so libctrip_android_pay_facekitwrap.so libentryexpro.so libctrip_android_ad.so libst_mobile.so libnative-imagetranscoder.so libctrip_android_schedule_jan.so libcronet.66.0.3359.158.so libglog_init.so liblocSDK7d.so libRSSupport.so libimagepipeline.so libstatic-webp.so libutility.so libun7zip.so libctrip_android_schedule.so libctrip_android_pay.so libcnativesp.so libctrip_android_destination_schedule.so libnative-filters.so libctrip_android_livestream.so libglog.so libctrip_android_hotel_order.so libctrip_android_call.so libjsinspector.so libxcrash_dumper.so libctrip_android_pay_facekit.so libctrip_android_chat.so libarcore_sdk_jni.so libctrip_android_qrcode.so libctrip_android_hotel.so libBugly.so libctrip_android_flight_dispatch.so libpano_video_renderer.so libc++_shared.so libpayenc.so libjscruntime.so libcardscan.so 6 | facetechstudio.future.me Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/facetechstudio.future.me/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 7 | editor.free.ephoto.vn.ephoto Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/editor.free.ephoto.vn.ephoto/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 8 | com.xidau.translator Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.xidau.translator/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 9 | com.vidku.app.flipgrid Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.vidku.app.flipgrid/smali/com/google/firebase/ml/vision/FirebaseVision.smali 10 | com.yitechnology.kamihome Baidu:NLP, libiconv.so libmi_aec.so libpcmjni.so libasp.so libstlport_shared.so libppam.so libwebrtc_vad.so libyimedia.so libvideodecoder.so libAVAPIsT.so libvideodraw.so libh265decoder.so libmi_decoder.so libYiDecodeAAC.so libG726Android.so libijkplayer.so libijksdl.so libweibosdkcore.so libfaad.so libFFMuxing.so libAVAPIs.so librealm-jni.so libglnkio.so libMp4RecorderNative.so libndkbitmap.so libIOTCAPIs.so libwebrtc_filter.so libijkffmpeg.so libVoAACEncoder.so libwebrtc_aecm.so libwebrtc_ns.so libmp4v2.so libanativehelper.so libIOTCAPIsT.so libbspatch.so libwebrtc_agc.so libyuvrgb.so libFFmpegUtil.so libaudioproc.so libBugly.so libPPPP_API.so libmiio.so 11 | com.july.pacsun Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.july.pacsun/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 12 | com.loopnow.kamino Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.loopnow.kamino/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 13 | com.joinroot.root Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.joinroot.root/smali/com/google/firebase/ml/vision/FirebaseVision.smali 14 | com.ibm.events.android.usopen Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.ibm.events.android.usopen/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 15 | com.intsig.BCRLite Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.intsig.BCRLite/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 16 | com.news.tigerobo Baidu:Synthesizer, libpldroidplayer.so libjcore126.so libqalcodecwrapper.so liblocSDK6a.so libbdEASRAndroid.so libqalmsfboot.so lib_imcore_jni_gyp.so libwtcrypto.so lib_imcore_sns_ext_gyp.so lib_imcore_msg_ext_gyp.so libPassGuard.so liblocSDK4d.so libmediahwcodec_rk30_4.1.so libBugly.so lib_imcore_group_ext_gyp.so libgnustl_shared.so libBDSpeechDecoder_V1.so liblocSDK7a.so libpldroidplayer.so libjcore126.so libqalcodecwrapper.so liblocSDK6a.so libqalmsfboot.so lib_imcore_jni_gyp.so libwtcrypto.so lib_imcore_sns_ext_gyp.so lib_imcore_msg_ext_gyp.so libBugly.so lib_imcore_group_ext_gyp.so libgnustl_shared.so libBDSpeechDecoder_V1.so libpldroidplayer.so libjcore126.so libqalcodecwrapper.so liblocSDK6a.so libqalmsfboot.so lib_imcore_jni_gyp.so libwtcrypto.so lib_imcore_sns_ext_gyp.so lib_imcore_msg_ext_gyp.so libBugly.so lib_imcore_group_ext_gyp.so libgnustl_shared.so libBDSpeechDecoder_V1.so 17 | com.simejikeyboard Baidu:NLP, librsjni.so libgifimage.so libchiperencoder_v1_2_1.so libBaiduSpeechSDK.so libar-emotion.so libface-jni.so libcrashlytics.so libBDVoiceRecognitionClient_MFE_V1.so libbdEASRAndroid.so libvad.dnn.so libimage-checker.so libwebp.so libglobal.cmvn.so libandroidndkgif.so libRSSupport.so libimagepipeline.so libsoundtouch.so libsimeji_ime.so libcrab_native.so libimeffmpeg.so libgnustl_shared.so libwebpimage.so libface_detector.so libdas.so 18 | com.androidworks.videocalling Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.androidworks.videocalling/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 19 | com.algorythma.retail.prod Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.algorythma.retail.prod/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 20 | com.grindrapp.android Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.grindrapp.android/smali_classes2/com/google/firebase/ml/vision/cloud/landmark/FirebaseVisionCloudLandmarkDetector.smali 21 | com.geico.mobile Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.geico.mobile/smali/com/google/firebase/ml/vision/FirebaseVision.smali 22 | com.chewy.android Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.chewy.android/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 23 | com.carters.android Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.carters.android/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 24 | com.coreapps.android.followme.aacc2017 Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.coreapps.android.followme.aacc2017/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 25 | com.bluefish.barcode Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.bluefish.barcode/smali/com/google/firebase/ml/vision/FirebaseVision.smali 26 | com.cccis.cccone Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.cccis.cccone/smali/com/google/firebase/ml/vision/FirebaseVision.smali 27 | com.cartoaware.blvrd Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.cartoaware.blvrd/smali_classes3/com/google/firebase/ml/vision/FirebaseVision.smali 28 | com.statefarm.dssm Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.statefarm.dssm/smali/com/google/firebase/ml/vision/FirebaseVision.smali 29 | com.unexceptional.beast.banko Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.unexceptional.beast.banko/smali/com/google/firebase/ml/vision/FirebaseVision.smali 30 | com.text.metal.effect Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.text.metal.effect/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 31 | pdf.documents.scanner Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/pdf.documents.scanner/smali/io/flutter/plugins/firebasemlvision/CloudLabelDetector.smali 32 | oss.alarm3 Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/oss.alarm3/smali/com/google/firebase/ml/vision/FirebaseVision.smali 33 | us.ozteam.bigfoot Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/us.ozteam.bigfoot/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 34 | stickerwhatsapp.com.stickers Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/stickerwhatsapp.com.stickers/smali/com/google/firebase/ml/vision/FirebaseVision.smali 35 | tech.plink.PlinkApp Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/tech.plink.PlinkApp/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 36 | com.facemoji.lite.xiaomi.gp Baidu:NLP, librsjni.so libgifimage.so libBaiduSpeechSDK.so libcrashlytics.so libBDVoiceRecognitionClient_MFE_V1.so libbdEASRAndroid.so libvad.dnn.so libwebp.so libglobal.cmvn.so libRSSupport.so libimagepipeline.so libsimeji_ime.so libcrab_native.so libgnustl_shared.so libwebpimage.so libdas.so 37 | com.fifthfinger.clients.joann Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.fifthfinger.clients.joann/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 38 | com.dataxad.folocardoffline Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.dataxad.folocardoffline/smali_classes2/com/google/firebase/ml/vision/FirebaseVision.smali 39 | com.ebay.mobile Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.ebay.mobile/smali_classes3/com/google/android/gms/internal/firebase_ml/zzpb.smali 40 | com.cvs.launchers.cvs Google:AI, /home/ethan/work/ML-Prot/decomposed_apps/com.cvs.launchers.cvs/smali_classes3/com/google/firebase/ml/vision/FirebaseVision.smali 41 | -------------------------------------------------------------------------------- /measure_remote_models/classify_remote_models.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import argparse 4 | 5 | if __name__ == '__main__': 6 | parser = argparse.ArgumentParser(prog='report_analyzer') 7 | parser.add_argument('reports', 8 | help = 'filelist of remote models reports separated by comma') 9 | args = parser.parse_args() 10 | remote_reports = args.reports.split(',') 11 | classes = {} 12 | 13 | for f in remote_reports: 14 | lines = open(f).readlines() 15 | for l in lines: 16 | fields = l.strip().split() 17 | if len(fields) > 2: 18 | category = fields[1][:-1] # get rid of ending ',' 19 | if category in classes: 20 | classes[category] += 1 21 | else: 22 | classes[category] = 1 23 | print(classes) 24 | -------------------------------------------------------------------------------- /measure_remote_models/classify_remote_models_results.txt: -------------------------------------------------------------------------------- 1 | ./classify_remote_models.py MobileDL__data__raw_apks.txt,Spider__360app_raw_apks.txt,Spider__baiduapp_raw_apks.txt,Spider__tencentapp_raw_apks.txt 2 | 3 | {'Baidu:Synthesizer': 774, 'Google:AI': 32, 'Baidu:NLP': 425, 'Baidu:OCR': 254} 4 | 5 | ./classify_remote_models.py MobileDL__data__raw_apks.txt,Spider__360app_raw_apks.txt,Spider__tencentapp_raw_apks.txt 6 | {'Baidu:Synthesizer': 730, 'Google:AI': 32, 'Baidu:NLP': 345, 'Baidu:OCR': 234} 7 | -------------------------------------------------------------------------------- /measure_remote_models/compare_remote_local.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import argparse 4 | 5 | if __name__ == '__main__': 6 | parser = argparse.ArgumentParser(prog='online_ai_analyzer') 7 | parser.add_argument('remotepath', 8 | help = 'path to file contain remote models app info') 9 | parser.add_argument('localpath', 10 | help = 'path to file contain local models app info') 11 | args = parser.parse_args() 12 | # extract apps that use remote model 13 | remote_app_file = args.remotepath 14 | remote_apps = [] 15 | lines = open(remote_app_file).readlines() 16 | for line in lines: 17 | fields = line.strip().split() 18 | if len(fields) > 2: 19 | app = fields[0] 20 | if app not in remote_apps: 21 | remote_apps.append(app) 22 | 23 | # extract local apps 24 | local_app_file = args.localpath 25 | local_apps = [] 26 | lines = open(local_app_file).readlines() 27 | for line in lines: 28 | fields = line.strip().split() 29 | if len(fields) >= 1: 30 | app = fields[3] 31 | if app not in local_apps: 32 | local_apps.append(app) 33 | 34 | c = 0 35 | commen_apps = [] 36 | for app in remote_apps: 37 | if app in local_apps: 38 | commen_apps.append(app) 39 | c = c + 1 40 | a = len(remote_apps) 41 | b = len(local_apps) 42 | #print(commen_apps) 43 | print("analyze %s and %s " %(remote_app_file, local_app_file)) 44 | print("remote apps: %d, local_apps: %d, commen apps: %d" % (a, b, c)) 45 | -------------------------------------------------------------------------------- /measure_remote_models/online_ai_analyzer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # analyze whether Android app use cloud ai. 4 | # Input: Android APK file 5 | # Output: AI Vendor, AI Service, EvidenceType 6 | 7 | 8 | import argparse 9 | import os 10 | import subprocess 11 | import logging 12 | import time 13 | 14 | def ls_dir(dir): 15 | filenames = [] 16 | for subdir, dirs, files in os.walk(dir): 17 | for file in files: 18 | filepath = os.path.join(subdir, file) 19 | filenames.append(filepath) 20 | return filenames 21 | 22 | def get_libs_info(decpath): 23 | lib_path = decpath + '/' + 'lib' 24 | lib_files = ls_dir(lib_path) 25 | libs = "" 26 | for f in lib_files: 27 | libs += os.path.basename(f) + ' ' 28 | return libs 29 | 30 | def run_w(shell_cmd): 31 | """ 32 | run shell cmds with result returned 33 | """ 34 | #logging.debug("executing shell cmd : " + shell_cmd) 35 | try: 36 | res = os.popen(shell_cmd).read().strip() 37 | except: 38 | logging.error("error in executing : " + shell_cmd) 39 | res = "" 40 | return res 41 | 42 | # ag "firebase/ml/vision/cloud" smali*/ -l 43 | def get_Google_AI(decpath): 44 | shell_cmd = "ag %s -i -l --silent -m2 %s" %("firebase/ml/vision/cloud", decpath) 45 | match = run_w(shell_cmd) 46 | return match.split('\n')[0] 47 | 48 | # ag "com.amplifyframework.predictions" smali*/ -l 49 | def get_Amazon_AI(decpath): 50 | shell_cmd = "ag %s -i -l --silent -m2 %s" %("com.amplifyframework.predictions", decpath) 51 | match = run_w(shell_cmd) 52 | return match.split('\n')[0] 53 | 54 | # ag "alexaDeepLink" smali*/ -l 55 | def get_Alexa_AI(decpath): 56 | shell_cmd = "ag %s -i -l --silent -m2 %s" %("alexaDeepLink", decpath) 57 | match = run_w(shell_cmd) 58 | return match.split('\n')[0] 59 | 60 | # ag "alexaDeepLink" smali*/ -l 61 | # compile group: 'com.azure', name: 'azure-ai-textanalytics', version: '5.1.0-beta.1' 62 | def get_Azure_AI(decpath): 63 | shell_cmd = "ag %s -i -l --silent -m2 %s" %("azure-ai", decpath) 64 | match = run_w(shell_cmd) 65 | return match.split('\n')[0] 66 | 67 | def is_Baidu_NLP(libs): 68 | if 'BaiduSpeechSDK' in libs or 'vad' in libs: 69 | return True 70 | else: 71 | return False 72 | 73 | def is_Baidu_synthesizer(libs): 74 | if 'BDSpeechDecoder' in libs: 75 | return True 76 | else: 77 | return False 78 | 79 | def is_Baidu_OCR(libs): 80 | if 'ocr-sdk' in libs: 81 | return True 82 | else: 83 | return False 84 | 85 | def run_wo(shell_cmd): 86 | print("run_wo cmd: %s" % shell_cmd) 87 | res = subprocess.call(shell_cmd, shell=True) 88 | if res != 0: 89 | logging.error("error in executing cmd :" + shell_cmd) 90 | return 91 | 92 | def decompose(args, apkpath, decompose_path): 93 | decpath = os.path.abspath(decompose_path) 94 | if args.lib_only is True: 95 | shell_cmd = "apktool d %s -o %s --no-res --no-src" % (apkpath, decpath) 96 | else: 97 | shell_cmd = "apktool d %s -o %s --no-res" % (apkpath, decpath) 98 | run_wo(shell_cmd) 99 | return 100 | 101 | # Input: 102 | # @apk, path to apk file 103 | def online_AI_analyzer(args, apkpath, blacklist): 104 | print("analyzing %s ..." % apkpath) 105 | apkname = os.path.basename(apkpath)[:-4] 106 | 107 | if apkname in blacklist: 108 | print("skipping %s ..." % apkname) 109 | return "" 110 | 111 | decomposed_path = '/home/ethan/work/ML-Prot/decomposed_apps/' + apkname 112 | if not os.path.isdir(decomposed_path): 113 | try: 114 | decompose(args, apkpath, decomposed_path) 115 | except (KeyboardInterrupt, SystemExit): 116 | raise 117 | except: 118 | print("decompose exception happened!") 119 | libs = get_libs_info(decomposed_path) 120 | print("libs:") 121 | print (libs) 122 | 123 | record = "" 124 | 125 | if args.lib_only: 126 | # this option is for analyze chinese apps 127 | # as chinese apps don't need to check smali code, save time 128 | if (is_Baidu_NLP(libs)): 129 | record = record + "Baidu:NLP," 130 | elif (is_Baidu_synthesizer(libs)): 131 | record = record + "Baidu:Synthesizer," 132 | elif (is_Baidu_OCR(libs)): 133 | record = record + "Baidu:OCR," 134 | else: 135 | # no need to report libs info when no lib matching 136 | libs = "" 137 | 138 | if record != "": 139 | report_line = "%s %s %s"%(apkname, record, libs) 140 | else: 141 | report_line = "" 142 | else: 143 | # check Baidu AI service 144 | if (is_Baidu_NLP(libs)): 145 | record = record + "Baidu:NLP," 146 | elif (is_Baidu_synthesizer(libs)): 147 | record = record + "Baidu:Synthesizer," 148 | elif (is_Baidu_OCR(libs)): 149 | record = record + "Baidu:OCR," 150 | else: 151 | # no need to report libs info when no lib matching 152 | libs = "" 153 | 154 | g_line = get_Google_AI(decomposed_path) 155 | if g_line != "": 156 | record = record + "Google:AI," 157 | 158 | a_line = get_Amazon_AI(decomposed_path) 159 | if a_line != "": 160 | record = record + "Amazon:AI," 161 | 162 | x_line = get_Alexa_AI(decomposed_path) 163 | if x_line != "": 164 | record = record + "Alexa:AI," 165 | 166 | """ 167 | // https://mvnrepository.com/artifact/com.azure/azure-ai-textanalytics 168 | compile group: 'com.azure', name: 'azure-ai-textanalytics', version: '5.1.0-beta.1' 169 | """ 170 | # microsoft Azure 171 | m_line = get_Azure_AI(decomposed_path) 172 | if m_line != "": 173 | record = record + "Azure:AI," 174 | 175 | if record != "": 176 | report_line = "%s %s %s %s %s %s"%(apkname, record, g_line, a_line, x_line, libs) 177 | else: 178 | report_line = "" 179 | 180 | print("report_line:" + report_line) 181 | if report_line == "": # remove decomposed dir 182 | shell_cmd = "rm -fr %s" % decomposed_path 183 | run_wo(shell_cmd) 184 | shell_cmd = "echo \"%s\" >> non_ml_apklist.txt" % apkname 185 | run_wo(shell_cmd) 186 | 187 | return report_line 188 | 189 | def get_time_tag(): 190 | ts = time.gmtime() 191 | return time.strftime("%Y-%m-%d-%H-%M-%S", ts) 192 | 193 | def main(args, blacklist, output=".txt"): 194 | path = args.apkpath 195 | time_str = get_time_tag() 196 | prefix = '__'.join(os.path.abspath(path).split('/')[2:]) 197 | output_path = prefix + output 198 | output_h = open(output_path, 'w+') 199 | output_h.write("Analyzing %s\n%s\n\n" %(os.path.abspath(path), time_str)) 200 | if os.path.isfile(path): 201 | report_line = online_AI_analyzer(args, path, blacklist) 202 | if (report_line != ""): 203 | output_h.write(report_line+'\n') 204 | elif os.path.isdir(path): # is path 205 | for subdir, dirs, files in os.walk(path): 206 | for file in files: 207 | filepath = os.path.join(subdir, file) 208 | if filepath.endswith('apk'): 209 | report_line = online_AI_analyzer(args, filepath, blacklist) 210 | if (report_line != ""): 211 | output_h.write(report_line+'\n') 212 | else: 213 | print("Wrong path: %s!"%path) 214 | 215 | output_h.close() 216 | 217 | return 218 | 219 | def setup_blacklist(apklist): 220 | fh = open(apklist, 'r') 221 | non_ml_apklist = fh.readlines() 222 | blacklist = [] 223 | for line in non_ml_apklist: 224 | blacklist.append(line.strip()) 225 | fh.close() 226 | return blacklist 227 | 228 | if __name__ == '__main__': 229 | parser = argparse.ArgumentParser(prog='online_ai_analyzer') 230 | parser.add_argument('apkpath', 231 | help = 'path to apk file or directory') 232 | parser.add_argument('-l', '--lib-only', action='store_true', 233 | help = 'decode library only, no smali code analysis') 234 | args = parser.parse_args() 235 | 236 | logging.basicConfig(filename='analyzer.log', level=logging.DEBUG) 237 | 238 | apklist = "non_ml_apklist.txt" 239 | blacklist = setup_blacklist(apklist) 240 | main(args, blacklist) 241 | -------------------------------------------------------------------------------- /measure_remote_models/rename.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | for f in $(ls ruimin_*) 4 | do 5 | echo $f 6 | newf=${f#ruimin__nfs__} 7 | mv $f $newf 8 | done 9 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/.gitignore: -------------------------------------------------------------------------------- 1 | *.report 2 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/entropy-distribution/eval.sh: -------------------------------------------------------------------------------- 1 | #scripts used for extract entropy range 2 | ag ".tflite" ../reports/us.entropy_report.filtered | head | cut -d' ' -f1|cut -d':' -f2 3 | ag ".pb" ../reports/us.entropy_report.filtered | head | cut -d' ' -f1|cut -d':' -f2 4 | ag ".prototxt" ../reports/us.entropy_report.filtered | head -n 11| cut -d' ' -f1|cut -d':' -f2 5 | ag ".prototxt" ../reports/360.entropy_report.filtered | head -n 11| cut -d' ' -f1|cut -d':' -f2 6 | ag ".model" ../reports/us.entropy_report.filtered | head | cut -d' ' -f1|cut -d':' -f2 7 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/marketawareness/count_unique_models.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | def count_unique_models(fname): 4 | unique_models = [] 5 | lines = open(fname,'r').readlines() 6 | for line in lines: 7 | # get hashes 8 | mid = line.split()[1] 9 | if mid == 'md5': 10 | continue 11 | if mid not in unique_models: 12 | unique_models.append(mid) 13 | print(unique_models[0]) 14 | return len(unique_models) 15 | 16 | if __name__ == '__main__': 17 | us = count_unique_models("us.models") 18 | chn = count_unique_models("chn.models") 19 | us_enc = count_unique_models("us.models.enc") 20 | chn_enc = count_unique_models("chn.models.enc") 21 | print ("us unique models: %d" % us) 22 | print ("china unique models: %d" % chn) 23 | print ("us unique encrypted models: %d" % us_enc) 24 | print ("china unique encrypted models: %d" % chn_enc) 25 | print ("us model protection rate: %f" % (us_enc*1.0/us)) 26 | print ("china model protection rate: %f" % (chn_enc*1.0/chn)) 27 | 28 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_app_profile_filter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | function process_report { 4 | local f=$1 5 | ./reportanalyzer.py -f $f # without encryption filter 6 | ./reportanalyzer.py -fe $f # with encryption filter 7 | ./reportanalyzer.py -p $f.filtered > $f.filtered.packages 8 | ./reportanalyzer.py -p $f.encrypted.filtered > $f.encrypted.filtered.packages 9 | ./reportanalyzer.py -p $f> $f.packages 10 | ./reportanalyzer.py -l $f.filtered > $f.libinfo.csv 11 | } 12 | 13 | << 'COMMENT' 14 | for report in reports/*.entropy_report 15 | do 16 | process_report $report 17 | done 18 | COMMENT 19 | 20 | #process_report ../evaluation/eval_false_negative/output_dir/entropy_report 21 | process_report ../evaluation/output_dir/entropy_report 22 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/360.result: -------------------------------------------------------------------------------- 1 | statistics for /home/ruimin/nfs/modelxray/360_output/reports 2 | fws: tensorflow caffe sensetime ncnn other mxnet uls mace 3 | 4 | OCR 5 | tensorflow : 11 6 | caffe : 38 7 | sensetime : 14 8 | ncnn : 23 9 | other : 149 10 | mxnet : 0 11 | uls : 1 12 | mace : 0 13 | tflite : 1 14 | 15 | ocr 16 | tensorflow : 36 17 | caffe : 168 18 | sensetime : 128 19 | ncnn : 34 20 | other : 332 21 | mxnet : 1 22 | uls : 2 23 | mace : 0 24 | tflite : 5 25 | 26 | speech 27 | tensorflow : 3 28 | caffe : 31 29 | sensetime : 8 30 | ncnn : 10 31 | other : 213 32 | mxnet : 1 33 | uls : 0 34 | mace : 0 35 | tflite : 0 36 | 37 | idcard 38 | tensorflow : 23 39 | caffe : 216 40 | sensetime : 136 41 | ncnn : 38 42 | other : 375 43 | mxnet : 0 44 | uls : 1 45 | mace : 0 46 | tflite : 5 47 | 48 | bankcard 49 | tensorflow : 9 50 | caffe : 115 51 | sensetime : 109 52 | ncnn : 13 53 | other : 141 54 | mxnet : 0 55 | uls : 0 56 | mace : 0 57 | tflite : 2 58 | 59 | recog 60 | tensorflow : 14 61 | caffe : 108 62 | sensetime : 89 63 | ncnn : 34 64 | other : 127 65 | mxnet : 1 66 | uls : 0 67 | mace : 1 68 | tflite : 4 69 | 70 | liveness 71 | tensorflow : 24 72 | caffe : 348 73 | sensetime : 307 74 | ncnn : 60 75 | other : 360 76 | mxnet : 1 77 | uls : 0 78 | mace : 1 79 | tflite : 6 80 | 81 | track 82 | tensorflow : 21 83 | caffe : 252 84 | sensetime : 198 85 | ncnn : 50 86 | other : 279 87 | mxnet : 4 88 | uls : 21 89 | mace : 0 90 | tflite : 5 91 | 92 | handdetect 93 | tensorflow : 6 94 | caffe : 15 95 | sensetime : 1 96 | ncnn : 14 97 | other : 16 98 | mxnet : 0 99 | uls : 0 100 | mace : 0 101 | tflite : 0 102 | 103 | handwriting 104 | tensorflow : 1 105 | caffe : 0 106 | sensetime : 0 107 | ncnn : 2 108 | other : 5 109 | mxnet : 0 110 | uls : 0 111 | mace : 0 112 | tflite : 0 113 | 114 | iris 115 | tensorflow : 0 116 | caffe : 4 117 | sensetime : 0 118 | ncnn : 2 119 | other : 6 120 | mxnet : 3 121 | uls : 0 122 | mace : 0 123 | tflite : 0 124 | 125 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/fw_purpose.tbl: -------------------------------------------------------------------------------- 1 | mace other caffe ncnn uls tflite tensorflow sensetime mxnet sum 2 | recog 7 149 116 40 3 6 17 95 10 443 3 | liveness 7 409 392 70 3 9 32 349 10 1281 4 | iris 0 7 4 2 0 0 0 0 3 16 5 | handdetect 0 18 17 16 0 0 8 1 0 60 6 | idcard 18 405 230 47 10 5 26 147 0 888 7 | bankcard 18 156 126 16 9 2 11 117 0 455 8 | track 6 306 272 53 27 7 26 216 13 926 9 | speech 18 230 32 11 9 1 7 9 1 318 10 | handwriting 0 10 0 4 0 2 4 0 0 20 11 | ocr 18 381 186 37 11 6 41 140 1 821 12 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/fw_purpose_stat.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import argparse 3 | fwmap = {'tensorflow':1,'caffe':2,'sensetime':3,'ncnn':4,'other':5,'mxnet':6,'uls':7,'mace':8,'tflite':9} 4 | 5 | def printres(th, res): 6 | th.append('sum') 7 | print "%15s"%(" "), 8 | for i in th: 9 | print i, 10 | print "" 11 | for use in res: 12 | print "%15s"%(use), 13 | fwres = res[use] 14 | sum = 0 15 | for key in th[:-1]: 16 | val = fwres[key] 17 | #print "(%s,%d)"%(fw,fwres[fw]), 18 | #print "%d\t"%(fwres[fw]), 19 | #sum = sum + fwres[fw] 20 | print "%d\t"%(val), 21 | sum = sum + val 22 | print "%d\t"%(sum), 23 | print "" 24 | 25 | def process_filelist(filelist): 26 | fdlist = [] 27 | for f in filelist: 28 | fd = open(f,'r').readlines() 29 | fdlist.append(fd) 30 | 31 | fcmap = {'ocr':15,'speech':26,'idcard':37,'bankcard':48,'recog':59,'liveness':70,'track':81,'handdetect':92,'handwriting':103,'iris':114} 32 | restable = {} 33 | for key in fcmap: 34 | res = {} 35 | for fw in fwmap: 36 | sum = 0 37 | for fd in fdlist: 38 | fields = fd[fcmap[key]+fwmap[fw] - 1].split(':') 39 | #print(fields) 40 | sum = sum + int(fields[1]) 41 | res[fw] = sum 42 | restable[key] = res 43 | thead = fwmap.keys() 44 | return (thead,restable) 45 | 46 | if __name__ == "__main__": 47 | parser = argparse.ArgumentParser(prog='modelxray') 48 | parser.add_argument('filelist', 49 | help = 'list of files to be processed, like a,b,c') 50 | args = parser.parse_args() 51 | 52 | filelist = args.filelist.split(',') 53 | (th,res) = process_filelist(filelist) 54 | printres(th, res) 55 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/fw_purpose_stat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #path=reports/ 3 | path=$1 4 | fws="tensorflow caffe sensetime ncnn other mxnet uls mace" 5 | echo "statistics for $(realpath $path)" 6 | echo "fws: $fws" 7 | echo "" 8 | for use in OCR ocr speech idcard bankcard 9 | do 10 | echo $use 11 | # handle most framework 12 | #for fw in tensorflow caffe sensetime ncnn other 13 | for fw in $fws 14 | do 15 | echo $fw ": " "$(ag -f -s -l $use $(ag -f -l "$fw:" $path) |wc -l)" 16 | done 17 | # handle tflite separately 18 | echo "tflite" ":" "$(ag -f -s -l $use $(ag -f -l 'tflite' $path) |wc -l)" 19 | echo "" 20 | done 21 | 22 | for use in recog liveness track 23 | do 24 | echo $use 25 | # handle most framework 26 | #for fw in tensorflow caffe sensetime ncnn other 27 | for fw in $fws 28 | do 29 | echo $fw ": " "$(ag -l $use $(ag -f -l -s face $(ag -f -l "$fw:" $path)) |wc -l)" 30 | done 31 | # handle tflite separately 32 | echo "tflite" ":" "$(ag -l $use $(ag -f -l -s face $(ag -f -l "tflite" $path)) |wc -l)" 33 | echo "" 34 | done 35 | 36 | for use in handdetect handwriting iris 37 | do 38 | echo $use 39 | # handle most framework 40 | #for fw in tensorflow caffe sensetime ncnn other 41 | for fw in $fws 42 | do 43 | fl=$(ag -f -l "$fw:" $path) 44 | if [ -z "$fl" ] 45 | then 46 | echo $fw ": 0" 47 | else 48 | echo $fw ": " "$(grep -l $use $fl |wc -l)" 49 | fi 50 | #echo $fw ": " "$(grep -l $use $(ag -f -l "$fw:" $path) |wc -l)" 51 | done 52 | # handle tflite separately 53 | echo "tflite" ":" "$(grep -l $use $(ag -f -l "tflite" $path) |wc -l)" 54 | echo "" 55 | done 56 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/gplay.result: -------------------------------------------------------------------------------- 1 | statistics for /home/ruimin/nfs/modelxray/gplay_output/reports 2 | fws: tensorflow caffe sensetime ncnn other mxnet uls mace 3 | 4 | OCR 5 | tensorflow : 0 6 | caffe : 0 7 | sensetime : 0 8 | ncnn : 1 9 | other : 1 10 | mxnet : 0 11 | uls : 0 12 | mace : 6 13 | tflite : 0 14 | 15 | ocr 16 | tensorflow : 0 17 | caffe : 1 18 | sensetime : 0 19 | ncnn : 0 20 | other : 19 21 | mxnet : 0 22 | uls : 0 23 | mace : 9 24 | tflite : 0 25 | 26 | speech 27 | tensorflow : 2 28 | caffe : 0 29 | sensetime : 1 30 | ncnn : 0 31 | other : 3 32 | mxnet : 0 33 | uls : 0 34 | mace : 9 35 | tflite : 1 36 | 37 | idcard 38 | tensorflow : 0 39 | caffe : 0 40 | sensetime : 0 41 | ncnn : 0 42 | other : 0 43 | mxnet : 0 44 | uls : 0 45 | mace : 9 46 | tflite : 0 47 | 48 | bankcard 49 | tensorflow : 0 50 | caffe : 0 51 | sensetime : 0 52 | ncnn : 0 53 | other : 0 54 | mxnet : 0 55 | uls : 0 56 | mace : 9 57 | tflite : 0 58 | 59 | recog 60 | tensorflow : 0 61 | caffe : 1 62 | sensetime : 0 63 | ncnn : 0 64 | other : 10 65 | mxnet : 9 66 | uls : 0 67 | mace : 3 68 | tflite : 0 69 | 70 | liveness 71 | tensorflow : 0 72 | caffe : 11 73 | sensetime : 11 74 | ncnn : 3 75 | other : 12 76 | mxnet : 9 77 | uls : 0 78 | mace : 3 79 | tflite : 0 80 | 81 | track 82 | tensorflow : 0 83 | caffe : 5 84 | sensetime : 6 85 | ncnn : 0 86 | other : 10 87 | mxnet : 9 88 | uls : 3 89 | mace : 3 90 | tflite : 0 91 | 92 | handdetect 93 | tensorflow : 0 94 | caffe : 0 95 | sensetime : 0 96 | ncnn : 0 97 | other : 0 98 | mxnet : 0 99 | uls : 0 100 | mace : 0 101 | tflite : 0 102 | 103 | handwriting 104 | tensorflow : 2 105 | caffe : 0 106 | sensetime : 0 107 | ncnn : 0 108 | other : 2 109 | mxnet : 0 110 | uls : 0 111 | mace : 0 112 | tflite : 2 113 | 114 | iris 115 | tensorflow : 0 116 | caffe : 0 117 | sensetime : 0 118 | ncnn : 0 119 | other : 1 120 | mxnet : 0 121 | uls : 0 122 | mace : 0 123 | tflite : 0 124 | 125 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./fw_purpose_stat.sh /your/path/to/modelxray/360_output/reports > 360.result 3 | ./fw_purpose_stat.sh /your/path/to/modelxray/gplay_output/reports > gplay.result 4 | ./fw_purpose_stat.sh /your/path/to/modelxray/tencent_output_dir/reports > tencent.result 5 | 6 | ./fw_purpose_stat.py 360.result,gplay.result,tencent.result > fw_purpose.tbl 7 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/tencent.result: -------------------------------------------------------------------------------- 1 | statistics for /home/ethan/work/modelxray/tencent_output_dir/reports 2 | fws: tensorflow caffe sensetime ncnn other mxnet uls mace 3 | 4 | OCR 5 | tensorflow : 1 6 | caffe : 2 7 | sensetime : 1 8 | ncnn : 2 9 | other : 13 10 | mxnet : 0 11 | uls : 6 12 | mace : 6 13 | tflite : 0 14 | 15 | ocr 16 | tensorflow : 5 17 | caffe : 17 18 | sensetime : 12 19 | ncnn : 3 20 | other : 30 21 | mxnet : 0 22 | uls : 9 23 | mace : 9 24 | tflite : 1 25 | 26 | speech 27 | tensorflow : 2 28 | caffe : 1 29 | sensetime : 0 30 | ncnn : 1 31 | other : 14 32 | mxnet : 0 33 | uls : 9 34 | mace : 9 35 | tflite : 0 36 | 37 | idcard 38 | tensorflow : 3 39 | caffe : 14 40 | sensetime : 11 41 | ncnn : 9 42 | other : 30 43 | mxnet : 0 44 | uls : 9 45 | mace : 9 46 | tflite : 0 47 | 48 | bankcard 49 | tensorflow : 2 50 | caffe : 11 51 | sensetime : 8 52 | ncnn : 3 53 | other : 15 54 | mxnet : 0 55 | uls : 9 56 | mace : 9 57 | tflite : 0 58 | 59 | recog 60 | tensorflow : 3 61 | caffe : 7 62 | sensetime : 6 63 | ncnn : 6 64 | other : 12 65 | mxnet : 0 66 | uls : 3 67 | mace : 3 68 | tflite : 2 69 | 70 | liveness 71 | tensorflow : 8 72 | caffe : 33 73 | sensetime : 31 74 | ncnn : 7 75 | other : 37 76 | mxnet : 0 77 | uls : 3 78 | mace : 3 79 | tflite : 3 80 | 81 | track 82 | tensorflow : 5 83 | caffe : 15 84 | sensetime : 12 85 | ncnn : 3 86 | other : 17 87 | mxnet : 0 88 | uls : 3 89 | mace : 3 90 | tflite : 2 91 | 92 | handdetect 93 | tensorflow : 2 94 | caffe : 2 95 | sensetime : 0 96 | ncnn : 2 97 | other : 2 98 | mxnet : 0 99 | uls : 0 100 | mace : 0 101 | tflite : 0 102 | 103 | handwriting 104 | tensorflow : 1 105 | caffe : 0 106 | sensetime : 0 107 | ncnn : 2 108 | other : 3 109 | mxnet : 0 110 | uls : 0 111 | mace : 0 112 | tflite : 0 113 | 114 | iris 115 | tensorflow : 0 116 | caffe : 0 117 | sensetime : 0 118 | ncnn : 0 119 | other : 0 120 | mxnet : 0 121 | uls : 0 122 | mace : 0 123 | tflite : 0 124 | 125 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/ml_usage_analysis/usefulcmds.txt: -------------------------------------------------------------------------------- 1 | ag -f -l -s bankcard reports/ |wc -l 2 | ag -l recog $(ag -f -l -s face reports/) |wc -l 3 | grep -l handdetect reports/* |wc -l 4 | grep -l handwriting reports/* |wc -l 5 | ag -f -l -s idcard reports/ |wc -l 6 | grep -l iris reports/* |wc -l 7 | ag -l liveness $(ag -f -l -s face reports/) |wc -l 8 | ag -f -l -s ocr reports/ |wc -l 9 | ag -f -l -s speech reports/ |wc -l 10 | ag -l track $(ag -f -l -s face reports/) |wc -l 11 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/model_suffix_analysis/modelsuffix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | fn=modelsuffix.txt 3 | 4 | rm $fn 5 | for f in reports/*.filtered 6 | do 7 | echo "Results for $f" >> $fn 8 | ./tool.py $f >> $fn 9 | echo "" >> $fn 10 | done 11 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/model_suffix_analysis/modelsuffix.txt: -------------------------------------------------------------------------------- 1 | Results for reports/360.entropy_report.encrypted.filtered 2 | [('mgbeautify_1_2_2_model', 1), ('param', 1), ('paddle', 1), ('filename', 1), ('pb', 1), ('safecloud_model_1_1_6', 1), ('safecloud_model_1_0_3', 1), ('safecloud_model_1_0_5', 1), ('fd-model', 1), ('faceplusplus_model', 1), ('facepp_model_liveness', 1), ('androidmodel', 1), ('ocrModel', 1), ('bankcard/model/dtc_model_bank_card_scd_64_sparse', 2), ('bankcard/model/cdnn_model_bank_card_32_sparse', 2), ('bankcard/model/dtc_model_bank_card_fst_64_sparse', 2), ('livenessmodel', 2), ('mdl', 3), ('dfmodel', 3), ('MegIDCardQuality_model', 3), ('face_model', 3), ('MegLive_model', 4), ('utf8', 4), ('bundle/model/dtc_model_bank_card_fst_64', 5), ('bundle/model/dtc_model_bank_card_scd_64', 5), ('bundle/model/cdnn_model_bank_card_32', 5), ('caffemodel', 9), ('params', 13), ('dat', 18), ('bundle', 58), ('zip', 102), ('binary', 152), ('bin', 236), ('model', 1253)] 3 | 4 | Results for reports/360.entropy_report.filtered 5 | [('gender-model', 1), ('lid_model/W18', 1), ('flutter_assets/assets/business/sphinx/models/en-us/mdef', 1), ('vert', 1), ('bodylandmark-model', 1), ('models/recognition/model_latin', 1), ('nmg01-51', 1), ('sg-model', 1), ('classifier', 1), ('xnntflite', 1), ('models/recognition/model_jp', 1), ('safecloud_model_1_1_6', 1), ('paddle', 1), ('filename', 1), ('androidmodel', 1), ('models/recognition/model', 1), ('fa-model', 1), ('bd', 1), ('smfb', 1), ('dict_', 1), ('model_v4', 1), ('model_v5', 1), ('flutter_assets/assets/business/sphinx/models/en-us/variances', 1), ('ori', 1), ('lid_model/W20', 1), ('fd-model', 1), ('hairseg-model', 1), ('models/recognition/label_en', 1), ('lid_model/fc_param32', 1), ('flutter_assets/assets/business/sphinx/models/en-us/means', 1), ('mgbeautify_1_2_2_model', 1), ('data', 1), ('gpb', 1), ('lid_model/fc_param23', 1), ('lid_model/fc_param22', 1), ('lid_model/fc_param26', 1), ('sceneclassify-model', 1), ('lid_model/conv_param09', 1), ('models/detection/fast_model', 1), ('lid_model/conv_param05', 1), ('lid_model/conv_param01', 1), ('svm', 1), ('faceplusplus_model', 1), ('models/recognition/model_en', 1), ('model/faceFeatures/half16_wowo-v1-fr-model', 1), ('models/recognition/label_jp', 1), ('lid_model/conv_param13', 1), ('raw', 1), ('portrait/human_model_post', 1), ('lid_model/U20', 1), ('plist', 1), ('enc', 1), ('facepp_model_liveness', 1), ('flutter_assets/assets/business/sphinx/models/en-us/sendump', 1), ('lite', 1), ('frag', 1), ('age-model', 1), ('safecloud_model_1_0_3', 1), ('safecloud_model_1_0_5', 1), ('lid_model/U18', 1), ('models/recognition/model_hindi', 1), ('model/fd_00002_2', 1), ('model/fd_00002_3', 1), ('model/fd_00002_1', 1), ('infer-detect/model', 1), ('models/recognition/label', 1), ('ocrModel', 1), ('bankcard/model/dtc_model_bank_card_scd_64_sparse', 2), ('mod', 2), ('bankcard/model/dtc_model_bank_card_fst_64_sparse', 2), ('bankcard/model/cdnn_model_bank_card_32_sparse', 2), ('dic', 2), ('res', 2), ('livenessmodel', 2), ('mbmodel', 2), ('tfl', 2), ('KOUBEI@home_wifi_detect@37', 2), ('jsbundle', 2), ('dfmodel', 3), ('2', 3), ('cfg/model/ges_mode', 3), ('face_model', 3), ('rapidnetmodel_nhwc', 3), ('rapidnetproto_nhwc', 3), ('MegIDCardQuality_model', 3), ('MegLive_model', 4), ('regressor', 4), ('mmux', 4), ('bundle/model/cdnn_model_bank_card_32', 5), ('bundle/model/dtc_model_bank_card_fst_64', 5), ('bundle/model/dtc_model_bank_card_scd_64', 5), ('utf8', 5), ('proto', 5), ('dae', 6), ('prototxt', 6), ('wav', 6), ('traineddata', 8), ('conv_model', 10), ('vnmodel', 10), ('lstm_model', 10), ('caffemodel', 11), ('rpnproto', 12), ('1', 12), ('param', 15), ('rapidnetproto_nchw_mod', 15), ('rapidnetmodel_nchw', 15), ('pbtxt', 15), ('rpdm', 16), ('params', 18), ('rapidnetmodel', 19), ('tflite', 42), ('pb', 42), ('mdl', 52), ('bundle', 58), ('zip', 113), ('dat', 201), ('binary', 212), ('rpnmodel', 257), ('model', 1540), ('bin', 1860)] 6 | 7 | Results for reports/gplay.entropy_report.encrypted.filtered 8 | [('zip', 1), ('param', 1), ('filename', 1), ('pb', 1), ('bin', 10), ('zzip', 11), ('model', 39)] 9 | 10 | Results for reports/gplay.entropy_report.filtered 11 | [('raw', 1), ('zip', 1), ('filename', 1), ('mtnet', 1), ('lite', 1), ('regressor', 1), ('traineddata', 1), ('7_class_model', 2), ('prototxt', 2), ('binary', 2), ('param', 2), ('cdnn', 2), ('3_class_model', 2), ('mean', 2), ('so', 3), ('caffemodel', 8), ('proto', 10), ('pb', 11), ('zzip', 11), ('tfl', 22), ('model', 59), ('bin', 64), ('tflite', 78)] 12 | 13 | Results for reports/mengweidl.entropy_report.encrypted.filtered 14 | [('mdl', 1), ('filename', 1), ('param', 1), ('mgbeautify_1_2_2_model', 1), ('teaf', 1), ('bundle', 2), ('androidmodel', 3), ('pb', 4), ('eaf', 5), ('any', 6), ('bin', 8), ('enc', 9), ('model', 68)] 15 | 16 | Results for reports/mengweidl.entropy_report.filtered 17 | [('models/recognition/label_jp', 1), ('mgbeautify_1_2_2_model', 1), ('models/recognition/model_jp', 1), ('voices/en-us/jmp/lstm_speech_model_nn_config', 1), ('zip', 1), ('filename', 1), ('models/recognition/model', 1), ('voices/en-us/sfg/lstm_speech_model_nn_config', 1), ('dat', 1), ('models/recognition/model_latin', 1), ('voices/en-us/jmp/lstm_dur_model_nn_config', 1), ('models/recognition/model_hindi', 1), ('voices/en-us/hol/lstm_speech_model_nn_config', 1), ('teaf', 1), ('pbtxt', 1), ('voices/en-us/hol/lstm_dur_model_nn_config', 1), ('air', 1), ('voices/en-us/sfg/lstm_dur_model_nn_config', 1), ('plist', 1), ('models/detection/detection_model', 1), ('models/recognition/label', 1), ('cfg/model/ges_mode', 1), ('mdl', 2), ('tensorflow', 2), ('bundle', 2), ('regressor', 2), ('nn_config', 2), ('prototxt', 3), ('pbd', 3), ('androidmodel', 3), ('RF', 4), ('eaf', 5), ('params', 5), ('any', 6), ('csv', 6), ('tflite', 7), ('7_class_model', 7), ('cdnn', 7), ('3_class_model', 7), ('mean', 7), ('binary', 8), ('caffemodel', 8), ('enc', 9), ('param', 9), ('proto', 12), ('traineddata', 45), ('pb', 82), ('model', 117), ('bin', 254)] 18 | 19 | Results for reports/tencent.entropy_report.encrypted.filtered 20 | [('mp3', 1), ('filename', 1), ('face_model', 1), ('xbin', 1), ('faceplusplus_model', 1), ('facepp_model_liveness', 1), ('safecloud_model_1_1_6', 1), ('bankcard/model/dtc_model_bank_card_scd_64_sparse', 2), ('binary', 2), ('MegIDCardQuality_model', 2), ('MegLive_model', 2), ('bankcard/model/cdnn_model_bank_card_32_sparse', 2), ('bankcard/model/dtc_model_bank_card_fst_64_sparse', 2), ('livenessmodel', 2), ('bundle/model/dtc_model_bank_card_fst_64', 3), ('bundle/model/dtc_model_bank_card_scd_64', 3), ('bundle/model/cdnn_model_bank_card_32', 3), ('dat', 6), ('bundle', 7), ('zip', 8), ('bin', 27), ('model', 121)] 21 | 22 | Results for reports/tencent.entropy_report.filtered 23 | [('models/recognition/label_jp', 1), ('7_class_model', 1), ('lid_model/conv_param13', 1), ('seg', 1), ('mp3', 1), ('lid_model/U20', 1), ('safecloud_model_1_1_6', 1), ('models/recognition/model_jp', 1), ('rapidnetproto_nhwc', 1), ('rpnproto', 1), ('lid_model/W18', 1), ('filename', 1), ('cdnn', 1), ('lid_model/fc_param23', 1), ('models/recognition/model', 1), ('params', 1), ('facepp_model_liveness', 1), ('lid_model/conv_param05', 1), ('lid_model/conv_param09', 1), ('smfb', 1), ('models/detection/fast_model', 1), ('lid_model/fc_param26', 1), ('lid_model/conv_param01', 1), ('models/recognition/model_latin', 1), ('lid_model/U18', 1), ('lid_model/W20', 1), ('lid_model/fc_param22', 1), ('xbin', 1), ('data', 1), ('faceplusplus_model', 1), ('2', 1), ('3_class_model', 1), ('models/recognition/model_hindi', 1), ('models/recognition/model_en', 1), ('models/recognition/label_en', 1), ('face_model', 1), ('dic', 1), ('lid_model/fc_param32', 1), ('jsc', 1), ('res', 1), ('rapidnetmodel_nhwc', 1), ('KOUBEI@home_wifi_detect@37', 1), ('models/recognition/label', 1), ('cfg/model/ges_mode', 1), ('mean', 1), ('MegLive_model', 2), ('mbmodel', 2), ('mdl', 2), ('bankcard/model/dtc_model_bank_card_scd_64_sparse', 2), ('MegIDCardQuality_model', 2), ('rpdm', 2), ('rapidnetmodel_nchw', 2), ('rapidnetproto_nchw_mod', 2), ('mod', 2), ('proto', 2), ('bankcard/model/cdnn_model_bank_card_32_sparse', 2), ('bankcard/model/dtc_model_bank_card_fst_64_sparse', 2), ('livenessmodel', 2), ('bundle/model/dtc_model_bank_card_scd_64', 3), ('bundle/model/dtc_model_bank_card_fst_64', 3), ('bundle/model/cdnn_model_bank_card_32', 3), ('tflite', 4), ('rapidnetmodel', 4), ('1', 4), ('binary', 5), ('param', 5), ('vnmodel', 5), ('dae', 6), ('traineddata', 6), ('bundle', 7), ('pb', 8), ('dat', 12), ('pbtxt', 15), ('zip', 16), ('rpnmodel', 54), ('model', 218), ('bin', 416)] 24 | 25 | Results for reports/us.encrypted.filtered 26 | [('zip', 1), ('mdl', 1), ('filename', 1), ('mgbeautify_1_2_2_model', 1), ('teaf', 1), ('param', 2), ('bundle', 2), ('npz', 2), ('androidmodel', 3), ('pb', 5), ('eaf', 5), ('any', 6), ('enc', 9), ('zzip', 11), ('bin', 18), ('webp', 33), ('model', 106)] 27 | 28 | Results for reports/us.entropy_report.encrypted.filtered 29 | [('zip', 1), ('mdl', 1), ('mgbeautify_1_2_2_model', 1), ('teaf', 1), ('param', 2), ('bundle', 2), ('androidmodel', 3), ('pb', 5), ('eaf', 5), ('any', 6), ('enc', 9), ('zzip', 11), ('bin', 19), ('model', 106)] 30 | 31 | Results for reports/us.entropy_report.filtered 32 | [('models/recognition/label_jp', 1), ('mgbeautify_1_2_2_model', 1), ('raw', 1), ('models/recognition/model_jp', 1), ('filename', 1), ('plist', 1), ('voices/en-us/jmp/lstm_speech_model_nn_config', 1), ('voices/en-us/hol/lstm_speech_model_nn_config', 1), ('mtnet', 1), ('voices/en-us/sfg/lstm_speech_model_nn_config', 1), ('lite', 1), ('models/recognition/model', 1), ('dat', 1), ('models/recognition/model_latin', 1), ('voices/en-us/jmp/lstm_dur_model_nn_config', 1), ('models/recognition/model_hindi', 1), ('teaf', 1), ('pbtxt', 1), ('voices/en-us/hol/lstm_dur_model_nn_config', 1), ('air', 1), ('voices/en-us/sfg/lstm_dur_model_nn_config', 1), ('models/detection/detection_model', 1), ('models/recognition/label', 1), ('cfg/model/ges_mode', 1), ('mdl', 2), ('bundle', 2), ('tensorflow', 2), ('zip', 2), ('nn_config', 2), ('regressor', 3), ('pbd', 3), ('so', 3), ('androidmodel', 3), ('RF', 4), ('prototxt', 5), ('params', 5), ('eaf', 5), ('any', 6), ('csv', 6), ('7_class_model', 9), ('enc', 9), ('cdnn', 9), ('3_class_model', 9), ('mean', 9), ('binary', 10), ('param', 11), ('zzip', 11), ('caffemodel', 16), ('proto', 22), ('tfl', 22), ('traineddata', 46), ('tflite', 83), ('pb', 93), ('model', 175), ('bin', 318)] 33 | 34 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/model_suffix_analysis/tool.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | import operator 4 | fn = sys.argv[1] 5 | a = open(fn).readlines() 6 | b = {} 7 | for line in a: 8 | fields = line.split()[4] 9 | ends = fields.split('.')[-1] 10 | if ends not in b: 11 | b[ends] = 1 12 | else: 13 | tmp = b[ends] 14 | b[ends] = tmp + 1 15 | 16 | sorted_x = sorted(b.items(), key=operator.itemgetter(1)) 17 | print sorted_x 18 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/offline_model_update_analysis/offline_model_update_analyze.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import argparse 3 | import os 4 | 5 | """ 6 | input: 7 | 1. general reports 8 | 2. filtered package names 9 | Steps: 10 | 1. extract all app package name that has confirmed ml library 11 | 2. check whether the app package is in the package list that has confirmed models. 12 | """ 13 | 14 | def extract_pkg_with_confirmed_ml_lib(report_file): 15 | lines = open(report_file).readlines() 16 | lib_names = ['tensorflow','caffe','sensetime','uls','mxnet','mace','ncnn'] 17 | pkg_list = [] 18 | for l in lines: 19 | fields = l.split() 20 | for lib in lib_names: 21 | if lib in l: 22 | if len(fields) < 4: 23 | print("skip:%s"%(l)) 24 | continue 25 | if fields[3] not in pkg_list: 26 | pkg_list.append(fields[3]) 27 | break # break if already found one 28 | return pkg_list 29 | 30 | def check_pkg_list(found_pkg, given_pkg): 31 | suspect_pkg = [] 32 | for pkg in found_pkg: 33 | if pkg not in given_pkg: 34 | suspect_pkg.append(pkg) 35 | return suspect_pkg 36 | 37 | if __name__ == "__main__": 38 | parser = argparse.ArgumentParser(prog='report_analyzer') 39 | parser.add_argument('-r', '--report-path', default = '360.entropy_report', 40 | help = 'raw report path(unfiltered)') 41 | parser.add_argument('-p', '--package-path', default = '360.entropy_report.filtered.packages', 42 | help = 'filtered package list') 43 | args = parser.parse_args() 44 | report_file = args.report_path 45 | given_package_lines = open(args.package_path).readlines() 46 | given_package = [] 47 | for l in given_package_lines: 48 | given_package.append(l.strip()) 49 | 50 | 51 | package_list = extract_pkg_with_confirmed_ml_lib(report_file) 52 | suspect_package = check_pkg_list(package_list, given_package) 53 | for p in suspect_package: 54 | print(p) 55 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/offline_model_update_analysis/offline_model_update_analyzer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./offline_model_update_analyze.py -r 360.entropy_report -p 360.entropy_report.filtered.packages | wc -l 3 | ./offline_model_update_analyze.py -r tencent.entropy_report -p tencent.entropy_report.filtered.packages | wc -l 4 | ./offline_model_update_analyze.py -r us.entropy_report -p us.entropy_report.filtered.packages |wc -l 5 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reportanalyzer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import logging 3 | import argparse 4 | import subprocess 5 | import os 6 | class ReportAnalyzer: 7 | """ 8 | analyze entropy_report generated by ModelXRay 9 | """ 10 | def __init__(self, entropy_report, args): 11 | self._er = entropy_report 12 | if args.filter_encrypted is True: 13 | self._res = entropy_report + '.encrypted.filtered' 14 | else: 15 | self._res = entropy_report + '.filtered' 16 | self._rp = open(entropy_report,'r').readlines() 17 | self._args = args 18 | pass 19 | def get_apk_path(self, pkg_name): 20 | shell_cmd = "ag -g %s %s" % (pkg_name, self._args.apk_path) 21 | res = self.run_w(shell_cmd) 22 | return res 23 | def filter_encrypt(self, line): 24 | fields = line.split() 25 | ent = fields[0] 26 | if '7.99' in ent: 27 | return True 28 | else: 29 | return False 30 | 31 | def filter_filesz(self, line): 32 | fields = line.split() 33 | size = fields[2] 34 | if size.endswith('K'): 35 | #print("size:"+size) 36 | f = float(size[:-1]) # get ride of 'K' or 'M' 37 | if f < 5.0: 38 | return False 39 | else: 40 | return True 41 | else: 42 | return True 43 | def filter_other(self, line): 44 | fields = line.split() 45 | if len(fields) == 6: 46 | if fields[5].split(':')[0] == 'other': 47 | return True 48 | else: 49 | return False 50 | else: 51 | return False 52 | def filter_fw(self, line): 53 | # rule1: if no framework or only 'other' fraemwork, only keep model keywords 54 | fields = line.split() 55 | # whitelist 56 | if 'AliNN' in line: 57 | return True 58 | 59 | # check framework 60 | if len(fields) <= 5: 61 | return False 62 | elif len(fields) == 6: 63 | if fields[5].split(':')[0] == 'other': 64 | return False 65 | else: 66 | return True 67 | else: 68 | return True 69 | def filter_filetype(self, line): 70 | # filter out known non-model types like txt,lua, 71 | # if endswith mp3, only when path contains model keywords 72 | fields = line.split() 73 | fn = fields[4] 74 | ends = fn.split('.')[-1] 75 | if ends in ['Ew_inv','npz','qmltypes','b3d','x','blend','ffa','ffm','skel','nmf','so''Ew_inv','ExportJson','Ew','sqlite3','webp','irf','csp','pts','config','js','dll','assetbundle','db','bytes','is','often','U','g3dj','xd','tga','fs','is','yaml','manis','bf2','fbx','yml','emd','html','lm','dpm','cade','md']: 76 | return False 77 | if fn.endswith('.mp3') or fn.endswith('.mp4') or fn.endswith('.zip') or fn.endswith('.zzip'): 78 | if 'model' not in fn: 79 | return False 80 | else: 81 | return True 82 | elif fn.endswith('.lua') or fn.endswith('.txt') or fn.endswith('.arf') or fn.endswith('.obj'): 83 | return False 84 | else: 85 | return True 86 | def select_other_framework(self): 87 | ori = self._rp 88 | 89 | other_pass = filter(self.filter_other, ori) 90 | other_pkg_num = self.extract_unique_pkgname(other_pass) 91 | 92 | print("pure unique other framework apps:" + str(other_pkg_num)) 93 | 94 | def filter_out_non_ml(self): 95 | vendor_name = os.path.basename(self._er)[:-14] 96 | 97 | ori = self._rp[1:] 98 | ori_pkg_num = self.extract_unique_pkgname(ori) 99 | 100 | fw_pass = filter(self.filter_fw, ori) 101 | fw_pkg_num = self.extract_unique_pkgname(fw_pass) 102 | 103 | sz_pass = filter(self.filter_filesz, fw_pass) 104 | sz_pkg_num = self.extract_unique_pkgname(sz_pass) 105 | 106 | tp_pass = filter(self.filter_filetype, sz_pass) 107 | tp_pkg_num = self.extract_unique_pkgname(tp_pass) 108 | 109 | if self._args.filter_encrypted is True: 110 | en_pass = filter(self.filter_encrypt, tp_pass) 111 | en_pkg_num = self.extract_unique_pkgname(en_pass) 112 | res_pass = en_pass 113 | else: 114 | en_pass = [] 115 | en_pkg_num = [] 116 | res_pass = tp_pass 117 | 118 | 119 | logging.info("model files vendor:%s original: %d, after fw_pass:%d, after sz_pass:%d, after tp_pass:%d en_pass:%d" %(vendor_name, len(ori), len(fw_pass), len(sz_pass), len(tp_pass), len(en_pass))) 120 | logging.info("app numbers vendor:%s original: %d, after fw_pass:%d, after sz_pass:%d, after tp_pass:%d en_pass:%d" %(vendor_name, len(ori_pkg_num), len(fw_pkg_num), len(sz_pkg_num), len(tp_pkg_num), len(en_pkg_num))) 121 | print("model files vendor:%s original: %d, after fw_pass:%d, after sz_pass:%d, after tp_pass:%d en_pass:%d" %(vendor_name, len(ori), len(fw_pass), len(sz_pass), len(tp_pass), len(en_pass))) 122 | print("app numbers vendor:%s original: %d, after fw_pass:%d, after sz_pass:%d, after tp_pass:%d en_pass:%d" %(vendor_name, len(ori_pkg_num), len(fw_pkg_num), len(sz_pkg_num), len(tp_pkg_num), len(en_pkg_num))) 123 | wh = open(self._res, 'w') 124 | wh.write(self._rp[0]) 125 | wh.write(''.join(res_pass)) 126 | pass 127 | 128 | def print_unique_pkgname(self, pkgnames): 129 | for p in pkgnames: 130 | if self._args.search_apkpath is True: 131 | ap = self.get_apk_path(p) 132 | logging.debug("%s:%s"%(p,ap)) 133 | print("%s:%s"%(p,ap)) 134 | else: 135 | logging.debug(p) 136 | print(p) 137 | pass 138 | def extract_unique_pkgname(self, report): 139 | pkgnames = [] 140 | for line in report[1:]: 141 | fields = line.split() 142 | 143 | if len(fields) <=4: 144 | continue 145 | # filter non-encryption app 146 | #ent = fields[0] 147 | #if '7.99' not in ent: 148 | # continue 149 | 150 | pkgname = fields[3] 151 | if pkgname == 'pkgname': 152 | continue 153 | elif pkgname in pkgnames: 154 | continue 155 | else: 156 | pkgnames.append(pkgname) 157 | return pkgnames 158 | 159 | def extract_unique_libraries(self): 160 | if self._rp[0].split()[0] == 'entropy': 161 | report = self._rp[1:] 162 | else: 163 | report = self._rp 164 | 165 | unilibs = {} 166 | for line in report: 167 | fields = line.split() 168 | if len(fields) < 6: 169 | continue 170 | else: 171 | fwlibs = fields[5:] 172 | 173 | for fwlib in fwlibs: 174 | if ':' not in fwlib: 175 | continue 176 | libs = fwlib.split(':')[1].split(',') 177 | for lib in libs: 178 | if lib in unilibs: 179 | applist = unilibs[lib] 180 | if fields[3] in applist: 181 | continue 182 | else: 183 | applist.append(fields[3]) 184 | else: 185 | applist = [fields[3]] 186 | unilibs[lib] = applist 187 | 188 | return unilibs 189 | def printlibdic(self, libdic): 190 | for lib in libdic: 191 | print("%s,%d,%s"%(lib, len(libdic[lib]), ','.join(libdic[lib]))) 192 | 193 | def run_wo(self, shell_cmd): 194 | """ 195 | run shell cmds without result returned 196 | """ 197 | logging.debug("executing shell cmd : " + shell_cmd) 198 | res = subprocess.call(shell_cmd, shell=True) 199 | if res != 0: 200 | logging.error("error in executing cmd :" + shell_cmd) 201 | pass 202 | def run_w(self, shell_cmd): 203 | """ 204 | run shell cmds with result returned 205 | """ 206 | logging.debug("executing shell cmd : " + shell_cmd) 207 | try: 208 | res = os.popen(shell_cmd).read().strip() 209 | except: 210 | logging.error("error in executing : " + shell_cmd) 211 | res = "" 212 | return res 213 | def analyze(self): 214 | if self._args.package_name is True: 215 | pkgnames = self.extract_unique_pkgname(self._rp[1:]) 216 | self.print_unique_pkgname(pkgnames) 217 | if self._args.filter_out is True: 218 | self.filter_out_non_ml() 219 | if self._args.filter_other is True: 220 | self.select_other_framework() 221 | if self._args.unique_libraries is True: 222 | unilibs = self.extract_unique_libraries() 223 | self.printlibdic(unilibs) 224 | pass 225 | 226 | if __name__ == '__main__': 227 | parser = argparse.ArgumentParser(prog='reportanalyzer') 228 | parser.add_argument('entropy_report', 229 | help = 'path to entropy_report') 230 | parser.add_argument('-p', '--package-name', action='store_true', 231 | help = 'extract unique package name') 232 | parser.add_argument('-a', '--apk-path', default = '/home/ruimin/nfs/MobileDL/data/raw_apks/', 233 | help = 'extract unique package name') 234 | parser.add_argument('-f', '--filter-out', action='store_true', 235 | help = 'use file size, framework name, file type to filter out non-model files') 236 | parser.add_argument('-s', '--search-apkpath', action='store_true', 237 | help = 'search for apk path on server') 238 | parser.add_argument('-e', '--filter-encrypted', action='store_true', 239 | help = 'apply encryption filter') 240 | parser.add_argument('-o', '--filter-other', action='store_true', 241 | help = 'apply other filter to select apps that only has other framework') 242 | parser.add_argument('-l', '--unique-libraries', action='store_true', 243 | help = 'extract unique libraries') 244 | 245 | args = parser.parse_args() 246 | logging.basicConfig(filename='reportanalyzer.log', level=logging.INFO) 247 | RA = ReportAnalyzer(args.entropy_report, args) 248 | RA.analyze() 249 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/gplay.entropy_report.encrypted.filtered.packages: -------------------------------------------------------------------------------- 1 | com.asiainno.uplive.aiglamour 2 | com.camera.galaxyx 3 | com.camera.one.s10.camera 4 | com.bitstrips.imoji 5 | com.dongby.android.mmshow.inter 6 | com.dailyselfie.newlook.studio 7 | com.gokoo.hamo 8 | com.grammarly.android.keyboard 9 | com.littlebee.beauty.selfie.camera 10 | com.icameraapple.ioscamera.xscamera.icamera 11 | com.huya.nimo 12 | com.pure.camera.detector.road 13 | com.unico.live 14 | ctrip.android.view 15 | sg.bigo.date 16 | video.like 17 | io.trade.tradeio.eu 18 | org.dayup.stocks 19 | ru.mail 20 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/gplay.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.nick.android.nickjr 2 | com.naver.vapp 3 | com.androidworks.videocalling 4 | app.vivoo.io 5 | com.asiainno.uplive.aiglamour 6 | com.camera.galaxyx 7 | com.camera.one.s10.camera 8 | com.beauty.photoedit.camera.makeup 9 | com.camscanner.documentscanner.pdfreader 10 | com.bitstrips.imoji 11 | com.badoo.mobile 12 | com.familyfit.google.baduanjin 13 | com.draw.now.drawit 14 | com.eraserphoto.cutout.backgroundeditor 15 | com.fishbrain.app 16 | com.face.predictor.fantastic.face.secret 17 | com.dongby.android.mmshow.inter 18 | com.dazz.hoop 19 | com.framy.placey 20 | com.cut.cutout.photo.background.editor 21 | com.draw.clash.drawit 22 | com.dailyselfie.newlook.studio 23 | com.gokoo.hamo 24 | com.google.audio.hearing.visualization.accessibility.scribe 25 | com.grammarly.android.keyboard 26 | com.google.android.apps.photos 27 | com.geico.mobile 28 | com.google.android.apps.cultural 29 | com.google.android.apps.photosgo 30 | com.futureme.palmreader 31 | com.lyrebirdstudio.face_camera 32 | com.littlebee.beauty.selfie.camera 33 | com.icameraapple.ioscamera.xscamera.icamera 34 | com.live.videochat.india 35 | com.huya.nimo 36 | com.magicvcam.super.selfiecam.camera 37 | com.pure.camera.detector.road 38 | com.photo.pipcam.eidtor.camera 39 | com.senegence.android.senelooks 40 | com.shutterfly 41 | com.photoeditor.imagecutter.cameffect 42 | com.tyndale.filament 43 | com.thmobile.sketchphotomaker 44 | com.unico.live 45 | com.ua.building.Lokicraft 46 | com.text.metal.effect 47 | com.ua.toybuilding.survival 48 | face.hw.com.facehub 49 | ctrip.android.view 50 | cutcut.cut.out.paste.background.remove.photo.cutout 51 | ProjectXAndroid.imbin 52 | ProjectXAndroidAC.imbin 53 | com.vyroai.AiBlurEditor 54 | facetechstudio.future.me 55 | com.waze 56 | co.theguru.dali 57 | com.usablenet.mobile.walgreen 58 | ir.hafhashtad.android780 59 | stickerwhatsapp.com.stickers 60 | sg.bigo.date 61 | video.like 62 | valencia.magic.selfie.makeup.camer.photo.editor 63 | io.trade.tradeio.eu 64 | org.dayup.stocks 65 | ru.mail 66 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/gplay.entropy_report.libinfo.csv: -------------------------------------------------------------------------------- 1 | libctrip_android_train.so,1,ctrip.android.view 2 | libvpsdk.so,2,sg.bigo.date,video.like 3 | libvenus.so,2,com.senegence.android.senelooks,video.like 4 | libtess.so,1,com.camscanner.documentscanner.pdfreader 5 | libeffect_core.so,1,com.magicvcam.super.selfiecam.camera 6 | libctrip_android_destination.so,1,ctrip.android.view 7 | libbigonn.so,2,sg.bigo.date,video.like 8 | libnama.so,2,com.badoo.mobile,com.live.videochat.india 9 | libctrip_android_flight_xproduct.so,1,ctrip.android.view 10 | libwaze.so,1,com.waze 11 | libopencv_java3.so,2,com.camscanner.documentscanner.pdfreader,facetechstudio.future.me 12 | libtraeimp-rtmp-armeabi.so,1,com.live.videochat.india 13 | libctrip_android_customerservice.so,1,ctrip.android.view 14 | libstellite_http_client.so,1,com.naver.vapp 15 | libtensorflowlite_gpu_jni.so,1,com.familyfit.google.baduanjin 16 | libnativeai.so,2,com.eraserphoto.cutout.backgroundeditor,com.photoeditor.imagecutter.cameffect 17 | libVuforia.so,2,ProjectXAndroid.imbin,co.theguru.dali 18 | libCnnSegment.so,1,video.like 19 | libFaceSDK.so,2,com.beauty.photoedit.camera.makeup,com.photo.pipcam.eidtor.camera 20 | libtensorflow_inference.so,7,com.bitstrips.imoji,com.cut.cutout.photo.background.editor,com.shutterfly,com.thmobile.sketchphotomaker,cutcut.cut.out.paste.background.remove.photo.cutout,com.vyroai.AiBlurEditor,ir.hafhashtad.android780 21 | libulsCppTracker_unity_lite.so,1,co.theguru.dali 22 | libijkffmpeg.so,1,com.huya.nimo 23 | libbvtMobile.so,2,sg.bigo.date,video.like 24 | libyylivesdk4cloud.so,1,com.gokoo.hamo 25 | libsmsdk.so,3,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.unico.live 26 | liborangefilterjni.so,1,com.gokoo.hamo 27 | libRSSupport.so,1,cutcut.cut.out.paste.background.remove.photo.cutout 28 | libj2v8.so,1,com.shutterfly 29 | libSkyFilter.so,1,valencia.magic.selfie.makeup.camer.photo.editor 30 | libcaffe.so,1,com.dailyselfie.newlook.studio 31 | libctrip_android_tour_bussiness.so,1,ctrip.android.view 32 | libjingle_peerconnection_so.so,1,com.live.videochat.india 33 | libfotobeautyengine.so,1,valencia.magic.selfie.makeup.camer.photo.editor 34 | libActionId.so,1,video.like 35 | libavformat-57.so,3,com.camera.galaxyx,com.camera.one.s10.camera,com.icameraapple.ioscamera.xscamera.icamera 36 | libcronet.63.0.3203.0.so,1,ctrip.android.view 37 | libtoyger.so,1,ctrip.android.view 38 | libtraeimp-rtmp-armeabi-v7a.so,1,com.live.videochat.india 39 | libulsCppTracker_native_lite.so,2,com.nick.android.nickjr,co.theguru.dali 40 | libgoogle_recognizer_with_speakerid_jni.so,1,com.google.audio.hearing.visualization.accessibility.scribe 41 | libiconv.so,1,ir.hafhashtad.android780 42 | libctrip_android_livestream.so,1,ctrip.android.view 43 | libctrip_android_train_part.so,1,ctrip.android.view 44 | libctrip_android_destination_strategy.so,1,ctrip.android.view 45 | libgame.so,3,com.mastercraft.game.explorationn,com.ua.building.Lokicraft,com.ua.toybuilding.survival 46 | liblookalike_shared_jni.so,1,com.google.android.apps.cultural 47 | libLiveDriverSDK.so,2,ProjectXAndroid.imbin,ProjectXAndroidAC.imbin 48 | libjni_liveness_interactive.so,1,org.dayup.stocks 49 | libncnn_style.0.2.so,1,valencia.magic.selfie.makeup.camer.photo.editor 50 | libcardrecognizer.so,1,io.trade.tradeio.eu 51 | libagora-rtc-sdk-jni.so,1,com.badoo.mobile 52 | libst_mobile.so,14,com.naver.vapp,com.asiainno.uplive.aiglamour,com.camera.galaxyx,com.camera.one.s10.camera,com.dongby.android.mmshow.inter,com.dailyselfie.newlook.studio,com.gokoo.hamo,com.littlebee.beauty.selfie.camera,com.icameraapple.ioscamera.xscamera.icamera,com.huya.nimo,com.pure.camera.detector.road,com.unico.live,ctrip.android.view,video.like 53 | libctrip_android_pay.so,1,ctrip.android.view 54 | libzegoliveroom.so,3,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.unico.live 55 | libstmobile_jni.so,9,com.naver.vapp,com.asiainno.uplive.aiglamour,com.dongby.android.mmshow.inter,com.dailyselfie.newlook.studio,com.gokoo.hamo,com.huya.nimo,com.unico.live,ctrip.android.view,video.like 56 | libana-sdk.so,1,com.magicvcam.super.selfiecam.camera 57 | libulsTracker_native.so,1,com.lyrebirdstudio.face_camera 58 | libMTLabFace.so,1,com.magicvcam.super.selfiecam.camera 59 | libtensorflowlite_jni.so,9,app.vivoo.io,com.familyfit.google.baduanjin,com.draw.now.drawit,com.fishbrain.app,com.dazz.hoop,com.draw.clash.drawit,com.google.audio.hearing.visualization.accessibility.scribe,com.live.videochat.india,com.tyndale.filament 60 | libstidinteractive_liveness.so,1,org.dayup.stocks 61 | libcaffe_jni.so,1,com.dailyselfie.newlook.studio 62 | libjsc.so,1,com.geico.mobile 63 | libface_detector_v2_jni.so,10,com.androidworks.videocalling,com.face.predictor.fantastic.face.secret,com.framy.placey,com.geico.mobile,com.futureme.palmreader,com.live.videochat.india,com.text.metal.effect,face.hw.com.facehub,com.usablenet.mobile.walgreen,stickerwhatsapp.com.stickers 64 | libbdEASRAndroid.so,1,ctrip.android.view 65 | libctrip_android_chat.so,1,ctrip.android.view 66 | libctrip_android_destination_story.so,1,ctrip.android.view 67 | libSegUpper.so,1,video.like 68 | libvoip_armv7-a-neon.so,1,ru.mail 69 | libnative.so,2,com.google.android.apps.photos,com.google.android.apps.photosgo 70 | libmspell-jni.so,1,com.grammarly.android.keyboard 71 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/mengweidl.entropy_report.encrypted.filtered.packages: -------------------------------------------------------------------------------- 1 | com.nhn.android.webtoon 2 | com.asiainno.uplive 3 | com.xingin.xhs 4 | com.concur.breeze 5 | com.muper.radella 6 | sweetsnap.lite.snapchat 7 | com.camera.galaxyx 8 | com.galaxys.camera4k 9 | com.mico 10 | io.anyline.examples.store 11 | com.bitstrips.imoji 12 | com.huanshi.awe.another 13 | com.kwai.video 14 | com.naver.vapp 15 | com.linecorp.b612.android 16 | com.campmobile.snow 17 | com.fabbyhair.android 18 | com.uc.vmate 19 | com.grammarly.android.keyboard 20 | jp.naver.line.android 21 | com.joeware.android.gpulumera 22 | video.like 23 | com.baseapp.eyeem 24 | com.asiainno.uplive.yuanfen 25 | com.icomedias.hybridforms 26 | com.cam001.selfie 27 | sweet.selfie.lite 28 | com.duowan.supervideo 29 | com.sina.weibo 30 | com.camera.s9.camera 31 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/mengweidl.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.iart.camera.photo 2 | com.pic.photoeditor 3 | com.roberts.croberts.mantis 4 | com.nhn.android.webtoon 5 | com.asiainno.uplive 6 | com.xingin.xhs 7 | pip.face.selfie.beauty.camera.photo.editor 8 | com.concur.breeze 9 | com.muper.radella 10 | sweetsnap.lite.snapchat 11 | com.camera.galaxyx 12 | com.fotoable.faceswap.c403 13 | ch.zhaw.facerecognition 14 | com.magicv.airbrush 15 | com.urbandroid.sleep 16 | com.galaxys.camera4k 17 | com.facebook.talk 18 | com.best.photoeditor.beautyeditorpro 19 | com.azarlive.android 20 | horse.schvung.equilab 21 | cn.jingling.motu.photowonder 22 | com.fotoable.enstyle 23 | com.joytunes.simplypiano 24 | com.mico 25 | com.seefoodtechnologies.nothotdog 26 | com.cyberlink.youcammakeup 27 | com.total.photostudio 28 | com.pic.pipcamera 29 | com.lyrebirdstudio.makeup 30 | com.youdao.hindict 31 | com.pipcamera.activity 32 | io.anyline.examples.store 33 | com.homesecurity.firstone 34 | com.google.android.googlequicksearchbox 35 | com.hefe.pro.editor 36 | com.bitstrips.imoji 37 | com.video.chat.spark 38 | com.meet.android 39 | org.tensorflow.detect 40 | com.meitu.makeup 41 | com.meitu.partynow 42 | com.fotoable.snapfilters 43 | com.commsource.beautyplus 44 | com.huanshi.awe.another 45 | com.apus.camera.id 46 | com.kwai.video 47 | com.disney.datg.videoplatforms.android.watchdc 48 | com.omronhealthcare.omronconnect 49 | com.meitu.meiyancamera 50 | com.naver.vapp 51 | com.eg.android.AlipayGphone 52 | com.perfectcorp.ycf 53 | com.lyrebirdstudio.emoji_camera 54 | com.baidu.BaiduMap 55 | com.taobao.taobao 56 | com.instagram.android 57 | sweet.snapface.facefilter 58 | machinelearning.tensorflow.speech 59 | com.google.android.apps.translate 60 | com.iconparking 61 | com.google.android.tts 62 | com.google.android.apps.photos.scanner 63 | com.bolangdev.poni 64 | com.fotoable.makeup 65 | com.apusapps.fulakora 66 | kr.co.robin.android.tflite.objectdetector 67 | com.linecorp.b612.android 68 | com.campmobile.snow 69 | com.jingdong.app.mall 70 | com.infocomltd.ugvassistant 71 | com.fishbrain.app 72 | com.meitu.beautyplusme 73 | com.fabbyhair.android 74 | com.abrmobileapp 75 | com.lyrebirdstudio.beauty 76 | com.abtnprojects.ambatana 77 | com.accordion.perfectme 78 | com.fotoable.selfieplus 79 | com.alivecor.aliveecg 80 | com.uc.vmate 81 | com.lyrebirdstudio.colorizer.lite 82 | com.modiface.loreal.stylemyhair 83 | com.google.android.apps.cultural 84 | com.ufotosoft.justshot 85 | com.bruxlabsnore 86 | com.fotoable.cartoon.cam 87 | fluidsim.de.interactivedrop 88 | com.grammarly.android.keyboard 89 | com.nhn.android.search 90 | com.shutterfly 91 | com.input.funnykeyboard 92 | jp.naver.line.android 93 | com.joeware.android.gpulumera 94 | com.statefarm.pocketagent 95 | co.vero.app 96 | video.like 97 | com.pic.mycamera 98 | com.easilydo.mail 99 | com.alibaba.intl.android.apps.poseidon 100 | com.baseapp.eyeem 101 | com.instagram.igtv 102 | com.asiainno.uplive.yuanfen 103 | uk.tensorzoom 104 | com.snapchat.android 105 | com.icomedias.hybridforms 106 | com.fotoable.fotobeauty 107 | com.google.android.apps.photos 108 | com.cam001.selfie 109 | sweet.selfie.lite 110 | ai.fritz.heartbeat 111 | com.duowan.supervideo 112 | com.sina.weibo 113 | com.mt.mtxx.mtxx 114 | com.camera.s9.camera 115 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/mengweidl.entropy_report.libinfo.csv: -------------------------------------------------------------------------------- 1 | libjdface.so,1,com.jingdong.app.mall 2 | libvenus.so,3,com.cyberlink.youcammakeup,com.perfectcorp.ycf,video.like 3 | libMFETFHairTracking.so,1,com.modiface.loreal.stylemyhair 4 | libclasses.so,1,com.taobao.taobao 5 | libYSFDWrapper.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 6 | libthingsdet.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 7 | libFaceSDK.so,10,com.pic.photoeditor,com.best.photoeditor.beautyeditorpro,cn.jingling.motu.photowonder,com.total.photostudio,com.pic.pipcamera,com.video.chat.spark,com.meet.android,com.accordion.perfectme,com.input.funnykeyboard,com.pic.mycamera 8 | libgraphicsengine-arengineservices-messengereffectservicehost-native.so,1,com.facebook.talk 9 | libchipset.so,1,com.facebook.talk 10 | libtensorflow_inference.so,28,machinelearning.tensorflow.classifier,com.iart.camera.photo,com.roberts.croberts.mantis,pip.face.selfie.beauty.camera.photo.editor,com.concur.breeze,ch.zhaw.facerecognition,com.urbandroid.sleep,horse.schvung.equilab,com.joytunes.simplypiano,com.seefoodtechnologies.nothotdog,com.homesecurity.firstone,com.bitstrips.imoji,org.tensorflow.detect,com.omronhealthcare.omronconnect,machinelearning.tensorflow.speech,com.linecorp.b612.android,com.campmobile.snow,com.infocomltd.ugvassistant,com.fishbrain.app,com.alivecor.aliveecg,com.modiface.loreal.stylemyhair,com.nhn.android.search,com.shutterfly,com.statefarm.pocketagent,co.vero.app,uk.tensorzoom,com.snapchat.android,ai.fritz.heartbeat 11 | libgoogle_speech_micro_jni.so,1,com.google.android.googlequicksearchbox 12 | libBaiduSpeechSDK.so,1,com.baidu.BaiduMap 13 | libbd_etts.so,1,com.baidu.BaiduMap 14 | libj2v8.so,1,com.shutterfly 15 | libopenalpr.so,1,com.abrmobileapp 16 | libmp4operations.so,1,com.facebook.talk 17 | commons-io-2.4.jar,2,com.linecorp.b612.android,com.campmobile.snow 18 | libjingle_peerconnection_so.so,1,com.cyberlink.youcammakeup 19 | libYSFFT.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 20 | libavformat-57.so,3,com.camera.galaxyx,com.galaxys.camera4k,com.camera.s9.camera 21 | libtensorflow-android.so,1,com.grammarly.android.keyboard 22 | libnative-lib.so,2,com.linecorp.b612.android,com.campmobile.snow 23 | libeffects-framework_graphics-engineAndroid.so,3,com.facebook.talk,com.instagram.android,com.instagram.igtv 24 | libimagepipeline.so,1,com.nhn.android.webtoon 25 | libmlabmakeup.so,3,com.meitu.makeup,com.meitu.partynow,com.mt.mtxx.mtxx 26 | libjscAndroid.so,2,com.facebook.talk,com.instagram.igtv 27 | libmtphotosegment.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 28 | libMailCore.so,1,com.easilydo.mail 29 | libAgeGender.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 30 | libcom.jd.lib.community.so,1,com.jingdong.app.mall 31 | libdAvatarDnn.so,1,com.kwai.video 32 | libcaffe2_caffe2_igAndroid.so,2,com.instagram.android,com.instagram.igtv 33 | libst_mobile.so,19,com.nhn.android.webtoon,com.asiainno.uplive,com.xingin.xhs,com.camera.galaxyx,com.galaxys.camera4k,com.mico,com.commsource.beautyplus,com.meitu.meiyancamera,com.naver.vapp,com.linecorp.b612.android,com.campmobile.snow,com.uc.vmate,jp.naver.line.android,com.joeware.android.gpulumera,video.like,com.asiainno.uplive.yuanfen,com.duowan.supervideo,com.sina.weibo,com.camera.s9.camera 34 | libyoudaoocr.so,1,com.youdao.hindict 35 | libzegoliveroom.so,3,com.asiainno.uplive,com.mico,com.sina.weibo 36 | libstmobile_jni.so,15,com.nhn.android.webtoon,com.asiainno.uplive,com.xingin.xhs,com.mico,com.commsource.beautyplus,com.meitu.meiyancamera,com.naver.vapp,com.linecorp.b612.android,com.campmobile.snow,com.uc.vmate,jp.naver.line.android,com.joeware.android.gpulumera,video.like,com.asiainno.uplive.yuanfen,com.duowan.supervideo 37 | libcom.jd.lib.commune.so,1,com.jingdong.app.mall 38 | libfbjsc.so,1,com.instagram.android 39 | libAPSE_1.4.12.so,1,com.eg.android.AlipayGphone 40 | libair.so,1,com.uc.vmate 41 | libcaffe_jni.so,1,ch.zhaw.facerecognition 42 | libaudioengine.so,1,com.duowan.supervideo 43 | libaqts.so,1,com.sina.weibo 44 | libhere_blue_component.so,1,com.google.android.googlequicksearchbox 45 | libcom.jd.lib.frostfire.so,1,com.jingdong.app.mall 46 | libLiveStreamer.so,1,com.naver.vapp 47 | libsnap-cv.1.0-release.10.41.6d1abe7.1895.so,1,com.snapchat.android 48 | libGrindingPredictionJavaLib.so,1,com.bruxlabsnore 49 | libface.so,1,com.snapchat.android 50 | libsophix.so,1,com.alibaba.intl.android.apps.poseidon 51 | libeffect_core.so,1,com.meitu.makeup 52 | libsgmain.so,2,com.alibaba.intl.android.apps.poseidon,com.sina.weibo 53 | libsmart_reply_jni.so,1,com.easilydo.mail 54 | libmerged-slink-bundles-res.so,1,com.eg.android.AlipayGphone 55 | libMegviiFacepp-0.4.7.so,1,com.iart.camera.photo 56 | libAwe.so,1,com.huanshi.awe.another 57 | libant3d.so,1,com.eg.android.AlipayGphone 58 | libeagle_base_processor.so,3,sweetsnap.lite.snapchat,com.cam001.selfie,sweet.selfie.lite 59 | libHair.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 60 | libAliNN_CL.so,1,com.taobao.taobao 61 | libmmocr.so,2,com.eg.android.AlipayGphone,com.alibaba.intl.android.apps.poseidon 62 | libmodelsmerged.so,1,com.facebook.talk 63 | libxnn.so,2,com.eg.android.AlipayGphone,com.alibaba.intl.android.apps.poseidon 64 | libsmsdk.so,3,com.asiainno.uplive,com.xingin.xhs,com.asiainno.uplive.yuanfen 65 | libcom.jd.lib.jdmiaosha.so,1,com.jingdong.app.mall 66 | libbdSpilWakeup.so,1,com.baidu.BaiduMap 67 | libcaffe2merged.so,1,com.facebook.talk 68 | libdnn.so,1,com.snapchat.android 69 | libsegmentation.0.0.4+6d1abe7.so,1,com.snapchat.android 70 | libpldroid_mmprocessing.so,1,com.asiainno.uplive.yuanfen 71 | libffmpeg.so,4,com.meitu.makeup,com.meitu.partynow,com.meitu.meiyancamera,com.mt.mtxx.mtxx 72 | libanylineCore.so,2,io.anyline.examples.store,com.icomedias.hybridforms 73 | libu3player.so,1,com.uc.vmate 74 | libtts_android.so,1,com.google.android.tts 75 | libcom.jd.lib.message.so,1,com.jingdong.app.mall 76 | libscnn.so,1,com.snapchat.android 77 | libgnustl_shared.so,1,com.abrmobileapp 78 | libcardrecognizer.so,1,com.iconparking 79 | libmidi.so,1,com.joytunes.simplypiano 80 | libtts_android_neon.so,1,com.google.android.tts 81 | libk3y.so,1,com.concur.breeze 82 | libopticomn.so,4,com.meitu.makeup,com.meitu.partynow,com.meitu.meiyancamera,com.mt.mtxx.mtxx 83 | libtensorflowlite_jni.so,4,kr.co.robin.android.tflite.objectdetector,com.abtnprojects.ambatana,com.modiface.loreal.stylemyhair,ai.fritz.heartbeat 84 | libtranslate.so,1,com.google.android.apps.translate 85 | libSnapFill.so,1,com.snapchat.android 86 | libARKernelInterface.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 87 | libmspell-jni.so,1,com.grammarly.android.keyboard 88 | libmtbodypose.so,1,com.commsource.beautyplus 89 | liborangefilterjni.so,1,com.duowan.supervideo 90 | libalinnface-v7a.so,1,com.taobao.taobao 91 | librelease_sig.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 92 | libkuru.so,3,com.linecorp.b612.android,com.campmobile.snow,jp.naver.line.android 93 | libliger-native.so,1,com.instagram.igtv 94 | liblookalike_shared_jni.so,1,com.google.android.apps.cultural 95 | libopencv_java3.so,1,com.infocomltd.ugvassistant 96 | libhyperfast.so,1,com.azarlive.android 97 | libkscnnrenderlib.so,1,com.kwai.video 98 | libvpsdk.so,1,video.like 99 | libfb_ffmpeg.so,3,com.facebook.talk,com.instagram.android,com.instagram.igtv 100 | libsgavmp.so,1,com.taobao.taobao 101 | libulsCppTracker_unity_lite.so,1,com.disney.datg.videoplatforms.android.watchdc 102 | libSkyFilter.so,4,com.pipcamera.activity,com.fotoable.makeup,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 103 | liboffline_actions_jni.so,1,com.google.android.googlequicksearchbox 104 | libRSSupport.so,2,com.fishbrain.app,co.vero.app 105 | libmapbox-gl.so,1,com.fishbrain.app 106 | libst_sensear.so,2,video.like,com.sina.weibo 107 | libgraphicsengine-arengineservices-igeffectservicehost-native.so,2,com.instagram.android,com.instagram.igtv 108 | libcaffe.so,1,ch.zhaw.facerecognition 109 | liblept.so,2,com.infocomltd.ugvassistant,com.abrmobileapp 110 | libmmu_lib.so,1,com.kwai.video 111 | libActionId.so,1,video.like 112 | libtoyger.so,1,com.eg.android.AlipayGphone 113 | libCnnSegment.so,1,video.like 114 | libmstyle.so,1,com.mt.mtxx.mtxx 115 | libapp.so,1,com.fabbyhair.android 116 | libjs.so,1,com.iart.camera.photo 117 | libWebViewCore_2.13.2.27.09201403_7z_uc.so,1,com.eg.android.AlipayGphone 118 | libNCNN.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 119 | libwbquicklook.so,1,com.sina.weibo 120 | libmtbana-rsa-sdk.so,3,com.meitu.makeup,com.meitu.meiyancamera,com.mt.mtxx.mtxx 121 | libulsTracker_native.so,9,com.fotoable.faceswap.c403,com.azarlive.android,com.lyrebirdstudio.makeup,com.fotoable.snapfilters,com.lyrebirdstudio.emoji_camera,sweet.snapface.facefilter,com.lyrebirdstudio.beauty,com.lyrebirdstudio.colorizer.lite,com.ufotosoft.justshot 122 | libmlabsegment.so,4,com.magicv.airbrush,com.meitu.partynow,com.commsource.beautyplus,com.meitu.beautyplusme 123 | libyuki-effect.so,1,jp.naver.line.android 124 | libmtcrypt.so,5,com.meitu.makeup,com.meitu.partynow,com.commsource.beautyplus,com.meitu.meiyancamera,com.mt.mtxx.mtxx 125 | libyuv_utils.so,1,com.mico 126 | libMTAlbum.so,2,com.commsource.beautyplus,com.mt.mtxx.mtxx 127 | libapp_BaiduMapApplib.so,1,com.baidu.BaiduMap 128 | libaliplayer-1.2.4.so,1,com.eg.android.AlipayGphone 129 | libtess.so,2,com.infocomltd.ugvassistant,com.abrmobileapp 130 | libtensorflow.so,1,fluidsim.de.interactivedrop 131 | libgoogle_speech_jni.so,1,com.google.android.googlequicksearchbox 132 | libvenusjni.so,1,com.duowan.supervideo 133 | libnama.so,1,com.muper.radella 134 | libarlink.so,1,com.instagram.android 135 | libJavaScriptCore.so,1,com.taobao.taobao 136 | libtensorflow_demo.so,8,machinelearning.tensorflow.classifier,com.seefoodtechnologies.nothotdog,org.tensorflow.detect,machinelearning.tensorflow.speech,com.fishbrain.app,com.nhn.android.search,com.baseapp.eyeem,uk.tensorzoom 137 | libtensorflow_imageutils.so,1,com.statefarm.pocketagent 138 | libweexjss.so,1,com.alibaba.intl.android.apps.poseidon 139 | libmm.so,1,jp.naver.line.android 140 | libmtfaceanalysis.so,1,com.meitu.makeup 141 | libapp_BaiduNaviApplib.so,1,com.baidu.BaiduMap 142 | libyuki-camera-effect.so,1,jp.naver.line.android 143 | libalpr.so,1,com.abrmobileapp 144 | libcom.jd.lib.icssdk.so,1,com.jingdong.app.mall 145 | libfotobeautyengine.so,8,com.fotoable.faceswap.c403,com.fotoable.enstyle,com.pipcamera.activity,com.fotoable.snapfilters,com.fotoable.makeup,com.fotoable.selfieplus,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 146 | libjpgt.so,1,com.abrmobileapp 147 | libcronet.so,1,com.sina.weibo 148 | libfastdnn.so,1,com.snapchat.android 149 | libulsCppTracker_native_lite.so,1,com.disney.datg.videoplatforms.android.watchdc 150 | libncnn_style.0.2.so,4,com.pipcamera.activity,com.fotoable.makeup,com.fotoable.cartoon.cam,com.fotoable.fotobeauty 151 | libturbonet.so,1,com.baidu.BaiduMap 152 | libSnapCut.so,1,com.snapchat.android 153 | libMTSkin.so,2,com.commsource.beautyplus,com.meitu.meiyancamera 154 | libtraeimp-rtmp-armeabi-v7a.so,1,com.mico 155 | libpqul.so,2,com.nhn.android.search,jp.naver.line.android 156 | libbigonn.so,1,video.like 157 | libidcardtextcut_v1.1.4.so,1,com.eg.android.AlipayGphone 158 | libMTLabFace.so,2,com.meitu.partynow,com.meitu.beautyplusme 159 | libmtaestheticsassessment.so,1,com.commsource.beautyplus 160 | libYSFD.so,4,com.hefe.pro.editor,com.apus.camera.id,com.bolangdev.poni,com.apusapps.fulakora 161 | libmtnn.so,5,com.magicv.airbrush,com.meitu.makeup,com.commsource.beautyplus,com.meitu.meiyancamera,com.mt.mtxx.mtxx 162 | libcronet.65.0.3325.109.so,1,com.snapchat.android 163 | libmodpdfium.so,1,com.concur.breeze 164 | libtbffmpeg.so,2,com.taobao.taobao,com.alibaba.intl.android.apps.poseidon 165 | libmobilexrayjni.so,1,com.facebook.talk 166 | libycmediayuv.so,1,com.duowan.supervideo 167 | libnative.so,2,com.google.android.apps.photos.scanner,com.google.android.apps.photos 168 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/mengweidl.entropy_report.packages: -------------------------------------------------------------------------------- 1 | com.jdiag.faslink2 2 | com.iart.camera.photo 3 | com.pic.photoeditor 4 | com.roberts.croberts.mantis 5 | com.nhn.android.webtoon 6 | com.asiainno.uplive 7 | com.tencent.mm 8 | com.xingin.xhs 9 | pip.face.selfie.beauty.camera.photo.editor 10 | com.concur.breeze 11 | com.muper.radella 12 | sweetsnap.lite.snapchat 13 | com.camera.galaxyx 14 | com.fotoable.faceswap.c403 15 | ch.zhaw.facerecognition 16 | com.magicv.airbrush 17 | com.urbandroid.sleep 18 | com.galaxys.camera4k 19 | com.facebook.talk 20 | com.best.photoeditor.beautyeditorpro 21 | com.azarlive.android 22 | horse.schvung.equilab 23 | cn.jingling.motu.photowonder 24 | com.fotoable.enstyle 25 | com.btows.photo 26 | com.card.cardcom 27 | com.joytunes.simplypiano 28 | com.mico 29 | com.seefoodtechnologies.nothotdog 30 | com.cyberlink.youcammakeup 31 | com.total.photostudio 32 | com.pic.pipcamera 33 | com.lyrebirdstudio.makeup 34 | com.youdao.hindict 35 | com.pipcamera.activity 36 | io.anyline.examples.store 37 | com.homesecurity.firstone 38 | com.google.android.googlequicksearchbox 39 | com.hefe.pro.editor 40 | com.bitstrips.imoji 41 | com.video.chat.spark 42 | com.picstudio.photoeditorplus 43 | com.meet.android 44 | org.tensorflow.detect 45 | com.meitu.makeup 46 | com.meitu.partynow 47 | com.fotoable.snapfilters 48 | com.commsource.beautyplus 49 | com.huanshi.awe.another 50 | com.apus.camera.id 51 | com.kwai.video 52 | com.disney.datg.videoplatforms.android.watchdc 53 | com.omronhealthcare.omronconnect 54 | com.meitu.meiyancamera 55 | com.naver.vapp 56 | com.eg.android.AlipayGphone 57 | com.perfectcorp.ycf 58 | com.lyrebirdstudio.emoji_camera 59 | com.baidu.BaiduMap 60 | com.taobao.taobao 61 | com.qiyi.video 62 | com.instagram.android 63 | sweet.snapface.facefilter 64 | machinelearning.tensorflow.speech 65 | com.google.android.apps.translate 66 | com.iconparking 67 | com.google.android.tts 68 | com.roidapp.photogrid 69 | com.lazada.android 70 | com.google.android.apps.photos.scanner 71 | com.bolangdev.poni 72 | com.fotoable.makeup 73 | com.apusapps.fulakora 74 | kr.co.robin.android.tflite.objectdetector 75 | com.linecorp.b612.android 76 | com.campmobile.snow 77 | com.jingdong.app.mall 78 | com.infocomltd.ugvassistant 79 | com.fishbrain.app 80 | com.meitu.beautyplusme 81 | com.fabbyhair.android 82 | com.abrmobileapp 83 | com.lyrebirdstudio.beauty 84 | com.abtnprojects.ambatana 85 | com.accordion.perfectme 86 | com.fotoable.selfieplus 87 | com.alivecor.aliveecg 88 | com.uc.vmate 89 | com.lyrebirdstudio.colorizer.lite 90 | com.modiface.loreal.stylemyhair 91 | com.google.android.apps.cultural 92 | com.ufotosoft.justshot 93 | com.bruxlabsnore 94 | com.fotoable.cartoon.cam 95 | fluidsim.de.interactivedrop 96 | com.grammarly.android.keyboard 97 | com.nhn.android.search 98 | com.shutterfly 99 | com.input.funnykeyboard 100 | jp.naver.line.android 101 | com.joeware.android.gpulumera 102 | com.mlive.mliveapp 103 | com.statefarm.pocketagent 104 | co.vero.app 105 | com.google.android.apps.vega 106 | video.like 107 | com.pic.mycamera 108 | com.easilydo.mail 109 | com.alibaba.intl.android.apps.poseidon 110 | me.msqrd.android 111 | com.mobvoi.companion.aw 112 | com.sdu.didi.psnger 113 | com.baseapp.eyeem 114 | com.instagram.igtv 115 | com.google.android.inputmethod.latin 116 | com.asiainno.uplive.yuanfen 117 | com.limebike 118 | uk.tensorzoom 119 | com.snapchat.android 120 | com.icomedias.hybridforms 121 | com.fotoable.fotobeauty 122 | com.google.android.apps.photos 123 | com.cam001.selfie 124 | sweet.selfie.lite 125 | ai.fritz.heartbeat 126 | com.duowan.supervideo 127 | com.sina.weibo 128 | com.mt.mtxx.mtxx 129 | com.camera.s9.camera 130 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/quantized.filtered: -------------------------------------------------------------------------------- 1 | 360.entropy_report.filtered:1458:6.119854 b41c3b46 96K com.google.android.apps.translate_62000762 photo-ocr/rpn_text_detector_mobile_space_to_depth_quantized_v2.tflite tensorflow:libtranslate.so ncnn:libtranslate.so other:libtranslate.so 2 | 360.entropy_report.filtered:3833:6.965988 97f964d7 32K com.shensz.teacher_10000035 blur.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 3 | 360.entropy_report.filtered:3834:6.875088 1607cc71 40K com.shensz.teacher_10000035 tick_little.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 4 | 360.entropy_report.filtered:3837:6.931100 b2682505 32K com.shensz.teacher_10000035 choice.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 5 | 360.entropy_report.filtered:3838:6.721302 c3a3b97d 64K com.shensz.teacher_10000035 tick.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 6 | 360.entropy_report.filtered:3841:6.799864 248dabda 72K com.shensz.teacher_10000035 phone.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 7 | 360.entropy_report.filtered:3844:6.587299 f33595c4 148K com.shensz.teacher_10000035 version.quantized.pb tensorflow:libtensorflow_demo.so,libmyjni.so 8 | 360.entropy_report.filtered:3873:6.965988 97f964d7 32K com.shensz.student_10004452 blur.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 9 | 360.entropy_report.filtered:3874:6.875088 1607cc71 40K com.shensz.student_10004452 tick_little.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 10 | 360.entropy_report.filtered:3875:6.931100 b2682505 32K com.shensz.student_10004452 choice.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 11 | 360.entropy_report.filtered:3876:6.721302 c3a3b97d 64K com.shensz.student_10004452 tick.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 12 | 360.entropy_report.filtered:3877:6.799864 248dabda 72K com.shensz.student_10004452 phone.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 13 | 360.entropy_report.filtered:3878:6.587299 f33595c4 148K com.shensz.student_10004452 version.quantized.pb tensorflow:libjnilib.so other:libjpgd.so 14 | 360.entropy_report.filtered:4456:0.253606 f9434d33 60K com.vsco.cam_30002934 vsco_category_quantized_20181130_tf1-12.tflite tensorflow:libtensorflowlite_jni.so,libclassifier_jni.so ncnn:libclassifier_jni.so other:libtensorflowlite_jni.so,libclassifier_jni.so 15 | gplay.entropy_report.filtered:42:7.435154 8ac61b55 2.3M com.familyfit.google.baduanjin quantized_model_337.tflite tensorflow:libtensorflowlite_jni.so,libtensorflowlite_gpu_jni.so other:libtensorflowlite_jni.so,libtensorflowlite_gpu_jni.so 16 | gplay.entropy_report.filtered:77:6.719830 64c8bc96 552K com.cut.cutout.photo.background.editor stylize_quantized.pb tensorflow:libtensorflow_inference.so other:libtensorflow_inference.so 17 | gplay.entropy_report.filtered:184:6.719830 64c8bc96 552K com.thmobile.sketchphotomaker stylize_quantized.pb tensorflow:libtensorflow_inference.so 18 | mengweidl.entropy_report.filtered:38:6.719830 64c8bc96 552K pip.face.selfie.beauty.camera.photo.editor stylize_quantized.pb tensorflow:libtensorflow_inference.so other:libtensorflow_inference.so 19 | tencent.entropy_report.filtered:259:0.253606 f9434d33 60K com.vsco.cam vsco_category_quantized_20181130_tf1-12.tflite tensorflow:libtensorflowlite_jni.so,libclassifier_jni.so ncnn:libclassifier_jni.so other:libclassifier_jni.so,libtensorflowlite_jni.so 20 | us.entropy_report.filtered:230:6.719830 64c8bc96 552K com.cut.cutout.photo.background.editor stylize_quantized.pb tensorflow:libtensorflow_inference.so other:libtensorflow_inference.so 21 | us.entropy_report.filtered:231:6.719830 64c8bc96 552K com.thmobile.sketchphotomaker stylize_quantized.pb tensorflow:libtensorflow_inference.so 22 | us.entropy_report.filtered:232:6.719830 64c8bc96 552K pip.face.selfie.beauty.camera.photo.editor stylize_quantized.pb tensorflow:libtensorflow_inference.so other:libtensorflow_inference.so 23 | us.entropy_report.filtered:517:7.435154 8ac61b55 2.3M com.familyfit.google.baduanjin quantized_model_337.tflite tensorflow:libtensorflowlite_jni.so,libtensorflowlite_gpu_jni.so other:libtensorflowlite_jni.so,libtensorflowlite_gpu_jni.so 24 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/suspected_packages_download_model.txt: -------------------------------------------------------------------------------- 1 | cmb.pb_741 2 | com.alimama.moon_661000 3 | com.artron.exhibit_13300 4 | cn.zdkj.ybt_5360 5 | com.airwatch.androidagent_1580 6 | com.bandainamcogames.google.digimonheroes_11368 7 | com.alibaba.aliexpresshd_284 8 | cn.com.zoenet.xmsfybjypub_34 9 | com.cdbabyjoy.ecepark_48 10 | cn.motiontek.fitness_5 11 | com.cardinfo.qpay_83 12 | com.cardinfo.servicecentre_35 13 | com.cdbabyjoy.gamepark_40 14 | com.caimi.kuaidai_726 15 | com.cdtv.app_86 16 | com.epay.impay.ui.jfpal_47 17 | com.cooingdv.ctwifi_27 18 | com.garmin.android.apps.connectmobile_5075 19 | com.p1.mobile.putong_325 20 | com.ganji.android_82307 21 | com.guduzhengjiu.join_5094 22 | com.yuedong.sport_402241 23 | com.hongyan.mixv_2000710 24 | com.zhihu.android_1602 25 | com.htself.yeeplane_47 26 | com.hanweiyx.hanwei_201908030 27 | com.zhiyun.zyplay_212 28 | fjfy.mobile.mhpublic_38 29 | com.idddx.lwp.underwaterworld_42 30 | com.idddx.lwp.goldfish3d_29 31 | com.idddx.lwp.bubblingfish_33 32 | ola.com.user_22 33 | com.idddx.lwp.freshaquarium3d_39 34 | com.immomo.molive.kuso_30 35 | xmjmey.mobile.mhpublic_37 36 | com.iqiyi.acg_2910 37 | com.jjhgame.live_52 38 | com.jinmu.healthdlb_35 39 | com.iqiyi.news_113 40 | net.eqccd.cloud_2019051500 41 | com.jx.mobile_30 42 | com.kabbabc.byzk_20180 43 | com.lefu8.mobile_83 44 | com.lk361.ErpAppStone_50011 45 | com.miraclepulse.ui.bracelet_1 46 | com.roidapp.photogrid_72300005 47 | com.soozhu.jinzhus_925 48 | com.tengchong.spy_4000001 49 | com.videogo_91 50 | com.venticake.retrica_210000035 51 | com.wonder_1750 52 | com.wuba_90003 53 | com.wefax.nbank_48 54 | com.vyou.vcameraclient_905044216 55 | com.sankuai.meituan 56 | com.wuba 57 | com.ganji.android 58 | com.caimi.kuaidai 59 | com.videogo 60 | com.zhihu.android 61 | com.iqiyi.news 62 | cmb.pb 63 | cn.banshenggua.aichang 64 | com.yuedong.sport 65 | com.king.farmheroessupersaga 66 | com.king.candycrushsaga 67 | com.pixowl.tsb2 68 | com.google.android.apps.messaging 69 | com.google.android.apps.tachyon 70 | com.winnersclub.empire88slots 71 | com.google.android.inputmethod.latin 72 | jp.co.yamaha.emi.chordtracker 73 | com.rubicon.dev.strikemaster 74 | com.maysalward.trix3alarasi 75 | com.funketapps.games.worldcraft2 76 | com.vgames.gungunonline 77 | com.stormx.flowertycoon 78 | com.adpmobile.android 79 | com.app.sbeauty 80 | com.nielsen.connectexpress 81 | com.ultimatesoftware.ultipromobile 82 | com.verywisetech.whisper 83 | grandetacada.com.br.call 84 | tr.malikadev.reference.ccllt 85 | com.roidapp.photogrid 86 | com.cerdillac.filmmaker 87 | com.nextstep.candysmashline 88 | com.microsoft.flow 89 | com.camerafilter.coffeecamera.procamera 90 | com.camerafilter.kedakcam.insta.yellowsun.retrofilter 91 | com.wodify.prod.WodifyRise 92 | com.relianceco.cma.stlucie 93 | hr.apps.n207103339 94 | com.mjqq.jzysj 95 | com.blockbudddy.app 96 | com.playrix.fishdomdd.gplay 97 | com.taqlh.wegame 98 | com.edujoy.toddler.games 99 | com.edujoy.Dinosaur_pet 100 | com.mlive.mliveapp 101 | com.lazada.android 102 | com.rovio.angrybirdsfriends 103 | com.qiyi.video 104 | com.navigation.offlinemaps.gps 105 | com.my.heroesofutopia 106 | ilmfinity.evocreoFree.main.android 107 | com.playgendary.kickthebuddy 108 | com.amanotes.stackballedm 109 | com.bin.swords.souls.sandals.knights.fight 110 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/tencent.entropy_report.encrypted.filtered.packages: -------------------------------------------------------------------------------- 1 | com.qihoo.loan 2 | com.rongcai.show 3 | com.shineyie.aijianji 4 | com.xhqb.app 5 | com.lakala.android 6 | com.meelive.ingkee 7 | com.jsbc.lznews 8 | com.news.shangyounews 9 | com.kaola 10 | com.xiaomi.smarthome 11 | com.baidu.searchbox 12 | com.rrh.jdb 13 | com.zhenai.android 14 | com.qq.qcloud 15 | com.baidu.netdisk 16 | com.unionpay 17 | com.business.king 18 | cn.mchang 19 | com.duowan.mobile 20 | com.duowan.yylove 21 | com.hepai.hepaiandroid 22 | com.xingjiabi.shengsheng 23 | com.changba 24 | com.tencent.weishi 25 | com.haodai.flashloan 26 | com.lufax.android 27 | com.making.business.king 28 | com.tuhao.laosiji 29 | com.babytree.apps.lama 30 | com.by.butter.camera 31 | com.felink.videopaper 32 | com.duowan.bi 33 | cn.mifengkong.huaxiaapp 34 | com.alibaba.android.rimet 35 | com.impression.a9513.client 36 | com.lemon.faceu 37 | com.csair.mbp 38 | com.sohu.sohuvideo 39 | ctrip.android.view 40 | im.yixin 41 | tv.xiaoka.live 42 | com.jiayuan 43 | cn.j.hers 44 | com.ss.android.ugc.live 45 | com.yijin.fastticket 46 | com.huodao.hdphone 47 | com.tmri.app.main 48 | com.jfbank.wanka 49 | com.huajiao.camera 50 | com.infothinker.gzmetro 51 | com.syqy.wecash 52 | com.tencent.tv.qie 53 | com.baosight.carsharing 54 | com.homelink.android 55 | com.ehai 56 | com.baidu.baidutranslate 57 | com.umetrip.android.msky.app 58 | com.yitong.mbank.psbc 59 | com.business.scanning 60 | com.guagua.guagua 61 | com.basestonedata.instalment 62 | com.gdhbgh.activity 63 | com.chinamworld.bocmbci 64 | com.chinamworld.main 65 | com.campmobile.snowcamera 66 | com.cmbchina.ccd.pluto.cmbActivity 67 | com.hw.okm 68 | com.android.bankabc 69 | com.hcc.app 70 | com.wali.live 71 | com.longzhu.tga 72 | com.zl.fqbao 73 | com.greate.myapplication 74 | com.gov.cn 75 | com.zhangdan.app 76 | com.yunjibuyer.yunji 77 | com.benqu.wuta 78 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/tencent.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.jingdong.pdj 2 | com.tencent.karaoke 3 | com.sina.weibo 4 | com.taobao.qianniu 5 | com.pipcamera.activity 6 | com.shunfengche.ride 7 | com.qihoo.loan 8 | com.rongcai.show 9 | com.shineyie.aijianji 10 | com.xhqb.app 11 | com.jingyao.easybike 12 | com.A17zuoye.mobile.homework 13 | com.wuba.zhuanzhuan 14 | com.lakala.android 15 | com.meelive.ingkee 16 | com.jsbc.lznews 17 | com.hpbr.bosszhipin 18 | com.news.shangyounews 19 | com.mujirenben.liangchenbufu 20 | com.taobao.trip 21 | com.gorgeous.lite 22 | com.kaola 23 | com.xiaomi.smarthome 24 | com.yy.android.udbsec 25 | com.pplive.androidphone 26 | com.baidu.searchbox 27 | com.ucredit.financial.android 28 | com.youdao.translator 29 | com.rrh.jdb 30 | com.zhenai.android 31 | com.tmall.wireless 32 | com.qq.qcloud 33 | com.fotoable.fotobeauty 34 | com.autonavi.minimap 35 | cn.jingling.motu.photowonder 36 | com.baidu.netdisk 37 | com.unionpay 38 | com.business.king 39 | com.baidu.tieba 40 | com.able.wisdomtree 41 | com.taobao.mobile.dipei 42 | cn.mchang 43 | com.cainiao.wireless 44 | com.duowan.mobile 45 | com.smile.gifmaker 46 | com.duowan.yylove 47 | com.tencent.qqlive 48 | com.soufun.app 49 | com.hepai.hepaiandroid 50 | com.xingjiabi.shengsheng 51 | com.vsco.cam 52 | com.tencent.tgp 53 | com.changba 54 | com.duowan.kiwi 55 | com.cwtcn.kt 56 | com.tencent.weishi 57 | com.haodai.flashloan 58 | com.instamag.activity 59 | cn.eclicks.wzsearch 60 | com.lufax.android 61 | com.making.business.king 62 | com.tuhao.laosiji 63 | com.alibaba.wireless 64 | com.lejent.zuoyeshenqi.afanti 65 | com.cubic.autohome 66 | com.fenqile.fenqile 67 | com.meitu.wheecam 68 | com.alpha.lago 69 | com.babytree.apps.lama 70 | com.by.butter.camera 71 | com.felink.videopaper 72 | com.taobao.idlefish 73 | com.duowan.bi 74 | cn.mifengkong.huaxiaapp 75 | com.alibaba.android.rimet 76 | com.impression.a9513.client 77 | com.aixuedai.axd 78 | me.yidui 79 | com.jingdong.app.mall 80 | com.lemon.faceu 81 | com.csair.mbp 82 | com.sohu.sohuvideo 83 | ctrip.android.view 84 | im.yixin 85 | tv.xiaoka.live 86 | com.gotokeep.keep 87 | com.jiayuan 88 | tv.acfundanmaku.video 89 | cn.j.hers 90 | cn.caocaokeji.user 91 | com.ss.android.ugc.live 92 | com.yijin.fastticket 93 | com.huodao.hdphone 94 | com.tmri.app.main 95 | com.jfbank.wanka 96 | com.cmcm.gamemaster 97 | com.youdao.note 98 | com.huajiao.camera 99 | com.infothinker.gzmetro 100 | com.syqy.wecash 101 | com.meituan.qcs.r.android 102 | com.taobao.taobao 103 | com.wbitech.medicine 104 | com.android.haitong 105 | com.tencent.tv.qie 106 | com.baosight.carsharing 107 | com.homelink.android 108 | com.c2vl.kgamebox 109 | com.ehai 110 | com.suning.mobile.ebuy 111 | com.baidu.baidutranslate 112 | com.tinmanarts.JoJoSherlock 113 | com.hlg.daydaytobusiness 114 | com.meitu.meipaimv 115 | com.umetrip.android.msky.app 116 | com.yitong.mbank.psbc 117 | com.business.scanning 118 | com.yqh.yaoqianhua 119 | com.guagua.guagua 120 | com.google.android.googlequicksearchbox 121 | com.ali.money.shield 122 | com.basestonedata.instalment 123 | com.gdhbgh.activity 124 | com.chinamworld.bocmbci 125 | com.chinamworld.main 126 | com.campmobile.snowcamera 127 | com.meitu.makeup 128 | com.cmbchina.ccd.pluto.cmbActivity 129 | com.hw.okm 130 | com.android.bankabc 131 | com.baidu.BaiduMap 132 | com.lanjingren.ivwen 133 | cn.myhug.baobao 134 | com.hcc.app 135 | com.greenpoint.android.mc10086.activity 136 | com.wali.live 137 | com.immomo.momo 138 | com.longzhu.tga 139 | com.zl.fqbao 140 | com.greate.myapplication 141 | com.gov.cn 142 | cn.poco.jane 143 | com.google.android.apps.photos 144 | com.zhangdan.app 145 | com.knowbox.rc.student.pk 146 | com.yunjibuyer.yunji 147 | com.meitu.meiyancamera 148 | com.kwai.videoeditor 149 | cn.v6.sixrooms 150 | com.yiqizuoye.jzt 151 | com.benqu.wuta 152 | com.meitu.meipu 153 | com.jym.mall 154 | com.meitu.boxxcam 155 | com.lesports.glivesports 156 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/tencent.entropy_report.packages: -------------------------------------------------------------------------------- 1 | com.pa.health 2 | com.tongcheng.android 3 | com.sankuai.meituan 4 | com.jingdong.pdj 5 | com.starbaba.starbaba 6 | com.sinyee.babybus.digestion 7 | com.wuba 8 | com.tencent.karaoke 9 | com.luyun.pinkdiary 10 | com.qiyi.video 11 | com.lenovo.safecenter 12 | com.xiaomi.hm.health 13 | com.hhdd.kada 14 | com.sinyee.babybus.drawing 15 | com.tencent.wifimanager 16 | com.sina.weibo 17 | com.taobao.qianniu 18 | com.pipcamera.activity 19 | com.tencent.map 20 | com.shunfengche.ride 21 | com.qihoo.loan 22 | com.tujia.hotel 23 | com.xiwei.logistics.consignor 24 | com.sinyee.babybus.icecream 25 | com.tencent.qqlivekid 26 | com.rongcai.show 27 | com.shineyie.aijianji 28 | com.sinyee.babybus.farm 29 | com.tencent.pb 30 | com.xhqb.app 31 | com.yinshenxia 32 | com.wangzhi.MaMaHelp 33 | com.jingyao.easybike 34 | cn.wangxiao.jszzhuntiku 35 | com.A17zuoye.mobile.homework 36 | com.wuba.zhuanzhuan 37 | com.lakala.android 38 | com.v1.crazy 39 | com.ktls.fileinfo 40 | com.winbaoxian.wybx 41 | com.shuqi.controller 42 | com.ss.android.ugc.aweme 43 | com.uu.uunavi 44 | com.sinyee.babybus.garden 45 | com.rytong.ceair 46 | com.sinyee.babybus.magichouse 47 | com.meelive.ingkee 48 | com.jsbc.lznews 49 | com.hpbr.bosszhipin 50 | com.xunlei.downloadprovider 51 | com.xiaozhu.xzdz 52 | com.news.shangyounews 53 | com.bgy.fht 54 | com.chuxinbbs.cxkt 55 | com.mujirenben.liangchenbufu 56 | com.taobao.trip 57 | com.xiaoyu.rightone 58 | com.xqw369.bbsz 59 | com.sg.sledog 60 | com.gorgeous.lite 61 | com.sinyee.babybus.karting 62 | com.lncmcc.sjyyt 63 | com.ucar.app 64 | com.sinyee.babybus.cars 65 | com.sinyee.babybus.polite 66 | com.zhituo.gpslocation 67 | com.sinyee.babybus.numberwriter 68 | com.kaola 69 | com.sinyee.babybus.vegetable 70 | com.niksoftware.snapseed 71 | com.xiudang.jiukuaiyou.ui 72 | com.xiaomi.smarthome 73 | com.wlqq4consignor 74 | com.yy.android.udbsec 75 | com.ganji.android 76 | com.upgadata.up7723 77 | com.qidian.QDReader 78 | com.faloo.BookReader4Android 79 | com.yoho 80 | com.pplive.androidphone 81 | com.baidu.searchbox 82 | com.etechs.eyee 83 | com.gameabc.zhanqiAndroid 84 | com.ucredit.financial.android 85 | com.gift.android 86 | com.lchr.diaoyu 87 | com.youdao.translator 88 | com.greenline.guahao 89 | com.geilixinli.android.full.user 90 | com.sinyee.babybus.findCha 91 | com.sinyee.babybus.boat 92 | com.ichinait.gbpassenger 93 | com.rrh.jdb 94 | com.gvsoft.gofun 95 | com.hecom.mgm 96 | com.zhenai.android 97 | com.genshuixue.student 98 | com.anyisheng.doctoran 99 | com.imohoo.shanpao 100 | com.lingyue.YqdAndroid 101 | com.wm.dmall 102 | com.android.chrome 103 | com.zh.carbyticket 104 | com.tmall.wireless 105 | com.qq.qcloud 106 | com.android.coolwind 107 | com.meilishuo 108 | cn.TuHu.android 109 | com.anzogame.hs 110 | com.baidu.mbaby 111 | com.fotoable.fotobeauty 112 | com.tencent.mobileqq 113 | com.sinyee.babybus.dinosaurII 114 | com.autonavi.minimap 115 | cn.jingling.motu.photowonder 116 | com.baidu.netdisk 117 | com.unionpay 118 | com.luyun.diary 119 | com.sinyee.babybus.seaworld 120 | com.business.king 121 | com.tencent.tim 122 | com.baidu.browser.apps 123 | com.sinyee.babybus.babyhospital 124 | com.sinyee.babybus.dinosaur 125 | com.sinyee.babybus.bathing 126 | com.baidu.news 127 | com.baidu.tieba 128 | cn.cntv 129 | com.able.wisdomtree 130 | com.taobao.mobile.dipei 131 | cn.mchang 132 | com.sinyee.babybus.truck 133 | com.ss.android.tuchong 134 | com.sinyee.babybus.magician 135 | com.szzc.ucar.pilot 136 | com.tianyancha.skyeye 137 | com.bertadata.qxb 138 | com.blackfish.app.ui 139 | com.ylmf.androidclient 140 | com.ikang.official 141 | com.cainiao.wireless 142 | com.duowan.mobile 143 | com.anzogame.game 144 | com.smile.gifmaker 145 | com.dasheng.talk 146 | com.tgelec.aqsh 147 | com.cmi.jegotrip 148 | com.enqualcomm.kids.cyp 149 | com.duowan.yylove 150 | com.china3s.android 151 | com.yangcong345.android.phone 152 | com.bw30.zsch 153 | com.tencent.qqlive 154 | com.soufun.app 155 | com.tencent.qqpinyin 156 | com.dianchou.dcw 157 | com.buluobang.bangtabs 158 | com.yunxiao.haofenshu 159 | cn.mxtrip.ontheroad 160 | com.ss.android.auto 161 | com.hepai.hepaiandroid 162 | com.cyjh.gundam 163 | cn.wangxiao.app 164 | com.xingjiabi.shengsheng 165 | com.taobao.etao 166 | com.vsco.cam 167 | com.book2345.reader 168 | com.sinyee.babybus.dailycommodities 169 | com.uc.infoflow 170 | com.sinyee.babybus.candy 171 | com.tencent.tgp 172 | com.changba 173 | com.xisue.zhoumo 174 | com.duowan.kiwi 175 | com.yilesoft.app.beautifulimageshow 176 | com.bokecc.dance 177 | com.cwtcn.kt 178 | com.tencent.weishi 179 | com.haodai.flashloan 180 | com.tts.hybird 181 | com.cloudpower.netsale.activity 182 | com.instamag.activity 183 | cn.eclicks.wzsearch 184 | cn.suanya.train 185 | com.lufax.android 186 | com.cyworld.camera 187 | cn.shuangshuangfei 188 | com.making.business.king 189 | com.ekwing.students 190 | com.dp.android.elong 191 | com.tuhao.laosiji 192 | com.sinyee.babybus.born 193 | com.alibaba.wireless 194 | com.tencent.token 195 | com.sinyee.babybus.travelsafety 196 | com.chinabluedon.mobilesafe 197 | com.kidswant.ss 198 | com.juanpi.ui 199 | com.lejent.zuoyeshenqi.afanti 200 | com.globalscanner 201 | com.sinyee.babybus.drinks 202 | com.sinyee.babybus.findchaII 203 | com.sinyee.babybus.babydrawing 204 | com.sinyee.babybus.dining 205 | com.cubic.autohome 206 | com.fenqile.fenqile 207 | com.meitu.wheecam 208 | com.alpha.lago 209 | com.tencent.qqmusic 210 | com.sinyee.babybus.spell 211 | com.babytree.apps.lama 212 | com.sohu.inputmethod.sogou 213 | com.sun.uucalldialer 214 | com.by.butter.camera 215 | com.jingxuansugou.app 216 | com.felink.videopaper 217 | com.codoon.gps 218 | com.caimi.kuaidai 219 | com.student.yuwen.yimilan 220 | com.taobao.idlefish 221 | com.duowan.bi 222 | com.m1905.mobilefree 223 | com.gome.eshopnew 224 | com.ciapc.tzd 225 | com.anzogame.lol 226 | cn.mifengkong.huaxiaapp 227 | com.mia.miababy 228 | com.alibaba.android.rimet 229 | cn.andouya 230 | com.maxxipoint.android 231 | com.ifeng.fhdt 232 | com.soft.blued 233 | com.impression.a9513.client 234 | com.ss.readpoem 235 | com.sinyee.babybus.behaviour 236 | com.btows.photo 237 | com.vodone.caibo 238 | com.aixuedai.axd 239 | me.yidui 240 | com.jingdong.app.mall 241 | com.sinyee.babybus.princess 242 | com.tuniu.app.ui 243 | com.hexin.plat.android 244 | com.haodf.android 245 | com.u17.comic.phone 246 | com.lemon.faceu 247 | so.ofo.labofo 248 | com.csair.mbp 249 | com.sohu.sohuvideo 250 | com.culiu.qqpurchase 251 | ctrip.android.view 252 | im.yixin 253 | com.baidu.haokan 254 | tv.xiaoka.live 255 | zte.com.cn.driverMode 256 | com.gotokeep.keep 257 | com.wisentsoft.chinapost.android 258 | com.chinaunicom.mobileguard 259 | com.map.pamap 260 | com.videogo 261 | com.jiayuan 262 | tv.acfundanmaku.video 263 | com.lashou.groupurchasing 264 | com.icbc.im 265 | com.t20000.lvji 266 | com.thestore.main 267 | com.baidu.hao123 268 | com.culiukeji.huanletao 269 | org.xianliao 270 | com.laijin.simplefinance 271 | com.xyauto.carcenter 272 | com.yx 273 | com.zhihu.android 274 | com.yipiao 275 | com.join.android.app.mgsim 276 | com.sinyee.babybus.wobunanguo 277 | org.ajmd 278 | cn.mmb.touchscreenandroidclient 279 | com.sinyee.babybus.birthdayparty 280 | cn.j.hers 281 | com.tencent.edu 282 | cn.caocaokeji.user 283 | com.baidu.yuedu 284 | com.cptc.cphr 285 | xxt.com.cn.ui 286 | longbin.helloworld 287 | me.chunyu.ChunyuDoctorHD 288 | com.sinyee.babybus.chef 289 | com.ss.android.ugc.live 290 | com.yijin.fastticket 291 | com.uroad.shandonggst 292 | c.l.a 293 | com.bankcomm.maidanba 294 | com.cootek.smartdialer 295 | com.xiaomi.jr 296 | com.yixinjiang.goodbaba.app.presentation.pep 297 | com.youdao.dict 298 | com.woqu.attendance 299 | com.xiaoenai.app 300 | com.juwan.market 301 | com.xiaomi.shop 302 | com.sinyee.babybus.songV 303 | com.financial.quantgroup 304 | com.huodao.hdphone 305 | com.cfd.travel.ui 306 | com.sinyee.fruit.activity 307 | com.tmri.app.main 308 | com.jfbank.wanka 309 | com.cmcm.gamemaster 310 | com.jiuxia.ui 311 | com.xiaoji.emulator 312 | com.xqw369.ttsz 313 | com.youdao.note 314 | com.health.fatfighter 315 | com.hujiang.cctalk 316 | com.huajiao.camera 317 | com.infothinker.gzmetro 318 | com.snda.wifilocating 319 | com.syqy.wecash 320 | com.flightmanager.view 321 | com.meituan.qcs.r.android 322 | com.taobao.taobao 323 | com.wbitech.medicine 324 | com.hhb.zqmf 325 | com.iqiyi.news 326 | com.android.haitong 327 | com.sinyee.babybus.care 328 | com.Autoyol.auto 329 | com.estrongs.android.pop 330 | com.tencent.tv.qie 331 | cn.org.rar.iwantyoga 332 | com.woyaou 333 | com.baosight.carsharing 334 | com.homelink.android 335 | com.wanda.app.wanhui 336 | com.c2vl.kgamebox 337 | com.tencent.wework 338 | com.lj.ljshell 339 | com.iflytek.cmcc 340 | com.sogou.activity.src 341 | com.sinyee.babybus.repair 342 | com.sinyee.babybus.newyear 343 | com.taobao.movie.android 344 | cn.com.shouji.market 345 | com.ehai 346 | com.lphtsccft 347 | air.tv.douyu.android 348 | com.ts.zys 349 | com.chinatelecom.bestpayclient 350 | com.suning.mobile.ebuy 351 | com.szzc 352 | com.sinyee.babybus.numberconnect 353 | com.android.abustory 354 | com.jm.android.jumei 355 | com.baidu.baidutranslate 356 | cn.opda.a.phonoalbumshoushou 357 | com.intsig.BizCardReader 358 | com.idddx.appstore.myshare.cn 359 | com.tinmanarts.JoJoSherlock 360 | com.sinyee.babybus.forest 361 | com.iflytek.elpmobile.smartlearning 362 | com.hlg.daydaytobusiness 363 | com.meitu.meipaimv 364 | com.wm.realname 365 | com.yaochufa.app 366 | com.umetrip.android.msky.app 367 | com.yitong.mbank.psbc 368 | com.business.scanning 369 | com.yqh.yaoqianhua 370 | com.sinyee.babybus.food 371 | com.sinyee.education.shape 372 | com.sinyee.babybus.cake 373 | com.guagua.guagua 374 | cn.wangxiao.zhuntiku 375 | cn.cntvnews 376 | com.ifreetalk.ftalk 377 | com.huawei.health 378 | com.google.android.googlequicksearchbox 379 | com.intsig.zdao 380 | com.ali.money.shield 381 | cmb.pb 382 | com.basestonedata.instalment 383 | com.gdhbgh.activity 384 | com.chinamworld.bocmbci 385 | com.ctrip.izuche 386 | com.chinamworld.main 387 | com.campmobile.snowcamera 388 | com.meitu.makeup 389 | com.cmbchina.ccd.pluto.cmbActivity 390 | com.manboker.headportrait 391 | com.yiwang 392 | com.hw.okm 393 | com.android.bankabc 394 | com.kugou.android 395 | com.baidu.BaiduMap 396 | cn.banshenggua.aichang 397 | com.baidu.baiducamera 398 | cn.gogocity.suibian 399 | com.lanjingren.ivwen 400 | cn.myhug.baobao 401 | com.hcc.app 402 | com.greenpoint.android.mc10086.activity 403 | com.wali.live 404 | com.immomo.momo 405 | cn.boyakids.m 406 | com.longzhu.tga 407 | com.xiachufang 408 | com.MobileTicket 409 | com.zl.fqbao 410 | com.greentree.android 411 | com.greate.myapplication 412 | com.kingyee.kymh 413 | com.jx.cmcc.ict.ibelieve 414 | com.ishowedu.peiyin 415 | com.gov.cn 416 | com.hk515.patient 417 | com.vmall.client 418 | com.babytree.apps.pregnancy 419 | com.icbc 420 | cn.poco.jane 421 | com.google.android.apps.photos 422 | com.yuedong.sport 423 | com.vipabc.vipmobile.phone 424 | com.zhangdan.app 425 | com.knowbox.rc.student.pk 426 | com.yunjibuyer.yunji 427 | com.wacai365 428 | com.meitu.meiyancamera 429 | com.kwai.videoeditor 430 | cn.v6.sixrooms 431 | com.yiqizuoye.jzt 432 | com.lalamove.huolala.client 433 | com.maipu.tourist 434 | com.baidu.searchbox.lite 435 | com.benqu.wuta 436 | com.Android56 437 | com.meitu.meipu 438 | com.jym.mall 439 | com.meitu.boxxcam 440 | com.luyun.secretbox 441 | com.lesports.glivesports 442 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/us.entropy_report.encrypted.filtered.packages: -------------------------------------------------------------------------------- 1 | com.huya.nimo 2 | com.asiainno.uplive.yuanfen 3 | com.kwai.video 4 | com.xingin.xhs 5 | io.trade.tradeio.eu 6 | ctrip.android.view 7 | video.like 8 | com.asiainno.uplive.aiglamour 9 | com.asiainno.uplive 10 | com.littlebee.beauty.selfie.camera 11 | com.grammarly.android.keyboard 12 | com.huanshi.awe.another 13 | com.cam001.selfie 14 | sweet.selfie.lite 15 | sweetsnap.lite.snapchat 16 | ru.mail 17 | org.dayup.stocks 18 | io.anyline.examples.store 19 | com.campmobile.snow 20 | com.icomedias.hybridforms 21 | jp.naver.line.android 22 | com.dailyselfie.newlook.studio 23 | com.fabbyhair.android 24 | com.muper.radella 25 | sg.bigo.date 26 | com.linecorp.b612.android 27 | com.joeware.android.gpulumera 28 | com.nhn.android.webtoon 29 | com.dongby.android.mmshow.inter 30 | com.unico.live 31 | com.sina.weibo 32 | com.gokoo.hamo 33 | com.naver.vapp 34 | com.duowan.supervideo 35 | com.uc.vmate 36 | com.camera.galaxyx 37 | com.camera.one.s10.camera 38 | com.camera.s9.camera 39 | com.galaxys.camera4k 40 | com.icameraapple.ioscamera.xscamera.icamera 41 | com.pure.camera.detector.road 42 | com.mico 43 | com.bitstrips.imoji 44 | com.baseapp.eyeem 45 | com.concur.breeze 46 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/reports/us.entropy_report.filtered.packages: -------------------------------------------------------------------------------- 1 | com.grammarly.android.keyboard 2 | com.apusapps.fulakora 3 | com.apus.camera.id 4 | com.bolangdev.poni 5 | com.hefe.pro.editor 6 | com.commsource.beautyplus 7 | com.magicv.airbrush 8 | com.magicvcam.super.selfiecam.camera 9 | com.meitu.beautyplusme 10 | com.meitu.makeup 11 | com.meitu.meiyancamera 12 | com.mt.mtxx.mtxx 13 | com.eraserphoto.cutout.backgroundeditor 14 | com.photoeditor.imagecutter.cameffect 15 | com.alivecor.aliveecg 16 | com.omronhealthcare.omronconnect 17 | com.google.android.apps.translate 18 | io.anyline.examples.store 19 | com.baidu.BaiduMap 20 | com.abrmobileapp 21 | com.mastercraft.game.explorationn 22 | com.ua.building.Lokicraft 23 | com.ua.toybuilding.survival 24 | com.icomedias.hybridforms 25 | horse.schvung.equilab 26 | com.eg.android.AlipayGphone 27 | com.snapchat.android 28 | io.trade.tradeio.eu 29 | com.facebook.talk 30 | com.iconparking 31 | com.camscanner.documentscanner.pdfreader 32 | com.infocomltd.ugvassistant 33 | com.google.android.tts 34 | com.gokoo.hamo 35 | com.familyfit.google.baduanjin 36 | com.google.android.googlequicksearchbox 37 | com.modiface.loreal.stylemyhair 38 | com.youdao.hindict 39 | com.senegence.android.senelooks 40 | com.alibaba.intl.android.apps.poseidon 41 | com.nhn.android.search 42 | com.easilydo.mail 43 | com.google.android.apps.photosgo 44 | kr.co.robin.android.tflite.objectdetector 45 | com.joytunes.simplypiano 46 | com.cut.cutout.photo.background.editor 47 | com.thmobile.sketchphotomaker 48 | pip.face.selfie.beauty.camera.photo.editor 49 | com.androidworks.videocalling 50 | com.face.predictor.fantastic.face.secret 51 | com.framy.placey 52 | com.futureme.palmreader 53 | com.geico.mobile 54 | com.google.android.apps.cultural 55 | com.live.videochat.india 56 | com.text.metal.effect 57 | com.usablenet.mobile.walgreen 58 | face.hw.com.facehub 59 | facetechstudio.future.me 60 | stickerwhatsapp.com.stickers 61 | cn.jingling.motu.photowonder 62 | com.beauty.photoedit.camera.makeup 63 | com.best.photoeditor.beautyeditorpro 64 | com.fotoable.cartoon.cam 65 | com.fotoable.enstyle 66 | com.fotoable.faceswap.c403 67 | com.fotoable.fotobeauty 68 | com.fotoable.makeup 69 | com.fotoable.selfieplus 70 | com.fotoable.snapfilters 71 | com.input.funnykeyboard 72 | com.photo.pipcam.eidtor.camera 73 | com.pic.mycamera 74 | com.pic.photoeditor 75 | com.pic.pipcamera 76 | com.pipcamera.activity 77 | com.total.photostudio 78 | valencia.magic.selfie.makeup.camer.photo.editor 79 | com.accordion.perfectme 80 | com.fishbrain.app 81 | com.abtnprojects.ambatana 82 | com.campmobile.snow 83 | com.linecorp.b612.android 84 | ai.fritz.heartbeat 85 | com.waze 86 | ch.zhaw.facerecognition 87 | com.homesecurity.firstone 88 | com.instagram.android 89 | com.instagram.igtv 90 | com.roberts.croberts.mantis 91 | com.meet.android 92 | com.video.chat.spark 93 | com.iart.camera.photo 94 | com.tyndale.filament 95 | com.google.audio.hearing.visualization.accessibility.scribe 96 | com.seefoodtechnologies.nothotdog 97 | machinelearning.tensorflow.speech 98 | org.tensorflow.detect 99 | fluidsim.de.interactivedrop 100 | com.perfectcorp.ycf 101 | com.google.android.apps.photos.scanner 102 | com.statefarm.pocketagent 103 | com.cyberlink.youcammakeup 104 | co.vero.app 105 | com.urbandroid.sleep 106 | com.uc.vmate 107 | uk.tensorzoom 108 | com.google.android.apps.photos 109 | machinelearning.tensorflow.classifier 110 | com.disney.datg.videoplatforms.android.watchdc 111 | com.lyrebirdstudio.beauty 112 | com.lyrebirdstudio.colorizer.lite 113 | com.lyrebirdstudio.emoji_camera 114 | com.lyrebirdstudio.face_camera 115 | com.lyrebirdstudio.makeup 116 | com.nick.android.nickjr 117 | com.ufotosoft.justshot 118 | co.theguru.dali 119 | sweet.snapface.facefilter 120 | com.bruxlabsnore 121 | com.azarlive.android 122 | com.naver.vapp 123 | com.vyroai.AiBlurEditor 124 | cutcut.cut.out.paste.background.remove.photo.cutout 125 | com.taobao.taobao 126 | app.vivoo.io 127 | ir.hafhashtad.android780 128 | com.draw.clash.drawit 129 | com.draw.now.drawit 130 | com.dazz.hoop 131 | com.badoo.mobile 132 | com.shutterfly 133 | com.meitu.partynow 134 | com.jingdong.app.mall 135 | com.huanshi.awe.another 136 | video.like 137 | com.huya.nimo 138 | com.xingin.xhs 139 | ctrip.android.view 140 | com.pure.camera.detector.road 141 | com.dongby.android.mmshow.inter 142 | com.unico.live 143 | com.littlebee.beauty.selfie.camera 144 | com.asiainno.uplive.yuanfen 145 | com.kwai.video 146 | com.asiainno.uplive.aiglamour 147 | com.asiainno.uplive 148 | com.cam001.selfie 149 | sweet.selfie.lite 150 | sweetsnap.lite.snapchat 151 | ru.mail 152 | org.dayup.stocks 153 | jp.naver.line.android 154 | com.dailyselfie.newlook.studio 155 | com.fabbyhair.android 156 | com.muper.radella 157 | sg.bigo.date 158 | com.joeware.android.gpulumera 159 | com.nhn.android.webtoon 160 | com.sina.weibo 161 | com.duowan.supervideo 162 | com.camera.galaxyx 163 | com.camera.one.s10.camera 164 | com.camera.s9.camera 165 | com.galaxys.camera4k 166 | com.icameraapple.ioscamera.xscamera.icamera 167 | com.mico 168 | com.bitstrips.imoji 169 | com.baseapp.eyeem 170 | com.concur.breeze 171 | ProjectXAndroidAC.imbin 172 | ProjectXAndroid.imbin 173 | -------------------------------------------------------------------------------- /ml_app_profile_analysis/useful_cmds.sh: -------------------------------------------------------------------------------- 1 | cat gplay.entropy_report |grep caffe|grep '7\.99' | grep -v sensetime > gplay.caffeonly.enc.report 2 | -------------------------------------------------------------------------------- /model_encoding_analyzer/.gitignore: -------------------------------------------------------------------------------- 1 | *.result 2 | -------------------------------------------------------------------------------- /model_encoding_analyzer/bincopypat.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import argparse 3 | 4 | def truncate(infile, outfile, pat): 5 | data = open(infile, 'rb').read() 6 | outf = open(outfile, 'wb') 7 | length = len(data) - len(pat) 8 | loc = -1 9 | for i in xrange(length): 10 | found = True 11 | for j in range(len(pat)): 12 | if data[i + j] != pat[j]: 13 | found = False 14 | break 15 | if found == True: 16 | loc = i 17 | break 18 | outf.write(data[:loc]) 19 | outf.close() 20 | 21 | if __name__ == '__main__': 22 | parser = argparse.ArgumentParser() 23 | parser.add_argument('-i', '--infile', help='binfile to be truncated') 24 | parser.add_argument('-p', '--pattern', help='pattern as delimiter') 25 | parser.add_argument('-o', '--output', help='output file') 26 | args = parser.parse_args() 27 | binf = args.infile 28 | pat = args.pattern 29 | out = args.output 30 | 31 | truncate(binf, out, pat) 32 | 33 | -------------------------------------------------------------------------------- /model_encoding_analyzer/commencmds.txt: -------------------------------------------------------------------------------- 1 | dd if=1708654592_dump.data.truncated of=1708654592_dump.data.truncated.dd bs=1 skip=44217 count=15576 2 | hexdump -v -e '8/1 %02X t ' -e '8/1 %cn' -n 660 3 | -------------------------------------------------------------------------------- /model_encoding_analyzer/demanglecppname.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | import argparse 5 | import subprocess 6 | 7 | def demangle(names): 8 | args = ['c++filt'] 9 | args.extend(names) 10 | pipe = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE) 11 | stdout, _ = pipe.communicate() 12 | demangled = stdout.split("\n") 13 | 14 | # Each line ends with a newline, so the final entry of the split output 15 | # will always be ''. 16 | assert len(demangled) == len(names)+1 17 | return demangled[:-1] 18 | 19 | if __name__ == '__main__': 20 | try: 21 | parser = argparse.ArgumentParser() 22 | parser.add_argument('funcnames', help='c++ method names to be demangled, separated by comma') 23 | args = parser.parse_args() 24 | namelist = args.funcnames.split(',') 25 | print demangle(namelist) 26 | 27 | except KeyboardInterrupt: 28 | sys.exit(0) 29 | -------------------------------------------------------------------------------- /model_encoding_analyzer/extractpb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bn=$(basename $1) 3 | if [ "$#" -eq 2 ] 4 | then 5 | dd if=$1 of=$bn.truncated.pb bs=1 skip=$2 6 | elif [ "$#" -eq 3 ] 7 | then 8 | dd if=$1 of=$bn.truncated.pb bs=1 skip=$2 count=$3 9 | else 10 | echo " param error! " 11 | fi 12 | -------------------------------------------------------------------------------- /model_encoding_analyzer/header.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | res=$2.result 3 | for f in $1/*.$2; 4 | do 5 | echo "Processing $f .."; 6 | echo "Processing $f .." >> $res; 7 | echo "size: " $(ls -lh $f |cut -d' ' -f5) >> $res; 8 | echo "entroy: " $(ent -t $f |grep 1, |sed 's/[0-9]*,[0-9]*,\([0-9\.]*\).*/\1/') >> $res 9 | echo "=== hexdump 96 lines: ===" >> $res 10 | hexdump -e '8/1 "%02X ""\n"' -n 96 $f >> $res; 11 | echo "=== end of hexdump ===" >> $res 12 | echo "" >> $res 13 | echo "=== strings 100 lines: ===" >> $res 14 | strings $f |head -n 200>> $res; 15 | echo "=== end of strings ===" >> $res 16 | echo "" >> $res 17 | if strings $f | grep -q conv1 18 | then 19 | echo $f "contains conv1" 20 | ./hexdumper.sh $f 21 | ./hexdumperraw.sh $f 22 | elif strings $f | grep -q conv2 23 | then 24 | echo $f "contains conv2" 25 | ./hexdumper.sh $f 26 | ./hexdumperraw.sh $f 27 | elif strings $f | grep -q TFL3 28 | then 29 | echo $f "contains TFL3" 30 | ./hexdumper.sh $f 31 | ./hexdumperraw.sh $f 32 | elif strings $f | grep -q TFL2 33 | then 34 | echo $f 35 | ./hexdumper.sh $f 36 | ./hexdumperraw.sh $f 37 | fi 38 | done 39 | -------------------------------------------------------------------------------- /model_encoding_analyzer/hexdumper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bn=$(basename $1) 3 | hexdump -v -e '8/1 "%02X ""\t"' -e '8/1 "%c""\n"' -n 10240 $1 >$bn.dump 4 | -------------------------------------------------------------------------------- /model_encoding_analyzer/hexdumperraw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bn=$(basename $1) 3 | hexdump -v -e '8/1 "%02X ""\n"' -n 10240 $1 > $bn.raw.dump 4 | -------------------------------------------------------------------------------- /modelxray.config: -------------------------------------------------------------------------------- 1 | [config] 2 | decomposed_dir = ./decomposed_dir/ 3 | output_dir = ./output_dir/ 4 | framework = tensorflow,caffe,sensetime,ncnn,mace,mxnet,uls,other 5 | ncpu = 8 6 | max_func_num = 50 7 | 8 | [script] 9 | top = ./intercept_scripts/intercept_template_top.js 10 | bottom = ./intercept_scripts/intercept_template_bottom.js 11 | shell_top = ./intercept_scripts/shell_template_top.sh 12 | shell_mid = ./intercept_scripts/shell_template_mid.sh 13 | analyzer_path = ./model_encoding_analyzer/ 14 | analyzer_list = header.sh,extractpb.sh,hexdumper.sh,hexdumperraw.sh 15 | 16 | [model_pattern] 17 | suffix = pb,model,bin,rf,tflite,param,proto,androidmodel,rpnmodel,prototxt,pbtxt,caffemodel,caffe,modle,lite,ckpt,tensorflow,dlc,params,tfl 18 | keywords = model,uls,detection,recognition,tracker,detect,trained 19 | ex_suffix = jpg,json,xml,png,label,ttf,gif,glsl,tsv,webp 20 | 21 | [lib_pattern] 22 | keywords = tf,tensorflow,caffe,cnn,uls,sensetime,st_mobile 23 | 24 | [symbol_pattern] 25 | keywords = tensorflow,cnn,sensetime,caffe 26 | 27 | [function_pattern] 28 | magic_str = free 29 | filter_str = free_exception,free_dependent_exception 30 | 31 | [free_pattern] 32 | magic_str = decrypt,init,load,model,start,create 33 | 34 | [tensorflow] 35 | magic_str = tensorflow 36 | 37 | [caffe] 38 | magic_str = caffe 39 | 40 | [sensetime] 41 | magic_str = sensetime,st_mobile 42 | 43 | [ncnn] 44 | magic_str = ncnn 45 | 46 | [mace] 47 | magic_str = libmace,mace_input_node 48 | 49 | [mxnet] 50 | magic_str = mxnet 51 | 52 | [uls] 53 | magic_str = ulsTracker,ulsface 54 | 55 | [other] 56 | magic_str = neuralnetwork,lstm,cnn,rnn 57 | --------------------------------------------------------------------------------