画像やリンクが無効になっている可能性もあるのでご了承下さい。
GooglePlay の導入からホームアプリの変更までを済ませてカスタマイズも完了し、残すところはウィジェットの設置という所で止まっていた。
ホームアプリとしては Nova Launcher を使用しているが、ホームスクリーン長押しからのウィジェット設置を試みようとすると OS の設定画面が開いて終わってしまう状態だった。
よくよく考えるとウィジェットを設置する権限が付与されていないから起こる現象なので、それを元に検索していたら XDA Forum に解決方法まんまが掲載されていた。
上記リンクの記事ではシステムファイルのコピーと設置にアプリを使っているようだったが、どのみち ADB を使うなら最初からコマンドでやってしまえば楽だろうとちょっと手法を変えて実行した。
先ずは Fire タブレットで 設定 から 端末オプション 以下 開発者オプション を開いて ADB を有効にする を有効にしておく。
この辺の図解は別記事内「Fire HD 8 の下準備」を参照の事。
ADB を使えるようにするにはググって見つけた次の記事を参照なりすると行ける。基本的に頭の中にクエスチョンマークが出てきたらググって調べて進めると吉。
ここまで来たらあとは PC と Fire タブレットを USB ケーブルで繋ぐ。
コマンドプロンプトなり PowerShell なりから adb コマンドを叩いて shell を起動し、そこでコマンドを打つ。
adb shell
shell から次のコマンドを実行していく。
2018/12/12 追加補足 ⇒ adb と端末上のアプリでは実効ユーザと所属する group が異なり、アプリ上の実効ユーザはかなり権限が少ない事が原因と思われる。
cp /system/bin/appwidget /sdcard/appwidget.sh
sh /sdcard/appwidget.sh
usage: adb shell appwidget [subcommand] [options]
usage: adb shell appwidget grantbind --package [--user | current]
an Android package name.
The user id under which the package is installed.
Example:
# Grant the "foo.bar.baz" package to bind app widgets for the current user.
adb shell grantbind --package foo.bar.baz --user current
usage: adb shell appwidget revokebind --package [--user | current]
an Android package name.
The user id under which the package is installed.
Example:
# Revoke the permisison to bind app widgets from the "foo.bar.baz" package.
adb shell revokebind --package foo.bar.baz --user current
[ERROR] Unsupported operation: null
appwidget grantbind --package com.teslacoilsw.launcher --user 0
コマンドの説明としては 1 つ目の cp コマンドでシステムファイルを内部ストレージにコピーしつつ .sh と拡張子を付けてシェルスクリプトであると示す。
次に sh コマンドで appwidget.sh を呼んでおく。画面に appwidget の使い方が表示されれば OK。
最後に appwidget と打っているコマンドで、引数 --package
に示されるアプリにウィジェット設置の権限を付与している。
今回筆者は Nova Launcher を使用しているので、パッケージ名 com.teslacoilsw.launcher を指定しているが、この部分を変更すれば別のホームアプリでも同様にウィジェットを使えるようにすることが出来る。
これであとは USB ケーブルを外しても OK。
ホームスクリーン長押しからウィジェットの設置でこの様に BatteryMix のウィジェットを設置出来るようになった。
あまりウィジェットを多く設置し過ぎてもパフォーマンスを犠牲にしてしまうので、ホームスクリーンの余白を考えつつ今後も何か設置していこうかと思う。
2018/12/09 14:52 – PC 無しでも Terminal Emulator を用いれば Fire タブレット単体で完結できることを確認したので補足情報を追記。
2018/12/12 – Terminal Emulator で出来たという内容は筆者の勘違いによる間違いであった為、該当箇所を修正。原因と思しきポイントも記載した。
コメント
記事を参考にウィジェットを追加できました。分かりやすい記事でとても助かりました
ここまでの各記事を参考にFireHD10にNova Launcherを入れることが出来ました。大変便利になりとても嬉しく思っております。ありがとうございます。
私もウィジェットを使いたく思い、この記事を見ながらAndroid Terminal Emulatorを使いコマンドを入れていき、/sdcard内にappwidget.shも作成され、最後の行の
appwidget grantbind –package com.teslacoilsw.launcher –user 0
を実行したのですが、Killedとだけ表示されてしまいウィジェットは変わらず使えませんでした。
リンク先に紹介されていたサイトを参考に、末尾を変更して
appwidget grantbind –package com.teslacoilsw.launcher –user current
のようにしてもやはりKilledとなってしまいます。
どの部分がいけないかご教授頂ければ幸いです。何卒宜しくお願いします。
大変申し訳御座いません。こちら Terminal Emulator で出来るという事は当方の見落としによる間違いであったようです。
元々 PC に接続してウィジェット作成権限を与えた端末で appwidget コマンドの実行自体が出来ており、その結果エラーが出ていたところを見落としていた結果となります。
Terminal Emulator で実行した場合、Killed と表示された理由は何かしらの問題で SIGKILL というプログラムを最終手段的に強制終了させるシグナルが送信された為となります。
当方の記事を閲覧いただき貴重なお時間を無駄にさせてしまい大変申し訳御座いませんでした。記事の方は修正させて頂きたいと存じます。
現状、ウィジェットを作成する手段としては PC にと接続して adb コマンドを打ち込む他ないかと思われます。
そうですかやはりPCに繋ぐ作業が必須になるのですね。
わからない用語や作業ばかりでPCに繋ぐことは敬遠していたのですが、
勉強と思いやってみようと思います。この度は、ご教授下さりどうも有難うございました。
連投申し訳ありません。
早速PCとデバイスを繋いでadbコマンドを使える方法を調べて、もう一度この記事通りにPowerShellでコマンドを入力したところ無事ウィジェットを追加できるようになりました!
今、大変嬉しいです^^
私とFireをここまで導いてくださりどうも有難うございましたm(_ _)m
こんばんは。その後のご報告まで頂きましてありがとうございます。
当方の間違いで遠回りさせてしまったようで恐縮です。
ADB を使えるように環境を作るところが一番面倒臭い所ですので無事に完遂できたようで何よりです。
元情報は海外の記事ではありますが、この記事がお役に立てたようで何よりです!
ありがとうございます。
(古いですが)Fire HD 7 4th genにて、ウィジェットを普通に使えるようになりました!