最近のmacOSでは正式に署名されていない、所謂「野良アプリ」は単純な実行属性を持ったシェルスクリプトも含めてダウンロードしたものは簡単には実行できないようになっています。これはマルウェアなどを防止する上で有効な手段と言えます。しかしながら人によっては有用な野良アプリを必要とするのも事実です。
そこでmacOS超初心者も含めて野良アプリを走らせるまでの手順を紹介いたします。
[ zipファイルのダウンロードと展開 ]
どこかからzipファイルでアプリケーションをダウンロードしたとします。ファイルは「ダウンロード」フォルダーに保管されます。そのzipファイルをダブルクリックすると「ダウンロード」フォルダーに展開されます。
中身は以下の拡張子で見ると3種類のどれかです。
app : フォルダーの設定で”すべてのファイル名拡張子を表示”にしないとappという文字列は見えませんが、フォルダー上の種類が「アプリケーション」となっています。
pkg : インスーラ、ダブルクリックでインストーラが起動します。
dmg : ディスクイメージ、ダブルクリックするとディスクとしてマウントされます。その中にappかpkgが入っています。zipの代わりにdmgがダウンロードされることも多いです。
一般的な野良アプリではappがzipされているケースが多いと思います。展開後は「アプリケーション」フォルダーあるいは自分の好みの場所に移動させます。
[ xattrコマンドの実行 – GUI ]
一般的にはターミナルを開いてxattrコマンドをzip, app, dmgファイルに対して実行しますが、@ninjaMoonLightさんから便利なスクリプトを提供していただきました。
xattr.scptをダウンロードしてダブルクリックするあるいは下の内容をスクリプトエディタに貼り付けます。
set selectedFile to choose file with prompt "Select zip or app file to be run:"
set posixPath to POSIX path of selectedFile
set quotedPath to quoted form of posixPath
set cmd to "xattr -d com.apple.quarantine " & quotedPath
do shell script cmd
display alert "Done"

– スクリプト/実行、あるいは右上にある三角を押します。
– ファイルダイアログが出るのでダウンロードしたzipファイルかdmg、あるいはアプリケーションファイルを選択します。
– Doneと表示されれば完了です。2回実行するとスクリプトエラーが出ますが、これは問題ないです。
[ xattrコマンドの実行 – ターミナル ]
– ターミナルとzipを展開したアプリケーションが見えているフォルダーを開き並べて起きます。

– ターミナルに以下のどちらかの文字列を打ち込んでおく。
xattr -d com.apple.quarantine
xattr -cr
手打ちならば二つ目が楽ですね。最後にスペースが一つ必要です。
– フォルダーからアプリケーションファイルをドラッグしターミナルにドロップし改行を押してコマンドを実行します。

TinyViewPlus-NGではHDMIキャプチャーを使用します。その場合はfpv.xmlを編集することが必須となります。その詳細について書いておきます。この記事はMacOS版TinyViewPlus-NG v0.9.33-beta7に基づいて記述されています。
[ fpv.xmlを開く ]
fpv.xmlなどの設定ファイル、レース結果を保管するresultsフォルダーはMacOS版においてはアプリケーションパッケージに内包されています。

アプリケーションファイルで右クリックメニューで「パッケージの内容を表示」をクリックします。

Contents/Resources/data/camera/fpv.xmlをエディターで開いて編集します。
[ fpv.xmlの内容 ]
<camera>
<name>USB3 Video</name>
<camnum>4</camnum>
<description>USB3</description>
<grab>
<width>1920</width>
<height>1080</height>
</grab>
<crop>
<x>0</x>
<y>0</y>
<width>1920</width>
<height>900</height>
</crop>
<draw>
<aspectRatio>4:3</aspectRatio>
</draw>
<fourCamHorizontal>1</fourCamHorizontal>
</camera>
上から順に説明します。
– name: OSが認識している入力デバイス名です。調べ方については後述します。
– camnum: 1だとオリジナルのTVPと同じ動作です。4にするとNG版の目的である一つの入力を4分割するモードになります。3にすると4分割画面の最後の画面を捨てた3画面分割になるようです。
– description: 説明です。
– grab: widthとheightは実際に入力される画面サイズに合わせます。これも調べ方は後述します。
– crop: 接続したチューナーなどの都合で入力画面に余計な部分が発生したりします。それをカットするために使用します。最初はx,yは0, widthとheightはgrabと同じ数値で試してみると良いでしょう。
– draw: 縦横比を指定します。入力解像度1920:1080は19:6になりますが4:3を指定した方が良い結果が得られました。この辺りは実際に試して決めてください。
– fourCamHorizontal: これを0にすると4画面が2×2の配置になります、1にすると4画面が横並びに表示されます。
[ 入力デバイス名と解像度の調査 ]
VLCもしくはQuickTime Playerで調べます。VLCの方が少し手順が簡単です。
< VLC >
– ファイル/キャプチャーデバイスを開く

