BullfrogAssistant – iPhoneなどデバイス単体でIPAファイルを署名Sideloadできるアプリ


IPAファイルのSideloadで現在最も使われているのは「AltStore」や「Sideloadly」となっています。

「AltStore」は、iPhone自体にアプリをインストールして署名やインストールができますが、利用する場合 PC / Macに接続されている必要があります。(同一WiFiで起動していたら署名、インストール可能)

「Sideloadly」は高機能ですが、iOSデバイスではなくPC / Mac上から操作します。

今回紹介する「BullfrogAssistant」は、一度iPhoneやiPadにインストールするとiOSデバイス上だけでIPAファイルの署名とインストールが可能となります。


はじめに、このソフトは開発段階にあり上手く動作しない場合があります。

また、中国の「@BullfrogTeam」という方が開発しており、現在までの経歴がわからないためデバイスの情報などが悪用される危険性があります。

個人的な意見ですが、セキュリティの観点からインストールしないことをおすすめします


対応バージョン

「BullfrogAssistant」アプリの対応バージョンは、iOS 12 から iOS 16 beta まで確認されています。

Bullfrogはウシガエルという意味で、アプリのアイコンもカエルになっています。





BullfrogAssistantのダウンロード



Link:牛蛙助手_苹果助手_iPhone刷机工具_ios越狱神器


WindowsとMac版がありますが、私の環境ではWindowsの方が動作しなかったのでMacを使用しました。

※M1などのApple SiliconのMacにはまだ対応していないとのこと

1.リンクから「下载MAC版」をクリックして「牛蛙助手1.0.1.dmg」をダウンロード

2.dmgファイルをマウントすると「BAInstaller.app」が表示されるので「Applications」に入れるか、そのまま実行

3.問題なければアプリが起動します。

macOS Monterey 12.5.1を使用

BullfrogAssistantのインストール


1.デバイスとMacをUSBで接続して「ここをクリック」の部分をクリック

iPhoneにパスコードが設定されていない場合、パスコードを設定してくださいというアラートが表示されます。

※デバイスのパスコードをセットします。

2.問題なければ「安装成功」とアラートが表示され「BullfrogAssistant」アプリがiPhoneにインストールされます。


3.ホーム画面上に「BullfrogAssistant」が表示されるのでタップして起動します。


4.起動してプロファイルをインストール

プロファイルをインストールしないと、この画面から変わりません。矢印の部分をタップするとSafariが立ち上がりプロファイルのインストール画面が開きます。

5.Safariから構成プロファイルをインストール

このIPアドレス「47.105.118.214」を Whois で確認したところ、中国の「Aliyun Computing Co., LTD」というところを使用していることがわかりました。

Alibaba Cloud(アリババクラウド)は、アリババグループの子会社であるアリババクラウドインテリジェンス(阿里云智能)が提供する従量課金制、サブスクリプション型のクラウドコンピューティングサービスである。中国国内では「阿里云(Aliyun:アリユン)」というサービス名称で提供している。
via. Wikipedia

開発者のツイートからDDOS攻撃を受けているという情報があったので、アリババのCDNを利用しているかと推測されます。

プロファイル(mobileconfig)については後述

6.設定アプリを開きプロファイルをインストール

詳細を見ると「BullfrogAssistant」は、Apple Developerアカウントで署名されており、使用するデバイスのUDID(デバイス固有の番号)を登録するためにプロファイルをインストールします。

プロファイルの有効期限が2023年5月11日とのことから、アプリ自体も停止されない限り2023年5月まで使用できるかと思います。

7.VPN構成のインストール

プロファイルをインストールするとVPN構成のインストールが求められるので「許可」

これは「@BullfrogTeam」の開発が中国にあり、中国以外の国でIPA署名したアプリをインストールするときに必要とのことです。

VPNの詳細についても後述します。


これで「BullfrogAssistant」アプリを使用することができるようになります。

BullfrogAssistantの使用方法


画面下のKitタブ

IPA Signature

ここからIPAの署名とインストール、Apple IDの管理ができます。

Virtual Location

脱獄不要で位置情報を偽装することができます。




画面下のMeタブ

デバイスのUDIDやLanguage(中国語か英語)、キャッシュの削除、アプリの情報が表示されます。

「About us」でアプリのバージョンが1.1.2であることがわかります。

BullfrogAssistantでApple IDを登録する


1.KitタブのIPA Signatureをタップ


2.画面下のCertificateから右上の + 「Personal certificate」をタップ


3.Apple IDのEmailとパスワードを入力して「Confirm」


4.2ファクタ認証を有効にしている場合、6桁の確認コードを入力して登録します。

【注意点】
  • セキュリティの関係上、メインで使用しているApple IDは使用しないでください。
  • 新規に取得したApple IDの場合、エラーとなり登録できない場合があります。
    時間を置いてから試すと成功するかと思います。
  • 個人のiOS Developer Program IDには、最大100台のデバイスまでという制限があります。
    これについても後述します。

5.登録が完了したら以下のように表示されます。


これでIPAファイルの署名とSideloadができるようになります。

BullfrogAssistantでアプリを署名・インストールする


1.画面下のApplicationタブから右上の + でImportをタップ

  • Web:URLを入力してWebサイトを開くモード
  • URL:直接IPAのURLを指定してインポートする
  • Import:ファイルアプリのエクステンションを開きIPAを選択してインポートする
IPAファイルが選択できない場合は「URL」から直接IPAのLINKを入力します。

2.ここでは「uYouPlus」を選択してみます。

※IPAファイルは容量が大きいので、iCloudドライブの容量に注意

※署名するときも同様ですが、ロック画面になると動作しないと表示されます。

3.インポートが成功するとApplication Listに表示されます。


4.署名したいアプリの部分をタップして「Sign」

  • Sign:登録したApple IDでアプリを署名
  • delete:アプリのリストから削除
テーブルビューのアプリの部分を左にスワイプしてもDeleteできます。

5.Signature settingsの画面になるので「Sign now」

Version numberなどを変更すると正常に動作しません。

また、パスコードを設定していないと署名とインストールができません。

6.Signature succeededとなれば成功です。

「To install」をタップするとインストールする画面になります。(Signedタブに移動する)

7.Signedタブからインストールしたいアプリをタップ「Install」

  • install:署名したアプリをデバイスにインストール
  • balang_kitsign_ta..:署名したアプリをiOSのシェアシートで表示する
  • delete:アプリのリストから削除
※署名したアプリをインストールするときはVPN接続が必要です。
(Please connect VPNと表示され進まない)

8.正常にインストールされると以下のように表示されます。

「return to desktop」をタップするとアプリが閉じられホーム画面に移動します。


署名したアプリの起動

初回のみ「信頼されていないデベロッパ」と表示されます。

1.設定アプリの一般→デバイス管理→デベロッパAPPを開く

ここで、最初にインストールしたプロファイルが消えていることがわかります。


2.Apple IDのメールアドレスを信頼をタップ

これでSideloadしたアプリを開くことができるようになります。

インストールしたuYouPlusが正常に起動しました。

BullfrogAssistantのその他について


1.インストールできるアプリは個人署名の場合、3個までが最大です。

アプリ内のリストには残せるので、他のアプリを使用したい場合はホーム画面から使わないアプリを消して、BullfrogAssistantで再度インストールすることが可能です。

Sideloadの問題点としてプッシュ通知はされません。(バッジは表示される)

2.インポート・署名したアプリの場所

インポートしたファイルは「BullfrogAssistant」のDocumentsディレクトリ内に保存されます。
  • /var/mobile/Containers/Data/Application/(UUID)/Documents/UnsignedApplications/
  • /var/mobile/Containers/Data/Application/(UUID)/Documents/SignedApplications/
(UUID) はランダムな英数字でUDIDとは違います。

3.unc0verやOdyssey、TaurineなどのIPAもインストール可能

テストしたのは、iOS 12.1.2でのunc0ver 6.2.0とTh0r_Freya、iOS 13.7でのOdyssey、iOS 14.3でのunc0ver 8.0.2で、いずれも脱獄することができました。
ただし、バージョンナンバーが1になる問題がありました。

4.AltStore、Clipなどはインストールできても動作はしない

試しにAltStoreをインストールしてみましたが、Application Supportのエラーが出て動作はしませんでした。Clip(AltStoreと同じ開発者のアプリ)に関しては起動しませんでした。

5.BullfrogAssistantのVPNについて

サーバーアドレス、アドレスともに10.8.0.1でした。これは内部プライベートIPアドレス(local IPアドレス)でBullfrogAssistant.appが実際にどのようにしているかは不明です。

署名したアプリをインストールするときに、ONにする必要がありました。詳しくは後述します。


6.Virtual Location (位置情報の偽装)

位置情報サービスを有効にしている場合に有効で、ピンで止めたところを現在地として機能させることができました。
(天気アプリで確認)

脱獄環境がなくてもアプリ上から位置情報の偽装が可能になります。
(iOS 15.1.1 iPhone 12 miniにて確認)

Sideloadに使用したアプリ

Spotifyは私が個人的に作成したもので、8.5.60は最高音質にできるが歌詞の表示やカラオケモードが利用できません。8.7.60は、2022/08/31までの最新バージョンです。

ダイレクトリンクは禁止! – No direct links allowed!


BullfrogAssistantの安全性などについて


1.はじめにインストールするプロファイル

URLは「http://47.105.118.214:8080/udid.mobileconfig」からダウンロードされます。

ある程度時間が経過すると設定アプリから表示されなくなります。

2.プロファイルのインストール場所

  • /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/phone/profile-[64桁の英数字].pdata
udid.mobileconfigと中身は同じで、ある程度時間が経過すると消えます。

3.udid.mobileconfig の中身

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>http://47.105.118.214:8080/device/receiveudid</string>
<key>DeviceAttributes</key>
<array>
<string>UDID</string>
<string>IMEI</string>
<string>ICCID</string>
<string>VERSION</string>
<string>PRODUCT</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
<key>PayloadOrganization</key>
<string>闍ケ譫懷ョ俶婿闔キ蜿剖DID</string>
<key>PayloadDisplayName</key>
<string>迚幄尸蜉ゥ謇・ </string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>3C4DC7D2-E475-3375-489C-0BB8D738B765</string>
<key>PayloadIdentifier</key>
<string>dev.beeplay.profile-service</string>
<key>PayloadDescription</key>
<string>譛ャ隸∽ケヲ扈剰胸譫懷ョ俶婿隶、隸・諡・譛臥サソ濶イ譬・ッ・螳牙・蜿ッ髱</string>
<key>PayloadType</key>
<string>Profile Service</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
中国語の部分は文字化けしています。

「http://47.105.118.214:8080/device/receiveudid」にアクセスしてUDIDを送信していることがわかります。
  • UDID:デバイス固有の識別子
  • IMEI:デバイスのネットワーク利用制限などを管理している固有のID
  • ICCID:デバイスのSIMカード/UIMカードの識別番号
  • VERSION:デバイスのバージョン
  • PRODUCT:デバイスの型式(プロダクトネーム)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
HTTP通信を有効にできるためのもので、「http://47.105.118.214」にアクセスできるように設定している。

参考:iOS9でHTTP通信ができない時の解決法 – Qiita

おそらくデバイス情報をサーバー側のデータベースに登録して、完了したらプロファイルが消えるものだと思います。

【参考Link】

4.BullfrogAssistant アプリのバイナリを解析

