ubuntu 14.04 へ Oracle Java インストール

ubuntu 14.04 へ Oracle Java インストール

ardunio IDE を動かそうとしたけど
java が入ってないので起動しなかった

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

ライセンスの確認をされるので
はいを選択

jdk7

jdk2

次に JAVA_HOMEの設定

sudo apt-get install oracle-java7-set-default

で設定完了

Java のバージョン確認は

java -version

で可能

これで ardunio の起動が可能になりました

Ubuntu 14.04 LTS へ owncloud client インストール

Ubuntu 14.04 LTS へ owncloud client インストール

最近は出先でファイルをダウンロードし
それを家のパソコンで使うことが多いため
owncloud のクライアントソフトをインストール

ネット回線が高速なら Dropbox が最適かもしれないけど
実家の速度は 20kbps
のため、家庭内LANにサーバーを作った方が早い「

まず owncloud のリポジトリを登録

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list"

次に、リポジトリの鍵を登録

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_14.04/Release.key
sudo apt-key add - < Release.key

これで owncloud クライアントをインストール

sudo apt-get update
sudo apt-get install owncloud

これで端末から

owncloud &

とするか
ダッシュボードから
owncloud
で起動すると
接続するサーバーを聞かれるので
ブラウザのときと同じく

https://サーバーのIP/owncloud
でアクセス

uown

するとセキュリティの警告がでるけど
この証明書を信頼する
にチェックをいれ
OK
をクリック
uown2

するとユーザ名とパスワードを聞かれるので
ブラウザで接続して設定したときの
自分のアカウントでログイン
uown3

自分のローカルマシンのどこに接続されているか表示されているので
接続
をクリック

uown4

次に、
ローカルフォルダ
owncoloud

どっちを開くか聞かれるけど
Dropbox みたいに同期するので
このあたりは自分の好みでOK

uown5

ちなみに owncloud を選択すると
ブラウザで表示されセキュリティの警告がでる
このあたりは
ほかのサーバーソフトを使っても同じ

危険性を理解した上で接続するには
をクリックして
例外を追加
をクリック

uown6

確認の警告がでるけど気にせずに
セキュリティの例外を承認をクリック

uown7

ログイン画面がでるので
ユーザ名
パスワードを入力しログイン

uown8

これで owncloud にログインすることができます

RaspberryPi B+ へ ownCloud

RaspberryPi B+ へ ownCloud

自宅のネット回線が遅いため
YMobile やLTEでダウンロードしたものを
自宅で使うことが多いのですが
そのたびに scp などで転送するのは面倒なので
ownCloud で簡単に共有できるようにします

まず ssh で RaspberryPi B+ へログイン

ssh pi@192.168.10.198

ユーザ名はデフォルトなら pi になる
なおIPアドレスを探すには
Android なら Fing
iPod touch なら Snap
がおすすめ

ログインしたら ownCloud で使う
Apache
MySQL

インストール

sudo apt-get update
sudo apt-get install apache2 mysql-server

途中で mysql の root パスワードを聞かれるので
任意のパスワードを入力

own

もう一回確認のため入力
ちなみにこれは
データベースのパスワードで
あとで ownCloud で使うので忘れずにメモしておくこと

own2

次に ownCloud に必要な言語PHPを
インストール

sudo apt-get -y install libapache2-mod-php5 php5 php5-gd php5-json php5-mysql php5-curl
sudo apt-get -y install php5-intl php5-mcrypt php5-imagick php-apc

次に ownCloud の入手
今回はコマンドを使い直接 RaspberryPi へダウンロード

wget https://download.owncloud.org/community/owncloud-7.0.4.tar.bz2

ダウンロードが完了したら解凍

tar xvjf owncloud-7.0.4.tar.bz2

ちなみに tar コマンドの解説には
【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど)

がわかりやすいのでおすすめ

今回なら
x 書庫からファイルとりだし
v 処理したファイル一覧の詳細表示
j bzip2 で処理
f 指定したファイルを使う
というオプションになる

これで解凍できたので
webサーバーで使えるように
コピーと権限の書き換え

 sudo cp -r owncloud /var/www/

-r をわすれるとディレクトリごとコピーできないので
注意
ちょっと固まるけど、これは RaspberryPi の処理が遅いため
PCと比べるとやはり遅め

sudo chown -R www-data:www-data /var/www/owncloud/

で所有者を root から www-data へ変える

これで ownCloud は配置できたけど
https でないと接続できないので
この設定をおこなう

まず https では暗号化するので
これに必要な鍵ペアと証明書をつくる

sudo mkdir /etc/ssl/localcerts

で証明書をおくフォルダ作製

次に証明書と鍵ペアの作製

sudo openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key

を実行すると

Country Name (2 letter code) [AU]:
と国コードをきかれる
ローカルなのでこれはEnter でOK

State or Province Name (full name) [Some-State]:
もEnter でOK

Locality Name (eg, city) []:
は都市名
これも Enter でOK

Organization Name (eg, company) [Internet Widgits Pty Ltd]:
これは会社の組織名とか部署名
Enter でOK

Organizational Unit Name (eg, section) []:
これは団体名
Enter でOK

Common Name (e.g. server FQDN or YOUR name) []:
はサーバーの名前とかIPなので
ssh で接続しているなら
RaspberryPi のIPを入力

Email Address []:
はメールアドレス
これも Enter でOK

これで証明書と鍵ペアは作製完了

次に apache の設定ファイルを書き換える
ファイルを書き換えるのに vim がなれているので

sudo apt-get install vim

で vim をインストール

失敗したときの保険として

cd /etc/apache2/sites-available/
sudo cp default-ssl default-ssl_bak
cd -

でバックアップをとっておく
cd – は1つ前のディレクトリに戻るコマンド

sudo vim /etc/apache2/sites-available/default-ssl

で設定ファイルを編集

:set number
で番号を表示するとみやすくなる

16行めに

        <Directory /var/www/owncloud>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

を追加

49~50行めあたりにある

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

SSLCertificateFile    /etc/ssl/localcerts/apache.pem
SSLCertificateKeyFile /etc/ssl/localcerts/apache.key

に変更し保存

そして htps通信を有効にして
mod_rewriteモジュールを有効化する

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod rewrite

あとは apache2 の再起動で設定を反映

sudo service apache2 restart

これで準備ができたので
PCブラウザからアクセスして初期設定

https://サーバーIPアドレス/owncloud
でアクセス

私の場合なら
https://192.168.10.198/owncloud
警告でるけど気にせず続行

これは認証局の証明書を購入しないとでてくる
ローカルでやるなら問題なし
ちなみに購入すると年間で数千円かかるらしい

とりあえず
危険性を理解した上で接続するには
をクリック

own3

例外を追加をクリックするとまたしても
親切に警告をしてくるので
セキュリティ例外を承認
をクリック

own5

これで設定画面が表示される

own6

ユーザ名とパスワードは自分のアカウント作製
なので、任意のものでOK

データフォルダはそのままでOK
/var/www/owncloud/data
になる

データベースのユーザ名は root
データベースのパスワードは
mysql のインストールに設定したパスワード

データベース名は
owncloud

データベースのホスト名は
localhost
のままでOK

設定ができたら
セットアップを完了します
をクリック

own8

これでできるけど
RaspberryPi は処理が遅いのでちょっと
このときに固まる

ログインに成功すると
どのアプリを使うか聞かれるけど
これはxで消しておく

own9

以下は初期状態の画面

own10

管理画面で
最大アップロードサイズを変更しておく
なお最大は2GB
ファイルのアップロードは
アップロードアイコンをクリック
もしくはドラッグ&ドロップで可能

own11

PCの ownCloud のクライアントアプリは無料だけど
スマホやタブレットの場合は有料になる

RaspberryPI へカメラ接続

RaspberryPI へカメラ接続

あとあとラピロへ接続してから設定するのは
面倒なので先にセットしておくようにします

最初に電源を切っておく

もし電源が入っているのなら

sudo halt

で電源を落としておく

電源をきった状態で
Raspberry Pi カメラモジュールを本体にセットし
電源を入れる

SSHでログインして
ファームウェアを最新にアップデート

sudo apt-get update
sudo apt-get upgrade

次に設定画面起動

sudo raspi-config

で設定画面がでるので
Enable Camera
を選択

camera

デフォルトでは無効化されているため
Enable
を選択して有効化

camera2

設定修了のため finish を選択すると
次の画面で反映するため再起動するか聞かれるので
はい
を選択

camera3

しかしなぜかうまくいかないので
先に Rapiro へ接続

Rapiro 頭部の部品をはずし
メインカメラっぽい部品を外す

https://pihw.wordpress.com/my-book/ch8-4/
を参考にやってみたけどエラーが消えない

設定ファイルを確認するため

sudo apt-get install vim

で vim をインストール

また去年に Raspberry Pi でカメラモジュールが起動しているため
そのときにインストールしたソフトを先にインストール

まず mp3 再生ソフト
これは mp321をインストール

sudo apt-get install mpg321

次にラジオ再生のために
mplayer をインストール

 sudo apt-get install mplayer

そして音声合成エンジン OpenJtalk

sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 libhtsengine1 

そして映像表示、画質コントロール関連ツール

sudo apt-get -y install uvccapture uvcdynctrl guvcview

映像関連ソフトが使えるか調べるため
ssh で x転送もしくは
リモートデスクトップで確認
menu > サウンドとビデオ >
guvcview を起動

しかし、USBカメラではないためか
デバイスをオープンすることができないとエラー

raspistill -n -o sample.jpeg

を実行してみたら
エラーが

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

に変化

エラーメッセージを元に検索

http://blog.babukuma.com/2014/02/raspberry-pi.html
の記事を元に

vcgencmd get_camera

を実行すると

結果が

supported=1 detected=0

つまりカメラモジュールを認識していないということらしい

このためサイトで紹介されていたように
カメラもジュールの SUNNYと書いてあるラベル部分をチェック

みたかんじでははずれてないけど
一応指で上から押して
再度RaspberryPi へ接続し
Rapiro の頭部も元通りに設定

もう一度電源を入れて
SSHで接続

vcgencmd get_camera

で確認すると

今度は

supported=1 detected=1

となり認識成功

raspistill -n -o sample.jpeg

を実行すると
今度はエラーもなく修了

実際に撮影できているか確認するため
リモートデスクトップでログインしファイルを
確認

ただし webカメラではないので
guvcview でのデバイス確認は不可能

ファイルを開いてみたいけど
raspberry Pi のリモートデスクでは遅いため

FileZilla で SFTP 接続し
一度 Ubuntu へファイルをダウンロード

gimp でファイルを開いてみると
撮影されているのが確認できる

でも Rapiro へ設置するときカメラが反対を
向いているため
-rot 180
とオプションをつけないと上下逆さの写真になってしまう

このあたりの設定などは
http://kanpapa.com/today/2014/02/rapiro-camera.html
を参考にさせていただきました

どうやらカメラモジュールを設置し
raspi-config でカメラ有効化だけでなく
いくつかのプログラムをインストールしないと
撮影はできないようです

rapiro の無線化

rapiro の無線化

まず raspberryPi を組み込んだ Rapiro を起動

次に
Rapiro に搭載した raspberryPi へLANケーブルを接続

次に
Ubuntu から Remmina リモートデスクトップで
ログイン

デスクトップ画面がでてきたら
Menu > 設定 > WiFi Configration

Manage Networksタブを開き
Scan をクリック

wifi

wifi2