– Videoにチェック、デバイスを選択(この時の名前がデバイス名)、開く

– ウィンドウ/メディア情報/コーディックの詳細、で解像度を確認

< QuickTime Player >
– ファイル/新規ムービー収録

– 録画ボタン横の▼をクリックしてデバイスを選択(この時の名前がデバイス名)

– ▼をクリックして品質を最高に設定

– 録画ボタンを押してしばらくしてから停止

– ウインドウ/ムービーインスペクタ で解像度を確認

一本のHDMI入力で4channelまとめて表示できるVTXチューナーを利用してお馴染みのTiny View Plusを利用できるように改造したものをzubon2003さんが「TinyViewPlusの受信機回りをスッキリさせたい。」という記事で公開されています。ただし実行ファイルはWindows版のみです。ソースコードは公開されていますのでそのままMacOS版としてビルドすることが出来ました。
私のGithubにてMacOS版のバイナリーを公開しています。
[ テスト ]
ドローン部長よりHawk eye FOUR EYESをお借りできたので動作確認を行いました。HDMIアダプターは”GUERMOK USB 3.0 HDMI to USB C“というのを使用しました。
fpv.xmlの編集が必要です。TinyViewPlusNG.appを右クリックして「パッケージの内容を表示」を行います。その中のContents/Resources/Data/Camera/fpv.xmlを私の場合は以下のようにしました。
<camera>
<name>USB3 Video</name>
<camnum>4</camnum>
<description>USB3 HDMI</description>
<grab>
<width>1920</width>
<height>1080</height>
</grab>
<crop>
<x>0</x>
<y>0</y>
<width>1920</width>
<height>900</height>
</crop>
<draw>
<aspectRatio>4:3</aspectRatio>
</draw>
</camera>
nameはHDMIアダプターにより変わります。grab/width,heightも実際の解像度に合わせます。どちらもVLCもしくはQuickTime Playerでキャプチャー入力を行うと調べられます。
解像度だけ合わせて手持ちの65タイニーを写してみたところ下にゴミが出ました。

そこで勘でgrab/heightを900にしたところ良い感じになりました。

実際の動作もスムースでしたので、実際のレースでも使えると思います。
数年前から正式に署名の付いていないmacアプリをダウンロードして実行することに対して締め付けが強化されてきました。最初の頃は右クリックで開くを実行すれば大丈夫だったのですが今やターミナルを開いて以下のコマンドを投入するというのが常套手段になってしまいました。
xattr -cr hogehoge.app
もしくは
xattr -d com.apple.quarantine hogehoge.app
です。後者の方が起動時に出るプロンプトが減らせます。
ターミナルを使用しない方法は無いものかとGrokに聞いたら教えてくれました。
プログラムを配布する前に以下のコマンドを実行しておきます。
codesign --deep --force --sign - hogehoge.zpp
一度実行後にシステム設定/プライバシーとセキュリティを開くとアプリケーション名がブロックされたという表示とともに「このまま開く」ボタンが表示されるているので、それをクリックします。それに続きいくつかのダイアログに答えるとプログラムが起動します。ターミナルを開く方が時間的には速い気はします。GUIだけで対処できるのでオプションの一つには成りうると思います。
これだけではうまく行かないようです。あとで本当のオレオレ署名を試してみます。
– 追記 (2026/01/20) –
結局のところ確実なのはxattrコマンドだけのようです。これに関して別記事を書きました。
https://www.nkozawa.com/blog/archives/8626
WTW四国ではタイニーレースにおいて全周LED搭載かつVTXチャネル毎に色を指定するというレギュレーションを推進しています。以前からVTXチャネル連動でLEDの色を変更する方法を推奨してきましたが、アマチュア無線のバンドプランが変更になりE1/F1/F4以外のチャネルの使用も可能性が出てきました。VTX連動のLED色は周波数で決まっており、Raceband基準の決め打ちになっているため使用するチャネルによっては同じ色になってしまいます。
そこでOSD menuを使用して手作業で好きなLED色を選択する方法を紹介いたします。
[ 前提 ]
Betaflight ConfiguratorのLEDストリップにて何かしらLEDが光るようにしておきます。
参考: VTX周波数によるRGB LED変更手順のまとめ(NAKA Drone Racing2024対応)にあるワイヤーオーダーと機能=カラーまで設定しておく。
[ OSD menu ]
OSD menuに入りFEATURES/LED STRIPにてPROFILEをRACEにします。RACE COLORで色を選択します。LED STRIPメニューを抜けたところでLEDの色が変わります。最後、SAVE&EXITを実行し設定を保管します。
CLIで同じ設定を行うことも出来ます。詳しくはBetaflight Wikiをご覧ください。
Neo 2凄いぞっていう記事や動画は巷にあふれているので、その他の雑多な事柄について書いてみます。
[ キャリングバック ]
Neo 2 Fly Moreコンボには残念ながらバックとかケースと言ったものが付属していません。そこで昔懐かしいDJI Spark(DIPS2登録維持しています)付属のバックを流用。本体、充電ハブ、RC-N3がそこそこ無難に収まりました。

