[教學] 遊戲多開不求人:自己動手做 Android 遊戲共存 apk 檔案
相信有不少玩 Android 手機遊戲的玩家,常常需要經營一隻以上的遊戲帳號吧,
除了可以拿來解任務、當人頭外,有時候所謂的「分身運」還能讓你抽到比本尊好的道具,可以搶先體驗,
不過多數的遊戲都沒有內建多帳號、切換帳號之類的功能,只能手動用清除資料,甚至是用模擬器來經營,
這樣就造成了不少的困擾,如果可以在同一隻手機或平板上直接儲存兩個帳號,隨時切換,就方便多了,
這裡就要來分享一個簡單的方式,讓你可以在同一個裝置上自由地安裝更多遊戲客戶端。
這方法應該多數遊戲都能用,這是修改 apk 安裝包的識別名稱,讓系統在安裝時不會覆蓋原本的遊戲程式,
但若遊戲本身會另外下載數據包,你裝了幾個遊戲就要多下載幾次,會有點佔儲存空間,要自己評估一下。
事前準備
首先需要用到 Apktool 這個工具,先前往 Apktool 網站下載 jar 檔。
Apktool:http://ibotpeaches.github.io/Apktool/ (需要安裝 Java 7)
點擊 [Current Version: xxx] 的連結即可下載
接著準備最後會用到的 apk 簽名工具,叫 AndroidResEdit,由於官網已失連,因此這裡直接放上載點。
製作 apk 多開檔案
首先當然要先取得你要多開的遊戲 apk 檔,這裡我就用 Line 旅遊大亨作範例,
接著把 apk 跟剛剛下載的 apktool.jar 放在同一個資料夾下,apk 檔名可以先改簡單一點的方便後面操作。
接著在資料夾空白處按 Shift + 右鍵 > [在此處開啟命令視窗]。
這樣就會打開一個 cmd 視窗,資料夾位置也選擇好了,現在要先把 apk 給分解開來,首先先輸入:
apktool d LGGRTW.apk
將 LGGRTW 改為你的 apk 檔案名稱,然後按下 Enter 執行。
接著等候他進行反編譯,看到這畫面代表操作完成了~(cmd 視窗先不要關掉)
這時候在同一個資料夾下會產生一個以你的檔名為名的資料夾。
點進去資料夾裡面找到 AndroidManifest.xml 這個檔案,用文字編輯器打開來,在 package 的地方就是這個安裝包的識別名稱,
這裡要修改成一個新的名稱,要注意的是不要和原來的程式或是其他程式的名稱一樣,
可以是有規律性的,例如直接多加一個 2、3、4 當作順序,這樣之後若同一款遊戲有新的 apk,只要將 package 修改成相同的名稱,丟進手機就能直接更新。
修改完後存檔關閉,接著進入 res 資料夾,找到 values 這個資料夾,下面有個 strings.xml,同樣用文字編輯器打開來,
這些是翻譯的字串檔案,會顯示在你的裝置上,這裡只需要修改 APP 的顯示名稱,為了和原先的做區隔,
找到 app_name 這個欄位,修改成你要顯示的名稱,怎麼修改都行,看得懂為主,不會影響程式執行,修改後存檔保存。
values 資料夾下是預設的英文語系翻譯,若你的裝置是使用繁體中文(台灣)必須一同修改 values-zh-rTW 下的 strings.xml,
香港的就是修改 values-zh-rHK,簡體中文就是修改 values-zh-rCN,以此類推,只需修改你會用到語言即可。
接著到這裡都準備完畢了,要把這些反編譯的檔案打包回 apk 檔了,
回到剛剛的 cmd 視窗,輸入:
apktool b LGGRTW -o LGGRTW2.apk
將 LGGRTW 資料夾的資料編譯成 LGGRTW2.apk,LGGRTW 就是剛剛反編譯產生的資料夾名稱,LGGRTW2.apk 是依個人的喜好命名的 apk,
輸入完按下 Enter 執行,等待執行完畢即可關閉 cmd 視窗。
這時候你會發現 apk 檔案已經產生在資料夾下了,不過這時候直接拿去安裝應該會出現錯誤訊息,
因為還少了最後一個步驟:apk 簽名。
為 apk 檔案簽名
還記得剛剛下載的 AndroidResEdit 這個程式嗎?現在派上用場了,先開啟這個程式,
為什麼程式圖標會是跑跑卡丁車的圖案呢?我也不知道 XD
首先點擊 [簽名] > [簽名 apk 檔案]
接著選取你剛剛編譯的 apk 檔案,然後按下 [立即簽名]
這時會彈出一個視窗,這是要為簽完名的 apk 檔案命名,可以保留預設就好,直接按 [存檔]
這樣就完成簽名的動作囉!
最後,將簽完名的 apk 丟到你的裝置安裝,就能順利完成了~
同一個遊戲可以製作數個共存檔,就可以一次登入多個帳號來使用。
只需要簡單幾步驟,就能完成遊戲共存檔案的製作!
狂
為什麼我做到1次cmd指令得到的結果是,apktool, 不是內部和外部指令,可指行的程式或批次檔。
我的資料夾位置:C:\apk多開
APK名稱:Marble.apk
使用指令:apktool c Marble.apk
求解 :frown: :frown: :frown:
Lay
嗨~要確定 apktool.jar 這檔案放置的路徑要跟 cmd 上顯示的路徑一樣喔
狂
謝謝 :thumbsup: :thumbsup:
狂
我成功了,但是為什麼我的apk檔從42MB跳到55MB
Lay
哈,這是正常情況,不過詳細原因我也不清楚(可能是壓縮率問題)
Stella
apk installation failed:INSTALL_FAILED_CONFLICTING_PROVIDER
怎麼解決啊...?
Lay
參考:http://blog.csdn.net/hejjunlin/article/details/24196143
可能是和其他 APP 有衝突到,按照上面連結的文章教學,修改 AndroidManifest.xml 的時候順便修改 provider > android:authorities 的值試試看。
Stella
很感謝你的回覆,我已經成功解決問題了^_^
但我開啟不了遊戲>_>
有什麼建議嗎?
Lay
可能是遊戲有內建保護機制或是檢測吧? :thinking:
Stella
謝謝你的建議,我盡力試試看^_^
Stella
我努力地改了
然後根據你的方法
更改provider > android:authorities 的值
成功登入遊戲了,感謝大大的教學
遊戲為:時空之門
Ricky
Hi, 我用你的方式 來更改 LINE 但是沒法安裝 :frown:
Lay
哈囉,Line 這種比較複雜的 APP 可能沒辦法單純靠這方式共存,你可以參考網友分享的雙開檔:http://apk.tw/thread-519233-1-1.html
ayk915
我成功了並安裝到手機上, 但運行不到, 寫著已停止https://blog.brownsugar.tw/android-games-multi-apk/#
Lay
可能是遊戲有設置防禦機制,這樣就沒辦法了。
ayk915
不能破解? :thinking:
Lay
破解就不在這篇的討論範圍了 :wink:
ayk915
那處有得討論 :wink: 我加了你QQ :laughing: