PIPIGO · 皮 皮 G O

懸浮控制器 · 使用手冊

v0.5.1 · PodDpad Variation C · 2026-05-28

目錄

  1. 第一部分 — 安裝與權限設定
  2. 第二部分 — 介面導覽(PodDpad)
  3. 第三部分 — 基本操作教學
  4. 第四部分 — 收藏地點功能
  5. 第五部分 — 縮小模式
  6. 第六部分 — 鎖屏(省電 / 防誤觸)
  7. 第七部分 — 🏆 拉盆助手(v0.5.0 新增)
  8. 第八部分 — 疑難排解
  9. 第九部分 — 技術規格
  10. 第十部分 — 版本紀錄(Changelog)

第一部分 — 安裝與權限設定

皮皮GO 是一款模擬 GPS 位置的 Android 應用,配合位置型遊戲(Pokémon GO 等)使用。本節說明從零安裝到可以啟動懸浮窗的完整流程。

⚠ 前置需求:

1.1 安裝 APK

1下載 APK

取得 app-debug.apk(v0.4.10 約 7.66 MB)。透過 USB 線傳到手機,或用 adb install 從電腦直接推送。

2透過 ADB 安裝(推薦,Redmi/MIUI/HyperOS 用戶必看)
adb install -r -i com.android.vending app-debug.apk

-i com.android.vending安裝來源偽裝成 Play Store,可繞過 MIUI / HyperOS 的「無法安裝來自此來源的應用程式」限制。

3手動安裝

用檔案管理員開啟 APK → 點擊安裝。如果跳「未知來源」警告,到 設定 → 安全性 → 安裝未知 App 給檔案管理員授權。

1.2 必要權限(依序設定)

第一次啟動會逐一彈出,照著允許即可。以下整理在哪個系統設定頁面可手動調整。
權限路徑用途
定位(精確)App 首次啟動跳出 → 允許「使用 App 時」讓 Android 接受我們設定的測試位置
在其他 App 上方顯示設定 → 應用程式 → 皮皮GO → 在其他應用程式上層顯示讓 PodDpad 浮窗能蓋在遊戲上
模擬位置 App設定 → 開發者選項 → 模擬位置應用程式 → 選「皮皮GO」必設!否則 GPS 不會動
修改系統設定設定 → 應用程式 → 皮皮GO → 修改系統設定鎖屏功能輔助(v0.4.5 之後已不強制要求,但建議給)
通知首次啟動跳出顯示「模擬位置中」前景通知

1.3 解鎖開發者選項(如尚未開啟)

設定 → 關於手機
連續點「版本號碼」7 次
輸入 PIN
開發者選項解鎖
🚫 模擬位置 App 沒設成皮皮GO 的話,App 啟動會顯示 Toast:「尚未設定為模擬位置 app;請到開發人員選項設定後重啟」。設好之後請停止再重啟懸浮搖桿。

第二部分 — 介面導覽(PodDpad)

啟動懸浮搖桿後,畫面上會出現一個 304dp 寬橫式深色玻璃面板。這就是 PodDpad(艙式控制器)。下圖是各部件位置與名稱:

座標 · KAOHSIUNG 22°44'21.4"N 120°18'17.3"E ✎ 編輯 ⎘ 貼上 ☆ 收藏 ⤢ 縮小 🔒 鎖屏 G1 10–15 KM/H ⓪ 拖動區(28dp 整條) ① 4-方向 pad ② 中央 dot(啟動變藍) ③ DMS 座標 + 動作列(兩列) ④ G1/G2 檔位 chip ⑤ 關閉
↑ PodDpad 介面總覽(↑ + → 同時啟動 = 角色往東北斜行 · v0.4.10 動作列分兩列)
編號元件說明
拖動區(drag area)面板頂端 28dp 整條橫帶都能拖。中央有條 80×5dp 灰色 grip 視覺指示
4-方向 pad96dp 容器內 4 顆 30dp 方向鍵,呈「+」排列
中央 dot角色狀態指示燈:靜止 = 半透明白;移動中 = 亮藍 + 光暈
座標 + 動作列DMS 兩行;下方兩列:
第一列 ✎ 編輯 ⎘ 貼上 ☆ 收藏
第二列 ⤢ 縮小 🔒 鎖屏
檔位 chip顯示當前 G1/G2 與速度範圍;tap 切換
關閉鈕停止懸浮搖桿(亦可從通知列「停止」)

第三部分 — 基本操作教學

3.1 啟動懸浮搖桿

開啟「皮皮GO」
按「啟動懸浮搖桿」
PodDpad 出現

背景會跳出「皮皮GO 模擬位置中」常駐通知。預設位置為 22°44'21.4"N 120°18'17.3"E(高雄)

3.2 方向鍵 — Tap to Latch(按一下就走)

不是按住才走,是點一下就「鎖定」往該方向自動行走,再點一下取消。可同時啟動兩個相鄰方向達到斜行:

操作結果
tap 該鍵亮藍、中央 dot 變藍、開始往北走
再 tap 取消,回到靜止
tap + tap 同時亮藍,向東北斜行(45°)
tap + tap 第二個被忽略(對向不允許)
已有兩個,tap 第三個被忽略(最多兩個)
💡 觸覺回饋:每次有效的按鍵動作,手機會給 8ms 短震動,是確認按到的訊號。

3.3 檔位 G1 / G2 / G3 / G4 — 速度切換

檔位速度範圍適用情境
G110–15 km/h(步行~慢跑)孵蛋、慢慢移動探點
G216–20 km/h(快跑~自行車)長距離移動、跑進度
G355–60 km/h(機車 / 市區)跨區快速移動
G4115–120 km/h(高速公路)極速跨城

3 秒會在範圍內重新抽樣一個速度。tap chip 一下會循環切換:G1 → G2 → G3 → G4 → G1

⚠ G3 / G4 注意:用真實人類不可能的速度移動可能會被遊戲反作弊偵測。建議只在純粹開地圖、跨城時短暫使用,到達目的地後切回 G1。

3.4 編輯座標 — 跳到指定地點

1tap ✎ 編輯 → 面板下方展開三欄輸入:NAME / LAT / LNG
2輸入新的十進位座標(例:25.033889 / 121.564500
3tap 📍 定 位 跳 轉 → 立即傳送至該座標、面板收合
⚠ 注意:輸入欄收的是十進位(DD),不要直接貼 DMS 字串如「25°02'02"N」進去。要從 Google Maps 短網址過來,請用下一節「貼上」功能。

3.5 貼上 — Google Maps 短網址 / 座標

Google Maps
長按地圖
點下方
跳出的座標
複製
回皮皮GO
tap ⎘ 貼上

支援格式:

3.6 移動 PodDpad 位置

按住面板頂端拖動區(整條 28dp 高的橫帶)拖動,可把 PodDpad 移到螢幕任何位置。中央的灰色細條只是視覺指示,整條橫帶都吃得到觸控。


第四部分 — 收藏地點功能 [v0.4.7+]

把常去的地點存起來,一鍵跳轉。例如:家、花蓮、桃園機場、特定電影院、某遊戲熱點等。

4.1 存收藏

1跳到想存的座標(用 [✎ 編輯] 輸入或 [⎘ 貼上] 從 Maps 過來)
2tap ✎ 編輯 展開編輯區
3NAME 欄輸入名稱(例:「家」、「花蓮機場」),留空會自動命名為「未命名 N」
4tap 💾 存收藏 → Toast 顯示「已存收藏:家」
💡 同名會覆寫:用同一個 NAME 存第二次,會覆蓋舊資料(適合微調某個地點的座標)。

4.2 跳到收藏地點

1tap ☆ 收藏 → 面板下方展開「收藏清單」
2清單列出所有已存項目,格式:
📍 家 25.0339, 121.5645
3tap 任一項 → 立刻跳轉、清單收合

4.3 刪除收藏

在收藏清單上 長按任一項 → 直接刪除。會有 Toast 確認「已刪除:XXX」。

4.4 儲存位置

收藏存在 Android 內部 SharedPreferences(檔名 pipigo_presets),格式 JSON。重灌 App 會清空,匯出 / 同步功能尚未提供。


第五部分 — 縮小模式 [v0.4.5+]

遇到緊急要看遊戲畫面、或不想被大面板擋住時,可把 PodDpad 縮成一個小的快速控制條。

5.1 進入縮小模式

tap ⤢ 縮小(動作列第二列左邊)→ 整個面板瞬間切到 96dp 寬的迷你版。

🔒 鎖屏 ↗ 展開
↑ 縮小模式:96dp 寬 / 上方拖動區 / 大鎖屏鈕 / 展開鈕

5.2 縮小模式的兩顆按鈕

按鈕動作
🔒 鎖屏 全寬大鈕(48dp)立刻進入鎖屏(同 PodDpad 上的 [🔒 鎖屏])
↗ 展開 小鈕(30dp)恢復成完整 PodDpad
💡 拖動仍可用:縮小模式保留上方拖動把手,可繼續拖到舒服位置。

第六部分 — 鎖屏(省電 / 防誤觸)

邊走邊掛遊戲時,把手機螢幕做成「假關機」狀態,避免口袋誤觸、節省電量,但 GPS 模擬仍繼續推送。

6.1 從 PodDpad 進入鎖屏(推薦)

1tap 🔒 鎖屏(動作列第二列右邊)
2螢幕瞬間變黑(v0.4.5 之後直接靠 WindowManager.LayoutParams.screenBrightness = 0.01f,不需要 WRITE_SETTINGS 權限)
3所有觸控被全螢幕 overlay 吞掉;GPS / Service 仍在背景跑

6.2 解鎖

✅ 解鎖方式:1.5 秒內連按兩下同一個音量鍵(音量加 + 音量加,或音量減 + 音量減)。
❌ 不接受:音量加 + 音量減交替 / 間隔超過 1.5 秒 / 任何螢幕觸控。

6.3 從主畫面進入鎖屏(懸浮鎖屏鈕)

主畫面有獨立的 「啟動鎖屏模式」 按鈕,會在畫面上放一個 48dp 黑色懸浮鈕(可拖動),點一下進入全黑鎖屏。

⚠ MIUI / HyperOS 用戶:請把皮皮GO 加入「電池無限制」與「允許自啟動」白名單,避免系統殺背景 service。

第七部分 — 🏆 拉盆助手 [v0.5.0+]

Pikmin Bloom 的金盆 / 銀盆 / 電影院特殊盆等高價值盆栽,伺服器會額外檢查位置來源是否為「真實 GPS」。一般飛人會被擋下,因為推出去的位置帶 isFromMockProvider() = true 標記。

這個按鈕做的是「乾坤挪移大法」的半自動化:先把目標位置推進去,然後把模擬位置 provider 拔掉。系統還記得「最後一筆位置」(cached location),但 mock 標記已洗掉。在真實 GPS 重新 lock 之前的 0.5–幾秒空窗內,遊戲拿到的是「目標座標 + 真實旗標」,這時去點特殊盆就會被接受。

⚠ 這是繞過遊戲反作弊的灰色地帶,使用者自負風險。請避免在同一帳號短時間內密集使用。

7.1 使用步驟

1跳到金盆位置(用座標貼上、收藏、或編輯)
2tap ✎ 編輯 打開展開區
3tap 🏆 拉盆 → 全螢幕對話跳出
4對話開始倒數 5 秒 → 倒數結束自動拆 mock provider,畫面上顯示「GO!」
5看到 GO! 之後立即:
  1. 下拉系統控制中心 → 關閉「定位」
  2. 切到 Pikmin Bloom(保持在背景或前景皆可)
  3. 再開「定位」
  4. 0.5 秒內 → tap 金盆 → 點花滑精華
6拉完後按對話框「關閉」→ mock provider 自動重新註冊,可繼續一般自走

7.2 為什麼這樣有效?

階段系統內部遊戲拿到的位置
(1) 飛到目標mock provider 推送中isMock=true → 特殊盆拒絕
(2) 倒數結束、拆 mockmock provider 撤掉,但 cache 仍是目標座標暫時無新位置
(3) 關系統定位所有 location source 停
(4) 重開定位real GPS 開始 fix(需幾秒);先回 cached目標座標 + isMock=false(因為 mock provider 已不存在)
(5) Real GPS lock真實位置取代真位置(家),但你已點完盆了

7.3 限制

7.4 一勞永逸方案:Root + LSPosed Mock Hide [v0.5.1+ 自動偵測]

v0.5.1 起主畫面會自動偵測 Root / LSPosed 環境,顯示對應徽章:

徽章意義拉盆方式
⚪ 一般模式無 root必須走 🏆 拉盆助手
🟡 Root 已偵測有 root 但沒 LSPosed仍要走 🏆 拉盆助手;建議裝 LSPosed
🟢 Root + LSPosed ✓LSPosed framework 已載入若已啟用 Mock Hide module,可直接拉
🟢 Root + Mock Hide 生效 ✓實際驗證 mock provider flag 已被 hook 掉直接拉特殊盆,不需要拉盆助手

設定步驟(在已 root 的舊手機上)

1確認手機已 root(裝過 Magisk
2LSPosed Magisk module(從 Magisk → Modules 安裝 zip)
3從 LSPosed Manager 啟用 Mock Location Hide module,或從 LSPosed Repo 裝 Smali Patcher
4勾選作用目標:Pokémon GO / Pikmin Bloom / 系統服務
5重啟手機 → 打開皮皮GO → 主畫面應顯示 🟢 徽章
6啟動懸浮搖桿 → 一般操作即可,特殊盆直接吃,免拉盆助手
⚠ Root 風險:會破壞 Widevine L1(高畫質串流降級)、可能觸發銀行 App 拒絕運作、Niantic 仍可能用 Play Integrity 偵測異常。建議用不存重要資料的舊手機,且避免 root 主帳號裝置。
💡 推薦設備:二手 Pixel 6 / 7 / 8(Magisk 支援度最完整),二手 OnePlus 8/9 / Redmi Note 10/11 也常見。模擬器不建議:Niantic 對 emulator 指紋有獨立偵測,且模擬器沒 step counter 感測器,Pikmin 計步機制完全跑不起來。

第八部分 — 疑難排解

7.1 GPS 在遊戲裡沒反應

檢查正確設定
開發者選項 → 模擬位置應用程式必須選「皮皮GO
定位權限「允許」或「使用 App 時允許」
adb shell appops get com.pipigo.app android:mock_location應顯示 MOCK_LOCATION: allow
logcat 是否有 inject denied / provider is not a test providerv0.4.4 以前的版本在 Android 14+ 會這樣,請升到 v0.4.10
遊戲是否有反作弊偵測部分遊戲偵測得到 mock provider,皮皮GO 無法繞過

7.2 浮窗排版錯亂 / 按鈕看不到

7.3 鎖屏後音量鍵沒反應

7.4 ADB 裝置 offline

1手機 → 開發者選項 → 撤銷 USB 偵錯授權
2USB 偵錯開關:關 → 再開
3拔線重插,手機會跳「允許這台電腦進行 USB 偵錯?」→ 勾「永遠允許」→ 允許

7.5 安裝失敗 INSTALL_FAILED_USER_RESTRICTED(MIUI / HyperOS)

adb install -r -i com.android.vending app-debug.apk

第九部分 — 技術規格

App / Build

Packagecom.pipigo.app
版本v0.4.10(versionCode 17)
minSdk / targetSdk26 / 34
APK 大小≈ 7.66 MB

Mock Location 行為

Tick 頻率每 100 ms 推送一次(即使靜止也維持 ping,避免遊戲判斷斷線)
G1 速度10–15 km/h 範圍內隨機,每 3 秒重抽(GearRandomizer)
G2 速度16–20 km/h 範圍內隨機,每 3 秒重抽
G3 速度55–60 km/h 範圍內隨機(機車 / 市區)
G4 速度115–120 km/h 範圍內隨機(高速公路)
ProviderLocationManager.GPS_PROVIDER(含 elapsedRealtimeNanos)
Provider 設定powerUsage=1(Low)/ accuracy=1(Fine),Android 14+ 嚴格驗證範圍
真實化(v0.5.0+)每次推送:accuracy 隨機 5–15m、位置 ±2m jitter、speed / bearing 從當前方向真實計算
特殊盆突破🏆 拉盆助手:倒數 5 秒後 removeTestProvider,利用 cached location 在 real GPS lock 前的空窗繞過 isFromMockProvider() 檢查
LifecycleonCreate 時先 removeTestProvideraddTestProvider(避免「gps provider is not a test provider」)
預設座標22.739278, 120.304806(高雄)

座標模型

顯示格式DMS(度°分'秒.s"半球)
輸入格式DD(十進位)/ Maps 各種網址
位移公式dlat = -vy·v·dt / 111000
dlng = vx·v·dt / (111000·cos(lat))

收藏功能(PresetsRepository)

儲存層SharedPreferences 名稱 pipigo_presets、key list
序列化JSON 陣列 [{name, lat, lng}, ...]
同名行為覆寫(移除舊項 + append 新項)
UI 展開PodDpad 內 preset_panel(非 PopupMenu,避免被 overlay window 擋)

鎖屏(LockOverlayService)

解鎖條件1.5 秒內連按兩下同一個音量鍵(VolumeUp ×2 或 VolumeDown ×2)
螢幕亮度主要:overlay window LayoutParams.screenBrightness = 0.01f(v0.4.5+,免權限)
備援Settings.System.SCREEN_BRIGHTNESS = 0(需 WRITE_SETTINGS)
觸控攔截全螢幕 overlay 吞所有觸控;保留音量鍵 KeyEvent
WakeLockPARTIAL_WAKE_LOCK 維持 CPU;FLAG_KEEP_SCREEN_ON 維持螢幕

第十部分 — 版本紀錄(Changelog)

版本主要變更
v0.1初版:osmdroid 地圖 + in-app 搖桿、setTestProviderLocation
v0.2 ~ v0.2.3整合鎖屏功能;minSdk 21→26;LocationParser 加 !3d/!4d;主畫面 status 顯示版本
v0.3.0方向鍵 hold → tap-toggle;加 1/2 檔速度按鈕;座標 EditText 可編輯(動態切 NOT_FOCUSABLE)
v0.4.0整個浮窗視覺重做為 PodDpad Variation C(304dp 橫式吊艙、玻璃面板、accent 冷光藍);mock 改 100ms tick;G1/G2 範圍隨機 + 3 秒重抽;座標改 DMS;新增 colors.xml + 8 個 drawable + 10 個單元測試
v0.4.1修拖動失效:加專屬 drag_handle 灰條、ACTION_DOWN 改 return true
v0.4.2修浮窗寬度被擠成 100dp:WindowManager.LayoutParams.width 改用明確 dp pixel
v0.4.3修 Android 14+ mock provider lifecycle:先 removeTestProvider 再 addTestProvider
v0.4.4修 Android 14+ ProviderProperties 驗證:powerUsage / accuracy 改為 1, 1
v0.4.5修鎖屏螢幕沒變暗:overlay window 自帶 screenBrightness = 0.01f;+ 加縮小模式
v0.4.6預設座標改高雄 22.739278, 120.304806
v0.4.7收藏功能:PresetsRepository(SharedPreferences + JSON);動作列加 [☆ 收藏];edit_panel 加 NAME + [💾 存收藏];拖動區擴大為 28dp 高 FrameLayout
v0.4.8精簡背景服務,減少電力消耗
v0.4.9修收藏 PopupMenu 被擋:改為 PodDpad 內展開的 preset_panel;縮小模式改兩列(🔒 大鈕 + ↗ 展開);寬度縮成 96dp
v0.4.10修動作列右側被切:5 顆按鈕水平總寬超出區域 → 改成兩列:上 [✎ 編輯][⎘ 貼上][☆ 收藏]、下 [⤢ 縮小][🔒 鎖屏]
v0.4.11新增 G3 (~60 km/h) 與 G4 (~120 km/h) 檔位,chip 切換循環 G1→G2→G3→G4→G1
v0.5.0新增 🏆 拉盆助手:半自動化「乾坤挪移大法」繞過特殊盆的 isFromMockProvider() 檢查。+ Mock location 真實化(accuracy 隨機、位置 jitter、speed/bearing 計算)
v0.5.1新增 Root 環境偵測:主畫面顯示徽章 ⚪一般 / 🟡Root only / 🟢Root+LSPosed / 🟢Mock Hide 生效;若已 root + LSPosed 並啟用 Mock Location Hide,PIPIGO 推位置會自動繞過 isMock 偵測,可忽略 🏆 拉盆助手