2 điểm bởi GN⁺ 2025-03-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Từ Android 11, Google đã hạn chế việc truy vấn giữa các ứng dụng, nhưng nhiều ứng dụng vẫn có thể kiểm tra danh sách ứng dụng đã cài đặt chỉ bằng khai báo trong AndroidManifest.xml
  • Chính sách package visibility yêu cầu ứng dụng chỉ được xem các ứng dụng cần thiết cho chức năng cốt lõi, nhưng việc khai báo từng package riêng lẻ và bộ lọc ACTION_MAIN đã được dùng như đường vòng
  • Swiggy khai báo 154 ứng dụng, Zepto 165, KreditBee 860, Moneyview 944, qua đó có thể truy vấn xem thiết bị người dùng có một ứng dụng cụ thể hay không
  • Trong 47 ứng dụng Ấn Độ được xem ngẫu nhiên, 31 ứng dụng dùng intent filter ACTION_MAIN, cho phép xem hầu hết ứng dụng đã cài đặt có màn hình mà không cần QUERY_ALL_PACKAGES
  • Dữ liệu ứng dụng đã cài đặt và quyền READ_SMS có thể dẫn tới profiling, phân biệt giá, đánh giá tín dụng/tư cách, nhưng người dùng khó biết ứng dụng đọc gì và khi nào

Lỗ hổng trong chính sách hiển thị ứng dụng của Android

  • Trước đây trên Android, ứng dụng có thể xem các ứng dụng khác được cài trên điện thoại người dùng mà không cần quyền riêng
  • Từ Android 11, Google giới thiệu chính sách package visibility để hạn chế quyền truy cập này
    • Ứng dụng chỉ nên được xem các ứng dụng đã cài đặt khác khi điều đó là thiết yếu cho chức năng cốt lõi
    • Nhà phát triển phải nêu rõ các ứng dụng muốn kiểm tra trong AndroidManifest.xml, tệp cấu hình bắt buộc của mọi ứng dụng Android
  • Quyền QUERY_ALL_PACKAGES được cho phép ngoại lệ đối với các trường hợp sử dụng cụ thể như trình quản lý tệp, trình duyệt, ứng dụng diệt virus
  • Các trường hợp như hiển thị ứng dụng thanh toán UPI, phát hiện ứng dụng nhân bản/đa tài khoản có thể là lý do hợp pháp để truy vấn ứng dụng
    • Nhiều manifest được khảo sát cũng có truy vấn ứng dụng vì mục đích thanh toán, bảo mật và phát hiện gian lận

Swiggy và Zepto truy vấn ứng dụng trên phạm vi rộng

  • Swiggy liệt kê 154 tên package trong manifest, cho phép kiểm tra các ứng dụng đó có trên điện thoại hay không
    • Danh sách bao gồm các ứng dụng như Xbox, PlayStation, Naukri, Upstox
    • Các danh mục rất rộng, nên khả năng thu thập dữ liệu nhằm profiling người dùng và xây dựng hồ sơ hành vi là lớn
    • Google coi danh sách ứng dụng đã cài đặt là dữ liệu người dùng cá nhân và nhạy cảm
  • Zepto đăng ký trong manifest để kiểm tra 165 ứng dụng trên thiết bị
    • Bao gồm các ứng dụng phổ biến thuộc nhiều danh mục như Netflix, Bumble, Binance
    • Đã có bài báo nói rằng Zepto hiển thị giá khác nhau cho người dùng iOS và Android, và một số khách hàng báo cáo có chênh lệch giá giữa các điện thoại Android
  • Khi cài ứng dụng từ Play Store, người dùng không thể thấy danh sách truy vấn ứng dụng nào được đưa vào manifest của ứng dụng đó