[ アンテナ保護 ]
トランシーバーを装着すると2本のアンテナが飛び出した状態です。飛行中には上手に電波を拾ってくれそうな感じではありますが、持ち運びにはちょっと気を使います。TPUでサクッと作りました。

スタンドにもなります。

STLはシンギバで公開しています。
https://www.thingiverse.com/thing:7205054
[ 折りたたみスティック ]
DJIの取り外し式のスティック、ちょっと面倒だなと思います。かつて使用していたTBS Tango2みたいな折りたたみ式スティックはないものかとアリエクスプレスを探したら見つかりました。質感は良いです。スティックを折りたたむ方向が調整できそうもないのが美しくはありませんが、実用には問題ないです。

下はアリエクのリンクです。

随分前からELRS Backpackに挑戦していて、ちっとも思うように動いていないコザックです。
最初はTX16SとHDZeroゴーグルで試していました。バインドは間違いなく出来ているけどチャネルが変更出来なくて挫折。その後、違うハードウェアで何度か試してきました。そして遂にちょっとだけELRS Backpackの恩恵を受けることが出来るようになりました。事例として現在の構成などを紹介してみます。
ELRS Backpackの恩恵と書いたのは、DJI Avata2みたいにアームと同時にDVRの録画を開始する機能です。ただし、未だにチャネル変更は出来ていません(何か間違ってるんだろか?)。
[ ハードウェア ]
– 送信機 Jupmer T15
– ゴーグルSKY04X PROで受信機をSteadyView Xに換装したもの
[ ファームウェア ]

T15もSteadyView Xも標準でELRS Backupをサポートしているので、ガイド通りで更新出来ます。バインドフレーズ付きで書き込みました。T15はEdgeTXパススルー、SteadyView XはPCとUSB接続しメニューからELRS BackpackのUpgradeモードにして書き込みました。SKY04X PROのファームウェアも最新のものに更新しておきます。ハードウェアのバージョンによってファームウェアが違うところが要注意ですが手順は難しくはありません。

[ 構成 ]
SKYZ04XはSteadyView Xモードにします。このモードではSkyzoneの特色である受信機を二つ搭載することは出来ません。

DVRの設定をfollowにします。

送信機のELRS Luaスクリプトでアームに使用するAUXとアームする方向を指定します。(プリアームを使っていても、そちらは無視されます)

これで自動録画が出来るようになっているはずです。チャネルが自動で切り替わることより嬉しいかも(負け惜しみ)。
いつの間にか送信機のトリムが入ってしまいドローンの動きがおかしくなってしまったことはありませんか? ドローンでトリムを使うことは考えられないのでEdgeTXの設定で無効にしてしまうのが良いです。
方法は二つあります。Flight Modeで行う方法とINPUTで行う方法です。Fligt Modeで無効にすると画面表示からもトリムが居なくなるので、私はこちらが好みです。
[ Flight ModeでTrim Offにする ]
モデル設定画面にFlight Modesの画面があります。

FM0のEdit画面に入ります。

Rud, Ele, Thr, Ailの各ボタンを押してトリムを無効化できます。これだけです。
[ INPUT画面でTrim Offにする ]

Rud, Ele, Thr, AilのそれぞれのEdit画面を開き歯車マークの中でトリムをオフにします。


[ 関連記事 ]
– ドローンにRGB LEDを搭載するもう一つの方法 <- 親記事です
– ATtiny85によるLED制御 – BUZZパッドを利用した制御方法
– ATtiny85によるLED制御 – UART/LEDパッドを利用した制御方法
– ATtiny85によるLED制御 – プログラムの書き込み方法
[ 注意 ] 当初、BUZZポート使用のものとLED/UARTポート使用のもので別のチップにしていましたが、統一しました。そのためスイッチに使うピンに変更があります。BUZZポートの場合は従来と同じ5番ピンです。LED/UARTで使用する場合は隣の6番ピンを使用します。

BUZZポート接続
[ 配線についての概略 ]
実際の配線は写真を見てもらうとわかりやすいと思います。

