wiki:notes/android

Version 25 (modified by root, at 2019-09-28T06:26:06Z) (diff)

--

заметки об android

жор батареи службой SystemUpdateService в cm11

операционная система с момента загрузки телефона пытается запустить службу SystemUpdateService, не давая процессору уснуть. для того, чтобы это не происходило, нужно в /data/local/userinit.d положить этот файл, не забыв сделать его исполняемым. более подробное описание.

всё это работает плохо и непонятно. надо брать betterbatterystats, выслеживать виновных и через xposed/amplify резать их по одиночке. не забывать после каждого нового ограничения проверять не перестало ли что-то работать, например, какие-нибудь нужные push нотификации.


google play services has stopped working при включении high accuracy location в cyanogenmod

происходит при запрете wake lock или awake в privacy guard. нужно разрешить и страдать от жора батареи, либо воспользоваться отключением части сервисов, как показано в предыдущем абзаце.


блокировка экрана пином или патерном, а шифрование данных с паролем

  1. шифруем телефон с пином или патерном;
  2. через ssh или adb выполняем vdc cryptfs changepw password <newpassword> для android6 и vdc cryptfs changepw password <oldpassword> <newpassword> для android7, где <oldpassword> и <newpassword> - старые и новые пароли.
  3. пароль патерна <oldpassword> вычисляется цифрами по табличке:
    1 2 3
    4 5 6
    7 8 9
    


отключение попыток цепляться к ipv6 для экономии батареи

/system/etc/init.d/02net:

#!/system/bin/sh
chmod 666 /proc/sys/net/ipv6/conf/all/disable_ipv6;
chmod 666 /proc/sys/net/ipv6/conf/default/disable_ipv6;
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6;
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6;
/system/bin/ip6tables -P INPUT DROP;
/system/bin/ip6tables -P OUTPUT DROP;
/system/bin/ip6tables -P FORWARD DROP;


mandatory actions after device cloning to avoid clones conflicts

  1. Clear data for:
    1. Google Account Manager: /data/system_ce/0/accounts_ce.db*, /data/system_de/0/accounts_de.db*, /data/system/sync/accounts.xml
    2. Google Services Framework: /data/data/com.google.android.gsf
    3. Google Play services: /data/data/com.google.android.gms
  2. Titanium backup: Create new (random) Android ID


generate keys chain to sign apk by apkmanager

original

keytool \
 -genkey -v \
 -keystore android.keystore \
 -storepass android \
 -alias androiddebugkey \
 -keypass android \
 -keyalg RSA \
 -keysize 2048 \
 -validity 10000 \
 -dname "C=US, O=Android, CN=Android"
keytool \
 -importkeystore \
 -srckeystore android.keystore \
 -srcstoretype JKS \
 -srcstorepass android \
 -destkeystore android.p12 \
 -deststoretype PKCS12 \
 -storepass android
openssl pkcs12 \
 -nodes \
 -in android.p12 \
 -out android.crt
openssl pkcs8 \
 -topk8 \
 -outform DER \
 -in android.crt \
 -inform PEM \
 -out android-private.pk8 \
 -nocrypt


gpay attest

am force-stop /data/data/com.google.android.apps.walletnfcrel
chmod 777 /data/data/com.google.android.gms/databases/dg.db
chattr -i /data/data/com.google.android.gms/databases/dg.db
/data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.google.android.gms/databases/dg.db "update main set c='0' where a like '%attest%';"
chmod 444 /data/data/com.google.android.gms/databases/dg.db
chattr +i /data/data/com.google.android.gms/databases/dg.db


delete fingerprint profiles

Symptoms:

  • Fingerprint is not working to unlock the phone. Lockscreen gives me an error about missing fingerprint hardware.
  • I can't add new fingerprints. The fingerprint wizard gives me an error message "Enrollment was not completed" and closes the wizard

Solution: remove

  • /data/system/users/0/fpdata/user.db
  • /data/system/users/0/*fingerprint*.xml


remove lockscreen

  • /data/system/password.key
  • /data/system/pattern.key
  • /data/system/locksettings.db
  • /data/system/locksettings.db-shm
  • /data/system/locksettings.db-wal

Attachments (2)

Download all attachments as: .zip