2017/04/27
TARGET_OUT_APPS 等の定数一覧 (AOSP)
自分用備忘録。
Android.mk を書いていると `TARGET_OUT` 等の定数をよく使いますが、それらは
`build/core/envsetup.mk` に定義されています。
`build/envsetup.mk` ではないので注意
。
プログラム全般、無節操に手を出しまくってみる
自分用備忘録。
Android.mk を書いていると `TARGET_OUT` 等の定数をよく使いますが、それらは
`build/core/envsetup.mk` に定義されています。
`build/envsetup.mk` ではないので注意名前が紛らわしい!。
pip で依存関係の多いライブラリをインストールするのは結構面倒くさいです。 今回、 Python3 用の [wxPython](https://wxpython.org/) をインストールしようと思ったら結構はまったので自分用メモ。 今回は様々な依存関係を断つために、Docker 上にインストールしてみましたもちろん、Docker を使わなくてもインストールは出来るはずです。。 Docker 便利だなー。2018/3/8 追記wxPython 4.0.1 では微妙に依存関係が変わったようなので書き直しました。 公式に Wheel が用意されたので、簡単にインストール出来ます。
[Linux に wxPython をインストールする方法 | 穀風](https://kokufu.blogspot.com/2018/03/linux-wxpython.html)
Android 端末にキーボードとマウスを繋いで検証する必要が出てきたので、新たに [Logicool](https://www.logicool.co.jp/ja-jp) のキーボードを買いました。マウスは以前買ったものがあり、[Unifying Receiver](https://www.logicool.co.jp/ja-jp/promotions/6072) を使えばUSBポートの節約にもなるというわけです。Unifying Receiver は購入時にペアリング済みなので、USB端子に挿せばそのまま USB の有線キーボード・マウスのように使用可能です。ただ、今回のように別々に買った場合は、どちらかを再ペアリングする必要があります。 再ペアリングには Logicool の提供しているユーティリティを使用しますが、Windows と Mac 用しか提供されていません。 しかし、我が家のマシンはほとんど Linux。 つまり、買っても再ペアリングできないという問題が正確には Windows のノートPC等があるので、実は大した問題ではないです。Linux でやりたかっただけ!。
今まで、「Android のプリインアプリは `/system/priv-app` にいれておく」と深く考えずに使っていました。 しかし、`/system/` 以下をよく見てみると `/system/app` というディレクトリもあって、apk がインストールされていますAndroid 7.0 (Google APIs) のエミュレーターで確認。 そこで、これらの違いは何なのか調べてみました。 ### priv-app 以下だけがシステム権限を持てる [What's the difference of /system/app/ and /system/priv-app in Kitkat? - Google グループ](https://groups.google.com/forum/#!topic/android-platform/Vsa4IsJcOPE) > Only apks in /system/priv-app can use "system"-level permissions. Prior to Kitkat, all apks on the system partition could use those permissions. 「(Kitkat 以降は)`/system/priv-app` 以下にある apk だけがシステムレベルのパーミッションを使用できる。 Kitkat より前は `/system` 以下にある全ての apk がシステムレベルのパーミッションを使用できる。」ということのようです。 ただ、以下を読むと、この動作に関しての公式なドキュメントが無いとのこと。 明らかに動作から推測できるので深追いはしていませんが、本来は AOSP のコードを読むなりして裏を取るべきですね。 [Android system apps and stopped state - Stack Overflow](http://stackoverflow.com/questions/17200575/android-system-apps-and-stopped-state) ### どう使い分けるのか `/system/priv-app` にインストールされているアプリを見ると「電話帳」「カレンダー」等、プライバシーに関わるコンテントプロバイダやサービスが主です。 対して、`/system/app` 以下は UI を提供したり「重要だけど特別な権限はいらなそう」なアプリがインストールされていますEasterEgg ってアプリもインストールされていますが、重要ではないな :-)。 つまり、以下のように使い分けているようです。 - `/system/priv-app` 本当にシステム権限を必要とする特権アプリ - `/system/app` システム権限は必要としないけど、アンインストールはされたくないアプリ ### システム権限とは システム権限を持つアプリというのは、具体的に言うと `AndroidManifest.xml` に `android:sharedUserId="android.uid.system"` の記述があるアプリですさらに、ROM と同じ署名がされている必要があります。 こういったアプリは `system` ユーザー権限で動作し、Linux OS レベルで様々なアクセス権を持つことができます。 ```xml `first-line: 2; highlight: 4; <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:sharedUserId="android.uid.system" ```
アプリケーション開発から組み込みまで手を出しているフリーランスのエンジニア
何故か C,C++ の仕事をすることが多いけど、本当は Java や C# が好き
最近は Android がらみ多し