Paper Title: No Privacy for Privates: How Military Communities Experience and Perceive the Privacy Risks of Military-Marketed Mobile Apps
Authors: Joshua Shinkle, Chandrika Mukherjee, Abdullah Imran, Arjun Arunasalam, Donna Artusy, Antonio Bianchi, Z. Berkay Celik, Alexander Master
Year: 2026
Requested Badge(s): Available
Artifact Description and Relevance:
-
keywords.txt- The list of 55 military-related keywords used to query the Google Play Store for Military-Marketed Mobile Apps (MMMapps) to cultivate our dataset. -
initial_app_name_collection.py- The script used to perform the initial collection of MMMapp candidates by querying the Google Play Store with each of the 55 military-related keywords and aggregating the returned app listings into a deduplicated set. -
llm_classifier_binary.py- The script used to implement the binary LLM-as-a-Judge classifier, prompting GPT-4 to label each app description as MMMapp (1) or not (0) and scoring its agreement against human-labeled data. -
llm_classifier_decimal.py- The script used to implement the range LLM-as-a-Judge classifier, prompting GPT-4 to assign each app description a continuous 0-to-1 score reflecting its likelihood of being an MMMapp. -
classifier_bert.py- The script used to fine-tune and evaluate a BERT-based classifier that labels Google Play app descriptions as MMMapp or not, serving as a recall-prioritized filter to reduce manual review effort when collecting MMMapps. -
bert_model/- The directory containing the fine-tuned BERT model weights and tokenizer files produced by classifier_bert.py. -
llm_classifier_reddit.py- The script used to extract candidate app names mentioned in Reddit posts, bodies, and comments by prompting GPT-4 over text retrieved via the Reddit API, supporting discovery of additional MMMapps beyond keyword search. -
mmmapp_dataset.csv- The dataset of 242 MMMapps we analyzed to help answer our RQs. -
mobsf_static_only.py- The script used to run MobSF static analysis on MMMapp APKs and extract their permissions, trackers, third-party and native libraries, URLs, and domains into structured reports. -
ui_crawler_avc.py- The script used to automatically crawl an MMMapp's user interface to discover and log on-screen fields that request personally identifiable information (PII) from military-affiliated users. -
network_analysis_zap.py- The script used to capture an MMMapp's runtime network traffic through OWASP ZAP and analyze it for transmitted PII, location indicators, and first- versus third-party destinations. -
first-party_code_provenance.py- The script used to determine first-party code provenance from scraped Google Play developer info. -
data_safety_scraper_driver.js- The driver script that reads a list of package names from a CSV and invokesdata_safety_scraper_module.jsto batch-collect the Google Play Data Safety section data for each MMMapp. -
data_safety_scraper_module.js- The module used to fetch and parse the Data Safety section (shared data, collected data, security practices, and privacy policy URL) from a Google Play app listing. -
apple_privacy_scraper.py- The script used to scrape the privacy nutrition label data (data collection sections, purposes, categories, and items) for MMMapps from their Apple App Store listings. -
survey_apps_representativeness.py- The script used to verify that the MMMapps we presented in our user study were representative of the broader MMMapp dataset. -
user_study_questionnaire.pdf- The full user study questionnaire presented to participants to help us understand how military-affiliated personnel understand and attempt to mitigate the risks posed by MMMapps. -
user_study_response_data.md- The per-question aggregated quantitative response data from the user study questionnaire, which helped us answer our RQs. -
quant_analysis.py- The script used to calculate aggregated response data from the user study questionnaire, which helped us answer our RQs. -
behavior-uncomfortability_discrepancy.py- The script used to assess the degree to which participants were using MMMapps that engage in data practices they find inappropriate.
There are no security or privacy risks for the machine of the person opening/downloading our artifacts.
For the user study, we obtained IRB approval from our institution prior to conducting any data collection. The permission to use the aggregated user study response data as an artifact was obtained through the user study consent form which states "We may share the anonymous data and findings with other researchers or in research papers or presentations."
All artifacts can be accessed at https://github.com/purseclab/no_privacy_for_privates.
-
keywords.txtcan be reused in future work to cultivate relevant MMMapps datasets, as currently available MMMapps may be removed from app stores and new MMMapps may be released. This list can also be expanded in future work to target military communities of non-US countries. -
initial_app_name_collection.pycan be reused or extended in future work interested in seeding an app dataset by programmatically querying the Google Play Store with a list of keywords. -
llm_classifier_binary.pycan be reused or extended in future work interested in using LLMs to perform binary classification of apps from their store descriptions. -
llm_classifier_decimal.pycan be reused or extended in future work interested in using LLMs to produce continuous, thresholdable relevance scores for apps from their store descriptions. -
classifier_bert.pycan be reused or extended in future work interested in training text classifiers to filter candidate apps from large app-store query results based on their descriptions. -
bert_model/can be reused in future work to directly apply our trained classifier to new app descriptions, or as a starting point for further fine-tuning on related app-classification tasks. -
llm_classifier_reddit.pycan be reused or extended in future work interested in using LLMs to mine app mentions from social media discussions. -
mmmapp_dataset.csvcan be reused and extended in future work investigating security and privacy concerns posed by MMMapps.mobsf_static_only.pycan be reused or extended in future work interested in batch static analysis of Android apps to characterize their permissions, libraries, and embedded trackers. -
mobsf_static_only.pycan be reused or extended in future work interested in batch static analysis of Android apps to characterize their permissions, libraries, and embedded trackers. -
ui_crawler_avc.pycan be extended in future work interested in automatically discovering PII-requesting input fields in Android app interfaces. -
network_analysis_zap.pycan be reused or extended in future work interested in dynamically analyzing the network behavior of Android apps to detect PII exfiltration and third-party data flows. -
first-party_code_provenance.pycan be reused in future work interested in the first-party code provenance of Android apps. -
data_safety_scraper_driver.jscan be extended in future work interested in batch-collecting Data Safety disclosures across a large set of Android apps. -
data_safety_scraper_module.jscan be reused in future work interested in extracting structured Data Safety section disclosures from Google Play apps. -
apple_privacy_scraper.pycan be reused or extended in future work interested in collecting and structuring Apple App Store privacy label data at scale. -
survey_apps_representativeness.pycan be extended in future work to determine to what degree a subset of apps are representative of the data practices of a broader app dataset. -
user_study_questionnaire.pdfcan be extended and relevant parts reused to author additional studies (e.g., examining how perceptions evolve in response to institutional guidance or policy changes). -
user_study_response_data.mdcan be reused in future work studying military communities (e.g., examining how perceptions evolve in response to institutional guidance or policy changes). -
quant_analysis.pycan be extended in future work interested in calculating and visualizing aggregated response data from user study questionnaires. -
behavior-uncomfortability_discrepancy.pycan be extended in future work to assess the degree to which participants are using apps that engage in data practices they find inappropriate.