2017-03-01 4 views
1

私はro.build.fingerprintなどの値を取得するためにネイティブアンドロイド(NDK)の__system_property_find関数を使用しています(セキュリティ上の理由からそれらをJavaで取得したくありません)。 それはプロパティを見つける必要がある間、関数が返す "時折"うまく動作します: - 同じ携帯電話で、私はそれを働かせて、それから3回連続してアプリケーションを実行するときに働いていません - これを呼び出す複数の機能が同じ実行で常に動作するか常に失敗する - 特権に変更はありません - 再現性がほとんどありません(自動的に起動/停止すると何百回もバグが再現されませんでした) - この問題を抱える少なくとも10台の携帯電話機を持っています。Android NDK __system_property_find時折

const prop_info *pi; 
pi = __system_property_find("ro.serialno"); 
if (pi == 0) { 
// We've got a problem 
} 

この機能で何が問題になる可能性がありますか?

感謝

+0

'__system_property_get'は同じ方法で動作しますか? – pskink

+0

わかりませんが、私たちはこの機能を使用しません。 クライアントのモバイルで静的に見られる動作です。今日、私たちのラボでは再現できません。 これは、デバイス、OS、他のアプリケーションのインストール、設定などに依存する場合があります...今日、研究室で再現できないような手掛かりはありません。 – Antelop

答えて

0

__system_property_find()と__system_property_get()は21

が代わりに取得する方法の下に使用してみてくださいアンドロイドAPI以来、64ビットのツールチェーンの中に隠さなっています。

File *file = popen("getprop ro.serialno", "r"); 
fread(pi, 1, PROP_VALUE_MAX, file); 
pclose(file);