= заметки об `android` == жор батареи службой `SystemUpdateService` в cm11 ~~операционная система с момента загрузки телефона пытается запустить службу `SystemUpdateService`, не давая процессору уснуть. для того, чтобы это не происходило, нужно в `/data/local/userinit.d` положить [attachment:systemupdateservice​ этот файл], не забыв сделать его исполняемым. более подробное [http://4pda.ru/forum/index.php?showtopic=608574&st=20 описание].~~ всё это работает плохо и непонятно. надо брать `betterbatterystats`, выслеживать виновных и через `xposed/amplify` резать их по одиночке. не забывать после каждого нового ограничения проверять не перестало ли что-то работать, например, какие-нибудь нужные push нотификации. [[br]] == google play services has stopped working при включении high accuracy location в cyanogenmod происходит при запрете wake lock или awake в privacy guard. нужно разрешить и страдать от жора батареи, либо воспользоваться отключением части сервисов, как показано в предыдущем абзаце. [[br]] == блокировка экрана пином или патерном, а шифрование данных с паролем 1. шифруем телефон с пином или патерном; 1. через ssh или adb выполняем `vdc cryptfs changepw password ` для `android6` и `vdc cryptfs changepw password ` для `android7`, где `` и `` - старые и новые пароли. 1. пароль патерна `` вычисляется цифрами по табличке: {{{ 1 2 3 4 5 6 7 8 9 }}} [[br]] == отключение попыток цепляться к `ipv6` для экономии батареи `/system/etc/init.d/02net`: {{{#!bash #!/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; }}} [[br]] == 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` 1. Google Services Framework: `/data/data/com.google.android.gsf` 1. Google Play services: `/data/data/com.google.android.gms` 1. Titanium backup: `Create new (random) Android ID` [[br]] == generate keys chain to sign `apk` by `apkmanager` [https://roostertech.wordpress.com/2013/10/31/exporting-private-key-pk8-jks/ original] {{{#!bash 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 }}} [[br]] == gpay attest {{{#!bash am force-stop /data/data/com.google.android.apps.walletnfcrel chattr -i /data/data/com.google.android.gms/databases/dg.db chmod 777 /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 }}} [[br]] == [https://forum.xda-developers.com/android/help/guide-delete-fingerprint-profils-via-t3686722 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` [[br]] == [https://forum.xda-developers.com/android/software-hacking/remove-lockscreen-recovery-t3530008 remove lockscreen] * `/data/system/password.key` * `/data/system/pattern.key` * `/data/system/locksettings.db` * `/data/system/locksettings.db-shm` * `/data/system/locksettings.db-wal`