次の画面でも Scan をクリックすれば
現在利用可能なAPが表示される

ここで一覧から接続したいAPをダブルクリック

そして鍵フレーズを入力し
Add をクリック

wifi3

これであっているのなら
Current Status タブにIPアドレスが表示される

wifi4

これでLANケーブルなしでSSH接続や
リモートデスクトップが可能になる

Rapiro + RaspberryPi B

Rapiro + RaspberryPi B

rapiro に rasupberry Pi B+
を載せるには削る必要があるし
今後 もう1つあったほうがリカバリーもできるので
もう1つ RaspberryPi B を購入

そして
前回ダウンロードした NOOBS
をSDカードに入れる

以前 RaspberryPiB_Plus というフォルダへ
すでに用意してあるのでこれを利用

差し込んだ microSD のパスが
/media/9016-4EF8/
だったので

コマンドで行うなら

cp -rp ../RaspberryPiB_Plus/* /media/9016-4EF8/

でコピー完了

これでインストールメディアは完成

次に RaspberryPI B の本体の準備

インストールするときには
購入した本体以外に
キーボード
マウス
LANケーブル
HDMIケーブルにつないだディスプレイ
電源ケーブル
が必要になる

これらについては
RaspberryPi B+
のときに使ったので、それを流用

まず本体に SDカード をさして
キーボード
マウス
LANケーブル
HDMIケーブルにつないだディスプレイ
を差し
最後に電源ケーブルをさす

このときにディスプレイのモードを
HDMIにしないと画面に表示されないので注意

電源が入ると
インストール画面がでるので

Raspbian[RECOMMENDED]

にチェックを入れ

Install(i)

をクリック

英語で

システムをインストールすると

SDカードの中の

今あるデータが消えるよ

って警告がでるけど

元々ないから、気にせずに

Yes

を選択

あとは、インストールが始まるので

そのまま待つとインストール完了

IMAG0576

インストール完了すると

Setup Optionの画面になる

変更するのは

4 Internationalization Options

の中の項目

IMAG0577

まず

I1 Change Locale

IMAG0578

一覧がでるので、キーボードで

どんどん下へ行って

ja_JP .UTF-8 UTF-8

でスペースを押すと

* がつくので、この状態でEnterキーを押し

次の画面でも

ja_JP .UTF-8

を選択する

これで、言語の選択ができたので

次は、タイムゾーンの選択

画面が

Setup Optionsに戻るため

4 Internationalization Options

を選択し

I2 Change TimeZone

Asia

でEnterを押し

Tokyo

を選択

次は、キーボードの設定

またSetupOptions 画面になるので

4 Internationalization Options

を選んで

I3 Change Keyboard Layout

を選択

Generic 101-key PC

で、Enter

Other

Japanese

で次も

Japanese

を選び

The default for the keyboard layout

を選び

No Compose key

を選択

次の画面で

Ctrl + Alt Backspace

を使えるようにするか聞かれるので

Yes

を選択

Setup Optionsの画面になるけど

これで、主要な設定はできたので

Finish

を選択すると、設定反映のため

RaspberryPiが再起動する

これで、raspberryPiが使えるようになる

ここからは Ubuntu からSSH接続して操作

DHCPで接続しているので
まずは Raspberry Pi のIPを調べる

これには Android アプリの Fingを使うと楽

ssh pi@192.168.10.159

というように
ユーザ名 pi
パスワード raspberry
でログイン
IPアドレスはそれぞれの環境で違うため、ここは変更していく

次にシリアルポート開放関連のツールをインストール

sudo wget https://raw.github.com/lurch/rpi-serial-console/master/rpi-serial-console -O /usr/bin/rpi-serial-console && sudo chmod +x /usr/bin/rpi-serial-console

コマンドが成功すると

--2015-02-07 14:57:51--  https://raw.github.com/lurch/rpi-serial-console/master/rpi-serial-console
raw.github.com (raw.github.com) をDNSに問いあわせています... 103.245.222.133
raw.github.com (raw.github.com)|103.245.222.133|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 301 Moved Permanently
場所: https://raw.githubusercontent.com/lurch/rpi-serial-console/master/rpi-serial-console [続く]
--2015-02-07 14:58:05--  https://raw.githubusercontent.com/lurch/rpi-serial-console/master/rpi-serial-console
raw.githubusercontent.com (raw.githubusercontent.com) をDNSに問いあわせています... 103.245.222.133
raw.githubusercontent.com (raw.githubusercontent.com)|103.245.222.133|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2829 (2.8K) 
`/usr/bin/rpi-serial-console' に保存中

100%[======================================>] 2,829       --.-K/s 時間 0.03s   

2015-02-07 14:58:19 (83.8 KB/s) - `/usr/bin/rpi-serial-console' へ保存完了 [2829/2829]

というかんじになる

次にポート開放

sudo rpi-serial-console disable

設定反映は再起動が必要なので

sudo reboot

これをやらないと Rapiro と RaspberryPi でエラーが発生

SSH接続だけでなくデスクトップ画面を使うこともありそうなので

sudo apt-get update
sudo apt-get install xrdp

でリモートデスクトップをインストール

Ubuntu からの接続には
Remmina を使用する

Remmina の使い方は
https://raspberrylife.wordpress.com/category/linux/
を参考に

設定するのは
サーバーに Raspberry Pi のIP
ユーザ名 pi
パスワード rapsberry
で接続

remmina2

リモート接続してから画面が表示されるまで
少し時間がかかる

remmina3

とりあえずリモート関連はできたので
次回はカメラモジュールの設定

Rapiro の起動

組み立てた Rapiro を起動するために必要なソフトをダウンロード

http://arduino.cc/en/Main/software
から
Arduino IDE
をダウンロード

Ubuntu で行うので 64bit 版のものをダウンロード
rapiro

ダウンロードしたら

tar zxvf arduino-1.0.6-linux64.tgz

で解凍

cd arduino-1.0.6/
./arduino

で起動

次にFTDIドライバ
これは
http://www.ftdichip.com/Drivers/VCP.htm
からダウンロード
してみたけど、これを使わなくても
Ubuntu12.04 の場合起動した

ダウンロードページに
All FTDI devices now supported in Ubuntu 11.10, kernel 3.0.0-19
と書いてあり

rapiro2

uname -r

で確認したら、
3.2.0-75-generic
だったのでカーネルでサポートされてるのかもしれない

そして次に
https://github.com/Ishiwatari/RAPIRO
から
サーボモータ制御基板用標準ファームウエア
をダウンロード
Download ZIP
をクリックしてダウンロード
rapiro3

そして

unzip RAPIRO-master.zip

で解凍

解凍後 Arduio IDE でこのファイルを開く
ファイル名は
RAPIRO_ver0_0.ino

rapiro5

次にRapiro の後ろにある microUSB から
Ubuntu の USB へ接続
すると rapiro の目が青く点灯

http://makers-with-myson.blog.so-net.ne.jp/2013-10-27
で思い出したけど
Ubuntu で実行するときには
sudo をつけて root 権限で動かす必要がある

ちなみに
file > preferences

Display line numbers
にチェックをいれれば行番号が表示されるようになる
rapiro6

これについては
http://nuneno.cocolog-nifty.com/blog/2014/11/arduino-ide-106.html
を参考にさせていただきました

これで Rapiro の電源をいれてみたけど
足が変な方向に傾くため
int trim[MAXSN]の配列に角度の補正値を入力
することに

コの場所を調べるには
ardunio IDE

ctrl + f で検索できるので
trim
で探すと
22行めに発見することができる

rapiro7

現在の状態は左足が内側を向いてしまうので
設定値を変更していく

// Fine angle adjustments (degrees)
int trim[MAXSN] = { 0,  // Head yaw
                    0,  // Waist yaw
                    0,  // R Sholder roll
                    0,  // R Sholder pitch
                    0,  // R Hand grip
                    0,  // L Sholder roll
                    0,  // L Sholder pitch
                    0,  // L Hand grip
                    0,  // R Foot yaw
                    0,  // R Foot pitch
                    0,  // L Foot yaw
                    0}; // L Foot pitch

が元のコード

Foot yaw は足の向きの調整
最初はこれを40増やしてみた
そしたら左側を向いてしまったので修正
ちょっと傾いていたので
20, // L Foot yaw
に調整

20, // R Foot pitch
とすることで
足の方は修正できた
どうやら Foot picth が足の傾きの調整

次に左腕の調整
Sholder roll が肩の位置の調整
腕が後ろにずれるので
-5, // L Sholder roll
負の値にすると前にでてくる
正の値だと後ろに下がる

次に右腕の調整
こちらは正の値だと前にでた
5, // R Sholder roll

次に胴体の設定
これは Waist yaw を設定すればOK
右前にずれているので
-10, // Waist yaw

腕の角度を調整したいので
Sholder pitchを調整して
-10, // R Sholder pitch

値を変更したら
Tools > Board > Ardunio Uno
を選択し
Upload アイコンをクリック

今回は修正した値は

// Fine angle adjustments (degrees)
int trim[MAXSN] = { 10,  // Head yaw
                    -10,  // Waist yaw
                    5,  // R Sholder roll
                    -10,  // R Sholder pitch
                    0,  // R Hand grip
                    -5,  // L Sholder roll
                    15,  // L Sholder pitch
                    0,  // L Hand grip
                    0,  // R Foot yaw
                    25,  // R Foot pitch
                    20,  // L Foot yaw
                    0}; // L Foot pitch

rapiro8

ちなみにコの設定値は私の環境の場合です
汲みたてのときにサーボモーターが動いたりすると
値を変える必要があります

これで Rapiro から異音や変な角度になっていなければOK

ここまでできたら、いよいよ Rapiro の起動
動かし方は Ardunio IDE のシリアルターミナルを使う

Ctrl + shift + m で
Serial Monitor を起動できるので

http://wiki.rapiro.com/page/serial-command_ja/
を参考に実践

なおシリアルターミナルの通信速度を
57600bpsに設定する必要があるので
57600 baud
に設定してから
#M7
と入力し
Enter をおすと両手を降り始めます
rapiro9

動作を止めるには
#M0
で動きを止めます
rapiro10

Android apk ファイルの解析

Android apk ファイルの解析

まず
Android 端末を USB デバッグ有効にして
PCとつなげます

 adb shell pm list packages -f

でインストールしているアプリのパッケージをみることができるので

この出力結果を元に apk ファイルをPCに抜きだします

ちなみに、大量にインストールしていると
見分けるのが大変なので
grep コマンドをパイプで使うと簡単に見れます

例えば、パッケージ名に developapp とあるなら

adb shell pm list packages -f | grep developapp

とします

この developapp をパッケージ名の一部に変更すれば見つけやすくなります

PCへの抜きだしは adb pull でできるので
今回はGallery を開くアプリを抜き出すので

adb shell pm list packages -f | grep galle

で目星をつけて、結果として出力された

package:/data/app/net.developapp.opengallery-1.apk=net.developapp.opengallery
package:/data/app/net.developapp.exifgallery-1.apk=net.developapp.exifgallery
package:/system/app/GalleryGoogle.apk=com.google.android.gallery3d

から

net.developapp.opengallery-1.apk=net.developapp.opengallery

を抜き出すことにします

adb pull /data/app/net.developapp.opengallery-1.apk

まずは
Android Manifest.xml の中身を見るには
aapt コマンドを使います

このコマンドの場所は
パスを通していないのなら
android-sdk-linux/build-tools/
の中

ネットで検索すると
17.0.0
とかあるけど
ls コマンドで調べてみたら

drwxrwxr-x 11 snowpool snowpool 4096  5月 14  2014 ./
drwxr-x--- 13 snowpool snowpool 4096  5月 14  2014 ../
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 17.0.0/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.0.1/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.1.0/
drwxrwxr-x  4 snowpool snowpool 4096 11月 26  2013 18.1.1/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.0/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.1/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.2/
drwxrwxr-x  4 snowpool snowpool 4096  3月 17  2014 19.0.3/
drwxrwxr-x  4 snowpool snowpool 4096  5月 14  2014 19.1.0/

とバージョンごとに分かれている模様

とりあえず、今回は最新っぽい 19.1.0 を使って見ます

android-sdk-linux/build-tools/19.1.0/aapt l -a net.developapp.opengallery-1.apk 

これで端末にAndroidManifest.xml の情報がでてきます
とはいってもソースコードがでるわけではないので注意

AndroidManifest.xml に燗する情報は
Android manifest:
とかかれているところから下の部分

今回は以下のようなかんじ

Android manifest:
N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=2)
    A: android:versionCode(0x0101021b)=(type 0x10)0x1
    A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
    A: package="net.developapp.opengallery" (Raw: "net.developapp.opengallery")
    E: uses-sdk (line=7)
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x11
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0x11
    E: application (line=11)
      A: android:theme(0x01010000)=@0x7f060001
      A: android:label(0x01010001)=@0x7f050000
      A: android:icon(0x01010002)=@0x7f020000
      A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
      A: android:allowBackup(0x01010280)=(type 0x12)0xffffffff
      E: activity (line=16)
        A: android:label(0x01010001)=@0x7f050000
        A: android:name(0x01010003)="net.developapp.opengallery.MainActivity" (Raw: "net.developapp.opengallery.MainActivity")
        E: intent-filter (line=19)
          E: action (line=20)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=22)
            A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")

次に apk ファイルのソースコードをみる方法

これは apk ファイルは zip形式ファイルなので
拡張子を apk から zip に変更すれば中身をみれる

cp net.developapp.opengallery-1.apk net.developapp.opengallery-1.zip

としてファイルをコピーして zip 形式に変更

解凍するとファイルが広がるので

mkdir apk
cp net.developapp.opengallery-1.zip apk/
cd apk
unzip net.developapp.opengallery-1.zip apk/

とすると解凍したときにわかりやすい

ファイル一覧をみたいので

drwxrwxr-x  4 snowpool snowpool   4096  1月 30 21:35 ./
drwx------ 83 snowpool snowpool  69632  1月 30 21:34 ../
-rw-rw-r--  1 snowpool snowpool   1708  1月 14 20:50 AndroidManifest.xml
drwxrwxr-x  2 snowpool snowpool   4096  1月 30 21:35 META-INF/
-rw-rw-r--  1 snowpool snowpool 714684  1月 14 20:50 classes.dex
-rw-r--r--  1 snowpool snowpool 289161  1月 30 21:35 net.developapp.opengallery-1.zip
drwxrwxr-x  8 snowpool snowpool   4096  1月 30 21:35 res/
-rw-rw-r--  1 snowpool snowpool   3424  1月 14 20:49 resources.arsc

この中にある classes.dex
がプログラムの本体

画像などのリソースファイルについては
res フォルダの中にあります

注意点としては
これらのxmlファイルはバイナリファイルになっているためテキストファイルのようにソースをみることができません

これを解析するツールがGoogle から提供されているので
これをダウンロード
https://code.google.com/p/dex2jar/

今回は
dex2jar-0.0.9.15.zip
をダウンロードして解凍
Ubuntu なら

unzip  dex2jar-0.0.9.15.zip 

これで
dex2jar-0.0.9.15 の中に
dex2jar.sh
があるので、これを使って
classes.dex を jar に変換する

~/dex2jar-0.0.9.15/dex2jar.sh classes.dex 


classes_dex2jar.jar
が作製される

この jar ファイルを逆コンパイルした状態で閲覧するには
jd-gui を使います

http://jd.benow.ca/
からダウンロード可能で
windows
mac
Linux
どれでも対応しています

今回は Linux 対応版をダウンロード

tar zxvf jd-gui-0.3.5.linux.i686.tar.gz 

で解凍します

解凍すると
jd-gui*
があるので

./jd-gui

で起動

あとは
ソースコードをみたい jar ファイルをドラッグ&ドロップするとソースコードをみることができます

jd

Ymobile 305ZT のMy Y!Mobile からの通信制限解除

去年 Ymobile の機種変を行いました

305ZT に変更した理由は
http://faq.ymobile.jp/faq/view/300596
にあるように通信制限の解除が可能になるためです

とはいっても毎回通信制限の解除を行わなければならないため 
面倒ではあるのですが

実際、私自身も今月の初めに通信制限をなりましたが
簡単に解除できました

ただ気になるのは
http://www.arakawa.me/?tag=305zt
でかかれていた
低速化になる警告なしにいきなり通信速度が低下する状況
というものが存在することです

端末そのものでも解除はできるのですが
My Y!mobile からでもできるのでこちらを試してみました

ログインしてから
▼オンラインサポート(契約内容照会/変更、請求情報の確認など)
をクリック

ymobile

契約内容紹介/変更
をクリックし

ymobile2

通信速度に戻すお申し込み・ご利用データ通信料の確認
をクリック

ymobile3

通常速度に戻すお申し込み・予約・キャンセル
の次へをクリック

ymobile4

申し込みのところの
通常速度に戻すお申し込みを選択し
確認をクリック

ymobile5

ymobile6

最後に確認画面で
登録
をおすと手続き完了となります

ymobile7

端末に制限解除が表示されてない状態の場合
こちらからも解除できるのでおすすめです

Rapiro の購入と組み立て

去年から電子工作をはじめて
RAPIRO
でいろいろと操作してみたいので購入してみました

なお、スイッチサイエンスでも購入が可能です
会員登録したところ、年始に割引クーポンをいただきました

これを使えば Rapiro を15%OFFで購入できたのですが
年末に購入してしまったため
このクーポンは Ardunio Uno 関連に使いました

Rapiro そのものは4万5千円と高めで
汲みたてのときに失敗したときのことも考えて
部品も売っているか調べたところ
スイッチサイエンスで部品の購入が可能のようなので
もし途中で部品が壊れたときの保険にもなりますし
後々自分で改造するときにも使えそうです


https://www.switch-science.com/catalog/list/540/

から部品の購入ができるので
もし途中で部品を壊してしまったりなくしたときにはここから購入することで対処できます

なお、RAPIRO
の組み立てにはドライバーが必要になります

私の場合、昔自作パソコンのために購入したドライバーを使いましたが
小さいドライバーが必要になるため
もし内容なら
スイッチサイエンスで購入するといいかもしれません

このRapiroスターターセットは Amazon にはないため
スイッチサイエンスからの購入となります

購入のURLは
https://www.switch-science.com/catalog/1807/

また、組み立てるときにサーボモータの初期化のために電池が必要になります
また
Rapiro 組み立てマニュアル も公開されているのですが
ここによれば
アルカリ乾電池、マンガン電池は使えず

使えるのは
Panasonic Eneloop
Panasonic Eneloop Pro
Energizer Recharge
とのことです

今回は
Panasonic eneloop 単3形 8本パック(スタンダードモデル) BK-3MCC/8
を使いました

必要な本数は5本になるため amazon で購入したほうが安く購入できそうです

なお組み立てマニュアルのURLは
http://www.rapiro.com/ja/assembly-manual/
となります

まずは Rapiro 単体での起動
次にラズパイマガジンなどを参考に Raspberry PI を組み込んでいこうと思います