2013年1月27日日曜日

root化とは

root化すればXXXができる、といった安易な情報でroot化を推奨する方が増えています。
メリットばかりを主張してデメリットを「自己責任で」との一言で済ませてはいけないと思う。

root権限が有れば何でもできるのは事実です。
しかし、リスクに見合うほどのやりたい事があるのでしょうか?

要望としては以下のものが多いです。

Q.プリインストールされているアプリを削除したい
A.アプリを無効にしてみては?(Android4.x以降)

Q.カメラのシャッター音を消したい
A.無音化用のアプリを使用しては?(画面キャプチャ式のカメラでも端末の液晶解像度と同じ解像度になります)

Q.フルバックアップを取りたい
A.アプリやその端末の母艦PCで十分なバックアップがとれるのでは?

Q.メモリエディタ、オ―バクロック、カスタムROMを使用したい
A.頑張ってください

など、色々と開発案と頂けるのですが。
root化をせずとも代替案は無いのでしょうか?

root化した端末を使用する場合は、以下のインストール権限だけでデータを全て持っていかれる可能性があります。
・完全なインターネットアクセス
・ストレージの読み取り、書き込み

ローカル上のファイルを暗号化していたとしても、復号される可能性はありますし、
如何に暗号化しようともメモリ上のデータを奪われれば無意味です。

APK不正利用対策

開発したアプリの不正利用には幾つかのパターンがあります。

1.アップロードサーバによる有料アプリの無料配布
2.ローカル上での無料アプリの広告表示削除
3.デコンパイルして改ざんしたアプリのグーグルプレイ登録

詳細
1.アップロードサーバによる有料アプリの無料配布
クラッキングツールによってライセンス認証を削除したアプリを配布されてしまう場合です。
ライセンス認証の中核部分のパッケージ名、クラス名の変更、分岐式を論理演算にするなどで防げます。

2.ローカル上での無料アプリの広告表示削除
クラッキングツールによってインターネットアクセス権限を削除してアプリを利用される場合です。
拡張ファイルの有無の確認など、インターネットアクセス権限を使用できるかを確認するなどで防げます。

3.デコンパイルして改ざんしたアプリのグーグルプレイ登録
アプリをデコンパイルして自分の著作物として配布されてしまう場合です。
プログラム内部にパッケージ名のハッシュ値を持たせて置き、動作しているアプリのパッケージ名と比較する事で防げます。

不正利用対策一覧
ライセンス認証パッケージの構造改変
権限の実行確認による改ざん検知
パッケージ名の改ざん検知
OBBファイルの利用を必須にする
インストール時にアプリの内部リソースに端末情報を書き込む(ルート権限によるコピー対策)

他にも微妙な制御を組み込んでみるのも有効だと思います。
例えば、改ざんを検知しても数回、数日は利用できるようにするなどクラッカーを欺く事も大切です。

2013年1月18日金曜日

オーディオフォーカス AudioManager.AUDIOFOCUS_GAIN

オーディオプログラムの開発メモ

ANDROIDで音を扱う場合、他のプログラムとのスピーカーの共有に気をつけなければいけません。
オーディオリスナーを登録しておけば監視ができます。

afChangeListener = new OnAudioFocusChangeListener() {
   public void onAudioFocusChange(int focusChange) {
       if (focusChange != AudioManager.AUDIOFOCUS_GAIN) {//フォーカスを奪われた
         
       Toast.makeText(getApplicationContext(), "AUDIOFOCUS_LOSS", Toast.LENGTH_SHORT).show();
       
       }else{//フォーカスが戻った
        Toast.makeText(getApplicationContext(), "AUDIOFOCUS_GAIN", Toast.LENGTH_LONG).show();
       }

   }
};
audio.requestAudioFocus(afChangeListener, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);

注意点としては受話スピーカーなど出力先を決めている場合に出力先が変えられてしまう事が有ります。

・スピーカーの権限を奪う
AudioManager.AUDIOFOCUS_GAIN
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT

・スピーカーの権限を奪わない
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK

ANDROIDのバージョンによって出力先の権利が先取りか後取り異なる場合があります。
2.X系は先取り優先
4.X系は後取り優先

問題なのは受話スピーカーと背面スピーカーの音量差です。
受話スピーカーから背面スピーカーに切り替わると、音量が約三倍になります。



2013年1月13日日曜日

スマートフォンOS今後の予想2013年