この写真では必要のないピンをカットしています。実際のATtiny85には8本のピンがあります。チップ表面の丸い印が1番ピンを表します。そこから反時計回りにピンは数えます。
この写真の例はBUZZボートあるいはGNDへ接触させて使用する場合です。
LEDポートあるいはUARTを使用する場合は下の写真のようになります。

LED/UARTポート接続
使用しているピンの説明です。
| ピン番号 |
名前 |
リード線の色 |
役割 |
| 2 |
D3/A3 |
緑 |
RGB LEDの制御信号出力、RGB LEDの信号入力に接続 |
| 4 |
GND |
黒 |
GND端子、バッテリーのマイナスに接続 |
| 5 |
D0 |
黄 |
LEDの色や光り方を変えるためのスイッチ入力、機械的なスイッチもしくはFCのBUZZに接続 |
| 6 |
D1 |
黄(下の絵では水色) |
LEDの色や光り方を変えるためのスイッチ入力、機械的なスイッチもしくはFCのLED/UARTに接続 |
| 8 |
VCC |
赤 |
電源入力、バッテリーのプラスに接続 |
[ 電源 ]
FCの5Vを使用することも考えられますが、たくさんのLEDを光らせるには5V BECの電力に不安があります。1S機ならばVBAT、バッテリーに直接接続した方が安定動作が期待できます。ちなみにATtiny85の動作電圧は2.7Vから5.5Vです。LEDストリップはもう少し電圧の幅が少ないと思います。
ATtiny85とLEDの双方にバッテリーのプラス、マイナスを接続します。上の写真の例ではLEDストリップの信号入力と反対側のリード線がバッテリーに接続されています。ATtiny85にはLEDストリップを通った後の電圧が供給されています。全周巻きの場合は、この方法が配線しやすいと思います。

絵にするとこんな感じになっています。全周巻ではない場合はATtiny85チップとLEDに並行した電源線の接続でも構いません。スイッチの配線は一般的にはBUZZもしくはLED/UARTのどちらか一方を使用します。
[ 信号線 ]
写真の緑のリード線のようにATtiny85からの制御信号出力をLEDの信号入力に接続します。
[ スイッチ ]
ブザーポートもしくは機械的スイッチでGNDに落として操作する場合は5番ピンを使用します。スイッチを使う代わりに、この線を適当にGND、例えばUSBコネクターの外枠などに接触させても良いです。LEDポートあるいはUARTで操作する場合は6番ピンを使用します。Betaflighの構成方法について別記事にて詳しく説明します。
[ 配線 ]
写真のような空中配線で大丈夫だと思います。当然、配線後はショートしないよう絶縁対策が必要です。私は半田付けしたところを保護する目的でUVレジンで固めました。
大きめのドローンなら基板を使うのも良いと思います。その場合、サイズは大きくなりますがDIP版のATTiny85を使用した方が良いでしょう。
Jumper T15の大きなLCDスクリーンを有効活用し、GPSのテレメトリー情報を表示する設定を試みました。
この設定により、FPVゴーグルを装着しなくても、手元の送信機でGPSの測位情報をリアルタイムに確認できるようになり、非常に便利です。
特に、USB給電でGPSを起動できるようにしておけば、VTXに通電することなくGPSのコールドスタートを完了できます。その際、送信機の画面で捕捉した衛星数や機体の座標を確認できることが重要になります。

設定手順です。
[ テレメトリーの検出 ]
まず、GPSを搭載したドローンと送信機を接続します。
次に、送信機のモデル設定画面を開き、最後のページにある「Discover new」を実行します。(「Delete all」は必須ではないかもしれませんが実行しても良い)

処理後、センサーリストに「GPS」と「Sats」(衛星数)が表示されれば成功です。

[ 画面レイアウトの設定 ]
次に、表示画面のカスタマイズです。T15送信機の右側にある「TELE」ボタンを押して、テレメトリー画面設定に入ります。
まず、「Layout」を選択します。表示したい情報に応じて、適切なレイアウトを選びます。GPSの衛星数だけなら小さなエリアで十分ですが、座標も表示するにはある程度の広さが必要です。今回は、画面の右半分が3分割されたレイアウトを選択しました。

[ ウィジェットの設定 ]
レイアウトが決まったら、「Setup widgets」を選択し、各エリアに表示する情報を設定していきます。

上記は設定完了後の画面です。設定したいエリアをダイヤルで選び、押し込みます。次に「Select Widget」から「Value」を選択してください。


最後に、「Source」の項目で、テレメトリーソースの中から「Sats」を選択すると衛星数が、「GPS」を選択すると座標が表示されるようになります。お好みで文字色なども調整しましょう。

