質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2971閲覧

apkが実行できる期限を設定したい

U1KURI

総合スコア11

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2018/01/17 03:29

###前提・実現したいこと
Androidアプリを、評価用として先方に提供したい。
評価用にするために、「実行できる期限」を適宜設定したいです。
■ 実現可能な方法を伺いたいです。

###発生している問題・エラーメッセージ
・ 証明書に有効期限を設定して署名する(詳細手順は[補足情報]に記載)
・ Android本体の内部時計を、上記期限を過ぎた日時に変更
・ アプリは正常にインストール・動作してしまう
という状況です。

###試したこと
0: 署名なしでapkをビルド (trial.apk)
1: 下記コマンドにて、hoge.keystoreを生成

keytool -genkey ... -align hoge -validity 180 -keystore hoge.keystore

2: 下記コマンドにて、apkに署名を取り込み[ts]

jarsigner -verbose -keystore hoge.keystore -tsa http://timestamp.digicert.com/ trial.apk hoge

3: 作成された署名済みのtrial.apkを、端末のDownloadフォルダにDragDropでコピー
※ この時点で、端末の<設定時刻は実際の時刻>

4: 端末の設定時刻を「手動」に変更し、期限が切れる年月日に変更
5: 端末のDownloadフォルダに置いてあるapkファイルをクリックしてインストール
→ [期待動作] 証明書の期限が切れているため、インストールできない
→ [実動作] 「インストールが完了しました」と表示されてしまう

###参照サイト
[ts] http://blog.ysakaguchi.net/2014/10/apk-tsa-tsacertjar.html
[JAA] https://www.android-group.jp/index.php?plugin=attach&refer=%CA%D9%B6%AF%B2%F1%2F2008%C7%AF11%B7%EE%A4%CE%A5%A4%A5%D9%A5%F3%A5%C8&openfile=SigningAndroidApplications.pdf

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

仮に署名の期限でインストールが制限できたとしても、一度期限内にインストールしたものはそれ以降も使えるわけですよね?
起動時に日時を確認してメッセージを表示して終了するのではいけないのですか?

投稿2018/01/17 04:52

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

U1KURI

2018/01/17 05:17

Zuishinさん、ご回答ありがとうございます。 確かに、メッセージを表示して終了するというのは、要望として合致します! この質問の背景として、証明書の効果を完全には把握できていないため、 <署名により、使えない状態にする> ということが可能かどうかを知りたい、と思っています。 ご存知でしょうか・・・? # インストールを制限できても動き続けること、理解しました!ありがとうございます。
Zuishin

2018/01/17 05:30

公式な情報ではありませんので間違っている可能性もありますが https://www.sakc.jp/blog/archives/25766 > デジタル署名がないアプリケーション(apkファイル)や、署名の有効期限が切れているアプリケーションは、不正なアプリケーションと認識されます。Android端末にもエミュレータにもインストールすることはできませんし、実行することもできません。 とあります。 実際に色々な条件や環境を用意して調べたわけではありませんので詳細はわかりませんが、証明書だけで絶対にインストールをブロックできると言えない以上、不正使用対策には使えないと思います。
U1KURI

2018/01/17 06:01

ありがとうございます。リンク先も拝読しました。 ・ 証明書の期限が切れると、インストールと実行が不可となる 理解しました。 そして、不正使用の対策としては妥当な策ではないことも承知しました。 解決です! ご回答ありがとうございました! (もし、証明書の期限が切れたから実行できなくなっちゃう!となると、 大混乱が巻き起こると思うので、制度として妥当な設計と思いました)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問