年も明けましたのでスマートフォンの今後を予想してみました。

android ↑ 数だけなら上昇し続ける
ios       → 日本と欧州では安定した売れ行き
その他 ↓ 2~3年は上位シェアに入り込めるOSは無さそう。

・ANDROID
◎利用者と開発者の自由度の高さ。アプリの配布やプログラム構造の自由がある
○無料OS ※マーケットやGoogleのサービスのプリインストールはライセンスが必要
△ デスクトップにもシェアを伸ばしてくるかも?
▲アプリの不正対策。開発者の権利を守れるか
×OSのバージョンアップ管理体制を改善できるか
☆今後の期待は、バージョンアップの仕組みの改善とアプリの不正配布防止方法です。
現在のところ、ほぼメーカーと開発者任せになっているため、セキュリティーにかかるコストが増えてしまう。セキュリティに関する部分ははGoogleが管理改善できる仕組みが必要と思われる。

・IOS
◎OSのバージョンアップ管理ができている
△下手なメーカーの端末よりは安定している
△プリカをコンビニで買う事が出来る
×アプリの開発と配布やプログラム構造に自由が無い。※脱獄と呼ばれる理由を参照
☆GUIの発展に大きく貢献してきたApple社ですが。利用者や開発者をバカにしているような不自由な管理構造を改善できるかが問題だと思われます。パソコンに詳しくない、または不自由さを感じないライトユーザー向けのOSとして使われ続けるかもしれません。

・Blackberry
△Android Playerで一部のAndroidアプリが動く?
×すでに一部の国でしかまともに使用されていない。
☆全てのスマートフォンに言えることですが、アプリの種類が多くなければシェアを伸ばせません。Androidアプリとの互換性を獲得できれば生き残れるかも?

Ubuntu Phone OS
△開発者がAndroidに求めていたものを実現できるか
△リナックスの資源を使用できるか
▲現在のシェアに割り込むすきが無い
☆一般利用者にはAndroidもUbuntuも似たようなものかもしれない。ライセンスに問題が無ければAndroidとのデュアルブートが理想か。IOSとAndroidのシェア戦争で開発者はもう疲弊しているため、開発者が流れてくるかが重要。Ubuntu がデスクトップUbuntuの 資源を生かせればハッカー御用達のOSになる。しかし一般利用者には特に益が無い。

・Windows Phone
▲日本国内では絶滅寸前
☆X86アーキテクチャの資源を生かせれば最高のOSになる。かも?

・ドコモとサムスンが作ってるアレ
☆よくわからない。そのまま終わるか、真のガラスマになる。結局国内限定OS。







2013年1月8日火曜日

Amazon Appstore 無料ダウンロード

Amazon Appstoreでアプリをダウンロードするには、アマゾンのアカウントが必要です。
今までにネットでアマゾンを利用していれば、そのアカウントを使用する事ができます。

無料アプリのダウンロードにはアカウントに以下のいずれの設定が必要です。

・クレジットカード番号
・デビットカード番号
・プリペイドカード番号
・残高のあるギフト券の登録

カード番号登録に心配がある方はギフト券と使用すると良いでしょう。
ギフト券の残高が1円でもあれば無料アプリを購入できます。
ギフト券はコンビニなどで気軽に買う事ができます。
各種カードを持っていれば最低15円で購入可能です。

ギフト券のリンク


ANDROID本体端末のメモリ不足

ANDROID4.0.Xより古いバージョンがインストールされている端末は本体メモリが少ない場合が多いようです。
そのためOSのアップデートやアプリのインストールに失敗に悩まされている方をよく見かけます。

解決策としてはアプリを本体メモリからSDカードに移動させるしかありません。

・手順
ホーム画面で「メニューボタン」→アプリケーション→あぷりのリストから容量の大きいデータをSDカードに移動

データを移動するしかメモリ不足の解決手段はありませんが、
アプリの中にはSDカードへ移動できないものがあります。
これはコピー防止のために開発元が設定したプロテクトです。
Googleがライセンス認証機能を提供する以前の仕組みなのですが、
未だに使用している開発者も少なくないようです。
確かに、安易なコピーや改ざん、再配布を防ぐくらいの効果はあります。
しかし、root化されている端末にはコピープロテクトは機能しません。
今現在となっては本体メモリを消費するだけの仕組みとも言えます。
未だに使用されている原因は、Googleが無料アプリのライセンス認証を行ってくれないのが原因かもしれません。