Phạm vi truy vấn của ứng dụng dành cho shipper giao đồ ăn và ứng dụng vay cá nhân

  • Ứng dụng dành cho shipper của Swiggy và Zepto có danh sách truy vấn ứng dụng khác với ứng dụng dành cho người tiêu dùng
    • Cả hai ứng dụng đều có các mục có thể kiểm tra shipper đang làm cho công ty nào khác
    • Swiggy còn kiểm tra cả ứng dụng vay cá nhân, ứng dụng tài chính cá nhân, và các game như Ludo King, Carrom Pool
  • Các hành vi săn mồi của ứng dụng vay cá nhân tại Ấn Độ đã được ghi nhận, và vài năm trước từng có đợt trấn áp lớn khiến hàng nghìn ứng dụng bị gỡ khỏi Play Store
  • KreditBee là một trong những ứng dụng hàng đầu trong mảng vay cá nhân trên Play Store, có hơn 50 triệu lượt tải xuống và kiểm tra 860 ứng dụng trong manifest
    • Danh sách cũng có các mục như Tamil Calendar, Odia Calendar, Qibla Direction Finder, ứng dụng đền chùa, ứng dụng chiêm tinh
    • Ví dụ còn xuất hiện ứng dụng hôn nhân dành cho người chưa tốt nghiệp trung học Jodii for Diploma, +2,10 below và ứng dụng giao dịch bò/bò trâu Buy and Sell Cows and Buffaloes Animall, cả hai đều có hơn 10 triệu lượt tải xuống
  • Moneyview cũng là ứng dụng vay cá nhân có hơn 50 triệu lượt tải xuống và đưa 944 ứng dụng vào manifest
  • Chính sách Play Store hạn chế rõ ràng việc ứng dụng vay cá nhân dùng QUERY_ALL_PACKAGES, nhưng KreditBee và Moneyview vòng qua hạn chế này bằng cách liệt kê từng ứng dụng mong muốn trong manifest

Cách xem danh sách ứng dụng mà không cần QUERY_ALL_PACKAGES

  • Trong các ứng dụng được khảo sát, Cred là trường hợp duy nhất đưa quyền rủi ro cao/nhạy cảm QUERY_ALL_PACKAGES vào manifest
    • Play Store cho phép “ngoại lệ tạm thời” đối với quyền này cho các ứng dụng có mục đích cốt lõi có thể xác minh là hỗ trợ giao dịch tài chính liên quan đến sản phẩm tài chính được quản lý
    • Manifest của PhonePe hay PayTM trong cùng lĩnh vực không có quyền này
    • Cred cũng cung cấp khoản vay cá nhân, và dường như không thuộc đối tượng ngoại lệ theo chính sách vay cá nhân của Play Store
  • Manifest của một số ứng dụng có intent filter ACTION_MAIN như sau
<queries>
  [...]
  <intent>
    <action android:name="android.intent.action.MAIN" />
  </intent>
  [...]
</queries>
  • Bộ lọc ACTION_MAIN cung cấp khả năng nhìn thấy hầu hết ứng dụng đã cài đặt có màn hình, và có thể xem danh sách ứng dụng trên điện thoại mà không cần quyền QUERY_ALL_PACKAGES
    • Khi truy vấn ứng dụng đã cài đặt bằng một ứng dụng Android cơ bản có cùng cấu hình, danh sách tất cả ứng dụng trên điện thoại được trả về
  • Trong 47 ứng dụng Ấn Độ được phân tích ngẫu nhiên, 31 ứng dụng dùng bộ lọc này, tức khoảng 2 trong 3 ứng dụng
    • Ứng dụng dùng: Astrotalk, Axis Mobile, Bajaj Finserv, BookMyShow, Cars24, Cure.fit, Fibe, Groww, Housing, Instamart, Ixigo, JioHotstar, KreditBee, KukuTV, LazyPay, Ludo King, Meesho, MoneyTap, Moneyview, Navi, NoBroker, Nykaa, Ola, PhonePe, PhysicsWallah, Slice, Spinny, Swiggy, Swiggy Delivery, Tata Neu, Zomato
    • Ứng dụng không dùng: Airtel Thanks, Blinkit, Byju’s, MyGate, Dream11, Flipkart, HDFC Mobile, Healthify, INDmoney, MyJio, Paytm, PaisaBazaar, ShareChat, Unacademy, Vedantu, Zepto
  • Swiggy cũng có bộ lọc ACTION_MAIN, nhưng đồng thời liệt kê rõ danh sách truy vấn ứng dụng, qua đó hé lộ một phần thực tiễn thu thập dữ liệu
  • Các tệp manifest đã đọc được công khai tại android-manifest-files, phần lớn được tải xuống vào ngày 18 hoặc 19 tháng 3
  • Thiết lập này không chỉ giới hạn ở ứng dụng của các công ty Ấn Độ
    • Facebook, Instagram, Snapchat, Subway Surfers, Truecaller có cùng thiết lập
    • Amazon, Spotify, X, Discord, WhatsApp thì không

Tính nhạy cảm của dữ liệu ứng dụng đã cài đặt và quyền SMS

  • Dữ liệu ứng dụng đã cài đặt là dữ liệu cá nhân nhạy cảm
    • Năm 2022, Vice đưa tin rằng ngay sau tin Roe v. Wade có thể bị lật ngược, một marketplace dữ liệu tên Narrative đang bán dữ liệu người dùng đã tải ứng dụng theo dõi chu kỳ kinh nguyệt
  • Ngoài truy vấn ứng dụng đã cài đặt, manifest của ứng dụng cũng có thể chứa rộng rãi các quyền có vẻ vượt quá phạm vi cần thiết
  • Zepto yêu cầu quyền READ_SMS
    • Người dùng có thể từ chối, nhưng quyền này là bắt buộc khi đăng ký Zepto Postpaid
    • Nếu cho phép quyền này, nhiều TRAI sender ID của ngân hàng và cả SMS từ Blinkit, Swiggy, Bigbasket, Flipkart cũng nằm trong phạm vi kiểm tra
    • Có vẻ ứng dụng đọc SMS ngân hàng để kiểm tra điều kiện tham gia gói Postpaid, nhưng vẫn có thể đọc ngay cả khi người dùng không chọn tính năng đó
  • Sau khi cấp các quyền như READ_SMS cho ứng dụng, người dùng không thể thấy ứng dụng truy cập nội dung gì và khi nào
  • Thông tin cài đặt ứng dụng Android có thể được dùng cho các mục đích như profiling bởi nhà phát triển ứng dụng và data broker, đối chiếu chéo với dữ liệu mạng quảng cáo, và định giá

1 bình luận

 
GN⁺ 2025-03-30
Ý kiến trên Hacker News
  • Lỗ hổng ACTION_MAIN từng được đề cập trước đây: https://commonsware.com/blog/2020/04/05/android-r-package-vi...
    Google không định vá lỗi này. Không biết nếu gửi lên Android VDP dưới dạng bypass quyền thì sẽ ra sao
    Cũng có câu hỏi SO do tác giả đăng về cách bypass: https://stackoverflow.com/q/79527331

    • Có vẻ lỗ hổng này có thể được bịt vào một lúc nào đó nếu yêu cầu các app khai báo ACTION_MAIN thực sự phải là launcher. Với các tích hợp bình thường thì có lẽ nên dùng intent cụ thể hơn
      Khi đó, chính luồng Android hỏi có muốn đặt một game ngẫu nhiên vừa tải về làm launcher mặc định hay không sẽ trở thành một tương tác khá rủi ro đối với app đáng ngờ. Người dùng có thể thoát ra rồi báo cáo, hoặc người dùng không rành có thể chọn nó làm launcher mặc định, làm hỏng màn hình chính rồi báo cáo lên Play Store. Thực tế nếu phân phối dưới dạng app cấp launcher thì có lẽ cũng sẽ kèm kiểm thử tự động và các yêu cầu bổ sung, tạo thêm gánh nặng cho nhà phát triển
    • Vì vậy các dự án như XPL-Extended hay XPrivacyLua trước đây là cực kỳ cần thiết. Tôi không dùng điện thoại Android nếu thiếu những thứ như vậy
    • Lỗ hổng này đã tồn tại ngay từ khi giới hạn khả năng nhìn thấy package được đưa vào, và có vẻ gần như ai cũng biết cách bypass giới hạn đó
      Khó tin là các kỹ sư Google không biết về lỗ hổng được dùng rộng rãi này, nhưng tôi cũng tò mò liệu có nguồn nào nói rằng Google đã từ chối sửa nó không
    • Gửi lên Android VDP là ý hay, nhưng tôi cũng sẽ không ngạc nhiên nếu họ gạt đi là hành vi theo thiết kế
    • Không rõ “từ chối vá” nghĩa là gì. Trên Play Store, Google từ chối các nỗ lực phân phối app không phải launcher nhưng lại yêu cầu bộ lọc đó
  • Tôi vẫn hoàn toàn không hiểu tại sao lại cần “app” native. Từ trước tới giờ tôi chưa thấy “app” nào mà website hoặc web app không đủ, và đa số có lẽ còn tốt hơn nếu là web app
    Lợi thế duy nhất của “app” dường như là nhà phát triển có thể truy cập thông tin cá nhân mà thực ra họ không cần
    Cũng có lợi thế là được lên “App Store”, nhưng App Store là một khái niệm không cần thiết do Apple/Google tạo ra để lấy một tỷ lệ lớn từ doanh số
    Trình duyệt web cung cấp sandboxing khá ổn, không có phí “submit”, và mọi người trên mọi điện thoại đều có thể truy cập

    • Câu trả lời đơn giản là trải nghiệm người dùng
      Thực tế là phần lớn web app di động rất tệ. Trải nghiệm người dùng không thể sánh với app native. Tôi ghét việc văn bản bị chọn, ghét việc kéo để làm mới trên mọi trang, và ghét việc vuốt sang trái lại quay về trang trước
      Có thể tìm cách né các vấn đề này, nhưng thư viện Silk mới (https://silkhq.co/) có vẻ là trường hợp đầu tiên tiến rất gần tới trải nghiệm native. Nhưng chỉ riêng việc nó là thư viện trả phí cũng cho thấy vấn đề này không hề nhỏ
    • Đây là một góc nhìn kỳ lạ. Về bản chất cũng giống như nói rằng laptop không cần app native
      Có nhiều việc app native làm được nhưng trình duyệt làm không tốt hoặc hoàn toàn không làm được. Ví dụ như chỉnh sửa video/audio nặng, truy cập nhiều RAM, tận dụng tính toán GPU, hay các tác vụ gần với phần cứng thì chỉ dùng trình duyệt vẫn chưa đủ
    • Trên iOS, khi có cả app native lẫn web app, nhiều khi có khác biệt lớn về mức dùng pin và độ giật lag. Như các phản hồi khác, tôi cũng thích các app hoàn toàn offline như bản đồ hay ghi chú
      Không có nghĩa là cách Apple và Google thực sự triển khai là tốt, nhưng tôi không nghĩ sẽ có tương lai chỉ dùng web app. Vì cùng lý do đó, trong một thời gian nữa tôi sẽ không đổi máy tính thật của mình sang Chromebook
    • Tôi đồng ý một phần. Những app mà các công ty đưa ra để gom và quản lý token mua sắm hoặc kết nối với chăm sóc khách hàng lẽ ra làm website thì tốt hơn nhiều
      Tuy vậy, các app hoạt động offline trên thiết bị và không rải dữ liệu sang những dịch vụ tôi không kiểm soát vẫn rất tốt. Tôi cũng không muốn phải phụ thuộc vào kết nối Internet dù đang ở đâu
      Tôi thích các app offline như OsmAnd/Organic Maps chỉ đường khi ở trong rừng hay trên núi, và cũng thích các app kết nối trực tiếp với thiết bị local của tôi để chia sẻ dữ liệu thay vì qua máy chủ bên thứ ba
      Nếu có thể, mọi app nên được phát triển theo hướng offline-first và chỉ yêu cầu Internet khi cần. App nào không thể hoạt động nếu không có Internet thì làm web app là đủ, không cần nằm trên thiết bị của tôi
    • Thật sự khó hiểu hoặc đồng cảm. Mobile web đến giờ vẫn cho cảm giác là một trải nghiệm kinh khủng, còn app thì nhìn chung không như vậy
      Tôi tự hỏi lần gần nhất bạn đặt vé máy bay trên mobile web là khi nào. Tôi cũng không biết bạn chịu nổi phần diện tích màn hình mà trình duyệt chiếm như thế nào. App có thể cache xác thực và xử lý bằng FaceID, còn việc lần nào cũng phải đăng nhập cũng là vấn đề
  • Vì vậy tôi thích Hacker News
    Hôm qua tôi phát hiện bài này và đăng lên bảng Android trên Reddit: https://old.reddit.com/r/Android/comments/1jmwg4w/everyone_k...
    0 lượt upvote, phần bình luận thì đầy những phản ứng không rõ là của người chán đời hay bot
    Ở đây thì nó đang ở nhóm hạng 2, và đa số bình luận đều thú vị
    Có nhiều subreddit đã chết, nhưng r/android gần như là một trong những nơi tệ nhất

    • Tôi không biết chính xác chuyện gì đang diễn ra trên Reddit, nhưng nếu có nơi nào mà thuyết Internet chết đúng, thì có lẽ là ở đó
      Hơn nữa, các subreddit theo chủ đề nhìn chung có vẻ được kiểm duyệt bởi những người có lợi ích liên quan đến chủ đề đó, và điều này gây hại cho cộng đồng. Tôi từng đăng một bài viết chi tiết về Llama của Meta nằm dưới loại giấy phép độc quyền nào và giấy phép đó chính xác có ý nghĩa gì, nhưng các moderator của r/LocalLlama đã xóa thủ công mà không nêu lý do, và dù tôi hỏi để hiểu rõ hơn về quy tắc, họ cũng không trả lời vì sao đã xóa
      Sau đợt “thanh lọc Reddit” cuối cùng, khi nhiều moderator cộng đồng bị thay bằng nhân viên Reddit, tôi tự hỏi liệu một phần đáng kể của nền tảng đã bị bán để từng công ty tự kiểm duyệt không gian của mình hay chưa
    • Một bài viết thành công hay không khá hên xui. Bạn đăng lên có thể chẳng có phản ứng gì, hoặc mọi người có thể kéo đến
      Nếu bấm vào liên kết “past” dưới tiêu đề, có một thread từ 2 ngày trước đã chết hẳn
    • Ngược lại, nhiều khi đăng một liên kết mà tôi nghĩ là thú vị lên HN cũng nhận 0 bình luận
    • r/android bị ảnh hưởng nặng bởi đợt blackout subreddit, và mức độ hoạt động đã giảm rất thấp
    • Subreddit đó nhìn chung có nhóm người trẻ hơn và thái độ gần với kiểu “fanboy”, nên có vẻ họ downvote chỉ vì đó là lời chỉ trích Android
      Hacker News hiểu khái niệm phê bình mang tính xây dựng
  • Phần cốt lõi là đoạn “vượt ra ngoài các danh mục thông thường, họ còn kiểm tra cả những thứ như Tamil Calendar, Odia Calendar, Qibla Direction Finder, ứng dụng mandir, ứng dụng chiêm tinh. Họ biết mình đang làm gì”
    Ứng dụng cho vay này đang lập hồ sơ người dùng dựa trên sắc tộc/bản sắc vùng miền (Tamil, Odia) và tôn giáo (Qibla Direction Finder là người Hồi giáo, ứng dụng mandir là người Hindu)

  • Ứng dụng Android của HSBC UK xem xét các ứng dụng đã cài đặt, và nếu có ứng dụng mang một số quyền nhất định thì nó từ chối chạy. Ví dụ không được có launcher thay thế, và giờ thì chỉ cần có một ứng dụng được cài từ ngoài cửa hàng ứng dụng Google là nó cũng từ chối chạy
    Trước đây tôi cũng từng phàn nàn ở đây, nhưng cuối cùng đã yêu cầu một thiết bị bảo mật phần cứng và dùng website thay thế

    • Hướng dẫn dành cho những ứng dụng từ chối hoạt động bằng các mánh lới đáng ngờ và dễ vỡ, rồi tuyên bố rằng nhờ vậy người dùng được “bảo vệ”
    • Thú vị là ứng dụng FirstDirect, thuộc cùng tập đoàn HSBC, lại không có vấn đề đó. Nó từng chạy được cả trên điện thoại trước đây đã root
    • Chuyện này khá buồn cười. Vì để thông báo rằng ứng dụng khác có thể giám sát người dùng, trước tiên chính nó phải giám sát người dùng
      Tôi tự hỏi liệu họ có nói rằng dữ liệu này không được gửi về công ty hay không
    • Đúng là vô lý. Cảm giác rất đúng kiểu HSBC
  • Câu trả lời cho câu hỏi “Vì sao việc biết trên điện thoại của tôi có cài ứng dụng Xbox hay Playstation lại cần thiết cho chức năng cốt lõi của Swiggy? Biết tôi có ứng dụng Naukri hay Upstox thì giúp gì cho việc giao thực phẩm đến nhà tôi?” là nhằm mục đích lấy dấu vân tay

    • Họ cũng kiểm tra các ứng dụng remote desktop phổ biến. Những ứng dụng cho phép kết nối vào điện thoại có thể được dùng để tăng tỷ lệ lừa đảo thành công
      Ứng dụng ngân hàng cũng tương tự; nếu là kẻ lừa đảo, biết trước mục tiêu dùng ngân hàng nào sẽ cực kỳ hữu ích
      Đặc biệt nếu có thể liên kết với số điện thoại, hẳn sẽ có khá nhiều nhóm muốn loại thông tin này
    • Nếu chỉ là lấy dấu vân tay thì đó còn là kịch bản tốt nhất
  • Ở đoạn “đối với những trường hợp sử dụng rất cụ thể như trình quản lý tệp, trình duyệt, ứng dụng diệt virus, Google cấp ngoại lệ quyền QUERY_ALL_PACKAGES để có thể xem toàn bộ ứng dụng đã cài đặt”, tôi không hiểu vì sao trình duyệt cần liệt kê các ứng dụng đã cài
    Tại sao?!

    • Khi người dùng truy cập URL play.google.com, Google muốn hiển thị nút “Cài đặt” hoặc “Chạy” tùy theo ứng dụng đã được cài hay chưa
      Nói cách khác, cứ đổ lỗi cho quản lý sản phẩm của Google
    • Một số ứng dụng trong nhóm này yêu cầu quyền rộng hơn nhiều so với nhu cầu thực tế
      Ví dụ Obsidian yêu cầu quyền đối với toàn bộ hệ thống tệp, nhưng thực ra chỉ cần truy cập các tệp mà người dùng cho nó xem là đủ
    • Trình quản lý tệp cần quyền truy cập toàn bộ. Vì bằng chức năng đó, bạn có thể trích xuất và kiểm tra mã của bất kỳ ứng dụng nào đã cài trên hệ thống
      Đây là một tính năng rất hữu ích nên tôi nghĩ mình sẽ không thích nếu nó biến mất
    • Cũng có thể là để kiểm tra ứng dụng nào có thể xử lý liên kết
  • “Mọi người đều biết tất cả ứng dụng trên điện thoại của bạn” là nói về điện thoại Android. iPhone không có khiếm khuyết bảo vệ quyền riêng tư kiểu này

    • Thực ra có thể làm được bằng API không công khai. Ứng dụng của Apple thì luôn dùng, nhưng các ứng dụng khác bị cấm sử dụng
      https://blog.verichains.io/p/technical-analysis-improper-use...
    • iOS ở một số mặt còn tệ hơn. Nếu đăng ký vào MDM của công ty, công ty có thể thấy mọi ứng dụng
      Nếu dùng hồ sơ công việc, cách làm tiêu chuẩn hiện nay trên Android, thì chỉ thấy được các ứng dụng bên trong hồ sơ công việc
    • iPhone ít là cơn ác mộng về quyền riêng tư hơn
      Một trong những động lực lớn nhất để tạo ứng dụng là thu thập đủ loại dữ liệu từ người dùng. Chỉ cần nhìn xem có bao nhiêu ứng dụng đòi quyền truy cập danh bạ, và có bao nhiêu ứng dụng thực sự cần danh bạ cho chức năng của chúng. Vì vậy vẫn hơi ngạc nhiên khi thấy nhiều người bất ngờ trước những phát hiện như thế này
    • Trên iOS, chuyện này đã được giảm nhẹ phần nào từ vài năm trước
      Trước đây có thể thử giao tiếp với ứng dụng bằng custom URI scheme; nếu thành công thì biết ứng dụng đó đã được cài. Twitter đã dùng cách này để fingerprinting
      Giờ ứng dụng phải nhận intent đặc biệt và phải khai báo danh sách ứng dụng sẽ dùng cho mục đích đó
    • Nhân nói về iPhone, tôi có một thắc mắc. Thỉnh thoảng ứng dụng X mới/cũ chỉ cần kiểm tra các tài khoản theo dõi chính là đủ nên tôi đăng nhập bằng web app
      Gần đây tính năng LLM của họ được cập nhật lớn, nên tôi cài ứng dụng để xem thử. Trong thời gian ứng dụng được cài, mỗi lần xem website di động đều hiện một banner lớn bảo tôi chuyển sang ứng dụng, và không thể xóa bằng trình chặn quảng cáo hay trình chặn yếu tố gây phiền nhiễu. Khi tôi gỡ ứng dụng đi thì nó biến mất
      Tại sao lại như vậy? Tôi tò mò website di động biết ứng dụng đã cài bằng cách nào. Khi ứng dụng chưa được cài, các lời mời dùng ứng dụng đều có thể bị chặn bằng trình chặn nội dung/yếu tố gây phiền nhiễu, nhưng khi đã cài thì vì sao lại không chặn được?
  • Cần root, nhưng có thể chặn hoặc giả mạo việc này bằng các module LSPosed[1] như XPrivacyLua[2]. Tôi nghe nói cũng có AppOps[3] mã nguồn đóng, nhưng chưa dùng thử
    [1]: https://lsposed.org
    [2]: https://github.com/M66B/XPrivacyLua / https://github.com/0bbedCode/XPL-EX
    [3]: https://appops.rikka.app

  • Tôi tự hỏi liệu các ứng dụng Windows, đặc biệt là ứng dụng không cài từ MS Store, có thể liệt kê tiêu đề của tất cả cửa sổ đang mở không. Một ứng dụng giám sát toàn bộ lưu lượng web chỉ bằng tiêu đề thì khó đến mức nào?
    Đây là câu hỏi thật. ChatGPT chỉ phụ họa tất cả nên không giúp được mấy; tôi cần ai đó nói cho biết vì sao điều này không khả thi trong thế giới thực

    • Với tư cách một lập trình viên đã làm Win32 lâu năm, tôi nói là có thể. Đó là thiết kế có chủ đích. Ví von thì Windows giống một xã hội tin cậy cao
      Có các hàm EnumWindows() và EnumChildWindows() cho mục đích này
      Ví dụ về tính năng này là tiện ích “Windows Modifier v2.00” và Spy++ (SPYXX.EXE) của Microsoft. Ngày trước khi tôi mới tải về thì có nhiều trang liên quan, nhưng giờ tìm đúng tên cũng gần như không ra, như một dấu hiệu cho thấy Internet đã trở nên rất giỏi trong việc quên lãng
      Giải pháp cho các ứng dụng không tin cậy là hoàn toàn không dùng, hoặc dùng trong VM
    • Phần lớn ứng dụng không chỉ có thể xem tiêu đề của mọi cửa sổ khác đang mở trong hệ thống, mà còn có thể ghi lại mọi phím bấm, chụp ảnh màn hình, ghi âm/ghi hình người dùng hoặc màn hình, và sao chép hay xóa tệp trong thư mục home. Tất cả đều có thể mà không cần quyền rõ ràng hay thông báo
      Điều này đúng ít nhất với Windows và hầu hết các hệ thống *nix truyền thống, đặc biệt là X11
      Ở điểm này Android có một điều làm tốt. Theo mặc định, mọi ứng dụng chạy dưới các user khác nhau. Nghĩa là chúng có thư mục home khác nhau và không thể thấy ứng dụng khác
    • Giám sát lưu lượng web chỉ bằng tiêu đề cửa sổ thì không chính xác lắm vì tiêu đề trang biến động nhiều
      Dù vậy, các công cụ như ManicTime hay ActivityWatch, nếu không cài plugin trình duyệt, sẽ theo dõi lịch sử trình duyệt bằng tiêu đề cửa sổ
      https://www.manictime.com/
      https://activitywatch.net/
    • Windows rất khác, lỏng lẻo hơn nhiều và có mô hình bảo mật cũ kỹ hơn. Không có rào chắn bảo mật giữa các cửa sổ chạy trên cùng một desktop
      Đặc biệt, câu “UAC [vẫn] không phải là rào chắn bảo mật” là đúng. Khi bạn bấm xác nhận hoặc nhập mật khẩu để nâng quyền một tiến trình, trên thực tế bạn đang nâng quyền cho toàn bộ desktop và mọi thứ đang chạy trên đó
    • Đúng vậy. Việc AutoHotKey có thể làm điều này là nền tảng cho nhiều script AHK hữu ích