elfen00’s blog

プログラミング(Python3,C++,Typescript,javascript)関連等とガジェット(Android)関連

【Android】Root不要 Device Provisioning を使ったDocomo端末でのPackage Disablerの導入

adb pm hideがセキュリティでエラーが出る、そしてPackageDisablerが導入できない主にDocomo端末使いに人向けの記事です。ファクトリーリセットが必要となるので注意してください。

Android7.0のSC-05g(Galaxy s6)x2で動作確認しました。 [:contents]

概要

Device Provisioning とは主に企業で端末のポリシーを設定するのに使う機能です。 この機能を使うことでドコモに支配されていたDevice Ownerを好きなアプリに設定することができます。

【必要なもの】

NFCが付いたAndroid5.0以降の端末x2 (1台がセットアップする端末) Android開発環境(AndroidStuido)

手順

準備

APKの入手

com.kunkunsoft.rootpackagedisablerfree あたりを適当に入手してください 以下ではファイル名は app.apkとしておきます。

Hashの計算

公式ドキュメントには

A String extra holding the URL-safe base64 encoded SHA-256 or SHA-1 hash (see notes below) of the file at download location specified in EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION. とあるのですが具体的なやり方としては以下のサイトにある

cat app.apk | openssl dgst -binary -sha1 | openssl base64 | tr '+/' '-_' | tr -d '='

nfc - Checksum Error while provisioning Android Lollipop - Stack Overflow

アプリのホスト

アプリをダウンロードできるようにホストします。

python -m SimpleHTTPServer 8080

で適当にローカルでホストするのが簡単です。

プログラムの作成

公式ドキュメントからのリンクはGoogleAppsを導入していないとアクセスできませんがGithubにあります。

git clone https://github.com/googlesamples/android-NfcProvisioning.git

CreateAPKができるように Tool>Android >Sync Project with Gradle Filesを押して出てきたメッセージに従いSDKをダウンロードしてください。とりあえずビルドできるようにしてください。

./Application/src/main/java/com/example/android/nfcprovisioning/NfcProvisioningFragment.javaを書き換えます

EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAMEは要らないので無視するために

128~131行目の

                    if (e.getKey().equals(
                            DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME)
                            && Build.VERSION.SDK_INT >= 23) {

                    if ((e.getKey().equals(
                            DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME)
                            && Build.VERSION.SDK_INT >= 23)
                            || e.getKey().equals(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME)
                            ) {
 

に書き換えます。

またNdefMessage createNdefMessageの最後のtry以前( "String.valueOf(System.currentTimeMillis()));"の次の次の行)に

properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, "com.kunkunsoft.rootpackagedisablerfree");
        properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION, "http://192.168.0.2:8080/app.apk");
        properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM, "fmXL_oyTBiWwN8aNnJLtGaMr0sk");
        properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_SKIP_ENCRYPTION,"true");
        properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED,"true");

以上のものを付け加えます。 LocationとChecksumは自身の環境のものを使ってください。 ビルドしてインストールしてください。

実行

導入する端末を初期化して "開始"のボタンが出てる状態で待機してください。

アプリをもうー方にインストールして起動します

https://github.com/googlesamples/android-NfcProvisioning/raw/master/screenshots/1-main.png

この画面のパッケージ名、SecurityType WifiPasswordを埋めてください APIレベルによって変わってくるので環境依存ですがClass name of ~ の空欄がある場合上記のソースコードで無視するようにしたので不要です。 Security Typeは NONE, WPA or WEP です

埋めたら設定のAndroid Beamがオンの状態で2つの端末の背面をあわせてAndroidBeamで繋いでください。仕事用の端末としてセットアップされるはずです。

ここまでできればあとはPakageDisablerを使ってキャリアアプリを消しましょう。 ちなみにPackageDisabler等は管理者権限をもつのでアプリのメニューからしか削除できません。 PackageDisablerが入っているとadb restore がうまく動かないことがあるようなのでrestoreしたい人は消しましょう

【参考】

Google 公式ドキュメントたち

4. Provision customer devices  |  Android EMM Developers  |  Google Developers

DevicePolicyManager | Android Developers

Google 公式サンプルアプリ

GitHub - googlesamples/android-NfcProvisioning

その他参考にさせて頂いたサイト

kobashing.hatenablog.com この記事を元にパラメータを増やしたらできました。

twitter.com 裏垢とか言ってなんか不安ですが情報はとても参考になりました。 今のことができるNFCタグを販売しているらしいです。普通にNFCタグでやろうとすると888byteのが必要で買うのが面倒です。

動作原理詳細

普通はDocomoに邪魔をされてDeviceOwnerになれないのですが端末の初期化直後に限りこの権限を奪うことができるというものです。 Androidの標準の機能を使っているので悪いことはしてません

学生パワーを駆使しよう!

学生終了後も継続して使えるライセンスもあるので卒業間近の人もどうぞ。 情報も募集中です。

  • 万人向け
    • Microsoft Imagine(旧DreamSpark、WindowsOSが無料) 卒業後利用可
      • 手に入るもの(一部)
  • Amazon Student(Primeの割引)
    • プライムフォト
    • プライムビデオ
  • エンジニア、情報系向け
    • Github
    • Jetbrains(IntelliJ等) 取得後1年間利用可、学生のうちは更新可
    • Azure (もともと無料だけどクレジットカードなしで使える)
  • その他
続きを読む

【風呂用タブレット】 LG Qua tab LGT31,LGT32

約15000円で買える防水タブレットのLGT31をAmazonで買いました。

