壁紙が変更できないという前代未聞の1円スマホ、Rakuten Miniで好きなホームアプリを使いつつ壁紙を自由に変更する抜け道がありました。
別ユーザーなら壁紙設定可能
Rakuten Miniではテーマによって真っ黒・真っ白な壁紙しか使うことが出来ません。
ウィジェットを使ったりYahoo!きせかえを使ったりすれば擬似的に設定することは出来ますが、Nova Launcherなど好きなホームアプリ単体で設定はできない状態です。
これはSystemUI内でdefault_black_wallpaper.pngまたはdefault_white_wallpaper.pngを強制するコードがあるため発生している問題なのですが、何故かこのコードには「現在のユーザーIDが0以外だったら何もしない」という例外があります。
ユーザーは設定 → システム →複数ユーザーで追加できます。
追加した後は、クイック設定の鉛筆アイコンの左にあるアイコンを押して出てくるメニューでユーザーを変更できます。
変更後のユーザーでは自由自在に壁紙を変更できます。
あくまでも端末の管理者は最初のユーザーになってしまうのでいくつか制限がありますし、アプリのデータもコピーされません。壁紙のためにここまでするのは本末転倒な気も…。
この壁紙の制限はsmali内に書かれているため、root化してもMagiskモジュールでの書き換えは難しいです。
XposedモジュールでgetWhiteWallpaperを潰せば対策できると思います。
【06/11追記】
z589app氏によりXposedモジュールが公開されました。キャリアラベルも無効化できます。
なお、この制限を実行するかどうかはro.build.productがc330aeかどうか、で判定されているのですがこの判定は壁紙以外にもクイック設定などさまざまな場所で使われているため、ro.build.productを変えただけだとレイアウト崩れが発生してしまいます。smali (Java) 側で決め打ちしているとアップデートが大変だと思うのですが、何故こんな仕様にしたのでしょうか…。
default_black_wallpaper.pngまたはdefault_white_wallpaper.pngを置き換えてしまえばそれが反映されるのですが、拡大されるので画像編集が大変です。
一応壁紙画像を置換できるMagiskモジュールを作っておきました。ZIPの中のsystem/vendor/overlay/treble-overlay-rakuten-mini-systemui.apkを7zip等で開き、res\drawableの画像を置き換えてください。ついでにステータスバーのWi-Fiアイコンが通信時にチカチカと動くのを無効化しておきました。
Magiskモジュールのダウンロードはこちらからできます。インストールして再起動した後、adb shell cmd overlay enable overlay.rakuten.mini.systemui
を実行すれば反映されます。