<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soul Of Free Loop &#187; Secure Settings</title>
	<atom:link href="https://zohead.com/archives/tag/secure-settings/feed" rel="self" type="application/rss+xml" />
	<link>https://zohead.com</link>
	<description>Uranus Zhou&#039;s Blog</description>
	<lastBuildDate>Sat, 19 Jul 2025 15:42:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>Android使用Shell命令配合Tasker控制手机</title>
		<link>https://zohead.com/archives/tasker-shell/</link>
		<comments>https://zohead.com/archives/tasker-shell/#comments</comments>
		<pubDate>Tue, 13 Dec 2016 16:38:02 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[NFC]]></category>
		<category><![CDATA[Secure Settings]]></category>
		<category><![CDATA[Shadowsocks]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Tasker]]></category>
		<category><![CDATA[飞行模式]]></category>

		<guid isPermaLink="false">https://zohead.com/?p=1325</guid>
		<description><![CDATA[Secure Settings 对比 Shell 命令 去年我写过一篇 Android 使用 Trigger + Tasker 设定 NFC 标签 的文章，主要介绍怎么使用 Tasker 和 Trigger App 设定 Android 手机刷 NFC 标签时执行指定的操作。该文章中对于手机的 飞行模式 / GPS / NFC 等功能的控制操作都是通过 Secure Settings App 实现的。 不过可惜的是我的华硕 Zenfone2 手机 ROM 升级到 6.0 版本之后，Secure Settings App 就有很多功能不能正常工作了，而且由于开发者也基本不再维护该 App 也有差 [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2 id="secure-settings-对比-shell-命令">Secure Settings 对比 Shell 命令</h2>
<p>去年我写过一篇 <a href="https://zohead.com/archives/tasker-nfc/">Android 使用 Trigger + Tasker 设定 NFC 标签</a> 的文章，主要介绍怎么使用 <a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm" target="_blank">Tasker</a> 和 <a href="https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher" target="_blank">Trigger</a> App 设定 Android 手机刷 NFC 标签时执行指定的操作。该文章中对于手机的 飞行模式 / GPS / NFC 等功能的控制操作都是通过 <a href="https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin" target="_blank">Secure Settings</a> App 实现的。</p>
<p>不过可惜的是我的华硕 Zenfone2 手机 ROM 升级到 6.0 版本之后，Secure Settings App 就有很多功能不能正常工作了，而且由于开发者也基本不再维护该 App 也有差不多两年没有任何更新。</p>
<p>最近看到 <a href="http://www.notenoughtech.com/tasker/tasker-run-shell-commands/" target="_blank">Best run shell commands in Tasker</a> 文章介绍  Tasker 的几个常用 Shell 命令控制移动数据、飞行模式等选项，使用 Tasker 自带的运行 Shell 命令功能相比 Secure Settings 插件也有一些好处：</p>
<ul>
<li>Tasker 直接支持运行 Shell 命令（新增 <strong>操作类别</strong> -&gt; <strong>代码</strong> -&gt; <strong>运行外壳</strong> 即可），不需要专门安装 Secure Settings 等第三方 App；</li>
<li>多数命令在手机 root 后就能正常工作，不像 Secure Settings 那样需要特别安装成系统 App；</li>
<li>Shell 命令失效需要替换时也比较灵活，直接改 Shell 命令行就可以。</li>
</ul>
<p>因此我还是卸载了 Secure Settings App，将原来文章里的所有 Tasker 任务的 Secure Settings 操作都以 Shell 命令进行替代。</p>
<h2 id="tasker-任务使用-shell-命令">Tasker 任务使用 Shell 命令</h2>
<h3 id="数据开关-运行-shadowsocks">数据开关 + 运行 Shadowsocks</h3>
<p>为实现以下目标：</p>
<ol>
<li>具有路由器翻墙的住处网络环境下自动关闭手机 Shadowsocks 和移动数据；</li>
<li>其它网络环境下都开启 Shadowsocks 手机翻墙；</li>
<li>任何 Wi-Fi 环境下关闭移动数据以省电；</li>
<li>离开任何 Wi-Fi 自动开启移动数据。</li>
</ol>
<p>为此我建了 4 个 Tasker 配置和任务（当然也可以更简单）：</p>
<ol>
<li>连接住处的 OpenWRT Wi-Fi（根据 Tasker 的 SSID 条件区分） <br />
关闭 Shadowsocks 和移动数据；</li>
<li>连接其它 Wi-Fi <br />
关闭移动数据；</li>
<li>离开任何 Wi-Fi <br />
开启移动数据；</li>
<li>离开住处 Wi-Fi <br />
开启 Shadowsocks。</li>
</ol>
<p>现在 Android 版本 Shadowsocks App 是自带 Tasker 插件支持的（操作类别里选 <strong>插件</strong> -&gt; <strong>影梭</strong> 即可），开启和关闭 Shadowsocks 配置非常简单。</p>
<p>移动数据开关可以分别用下面的命令（Tasker 运行外壳中需要启用 <strong>使用Root</strong> 选项）：</p>
<pre class="brush: bash; title: ; notranslate">
svc data enable
svc data disable
</pre>
<h3 id="控制飞行模式及-nfc">控制飞行模式及 NFC</h3>
<p>为了实现和之前文章里类似的目标：</p>
<ol>
<li>睡觉前刷 NFC 标签开启飞行模式；</li>
<li>打开 NFC（这样起来之后可以刷 NFC 标签）；</li>
<li>起来刷 NFC 标签关闭飞行模式。</li>
</ol>
<p>另外考虑最好只使用一个 NFC 标签就达到效果，这里我只建了一个 Tasker 任务包含 4 个操作：</p>
<ol>
<li>Tasker 操作类别中选 <strong>变量</strong> -&gt; <strong>变量设置</strong>，<code>%TMPAIR</code> 发往 <code>%AIR</code> <br />
先保存 <code>%AIR</code> 这个 Tasker 自带的飞行模式变量；</li>
<li>如果 <code>%AIR = off</code> 则运行外壳开启飞行模式；</li>
<li>如果 <code>%AIR = on</code> 则运行外壳开启 NFC；</li>
<li>如果 <code>%TMPAIR = on</code> 则运行外壳关闭飞行模式。</li>
</ol>
<h4 id="开启关闭飞行模式">开启关闭飞行模式</h4>
<p>开启和关闭飞行模式可以直接使用下面的两条命令：</p>
<pre class="brush: bash; title: ; notranslate">
settings put global airplane_mode_on 1; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
settings put global airplane_mode_on 0; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
</pre>
<h4 id="开启关闭-nfc">开启关闭 NFC</h4>
<p>开启和关闭 NFC 功能则相对复杂一些，需要区分 Android 系统版本：</p>
<ul>
<li>Android 4.4 以上：</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
# Disable NFC
service call nfc 5
# Enable NFC
service call nfc 6
</pre>
<ul>
<li>Android 4.0.1 - Android 4.3.1：</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
# Disable NFC
service call nfc 4
# Enable NFC
service call nfc 5
</pre>
<ul>
<li>Android 2.3.4 - Android 2.3.7：</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
# Disable NFC
service call nfc 18
# Enable NFC
service call nfc 19
</pre>
<ul>
<li>Android 2.3.3：</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
# Disable NFC
service call nfc 20
# Enable NFC
service call nfc 21
</pre>
<ul>
<li>Android 2.3.2：</li>
</ul>
<pre class="brush: bash; title: ; notranslate">
# Disable NFC
service call nfc 13
# Enable NFC
service call nfc 14
</pre>
<p>我在运行 Android 6.0 系统的 Zenfone2 手机上可以正常使用第一段的两条命令控制系统 NFC 功能。</p>
<h3 id="gps-开关-开启关闭百度地图">GPS 开关 + 开启关闭百度地图</h3>
<p>需求还是和之前的文章相同：</p>
<ol>
<li>刷 NFC 标签自动开启 GPS 和百度地图进行导航：</li>
<li>导航完成后再刷一次 NFC 标签自动关闭百度地图并关闭 GPS。</li>
</ol>
<p>为此我还是只建立一个 Tasker 任务，包含多个操作：</p>
<ol>
<li>Tasker 操作类别中选 <strong>变量</strong> -&gt; <strong>变量设置</strong>，<code>%TMPGPS</code> 发往 <code>%GPS</code> <br />
先保存 <code>%GPS</code> 这个 Tasker 自带的 GPS 设置变量；</li>
<li>如果 <code>%GPS = off</code> 则启动应用 -&gt; 百度地图；</li>
<li>如果 <code>%GPS = off</code> 则运行外壳开启 GPS；</li>
<li>如果 <code>%TMPGPS != on</code> 则停止运行任务（操作类别中选 <strong>任务</strong> -&gt; <strong>停止</strong>）忽略后续操作；</li>
<li>按钮 -&gt; 后退（操作类别中选 <strong>输入</strong> -&gt; <strong>按钮</strong>），此操作需要添加多个以模拟持续按返回键退出百度地图；</li>
<li>杀死应用 -&gt; 百度地图；</li>
<li>运行外壳关闭 GPS。</li>
</ol>
<p>通过 Shell 命令开启关闭 GPS 也稍微有点特殊，需要使用下面两条命令：</p>
<pre class="brush: bash; title: ; notranslate">
settings put secure location_providers_allowed +gps
settings put secure location_providers_allowed -gps
</pre>
<h2 id="后记">后记</h2>
<p>为了方便查询，我把一些可能经常用到的 Android Shell 控制命令也整理保存到我的 Wiki 知识库中了，读者可以点击 Wiki 链接 <a href="https://wiki.zohead.com/%E6%8A%80%E6%9C%AF/Android/Android%20Shell%E6%8E%A7%E5%88%B6%E6%89%8B%E6%9C%BA.md" target="_blank">Android Shell 控制手机</a> 查看。后续有其它 Shell 命令需要加进来或者修改时，我也会尽量及时更新该文档的，最后祝大家玩的开心。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/tasker-shell/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android使用Trigger+Tasker设定NFC标签</title>
		<link>https://zohead.com/archives/tasker-nfc/</link>
		<comments>https://zohead.com/archives/tasker-nfc/#comments</comments>
		<pubDate>Tue, 03 Nov 2015 18:14:53 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[手机]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[NFC]]></category>
		<category><![CDATA[Secure Settings]]></category>
		<category><![CDATA[Sleep as Android]]></category>
		<category><![CDATA[Tasker]]></category>
		<category><![CDATA[Trigger]]></category>
		<category><![CDATA[飞行模式]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=1065</guid>
		<description><![CDATA[现在用的华硕 New PadFone Infinity A86 手机一直都是支持 NFC 功能的，只是之前一直没怎么用过，基本只有在查询公交卡余额的时候才用一下（这里顺便安利一下南京市政府组织开发的 “我的南京” App，可以通过手机 NFC 查询公交卡余额），最近将手机 ROM 升级到 Android 5.0 之后终于觉得 5.0 自带的 Smart Lock 功能会比较适合我了，可以使用蓝牙、NFC 标签等实现手机智能解锁功能。 升级 Android 5.0 另外一个方便的地方就是我的 Chromebook 也支持 Smart Lock 功能，两边都开启之后如果 Android 5.0 以 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>现在用的华硕 New PadFone Infinity A86 手机一直都是支持 NFC 功能的，只是之前一直没怎么用过，基本只有在查询公交卡余额的时候才用一下（这里顺便安利一下南京市政府组织开发的 “我的南京” App，可以通过手机 NFC 查询公交卡余额），最近将手机 ROM 升级到 Android 5.0 之后终于觉得 5.0 自带的 Smart Lock 功能会比较适合我了，可以使用蓝牙、NFC 标签等实现手机智能解锁功能。</p>
<p>升级 Android 5.0 另外一个方便的地方就是我的 Chromebook 也支持 Smart Lock 功能，两边都开启之后如果 Android 5.0 以上的手机在 Chromebook 旁边并且已经解锁，那 Chromebook 也可以自动解锁无需再输入密码登录。</p>
<p>经过一些研究之后，还是买了一些 NFC 标签，准备用之前就捣鼓过的 <a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm" target="_blank">Tasker</a> App（收费 2.99 美元）实现 NFC 标签的各种触发操作，不过这还需要配合使用 <a href="https://play.google.com/store/apps/details?id=com.jwsoft.nfcactionlauncher" target="_blank">Trigger</a> App（基本功能免费，增强功能通过应用内购买），因为 Tasker 没有直接支持 NFC 触发条件，Trigger 倒是有在检测到 NFC 标签之后执行 Tasker 任务的功能，需要特别注意的是 Trigger 必须在安装好 Tasker 之后安装。</p>
<p>Trigger 的 NFC 标签功能具体如何操作也比较简单这里就不介绍了，只需要在执行的动作里勾选 “Tasker” - “Tasker任务” 并选择实际需要执行的 Tasker 任务即可，这里我以两个实际例子说明 Tasker 如何实现稍微复杂一些的任务。</p>
<p><strong>1、一个 NFC 标签实现自动开启停止睡眠追踪：</strong></p>
<p><span style="color: #000080;"><em>需求：</em></span></p>
<p>平时我会使用 <a href="https://play.google.com/store/apps/details?id=com.urbandroid.sleep" target="_blank">Sleep as Android</a> 软件（免费试用 14 天）监控睡眠状况，其功能非常完善而且实际使用起来也很方便（虽然可能不会非常准确 ～～ 哈哈），只是这个 App 是一直在前台运行的比较耗电，而且每天晚上睡觉之前就需要手工开启，早上醒来之后再手工停止，因此就想到在床头贴上一个 NFC 标签实现睡觉之前刷一下自动启动睡眠追踪并开启飞行模式以省电，早上起来之后再刷一下这个 NFC 标签可以停止睡眠追踪并自动关闭飞行模式。</p>
<p><span style="color: #000080;"><em>问题：</em></span></p>
<p>幸好 Sleep as Android 是自带 Tasker 插件，可以在添加任务时选择插件，并指定 “睡眠追踪”，之后就能配置具体执行哪种操作（启动或者停止睡眠追踪之类的）；</p>
<p>另外飞行模式的切换在新的 Android 系统中已经不能直接修改了，这时需要祭出大杀器 <a href="https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin" target="_blank">Secure Settings</a> App 了，安装之后也会自动增加一个 Secure Settings Tasker 插件，不过后面的操作要求手机必须 root，root 之后启用 Secure Settings 的 System+ Module，这样将 GPS、飞行模式之类的控制功能安装到系统分区就能控制飞行模式之类的切换了。</p>
<p><span style="color: #000080;"><em>Tasker 任务配置：</em></span></p>
<ul>
<li>睡眠追踪 Tasker 插件 - 开始 睡眠追踪，并设置条件：<strong>%AIR = off</strong>；</li>
<li>Secure Settings Tasker 插件 - Airplane Mode Enabled，并设置条件：<strong>%AIR = off</strong>；</li>
<li>睡眠追踪 Tasker 插件 - 停止 睡眠追踪，并设置条件：<strong>%AIR = on</strong>；</li>
<li>Secure Settings Tasker 插件 - Airplane Mode Disabled，并设置条件：<strong>%AIR = on</strong>；</li>
<li>等待 - 3 秒；</li>
<li>Secure Settings Tasker 插件 - NFC Enabled，并设置条件：<strong>%AIR = on</strong>。</li>
</ul>
<p>上面的 5 个步骤顺序不能搞错，而且对应的条件也很重要。</p>
<p><span style="color: #000080;"><em>机制解释：</em></span></p>
<p>第 1 个任务先判断如果当前手机飞行模式（Tasker 中以 %AIR 变量表示）是关闭的，则认为要开始睡眠追踪，接着第 2 个任务在同样的条件下就通过 Secure Settings 启用飞行模式，第 3 个任务则是发现如果飞行模式已启用则认为已经是在睡眠追踪状态，这时就需要停止追踪，第 4 个任务类似跟着就是关闭飞行模式；</p>
<p>第 5 个和第 6 个任务稍微特殊一点，因为我们在启用飞行模式之后 NFC 功能也同样会被禁用的，这样就没法在早上醒来时刷 NFC 标签了，这样就需要在前面几步都做好之后先等待几秒钟，然后判断如果飞行模式已开启则通过 Secure Settings 自动再将 NFC 功能也开启，而且这两个任务不能直接在第 2 个任务（开启飞行模式）之后就执行，因为开启飞行模式之后 %AIR 得到的飞行模式状态不是马上就能更新过来。</p>
<p><strong>2、一个 NFC 标签实现自动开启关闭百度地图：</strong></p>
<p><span style="color: #000080;"><em>需求：</em></span></p>
<p>这个需求就比较常见了，在我的 SUV 汽车仪表盘附近贴一个百度地图导航专用 NFC 标签，实现刷一下自动开启 GPS 并启动百度地图导航，等导航结束了再刷一下就自动退出百度地图并关闭 GPS。</p>
<p><em><span style="color: #000080;">问题：</span></em></p>
<p>开启关闭 GPS 的问题和飞行模式类似，还是通过 Secure Settings 插件来实现，Tasker 直接支持启动其它 App 的操作，也支持杀死其它 App。</p>
<p><span style="color: #000080;"><em>Tasker 任务配置：</em></span></p>
<ul>
<li>Secure Settings Tasker 插件 - GPS Enabled，并设置条件：<strong>%GPS = off</strong>；</li>
<li>启动应用 - 百度地图，并设置条件：<strong>%GPS = off</strong>；</li>
<li>按钮 - 后退（此任务重复添加 5 次或以上），并设置同样的条件：<strong>%GPS = on</strong>；</li>
<li>杀死应用 - 百度地图，并设置条件：<strong>%GPS = on</strong>；</li>
<li>Secure Settings Tasker 插件 - GPS Disabled，并设置条件：<strong>%GPS = on</strong>。</li>
</ul>
<p><span style="color: #000080;"><em>机制解释：</em></span></p>
<p>具体机制还是和上面比较类似的，使用 Tasker 内置的 %GPS 变量根据当前 GPS 状态执行对应的任务操作，值得一提的是第 3 个任务这里为了优雅一点我先用发送多次返回按键的方式模拟退出百度地图的操作，当然对于百度全家桶系的手机 App 我是很乐意直接杀死禁止后台服务和唤醒之类的，因此倒数第二步我还是加上了杀掉百度地图的任务 ^_^，最后再关闭 GPS。</p>
<p>有一点需要说明的是由于 Tasker 没有直接判断某个 App 是否在前台运行的方法（虽然可以另外安装 <a href="https://play.google.com/store/apps/details?id=org.kc.tasker.processes" target="_blank">Tasker Process Running</a> 这类插件判断某个 App 是否在运行，但其不好区分前台后台，百度地图这种在后台运行的情况不好处理），因此这两个例子里我都是直接用 Tasker 自带的飞行模式或 GPS 当前状态判断要执行什么操作的。</p>
<p>总之使用 Tasker 配合 NFC 标签并安装需要的插件还是能实现各种特殊的功能滴，本文中使用的所有 App 的链接都是 Google Play 官方地址，国内用户可以自行访问国内各种手机市场下载安装，祝玩的开心～～～</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/tasker-nfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