LGT31が8インチ、LGT32が10インチです。

  • 1920x1200,フルHD以上の解像度
  • メモリ2GB
  • ストレージ 16GB
  • 充電端子 MicroUSB
  • OS :Android 6.0 7.0にアップデート可能
続きを読む

デレステ(3Dリッチ)用端末まとめ

Snapdragon 820,821,835あたりだと3Dリッチで問題なく動くようなのでおおよその値段、HDMI出力が可能か、(普段づかいも考えて需要がありそうな)Mobile Suicaの有無 で比較します。 海外で購入するとサポートが弱すぎるのであまりおすすめしません。 購入したわけではないのでスペックの比較だけします。

Snapdragon 835は820に比べて25%程度GPUの性能が上がっているようなのでできれば835といったところでしょうか
性能は 835> AppleA10 > 821> 820 のようです。

端末名 値段 HDMI Suica SoC 国内購入
Galaxy S8,S8+(詳細) 10万 835
Xperia XZ Premium 10万 835
Xiaomi mi6(詳細) 5万 835
iPhone 7,7 Plus(詳細) 7万 A10
LG V-20(詳細) 5万 820
HTC 10 4万 820
続きを読む

Spotifyでキンプラの曲を聞こう!

Spotifyの会員登録すると無料で聞けます。
応援上映用にどうぞ

続きを読む

【Android(Root不要)】DNS66で簡単に広告を潰そう

f:id:elfen00:20170605134957p:plain

Android向けの記事です。Rootは必要ありません。iOSの人はコンテンツブロッカーを使ってください。
DNS66は内部にVPNを建ててDNSをカスタマイズすることで広告などをブロックするアプリです。
煩わしい広告から開放してくれます。うざい追従型広告も消えます。 害悪なサイトへのアクセスも遮断してくれるのでセキュリティ,プライバシー的にもいいと思います。

導入前後での比較

f:id:elfen00:20170605133623p:plain:w160 f:id:elfen00:20170605133630p:plain:w160
劇的に変わります。 アフィブログがなんか広告のないよくわからないサイトになるレベルです。

インストール手順

アプリのインストール

Releases · julian-klode/dns66 · GitHub

続きを読む

【充電器】 Type-C PD 充電器ー MacbookPro2016等の充電器

この記事はサブの充電器を買おうとしている人向けです。 Macbook,Macbook2016, Huawei Matebook、XPS13等では最大100WのUSB-PDという規格で充電が可能です。
ニンテンドースイッチもこの規格です。 追記 :ケーブルを別に買わなくていいのでNintendoSwitch用充電器が圧倒的に安いです

【目次】 [:contents]

続きを読む

【Ebay】600円でUSB3.0 SATAアダプター(+250円Type-C OTGケーブル)

HDDやSata接続のDVDを読み込むために買いました。 USB3.0+給電用USB2.0です。安いですね。
普通に動くのでおすすめです。古いノートPCからDVDドライブを引っこ抜いてこれに繋いでUSB接続のDVDドライブとして利用するのもありかと

f:id:elfen00:20161122032734j:plain http://i.ebayimg.com/images/g/WnwAAOSwg3FUo5Ka/s-l300.jpg

続きを読む

【Softbank,Ymobileユーザー限定】0001softbankにPCから接続する!

対象

Softbank、Ymobileの契約の電話番号及び契約時の4桁のパスワードがある人

UserAgentを変更するだけでログインできます

流れ

0001Softbankに接続(パスワードなし)

UserAgentの変更

SoftBank/2.0/004SH/SHJ001/SN 12345678901 Browser/NetFront/3.5 Profile/MIDP-2.0 Configuration/CLDC-1.1

続きを読む

【Windows10】Bash on Windowsで始めるC++11 interpreter Cling

Windows10RS1以降ではWindows Subsystem for Linux(WSL)が使え、かなりネイティブに近いUbuntuが使えます。GUI周りや一部のネットワーク関連は弱いですが
今回はこのBash on Windowsを使ってClingを使います。

Cling | ROOT a Data analysis Framework

Interpreterはいちいちコンパイルしなくていいので気軽に計算できて面白いかと思います。

導入方法

Bash on WindowsはUbuntu14.04LTS扱いなので以下のリンクからビルド済みのをダウンロードして

続きを読む

【テレビ】LG 32V 32LF5800他LG SmartTVについて

LG製32VのFullHD SmartTVである32LF5800(http://amzn.to/2e7E0Ps)についてです。
買ったところ結構よさげです。PCモニタ兼Netflixを見るマシンとして使っています。

32VFullHDとしては40000円未満で買えてかなり安いです。
LGは小型のFHDテレビをやめて40インチ以上の4Kテレビの方だけを作るようになったらしい(ビックロ新宿の店員情報)のでおそらく32インチテレビでは最後の製品となります。

続きを読む

【マンガワン】非Root端末で無限に時間を手に入れる方法(20161025確認)

https://lh3.googleusercontent.com/gktT2K6SqrZ3Y1-e9_iXqStFZgAruFYOm1gFw42ULyr9KiROD6iUahqNjC6yOUN9sr4=w300-rw

小学館の出している漫画アプリです。本来1日20分しか見れません。 これを以下のように事実上無限にします。 play.google.com

f:id:elfen00:20160424013111p:plain

2017/2/12追記 この方法は使えなくなったようです。Root化端末に関しては対策されてないようです またrootを取った端末で書き換えたのを普通の端末に書き込むことはできるようです

必要なもの

非rootのAndroid端末 PC(adb,javaを動かすため。7zipが入っていると良い) Windowsでのみ確認しているがMac,Linuxでも動くと思われる。

続きを読む