きりのブログ

パソコン、開発関係の思いつきと作業記録

iPhone5のフロントパネルを交換してみた

DoCoMoiモード携帯の出荷を終了するそうで。私は使っていませんが、安い維持費と家族間通話無料なので家族が重宝してます。残るspモード携帯ですが、10月に安い新料金プランが出たことで、そこまで買い替えを急ぐ必要はなさそうです。(多少は値上がりしますけど)

しかし、今のガラケーはボロボロでそろそろ買い替えを検討する時期。次もガラケーか、それともスマホか、悩ましいところでした。さらに追い打ちで、家族がゲーム兼LINE端末として使っていたお古のiPhone4(WiFi運用)のバッテリーが気温の低下とともに限界に達しました。常に充電しながら使えばいいのですが流石に不便。

いずれ買い替えるにしてもまずは現状復帰、ということで家で寝ていたガラスバキバキのiPhone5を修理して使ってもらうことにしました。

業者修理だと6000円~1万円ぐらいが相場のようです。一方、部品のみだと2000円~3000円が相場と半額以下で済みそう。このまま廃棄するぐらいなら、失敗しても諦めがつく値段と思い自分で修理してみることにしました。ちょっと楽しそうだし。

購入したのはコレ。

開腹のための吸盤やペンタロープドライバ(星型のやつ)、精密ドライバもセットになっています。手順は公開されている情報がたくさんあるのでそちらを参考にしました。

躓いた点

  • 吸盤でフロントパネルを持ち上げるのですが、ガラスバキバキだと無理なのでドライバで無理やり開けました。怪我注意(怪我しました)。
  • ホームボタンを固定している金具のネジが固く、また同梱の精密ドライバは精度が甘く柔いので舐めそうになりました。別途、ネジすべり止め液と精密ドライバを調達しました。今後も使えるので必要経費ということで。
     
  • カメラ付近に小さな黒い樹脂製部品があるのですが、元の位置(と思われるところ)に戻すと他の部品が固定できなくなりました。しょうがなく戻さずに組み上げましたが、今のところ支障は出ていません。(アバウト)
  • プラスチックの透明部品2点(カメラとセンサーの固定用?)は、旧フロントパネルから剥がして移植する必要がありますが、公開されている手順では抜けていることが多いので注意。
  • フロントパネルと本体を接続するフレキシブルケーブルですが、接続がものすごく難しいです。特にデジタイザのケーブルは嵌めても固定されませんでした。液晶画面のケーブルも固定されなかったので不良品として交換してもらいました。新しいものは液晶画面のケーブルだけは固定できたので、デジタイザのケーブルを押さえ込む形で接続することができました。この接続だけで10日間ほど深夜から明け方まで試行錯誤しました。ここの精度は個体差があるのかもしれません。(不器用なだけという可能性も濃厚)

問題なく使えるようになりました。表示もタッチも音もカメラも正常に使えています。あと、久しぶりにiPhone5触ったけど、なんとも言えない「チョウドイイ」サイズ感がたまりませんでした。次に買い換える時はこのサイズのがいいなぁ、と思った次第。

作業してみて思ったこと

急いではいなかったものの、追加の工具手配や交換などで3週間ほどかかりました。また、接続できずに何度も諦めかけました。値段だけで自分で修理はするもんじゃないと思いました。
業者すげえ。2度と自分でやらない。

postfix-policyd-spf-pythonでハマった話 - Ubuntu 16.04 LTS

Ubuntuのサーバー環境を作っています。最新の16.04 LTSです。

お題のSPF以外にもdovecotのメジャーバージョンが上がっていたため、設定方法がガラリと変わってて泣きそうになりました。

公開メールサーバーの設定はやっぱり時間取られます。何かあったら多方面に迷惑かかるので。

Postfixの認証周りですが、てっきりsaslauthd使うもんだと勘違いしてたんですがSASL認証する時は使う必要ないんですね。どうして動いているのか分からなくなって後追いで調べて時間取られました。

スパム対策としては、とりあえずtargreyとspf対応を行いました。amavisd-newを噛ませたspamassassinとかウィルスチェックは後々対応しようと思っています。

targreyで使うpostgreyは、公開されてるパッチの対象バージョンより新しかったため手動でマージしましたが、多分手順通りパッチ当てちゃえば問題なかったように思えます。(未検証)

postgreyのpidファイルのデフォルトパスは/var/run直下ですが、問題出るのでディレクトリ掘って対応しました。

さて、本題です。

spf対応でpostfix-policyd-spf-pythonを入れたんですがなぜか落ちる。下記を直接叩くと、インポートするモジュールが見つからずに終了してしまいます。

# /usr/bin/python /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf

apt-getで入れてるから、こういう問題は普通起きないし、以前のバージョンのUbuntuでは問題なかったと思うんだけど、と不思議に思いつつ足りないモジュールのソースをいくつか落として手動でインストールしましたが埒が明きません。さすがにおかしいので、インポート対象のモジュールを探したところ、

/usr/lib/python3/

あたりが怪しそう。が、同じ階層にpython2.7、python3.5もある。あれ・・・?

# python --version
Python 2.7.11+

# python3 --version
Python 3.5.1+

# python3.5 --version
Python 3.5.1+

あー・・・

# python
Python 2.7.11+ (default, Apr 17 2016, 14:00:29)
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

ということは・・・

# python3
Python 3.5.1+ (default, Mar 30 2016, 22:46:26)
[GCC 5.3.1 20160330] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

と、いうことで、master.cfはこうなりました。

policyd-spf unix - n n - 0 spawn
   user=nobody argv=/usr/bin/python3 /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf

そのうち/usr/bin/pythonのリンク先がpython3.5に変わる日が来るのかなぁ。

 

端末変更 Xperia Z Ultra → Nenus 5X

Z Ultraに続いて2度目のExpansysで購入。たまにチェックして値崩れしているものがないかチェックするのオススメ。

ガラスフィルムとUSBケーブルがセットのものを注文したけど、注文後にUSBケーブルの白色が品切れとのことで黒色に変更してもらうなど、予定外の時間がかかった。

 

3月25日 注文

3月29日 USBケーブル品切れで再入荷に時間かかるので色変更の提案メール。OK

3月30日 変更したとのメール受信

3月30日 発送メール受信(香港で荷物受付)

3月31日 国際宅急便輸入手続き完了のメール受信

3月31日 国際宅急便お届けのご案内のメール受信

4月1日  受け取り。関税1,600円支払い。

 

結構時間かかったけど急ぎじゃなかったので問題なし。受け取り時に関税1,600円かかるので注意。

IIJmio(BIC SIM)でSIMカードサイズ変更をした記録

端末買い替えに伴い、SIMカードをmicroSIMからnanoSIMへサイズ変更する必要があったので、どれぐらい時間がかかったのかメモしておく。

使っているのは、BIC SIM 音声通話パックのミニマムスタートプラン。中身はIIJmioの同プラン。

ちょうど「SIMカード変更手数料1,000円OFFキャンペーン」(2016/3/31~2016/4/30)をやっていたのでお得だった。(通常2,000円が1,000円に)

 

2016年4月1日(金)14:00 IIJmioのサイトから申し込み。確認メール受信

2016年4月2日(土)10:00オフライン(通話/データ通信共に不可)

2016年4月2日(土)18:30クロネコヤマトで荷物受付の記録あり

2016年4月3日(日) 6:30 発送準備完了のメール受信

2016年4月3日(日)12:00新しいSIMが到着

 

申し込み前はオフラインの期間を2日間と見積もっていたが1日間で済んだ。土日も対応進めてくれるのは助かった。オフライン期間があっては困る人はBIC SIMカウンターで即日発行可能。ただし、即日発行手数料1,000円が余計にかかる。

サイトからの申し込み時間帯やクロネコヤマトの荷物受付以降にかかる時間は各自異なると思うので参考までに。

NamecheapでjpドメインのRapidSSLが購入できなくなってた話

ここ数年、SSLは価格の安さからnamecheap.comでRapidSSLを買っていました。

今年も30日前の期限到来通知のメールが来たので例年通り購入しアクティベートの手続きを進めていたのですが、最後のDCV確認(Domain control validation: ドメイン所有者検証?)で「Valid contract not found」と表示され先に進めなくなりました。

CSRを作りなおしてみたりDCVの方法をemailからDNSに変えてみたりと試行錯誤してみたのですが変わりません。サポート掲示板も漁ってみましたがこれといった情報なし。

最終的に、Live Chatサービスでヘルプを求めたところ、Symantec(GeoTrust)のポリシー変更とかでjpドメインが扱えなくなったとのこと。多分これと同件。

海外の格安SSL事業者経由で購入したRapidSSLが".jp"ドメインのみサポートしなくなっていた - simple blog

情報収集の中で見つけてはいたのですが、汎用jpドメインのことだと思ってスルーしてました。トップレベルドメインとなると影響でかくね?なんで情報少ないんだろ。

ただ、上のサイトにあるように、海外の格安SSL事業者で扱えなくなっただけで、国内の事業者からはこれまで通り購入出来るみたい。(多分)

 

結局、契約キャンセルで返金してもらいました。(といっても、Billing情報のBalanceに戻っただけで完全な返金ではないですが。)

チャット内でオススメされたのが、ComodoのPositiveSSLでした。チョビっとだけ高いけど、まぁいいか。

<追記>関連情報

【格安SSL】海外で購入したRapidSSLの証明書が .jpドメインで使えない at softelメモ

RapidSSL、QuickSSL 販売終了のお知らせ | 親切サポートと信頼性のグランパワー

ComodoのPositiveSSLってどうよ - PSLブログ

PushBulletとXperia Z Ultra

PushBulletには通知ミラーリングという機能があって、Android端末に表示された通知をPCにも通知する機能があります。(iOS版は現時点で未対応)

これが通知される時とされない時があって頭を捻っていたのですが、Z Ultraのグローバル版に搭載されているスタミナモードが原因じゃないかと思いあたったので、待受中も動作するように設定を変更してみました。

グローバル版のスタミナモードはホワイトリスト方式なので、待受中も実行したいアプリは明示的に指定してあげないといけません。

しばらく試してみましたが、ちゃんと通知されるようになりました。

Android端末への電話・LINEの不在着信をiOS端末へ通知したい

電話だけで良いならIFTTTを使いましょう。


Androidに不在着信があったらiPhoneにプッシュ通知する方法

 

これで十分な人も多いと思います。でも、LINEの通話も使う人なら同様に通知して欲しいですよね。という訳で試行錯誤してみました。

必要なのはPushBulletとTaskerです。LINEの不在着信を通知する方法の概要は、TaskerでAndroidの通知を捕捉してPushBulletを起動し、PushBulletはiOSへ通知を送信。ただし、Taskerは有料アプリなのでご注意。

Taskerの設定は柔軟性がある代わりにちょっと分かりにくいです。

 

不在着信の場合の手抜きな説明。

Profile: Event > Phone > Missed Call

Task: Plugin > Push A Notification (宛先端末やタイトル、文面など設定)

 

LINEの場合は、通知を捕まえる必要があるので別のProfileを作ります。また、事前準備としてAndroidの設定にあるユーザー補助の項目でTaskerを有効にしておきます。

Profile: Event > UI > Notification
  Owner Application: LINE

タスクは不在着信と一緒なので、通知のタイトルや文面を変えたタスクをLINE用に作成して紐付けます。

副作用(?)として、LINEの通話だけでなく、メッセージの着信も通知されます。通知を捕まえるためのProfile(Context)設定にあるTitleをうまく設定すれば、特定の人の不在着信だけ拾うことも出来るので、多くの人とLINEでやりとりしている人でも対応出来ると思います。

 

なんでこんなことをしたくなったかといいますと、Android端末(音声SIMあり)とiPhone5(SIMなし)の2台持ちをしており、通勤時など移動中はAndroid端末はテザリング有効にしてカバンにしまい、ポケットに入るiPhoneを主に使っています。この状態で着信があってもほぼ気づかないので、数時間移動するときは定期的にカバンの中をチェックしていました。これが結構煩わしかったのですが、今回の設定で手近な端末を見れば済むようになり、気分的にも楽になりました。