[ステップ](Steps)モディファイヤ
11028 ワード
[歩数](Steps)モディファイヤの概要 1.微信 微信計ステップ修正コード機能分析: 2.QQ 3.アリペイ 注意 1.微信
微信のステップデータは/data/data/comに保存する.tencent.mm/MicroMsg/stepcounter.cfgと/data/data/com.tencent.mm/MicroMsg/MM_stepcounter.cfg.この2つのファイルはJavaシーケンス化データファイルで、ObjectInputStreamとObjectOutputStreamを使用して読み書きします.
stepcounter.cfgのデータはSensorEventListenerが存在するcomである.tencent.mm:exdeviceプロセスが書き込みました.フォーマットは以下の通りです.
{209=47669212487765,201=11,202=150160320,203=45,204=1501640915492}
キー値201が対応する現在の今日歩数キー値202が対応する今日開始時刻(timestamp/10000)キー値203がstep counter sensorである歩数キー値204が対応する前回保存時刻キー値209がstep counter sensorであるタイムスタンプstepcounterである.cfgのデータはcom.tencent.mmプロセスは今日のステップ数を読み出してアップロードし、アップロード結果をMM_に書き込むstepcounter.cfg.MM_stepcounter.cfgファイルのフォーマットは以下の通りです.
次のようになります.
キー値1が何に対応するのか、キー値2が対応しているのは配置キー値3が対応しているのは、最後のアップロード時間キー値4が対応しているのは、最後のアップロードステップ数が微信運動を変更するステップ数が簡単で、stepcounterを変更するだけである.cfgファイルの現在の今日のステップ数、すなわち201に対応する値でよい.
微信計ステップ修正コード機能分析:
1.それぞれのfragmentから:mFragments.add(WechatFragment.newInstance()); mFragments.add(QQFragment.newInstance()); mFragments.add(AlipayFragment.newInstance());
2.機能はStep Dataのstore関数で実現
3.このStep Dataインタフェースを継承してwriteメソッドを書き換える実装
2.QQ
QQのステップデータは/data/data/comに保存する.tencent.mobileqq/files/step.info.このファイルは1つの暗号化ファイルで、使う暗号化アルゴリズムはテンセントがよく使うTEA暗号化アルゴリズムで、ネット上ですでに多くの人がアルゴリズムコードを提供して、私も別の文章の中で分析を提供します.復号化に用いる鍵は4 eY#X@~g.+U)2%$
データの復号化後、フォーマットは次のとおりです.
次のようになります.
接頭辞15048000000000今日開始タイムスタンプ接頭辞1504886400000明日開始タイムスタンプキー値last_report_timeは最後のアップロードタイムキー値に対応する_Initは今日からstep counter sensorのステップキー値です.totalは現在のstep counter sensorのステップ数このファイルはSensorEventListenerが存在するcomである.tencent.Mobileqq:MSFプロセス書き込み、com.tencent.Mobileqqプロセスは読み取り、アップロードし、アップロード結果をstepに書きます.info.現在の今日のステップstep=total - _init + _offsetなので変更_offsetで今日のステップ数を変更できます.
3.アリペイ
アリペイはSharedPreferencesを使用してステップデータファイルを保存します.それぞれNewPedoMeterとNewPedometerです.private. NewPedoMeter_privateは主にSensorEventLitstenerがいるcom.eg.android.AlipayGphone:extプロセスに書き込まれたデータは次のとおりです.
キー値stepRecordキー値は記録配列に対応しており、各記録のstepsは保存されているstep counter sensorのステップ数、timeはこの記録を書き込む時間であり、これらの記録から一定時間のステップ数を算出し、前回アップロードしたステップ数を加えることで現在のステップ数を算出するNewPedoMeterデータは以下の通りである.
キー値baseStepは、現在の今日のステップ数NewPedoMeterは、現在の今日のステップ数の計算に関係なくcomを保存する.eg.android.AlipayGphoneプロセスがデータをアップロードした結果.現在の今日のステップ数を計算すると、アリペイはサーバーに前回アップロードしたステップ数とアップロード時間を要求し、前回アップロードしたステップ数を計算し、前回アップロードしたステップ数を加えると現在のステップ数になります.現在の今日のステップ数を変更するには、NewPedoMeterのstepRecordのレコードを変更するだけでよい.最も簡単な方法は、stepRecordの最後のレコードのみを保持し、step counter sensorの現在のステップ数に応じて最後のレコードのsteps値を小さくすることである.
に注意
ファイルを変更するときは、キャッシュの問題に注意してください.そうしないと、変更は無効です.
QQ方案>支付宝方案>微信方案を見ることができます
微信のステップデータは/data/data/comに保存する.tencent.mm/MicroMsg/stepcounter.cfgと/data/data/com.tencent.mm/MicroMsg/MM_stepcounter.cfg.この2つのファイルはJavaシーケンス化データファイルで、ObjectInputStreamとObjectOutputStreamを使用して読み書きします.
stepcounter.cfgのデータはSensorEventListenerが存在するcomである.tencent.mm:exdeviceプロセスが書き込みました.フォーマットは以下の通りです.
{209=47669212487765,201=11,202=150160320,203=45,204=1501640915492}
キー値201が対応する現在の今日歩数キー値202が対応する今日開始時刻(timestamp/10000)キー値203がstep counter sensorである歩数キー値204が対応する前回保存時刻キー値209がstep counter sensorであるタイムスタンプstepcounterである.cfgのデータはcom.tencent.mmプロセスは今日のステップ数を読み出してアップロードし、アップロード結果をMM_に書き込むstepcounter.cfg.MM_stepcounter.cfgファイルのフォーマットは以下の通りです.
{1=1501588258133, 2={"stepCounterRateUs":600000,"stepCounterSaveInterval":60000,"stepCounterSaveStep":50,"stepCounterMaxStep5m":1500,"deviceStepSwitch":1,"extStepApiSwitch":0,"stepExtConfig":{"version":1,"interval":7200},"stepCountUploadConfig":{"backgroundTimeInterval":60,"backgroundStepCountInterval":500}}, 3=1501640939165, 4=25}
次のようになります.
キー値1が何に対応するのか、キー値2が対応しているのは配置キー値3が対応しているのは、最後のアップロード時間キー値4が対応しているのは、最後のアップロードステップ数が微信運動を変更するステップ数が簡単で、stepcounterを変更するだけである.cfgファイルの現在の今日のステップ数、すなわち201に対応する値でよい.
微信計ステップ修正コード機能分析:
1.それぞれのfragmentから:mFragments.add(WechatFragment.newInstance()); mFragments.add(QQFragment.newInstance()); mFragments.add(AlipayFragment.newInstance());
2.機能はStep Dataのstore関数で実現
writeResult = write(context);
3.このStep Dataインタフェースを継承してwriteメソッドを書き換える実装
@Override
protected int write(Context context) {
FileOutputStream fos;
ObjectOutputStream oos;
if (mStepCounterMap == null) {
return FAIL;
}
try {
killWechatProcess(context);
fos = new FileOutputStream(STEP_COUNTER_CFG);// "/data/data/com.tencent.mm/MicroMsg/stepcounter.cfg";
oos = new ObjectOutputStream(fos);
mStepCounterMap.put(CURRENT_TODAY_STEP, getStep());
oos.writeObject(mStepCounterMap);
oos.close();
fos.close();
return SUCCESS;
} catch (Exception e) {
return FAIL;
}
}
2.QQ
QQのステップデータは/data/data/comに保存する.tencent.mobileqq/files/step.info.このファイルは1つの暗号化ファイルで、使う暗号化アルゴリズムはテンセントがよく使うTEA暗号化アルゴリズムで、ネット上ですでに多くの人がアルゴリズムコードを提供して、私も別の文章の中で分析を提供します.復号化に用いる鍵は4 eY#X@~g.+U)2%$
データの復号化後、フォーマットは次のとおりです.
{"1504800000000_offset":0,"1504800000000_init":426,"1504800000000_total":2109,"isStepCounterEnable":true,"last_report_time":1504856818805,"1504886400000_init":2109}
次のようになります.
接頭辞15048000000000今日開始タイムスタンプ接頭辞1504886400000明日開始タイムスタンプキー値last_report_timeは最後のアップロードタイムキー値に対応する_Initは今日からstep counter sensorのステップキー値です.totalは現在のstep counter sensorのステップ数このファイルはSensorEventListenerが存在するcomである.tencent.Mobileqq:MSFプロセス書き込み、com.tencent.Mobileqqプロセスは読み取り、アップロードし、アップロード結果をstepに書きます.info.現在の今日のステップstep=total - _init + _offsetなので変更_offsetで今日のステップ数を変更できます.
3.アリペイ
アリペイはSharedPreferencesを使用してステップデータファイルを保存します.それぞれNewPedoMeterとNewPedometerです.private. NewPedoMeter_privateは主にSensorEventLitstenerがいるcom.eg.android.AlipayGphone:extプロセスに書き込まれたデータは次のとおりです.
キー値stepRecordキー値は記録配列に対応しており、各記録のstepsは保存されているstep counter sensorのステップ数、timeはこの記録を書き込む時間であり、これらの記録から一定時間のステップ数を算出し、前回アップロードしたステップ数を加えることで現在のステップ数を算出するNewPedoMeterデータは以下の通りである.
<map>
<boolean name="startup" value="true" />
<string name="baseStep">{"steps":1135,"time":1504162956624}string>
<boolean name="checkuser" value="true" />
<string name="userId">2088802851669638string>
<string name="last_stepinfo_today">{"biz":"alipay","steps":1133,"time":1504162998266}string>
map>
キー値baseStepは、現在の今日のステップ数NewPedoMeterは、現在の今日のステップ数の計算に関係なくcomを保存する.eg.android.AlipayGphoneプロセスがデータをアップロードした結果.現在の今日のステップ数を計算すると、アリペイはサーバーに前回アップロードしたステップ数とアップロード時間を要求し、前回アップロードしたステップ数を計算し、前回アップロードしたステップ数を加えると現在のステップ数になります.現在の今日のステップ数を変更するには、NewPedoMeterのstepRecordのレコードを変更するだけでよい.最も簡単な方法は、stepRecordの最後のレコードのみを保持し、step counter sensorの現在のステップ数に応じて最後のレコードのsteps値を小さくすることである.
に注意
ファイルを変更するときは、キャッシュの問題に注意してください.そうしないと、変更は無効です.
QQ方案>支付宝方案>微信方案を見ることができます