[ZenFone] Add new apps to Twin Apps

shakalaca
shakalaca
Aug 18, 2017 · 7 min read

2017–09–20 Updated:

ZF4 新版韌體 (14.1060.1708.62) 之後請改用

adb shell am startservice -a “asus.intent.action.TWINAPPS_CDN_FILE_UPDATE” -d “file:///sdcard/twinapps.xml” — ei “ACTION” 1 com.asus.twinapps/.TwinAppsService

新的 ZenFone 4 搭載了 ZenUI 4.0,裡面有個很有趣的功能叫『應用分身』(Twin Apps、雙開),簡單來說就是可以讓你用兩個不同的帳號玩 app,通常在社交或者遊戲軟體上有著不小的需求,只是這功能不太好做,做的好的也沒幾家,有些 app 在 a 可以雙開但在 b 卻無法使用 (遊戲類大多會有這樣的困擾,尤其是需要延伸套件或者大型線上遊戲) 我本身沒有強烈的需求,不過既然 ZenUI 有提供便想好好的把玩把玩,卻發現這功能簡直陽春到不行,只能使用它指定的 app (line, fb, twitter, what’s app, weibo.. candycrush ?!)。

進入設定裡面的 ASUS 個人化設定可以看見『應用分身』項目
如果有安裝『基本』的社交軟體便會在這裡出現
打開開關後會自動產生一個新 icon
中途會要求權限建立相關資料夾
最後 FB 在啟動器裡面會變成兩個 icon

於是著手拆解 app 看看有沒有不可告人的祕密,沒多就便找到隱藏的自定義 xml 所在位置:

/data/system/twinapps/twinapps_required_apps.xml

而『應用分身』內建的設定檔如下:

<?xml version=”1.0" encoding=”utf-8"?>
<resources>
<string-array name=”twinapps_required_apps”>
<item>com.android.vending</item>
<item>com.google.android.gms</item>
<item>jp.naver.line.android</item>
<item>com.facebook.katana</item>
<item>com.facebook.orca</item>
<item>com.tencent.mm</item>
<item>com.whatsapp</item>
<item>com.viber.voip</item>
<item>com.bbm</item>
<item>com.instagram.android</item>
<item>com.twitter.android</item>
<item>com.king.candycrushsaga</item>
<item>com.kiloo.subwaysurf</item>
<item>com.linecorp.LGBB2</item>
<item>com.linecorp.LGCOOKIE</item>
<item>com.linecorp.LGRGS</item>
<item>com.sina.weibo</item>
</string-array>
</resources>

假如想要讓噗浪也可以雙開,只要新增下面這一行再把檔案塞入前面提示的位置:

<item>com.plurk.android</item>

便可在設定畫面發現多出來的噗浪雙開按鈕。但並非所有人的手機都有 root,所以再仔細翻了下 source code,終於找到另一個新增名單的方式:透過 broadcast。

假設我們想要新增 SweetRingTinder 這兩個 app,只要拿前面的檔案加入這兩個 app 的 package name:

<?xml version=”1.0" encoding=”utf-8"?>
<resources>
<string-array name=”twinapps_required_apps”>
<item>com.android.vending</item>
<item>com.google.android.gms</item>
<item>jp.naver.line.android</item>
<item>com.facebook.katana</item>
<item>com.facebook.orca</item>
<item>com.tencent.mm</item>
<item>com.whatsapp</item>
<item>com.viber.voip</item>
<item>com.bbm</item>
<item>com.instagram.android</item>
<item>com.twitter.android</item>
<item>com.king.candycrushsaga</item>
<item>com.kiloo.subwaysurf</item>
<item>com.linecorp.LGBB2</item>
<item>com.linecorp.LGCOOKIE</item>
<item>com.linecorp.LGRGS</item>
<item>com.sina.weibo</item>
<item>com.sweetringplus.android</item>
<item>com.tinder</item>

</string-array>
</resources>

接著把檔案丟到內建儲存空間裡面,如 /sdcard/twinapps.xml。最後使用 adb 命令發送 broadcast:

adb shell am broadcast -a “asus.intent.action.TWINAPPS_CDN_FILE_UPDATE” -n com.asus.twinapps/.TwinAppsReceiver -d file:///sdcard/twinapps.xml

再回到應用分身的頁面

多了 SweetRing 與 Tinder 囉
打開開關回啟動器可找到多出來的兩組 app

不知道有沒有機會做成 app 呢… ? :)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade