惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
D
Docker
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
H
Help Net Security
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
L
LangChain Blog
MongoDB | Blog
MongoDB | Blog
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
SegmentFault 最新的问题
博客园 - 司徒正美
C
Check Point Blog
B
Blog
Y
Y Combinator Blog
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
F
Fortinet All Blogs
美团技术团队
D
DataBreaches.Net

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
使用 IFW 完全控制 Android 应用行为 - 少数派
2019-08-07 · via 少数派

我们常说 Android 系统最大的优点是开放性与包容性,但这也造成了应用行为不容易掌控的缺点。特别是国内的应用与系统,失去了谷歌 Play 商店官方的应用审核政策后,普通用户根本无法确定应用获取的权限用来干什么,又在后台执行了哪些行为。

谷歌最近更新几个版本的 Android 系统都在逐步的改善这个状况,无论是否 Play 版本的应用起码都有了清晰的申请权限警告,让未知应用的「行为素质」有了很大的提升。在此之上 Android 开放性让开发者也能够针对应用行为不容易掌控的问题研究新应用,比如今天要介绍的 IFW(Intent Firewall) 就是利用系统隐藏的功能实现完全控制任何应用的任何行为的方法。

IFW 是 Android 系统(4.4 以上)中本来就内置的功能,一般是用来给手机厂商控制应用某部分代码实现的功能是否执行,所以并不对外开放。但是 Root 手机后,我们就可以访问这个功能,并制定你自己的配置。

提示 :使用 IFW 需要手机获得 Root 权限,具体可以查看我的文章《在 2019 年,Root 是否还有必要?》。

Intent(意图)与 IFW

要想说明 IFW 是什么,首先我们先简单解释下这里的「I」代表的 Intent 意图。

Android 上的 Intent

简单来讲意图就是 Android 应用执行任何动作的基础,举下面三个例子,大家就很容易理解它是什么了。

基础印象:当我们想从文件管理器分享文件到微信的时候,点击分享按钮,文件管理器会发起一个 Intent(意图)说「我想要调取分享菜单」,然后系统就会显示分享菜单;接着当用户点击微信图标的时候,分享菜单就会发起一个 Intent(意图)说「我想要把文件分享给微信」,系统就会将带有文件路径的意图传给微信,微信接收到后自行实现分享功能(这里分享的每一步也会有意图)。

分享文件步骤

软件对软件:应用内的功能也是通过意图实现的,比如最简单的从微信的主界面切换到某个聊天界面,就是微信主界面发起切换界面的 Intent(意图)(包括目标界面的 ID)到系统,系统接收到后才会切换到聊天界面。

页面跳转步骤,图片来自 Android Developer

软件对硬件:应用对硬件的响应也是通过意图实现的,比如音乐应用响应媒体按钮(上一首、下一首、播放等)接受我们按下按钮后系统发起一个意图说「默认的音乐应用动起来」,系统里面所有音乐软件都会收到这个意图,然后检查自己是不是默认的(或者正在播放),不是就不会响应这个意图。

通过这三个例子,我们可以看到,Android 上的万事万物都是基于 Intent 的组件调用。这样只要我们能够控制 Intent,就能完全控制应用行为。