- React Native आधारित व्हाइट हाउस की आधिकारिक ऐप WordPress backend, Expo SDK 54 और Hermes engine का उपयोग करती है, और news, photos, policy आदि content देने वाले portal के रूप में काम करती है
- सभी WebView में JavaScript injection code शामिल है, जो cookie banner, GDPR consent popup, paywall elements आदि को अपने-आप हटा देता है
- OneSignal SDK के ज़रिए location tracking और user profiling की क्षमता पूरी तरह शामिल है, और GPS data को 4.5 मिनट से 9.5 मिनट के अंतराल पर एकत्र किया जा सकता है
- ऐप GitHub Pages, Elfsight, Mailchimp, Uploadcare, Truth Social जैसी बाहरी commercial services लोड करती है, जिससे supply chain risk और tracking की संभावना बनी रहती है
- SSL pinning का अभाव, development resources का शामिल होना, और external code execution की संभावना जैसी वजहों से इसे सरकारी आधिकारिक ऐप के रूप में security और privacy के लिहाज़ से चिंताजनक माना जा रहा है
ऐप का अवलोकन
- White House आधिकारिक ऐप App Store और Google Play पर उपलब्ध React Native आधारित application है
- Expo SDK 54 और Hermes JavaScript engine का उपयोग करती है
- backend WordPress आधारित custom REST API संरचना पर बना है
- Expo configuration के अनुसार निर्माता “forty-five-press” के रूप में दर्ज है
- ऐप logic 5.5MB आकार के Hermes bytecode bundle में compile की गई है, जबकि native code केवल साधारण wrapper जैसा है
- version 47.0.1, build 20 है, और Hermes तथा New Architecture enabled हैं
Expo configuration
- इसमें दो plugins
withNoLocation और withStripPermissions शामिल हैं
- अनुमान है कि ये location removal और permission stripping से जुड़े हैं
- OTA updates disabled हैं, हालांकि Expo updates infrastructure शामिल है लेकिन काम नहीं करता
ऐप की वास्तविक functionality
- Hermes bundle string analysis के अनुसार, ऐप whitehouse.gov के WordPress REST API के माध्यम से content लोड करती है
- मुख्य endpoints हैं
/wp-json/whitehouse/v1/home, /news/articles, /wire, /live, /galleries, /issues, /priorities, /achievements, /affordability, /media-bias, /social/x आदि
- ऐप के strings में
"THE TRUMP EFFECT", "Greatest President Ever!", "Text President Trump", "Visit TrumpRx.gov", "Visit TrumpAccounts.gov" आदि शामिल हैं
- साथ ही
https://www.ice.gov/webform/ice-tip-form लिंक सीधे शामिल है
- कुल मिलाकर यह news, live streams, photos, policy, social feeds, और administration promotion content देने वाला portal है
cookie·paywall blocking script
- बाहरी links खोलने वाले WebView में हर page load पर JavaScript injection code चलाया जाता है
- यह script cookie banner, GDPR consent popup, login/signup wall, upsell·paywall elements, CMP box आदि को छिपाती है
body { overflow: auto !important } को force करके scroll lock हटाती है
- MutationObserver के ज़रिए बाद में जुड़ने वाले consent popups भी लगातार हटाए जाते हैं
- नतीजतन अमेरिकी सरकार की आधिकारिक ऐप third-party websites के cookie·GDPR·paywall elements हटाने वाला code inject करती है
location tracking infrastructure
withNoLocation plugin मौजूद होने के बावजूद OneSignal SDK का location tracking code पूरी तरह शामिल है
- tracking enable होने की तीन शर्तें हैं
_isShared flag true पर set हो (setLocationShared(true) call होने पर)
- user runtime पर location permission दे
- device में location provider (GMS/HMS) मौजूद हो
- शर्तें पूरी होने पर 4.5 मिनट (foreground) और 9.5 मिनट (background) के अंतराल पर GPS request होती है
- एकत्र data: latitude, longitude, accuracy, timestamp, foreground/background status, location precision
- data OneSignal के PropertiesModel के माध्यम से server पर sync किया जाता है
- background service भी शामिल है, इसलिए ऐप inactive होने पर भी location capture संभव है
- JS bundle में
setLocationShared call होती है या नहीं, यह पुष्टि नहीं हो सकी, लेकिन पूरा pipeline activate होने लायक स्थिति में compile किया गया है
OneSignal user profiling
- OneSignal SDK केवल push notifications तक सीमित नहीं है, बल्कि user behavior tracking और segmentation features भी करता है
- मुख्य functions:
addTag, addSms, addAliases, addOutcomeWithValue, addUniqueOutcome, notificationClicked, inAppMessageClicked, permissionChanged, subscriptionChanged, userStateChanged, setPrivacyConsentRequired, setPrivacyConsentGiven आदि
- local DB notification receive·open·dismiss status रिकॉर्ड करता है
- परिणामस्वरूप location, notification interaction, in-app message clicks, phone number, tags, state changes आदि OneSignal server पर भेजे जाते हैं
supply chain risk: external code loading
-
GitHub Pages
react-native-youtube-iframe library lonelycpp.github.io से HTML लोड करती है
- अगर वह GitHub account compromise हो जाए, तो मनमाना JavaScript ऐप WebView के भीतर चलाया जा सकता है
-
Elfsight widget
- Elfsight का
platform.js social feed embed करने के लिए इस्तेमाल होता है
- commercial SaaS code बिना sandboxing के चलता है, और tracking की संभावना मौजूद है
- widget ID
4a00611b-befa-466e-bab2-6e824a0a98a9 hardcoded है
-
अन्य external services
- Mailchimp: email subscription processing (
whitehouse.us10.list-manage.com)
- Uploadcare: image hosting (
ucarecdn.com)
- Truth Social: Trump profile और “Follow” button शामिल
- Facebook: page plugin iframe लोड किया जाता है
- ये सभी सरकारी infrastructure नहीं बल्कि external commercial services हैं
security configuration
- SSL certificate pinning नहीं है, standard Android TrustManager का उपयोग होता है
- public Wi‑Fi या proxy environment में MITM attack की स्थिति में traffic expose हो सकता है
development leftovers
- production build में development URLs और resources शामिल हैं
localhost और developer IP (10.4.4.109) strings मौजूद हैं
- Expo development client (
expo-dev-client, expo-devlauncher, expo-devmenu) शामिल हैं
dev_menu_fab_icon.png resource मौजूद है
- Compose
PreviewActivity manifest में export की हुई स्थिति में शामिल है
permission structure
- AndroidManifest में सामान्य notification-केंद्रित permissions के अलावा कई launcher badge permissions (Samsung, HTC, Sony आदि) शामिल हैं
- runtime request strings में precise location, approximate location, background location permissions मौजूद हैं
- Google Play description में ये permissions भी दर्ज हैं
- “shared storage में modification/deletion”, “foreground service चलाना”, “other apps के ऊपर display”, “boot पर run”, “fingerprint·biometric hardware का उपयोग”
- FileProvider configuration पूरे external storage root को expose करती है, जिसका उपयोग WebView file access में होता है
शामिल SDKs की सूची
- कुल 68 से अधिक libraries शामिल हैं
- frameworks: React Native, Expo SDK 54, Hermes
- push/engagement: OneSignal, Firebase Cloud Messaging, Firebase Installations
- analytics/telemetry: Firebase Analytics, Google Data Transport, OpenTelemetry
- networking: OkHttp3, Apollo GraphQL, Okio
- images: Fresco, Glide, Coil 3, Uploadcare CDN
- video: ExoPlayer(Media3), Expo Video
- ML: Google ML Kit Vision (barcode scanning), Barhopper model
- cryptography: Bouncy Castle
- storage: Expo Secure Store, React Native Async Storage
- WebView: React Native WebView (injection script सहित)
- DI: Koin
- serialization: GSON, Wire(Protocol Buffers)
- license verification: PairIP (Google Play verification के लिए)
- arm64 build में 25 native
.so libraries शामिल हैं
1 टिप्पणियां
Hacker News की राय
लेख की सामग्री AI द्वारा लिखी हुई जैसी लगी, इसलिए थोड़ा शक हुआ
जिज्ञासा में मैंने ऐप खुद इंस्टॉल करके देखा, लेकिन लेख के दावे के विपरीत इसने location permission बिल्कुल नहीं मांगी
मैंने Claude Code से APK decompile किया, लेकिन यह टूल reachability analysis या जटिल control flow समझने में कमजोर है
यह call न होने वाले dead code को भी ऐसे दिखाता है जैसे वे वास्तव में इस्तेमाल हो रहे functions हों, जिससे गलतफहमी पैदा होती है
runtime में location मांगने के लिए उसका declaration अनिवार्य होता है, और वह हिस्सा मौजूद नहीं है
मेरे फोन पर (शायद Graphene की वजह से) Play ने installation रोक दिया, इसलिए मैं APK को सीधे जांच नहीं सका
Play Store के “जानकारी → permissions” सेक्शन में 47.0.1 version के लिए सिर्फ सामान्य permissions दिखती हैं, जैसे network access, vibration control, notifications दिखाना आदि
संभव है कि यह version rollout या device-specific targeting का मामला हो
मुझे ऐसा नहीं लगा
iPhone App Store के अनुसार 47.0.1 version 34 मिनट पहले आया था, और उसमें “minor bug fixes” लिखा है
शायद उसी fix में location-related code शामिल किया गया हो
यह एक सामान्य consulting company के marketing app जैसा लगा
लगता है outsourced developer ने standard architecture इस्तेमाल किया और location tracking code जैसी चीजें default में शामिल रहीं
यह सिर्फ push notifications के लिए platform है, इसलिए जब तक ऐप खुद permission request नहीं करती, कुछ नहीं होता
लगता है उसने White House से जुड़ा support contract (लगभग 15 लाख डॉलर का) हासिल किया और यह ऐप बनाया
अब वह लगभग खत्म कर दी गई है और उसकी जगह DOGE नाम का संगठन आ गया है, जो कई मुकदमों में उलझा है
United States Digital Service wiki article
इसलिए लगता है कि दूसरे apps से reuse किए गए हिस्सों के निशान रह गए हैं
.gov domain को commercial promotion के लिए इस्तेमाल किया जा सकता है या नहीं, इस पर सवाल है
अगर लेख की बात सच है, तो यह स्वतंत्रता के प्रतीकात्मक अंत जैसी घटना होगी
ऐसा लगता है जैसे अमेरिका जिन मूल्यों पर गर्व करता था, वे गायब हो रहे हैं
यह बात चौंकाने वाली है कि सरकारी official app तीसरे पक्ष की websites में CSS और JavaScript inject करके cookie banners या paywall हटाती है
मैं खुद कोई private government app इंस्टॉल नहीं करूंगा, लेकिन यह feature uBlock की तरह सकारात्मक भी लगती है
साइट इतनी धीमी थी कि उसका इस्तेमाल करना लगभग असंभव था
मेरे 2019 MacBook Pro + Chrome environment में scroll बहुत बुरी तरह अटक रहा था
विडंबना यह है कि web development की आलोचना करने वाला लेख खुद ऐसी web performance problem दिखा रहा था
certificate pinning न होने की आलोचना थोड़ी बढ़ा-चढ़ाकर कही गई लगती है
अगर मैं ऐसे network पर भी हूँ जहाँ MITM attack संभव है, तब भी अगर मेरा device उस CA पर भरोसा नहीं करता, तो सिर्फ TLS error आएगी
उदाहरण के लिए, किसी ऐसे देश के दूतावास के पास किसी cafe में traffic intercept होने की कल्पना की जा सकती है जहाँ surveillance आम बात हो
ऐसा कम होता है, लेकिन पूरी तरह असंभव भी नहीं है
यह साइट इतनी भारी है कि browser जाम होने जैसा हो जाता है
मैं इसे सिर्फ reader mode में ही किसी तरह पढ़ पाया
पहले लगा tablet की समस्या है, लेकिन दूसरों को भी ऐसा हुआ यह दिलचस्प है
scroll करते समय GPU पर बहुत लोड पड़ता है, इसलिए graphics resource usage बहुत अधिक है
आजकल White House में कानून का उल्लंघन जैसे आम बात हो गई है
मैंने शुरू से ही मान लिया था कि यह malware होगा, और मेरा अनुमान सही निकला