さっきの記事の署名チェック箇所における
RegisteredServicesCache.ServiceInfoがどこにあるのか?
それを突き止めるためにさらに調査。
/frameworks/base/core/java/android/content/pm/RegisteredServicesCache.java
コンストラクタにこんなものが、
100 File dataDir = Environment.getDataDirectory();
101 File systemDir = new File(dataDir, "system");
102 File syncDir = new File(systemDir, "registered_services");
103 mPersistentServicesFile = new AtomicFile(new File(syncDir, interfaceName + ".xml"));
怪しいのでRoot化した端末で中を見てみる。
adb shell
su
cd /data/system/registerd_services
cat android.accounts.AccountAuthenticator.xml
こんなん出ました。
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<services>
<service uid="10041" type="com.android.exchange" />
<service uid="10019" type="com.google" />
</services>
ここに追加すれば独自アカウントも入れられるかな?
あと同じフォルダに、
android.content.SyncAdapter.xml
なるものが、
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<services>
<service uid="10041" authority="com.android.contacts" accountType="com.android.exchange" />
<service uid="10019" authority="com.android.contacts" accountType="com.google" />
<service uid="10038" authority="gmail-ls" accountType="com.google" />
<service uid="10019" authority="subscribedfeeds" accountType="com.google" />
<service uid="10041" authority="com.android.calendar" accountType="com.android.exchange" />
<service uid="10019" authority="com.android.calendar" accountType="com.google" />
</services>
ここに追加したらどうなるんだろう?同期してくれる?どうやって?
0 件のコメント:
コメントを投稿