https通信を見てみたところ以下のURLが記載されています。(平文で記載されているもののみ)
  • gsa.apple.com
  • developerservices2.apple.com
  • hmma.baidu.com
  • dxp.baidu.com
  • qmuiteam.com/analytics/usageReport
gsa.apple.comは、Apple ID 認証のために使用されており、developerservices2.apple.comはアプリ上でXcodeの署名を利用しているものと考えられます。

baiduに関しては、「BaiduMobStat」という Baidu Mobile Analysis SDK for iOSを使ってアプリを作成しているためで、qmuiteam.comは「QMUI iOS」というUIを利用しているからだと考えられます。

アプリのUIやVirtual Location (位置情報の偽装)で使用していると推測。

アプリのデバイス管理はMicrosoftのサービスを使用

個人のApple Developerアカウントの場合は、デバイスの登録数が100台までとなっているため、サードパーティ製のサービスを使用して登録数を管理しているものと考えます。

5.BullfrogAssistantのVPN

VPN構成プロファイルのインストール場所
  • /private/var/preferences/SystemConfiguration/preferences.plist
<key>377BFDDF-9576-43F0-A36C-FB6400E99DCF</key>
<dict>
<key>DNS</key>
<dict>
<key>__INACTIVE__</key>
<true/>
</dict>
<key>UserDefinedName</key>
<string>Bullfrog</string>
<key>IPv6</key>
<dict>
<key>ConfigMethod</key>
<string>Automatic</string>
</dict>
<key>Interface</key>
<dict>
<key>SubType</key>
<string>com.flyingbullfrog.bullfrogassistant</string>
<key>Type</key>
<string>VPN</string>
</dict>
<key>VPN</key>
<dict>
<key>NEProviderBundleIdentifier</key>
<string>com.flyingbullfrog.bullfrogassistant.networkextension</string>
<key>DisconnectOnIdleTimer</key>
<integer>0</integer>
<key>ReassertionTimer</key>
<integer>0</integer>
<key>DisconnectOnIdle</key>
<integer>0</integer>
<key>DisconnectOnWakeTimer</key>
<integer>0</integer>
<key>AuthenticationMethod</key>
<string>Password</string>
<key>OnDemandEnabled</key>
<false/>
<key>DisconnectOnWake</key>
<integer>0</integer>
<key>RemoteAddress</key>
<string></string>
<key>DisconnectOnSleep</key>
<integer>0</integer>
</dict>
<key>IPv4</key>
<dict>
<key>ConfigMethod</key>
<string>VPN</string>
</dict>
<key>Proxies</key>
<dict>
<key>__INACTIVE__</key>
<true/>
<key>FTPPassive</key>
<integer>1</integer>
</dict>
</dict>

FTPPassiveを有効にして、FTPを利用してファイアウォールの回避を行いサーバーで処理しているようです。

まとめ

まとめると、Apple IDやデバイスの情報が中国の見知らぬサーバーに送られ管理されるという内容です。


セキュリティを考慮すると、使用しないほうが安全です。
AltStoreはAltStore自身もSideloadの署名が必要なため、個人署名では2個のアプリになります。

BullfrogAssistantは開発者署名でインストールされるため、3個のアプリを個人でインストールできます。
ちなみに、BAInstallerを介さずに BullfrogAssistant.ipa を作成してインストールしてみましたが起動できませんでした。

(一度インストールしたことがあるデバイスについては起動しますが正常な動作はしませんでした)


またデバイス単体でIPAの署名とインストールができるのは、AltStoreやReProvision Rebornは脱獄環境が必要なことに対し、脱獄を必要とせずに利用することができるのが利点です。

開発者自身も「The world’s first tool that can use Apple ID signature without prison Jailbreak or connecting to the computer, and provides virtual location function.」と紹介しているため非脱獄環境のサイドロード向けに開発しているようです。

しかし、セキュリティに関して不明瞭な点が多いため、使用することはおすすめできません。

【参考】