2018/02/07

Andrdoid 8.0/8.1 でのイースターエッグのねこあつめ

Android 7.x の時にあったイースターエッグは Android 8.0/8.1 でも引き続き遊べます。

ただ、最初から Android 8.x が入った端末では Android 7.x と同じ方法ではねこあつめを始めることはできません。
最初から Android 8.x だった端末でイースターエッグのねこあつめを有効にするにはPCから

$ adb shell am start -n com.android.egg/.neko.NekoActivationActivity

を実行します。実行後、Android 7.x でねこあつめを有効にした時と同じようにねこが表示されるので、Android 7.x の時と同じように通知にねこあつめのお皿を置いてあげれば動きます。


2018/08/14 追記
Android 9 でも引き続き遊べます。また、最初からAndroid 9 が入った端末でも上記と同じ方法で猫集めを有効にできます。
追記ここまで

2018/11/24 追記
Android 9でも遊べると以前書いたのですが、Pixelシリーズのソースを見ると、
・Pixel, Pixel XL(発売時Android 7.1.0)ではAndroid 9にアップデートしてもねこあつめが残っている
・Pixel 2, Pixel 2 XL(発売時Android 8.0.0)ではAndroid 9にアップデートするとねこあつめは(おそらく)削除される
・Pixel 3, Pixel 3 XL(発売時Android 9)は最初から無い
というものでした。
他の端末でも発売時にAndroid 8.0/8.1だった端末をAndroid 9にアップデートするとねこあつめが削除されて遊べなくなるかもしれません。
追記ここまで

2019/02/06 追記
Pixel, Pixel XLですが、Android 9 2018-12-05のセキュリティパッチ(該当するイースターエッグのソース)でねこあつめが削除されペイントになっています。
Essential PH-1はAndroid 9 2019-02-05のセキュリティパッチでねこあつめが削除されペイントになっています。
追記ここまで

Android 8.0/8.1 でねこあつめに修正が入ったかソースを見てみると Android 7.1.2 の時から3回修正が入っていました。

・51efddbd3bb304de2dd47fa8cd1114ac555958bb

キャストの削除だけなので、見た目などの変更はありません。
参考: Android 8.0 の機能と API # findViewById() 署名の変更

・49ddb0de55020320a4f08bd7060cb531a84fb536

Android 8.0 のイースターエッグの追加。見た目などの変更はありませんが、Android 7.x 用のまま Android 8.0 向けでコンパイルしているため、

(1) ねこが来ても通知に表示されない
(2) ねこの画像の共有時、アプリが落ちる

ようになってしまいました。

(1)の原因は Android 8.0 で通知の仕様に変更があったためです。修正する必要があったのですが忘れられていたようです。
参考: Android 8.0 の機能と API #通知

(2)の原因は Android 7.0 から FileProvider クラスを使用してファイルの共有をする必要があるのですが、FileProvider を使用していないため落ちます。
参考: Android 7.0 の動作の変更点 #アプリ間のファイルの共有

・7bcd6aa4f71a45b27a7f4486e35ebe29fa9eb507

Android 8.1 では上記の2つのバグの修正と、Treatがドーナツからクッキー(オレオ)に変更されました。(クッキーと書いたのは画像ファイルがfood_cookie.xmlになっていたので)

2017/12/10

3000匹集まったので

Android 7 のイースターエッグ、ねこあつめで3000匹集まった
で3000匹のスクリーンショット










2017/11/20

Termuxの備忘録

昔書いた、
Android上で動くgccの導入
WgetをAndroid NDKでコンパイル
Android用のnkfをコンパイル
Android用のnkfをコンパイル その2
がたまにアクセスがあるので、自分の備忘録も兼ねて。

Android 5.0以上ならターミナルエミュレーターはTermuxの使用をお勧めします。


インストールと初期設定など


まずGoogle Playからインストール → Termux

使い方はTermuxのThe Termux Wikiを見ればOK

忘れがちなキーの割り当て(Touch Keyboardより)
・Volume Up + W → Up arrow key
・Volume Up + A → Left arrow key
・Volume Up + S → Down arrow key
・Volume Up + D → Right arrow key

ボリュームダウンが[Ctrl]キーに割り当てられてるけど、操作し辛いのでナビゲーションドロワーから「KEYBOARD」を長押しして、「Extra keys view」を表示しておく。(Touch Keyboardより)
バージョン 0.62から Extra keys view は Volume UP + Q で表示/非表示可能 (2018/06/24 追記)
Volume UP + Q での Extra keys view の表示/非表示は以前からあったようです(2018/06/27 追記)


Termux-setup-storage にある通り、ストレージの初期設定を行う。

あとはDebian系のディストリビューションと同じ感覚で、

$ apt update

で利用できるパッケージリストの更新。

$ apt upgrade

で新しいパッケージに更新。

以上で、Termuxの準備は完了。


パッケージのインストール


・Clang
以前はgccのパッケージがあったのですが、現在ではClangになっています。(clangのパッケージに含まれるgccはclangへのリンクになっています。)

$ apt install clang

でインストールされます。

・Wget
Termuxはbusyboxがインストールされているので、busyboxで機能が足りているならそのまま使用、機能が足りないようであれば、パッケージのインストール。

$ apt install wget

でインストールされます。

・nkf
Termuxのパッケージにはないので、コンパイルします。
nkf Network Kanji Filterからソースをダウンロードして、ファイルの展開後、config.h の

#define DEFAULT_CODE_UTF8

を有効にして

$ make

で実行ファイルが作成されます。

2018/06/16 追記
FDcloneのコンパイル、インストール方法は Termux上でFDcloneを動かす に書きました。