1 votos

Configurar un nuevo teléfono para un niño: interacción entre el vínculo familiar y las cuentas múltiples

Tengo un OnePlus 5 en el que he instalado LineageOS 18.1 con Google Apps.

Mi intención es que sea el teléfono de mi hijo, que es menor de edad y cuya cuenta está limitada por Google Family Link. (No estoy particularmente enamorado de Family Link; sólo viene automáticamente con la honestidad al registrar la cuenta de Google del niño, es decir, no mentir sobre su edad. La limitación del tiempo de pantalla es la única característica que realmente encuentro útil).

También instalé Magisk v23 para rootear el teléfono. Me doy cuenta de que con suficiente determinación mi hijo podría potencialmente eludir Family Link usando Root y, por ejemplo, adb, y no me importa.

Utilicé mi propia cuenta de Google para la configuración inicial, pero eventualmente me gustaría transferir las aplicaciones y los datos de mi hijo desde un dispositivo anterior.

Lo primero que pensé fue en utilizar la función de "varios usuarios". Creé una cuenta para el niño en el teléfono, e iba a utilizar Titanium Backup para restaurar las copias de seguridad de las aplicaciones y los datos del teléfono anterior.

Sin embargo, estoy empezando a tener dudas. ¿Es esta una buena manera de enfocar esto? Por ejemplo, si sigo siendo el "propietario del dispositivo", ¿no contaminará este dispositivo mi historial de localización/compartición?

¿Entiendo correctamente que no hay manera de cambiar quién es el propietario (es decir, promover al niño de "usuario" a "propietario" y simultáneamente degradarme a mí mismo de "propietario" a "usuario")?

¿Sería mejor idea, en cambio, en el entorno del propietario del dispositivo, eliminar mi cuenta de Google y añadir la del niño?

Me gustaría evitar los experimentos largos si es posible, pero responderé a mi propia pregunta si se da el caso.

Mi principal pregunta concreta es: ¿cuáles serían las consecuencias de estos dos enfoques?

  1. el niño continúa como usuario; yo soy el propietario
  2. añadir la cuenta de google del niño al perfil del propietario del dispositivo; eliminar la mía

Actualización: añadir a kid como usuario no es sencillo; aparentemente (y lógicamente) hay todo un nuevo espacio de nombres de montaje por lo que el directorio de TitaniumBackup que copié al directorio /sdcard de la cuenta principal no es visible, e incluso un shell adb elevado no tiene acceso a /storage/emulated/10 (que deduzco que es donde vive el nuevo espacio de almacenamiento). No pude molestarme en solucionar esto, así que eliminé el usuario del niño.

Luego intenté añadir la cuenta del niño junto a la mía, pero eso no funciona porque está gestionada por el enlace familiar; primero tengo que eliminar mi cuenta. Hice eso, y al tratar de añadir la cuenta del niño entro en un bucle interminable en el que dice que instalará el gestor de enlace familiar, hago clic en siguiente, y me informa de que este paso es necesario; repite hasta la saciedad. I piense en el problema puede ser que no pase la comprobación de SafetyNet, porque logcat tiene líneas como

06-16 15:49:05.915 11187 11187 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:49:05.916 11187 12931 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.918  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at EdHooker_1d32fd428893610d3914110116abed3745926464.hook(Unknown Source:185)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:15914)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:81)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.919  1444  3734 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.921 11187 12930 I BaseTask: ScheduleSafetyNetJobTask finished (5 ms). [CONTEXT service_id=42 ]
06-16 15:49:05.928  1444  3734 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (1954917)
06-16 15:49:05.938 10959 10959 W DeviceAdminAdd: Unable to set profile owner post-setup, no default supervisorprofile owner defined
06-16 15:49:05.993 11187 11187 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:49:05.994 11187 12931 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:49:05.996 11187 11187 W System.err: java.lang.Exception: Result is true
06-16 15:49:05.996 11187 11187 W System.err:    at m.cqr.c(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:49:05.996 11187 11187 W System.err:    at m.cqv.j(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.gms.kids.setup.fragment.KidSetupFragment.cm(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.gms.kids.setup.fragment.ActivateProfileOwnerFragment.onActivityResult(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:49:05.996 11187 11187 W System.err:    at com.google.android.chimera.FragmentProxy.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at fd.ht(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:49:05.996 11187 11187 W System.err:    at aes.g(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:49:05.996 11187 11187 W System.err:    at eic.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at eih.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edb.support_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edg.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.996 11187 11187 W System.err:    at edg.public_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:49:05.997 11187 11187 W System.err:    at rie.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):4)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.Activity.dispatchActivityResult(Activity.java:8310)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.deliverResults(ActivityThread.java:5002)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5050)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
06-16 15:49:05.997 11187 11187 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:106)
06-16 15:49:05.997 11187 11187 W System.err:    at android.os.Looper.loop(Looper.java:223)
06-16 15:49:05.997 11187 11187 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7660)
06-16 15:49:05.997 11187 11187 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.997 11187 11187 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
06-16 15:49:05.997 11187 11187 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge: java.lang.ClassCastException: java.lang.String cannot be cast to android.content.Intent
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.aviraxp.adblocker.continued.hook.h$a.beforeHookedMethod(ShortcutHook.java:2)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:61)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_1d32fd428893610d3914110116abed3745926464.hook(Unknown Source:185)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:15914)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at java.lang.reflect.Method.invoke(Native Method)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:81)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at EdHooker_d6cb3615b07510db932c119335b0668763709397.hook(Unknown Source:171)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16728)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2283)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2867)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransactInternal(Binder.java:1154)
06-16 15:49:05.999  1444  4198 E EdXposed-Bridge:       at android.os.Binder.execTransact(Binder.java:1123)
06-16 15:49:06.003 11187 12930 I BaseTask: ScheduleSafetyNetJobTask finished (9 ms). [CONTEXT service_id=42 ]

He desactivado EdXposed, dejándome con

06-16 15:58:55.797  6486  6486 W DeviceAdminAdd: Unable to set profile owner post-setup, no default supervisorprofile owner defined
06-16 15:58:55.852  6269  6269 I BaseTask: ScheduleSafetyNetJobTask started. [CONTEXT service_id=42 ]
06-16 15:58:55.853  6269  6634 I KidsJobScheduler: schedule job DEVICE_SETUP_SAFETY_NET [CONTEXT service_id=42 ]
06-16 15:58:55.855  6269  6269 W System.err: java.lang.Exception: Result is true
06-16 15:58:55.855  6269  6269 W System.err:    at m.cqr.c(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:58:55.855  6269  6269 W System.err:    at m.cqv.j(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.gms.kids.setup.fragment.KidSetupFragment.cm(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:0)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.gms.kids.setup.fragment.ActivateProfileOwnerFragment.onActivityResult(:com.google.android.gms.policy_kids@211980404@211980404057.377187554.377187554:6)
06-16 15:58:55.855  6269  6269 W System.err:    at com.google.android.chimera.FragmentProxy.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at fd.ht(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:58:55.855  6269  6269 W System.err:    at aes.g(:com.google.android.gms@212116046@21.21.16 (150400-378233385):6)
06-16 15:58:55.855  6269  6269 W System.err:    at eic.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at eih.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at edb.support_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.855  6269  6269 W System.err:    at edg.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.856  6269  6269 W System.err:    at edg.public_onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):0)
06-16 15:58:55.856  6269  6269 W System.err:    at rie.onActivityResult(:com.google.android.gms@212116046@21.21.16 (150400-378233385):4)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.Activity.dispatchActivityResult(Activity.java:8310)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.deliverResults(ActivityThread.java:5002)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5050)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
06-16 15:58:55.856  6269  6269 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:106)
06-16 15:58:55.856  6269  6269 W System.err:    at android.os.Looper.loop(Looper.java:223)
06-16 15:58:55.856  6269  6269 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7660)
06-16 15:58:55.856  6269  6269 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
06-16 15:58:55.856  6269  6269 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
06-16 15:58:55.856  6269  6269 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
06-16 15:58:55.858  6269  6618 I BaseTask: ScheduleSafetyNetJobTask finished (6 ms). [CONTEXT service_id=42 ]
06-16 15:58:55.952  1395  2506 I system_server: oneway function results will be dropped but finished with status OK and parcel size 4

Ahora voy a desactivar todos los módulos de Magisk uno por uno para ver si finalmente puedo superar este paso.

Actualización 2: el problema del bucle "activar el gestor de enlaces familiares" podría no estar relacionado con Magisk en absoluto. Ha sido reportado a Google, por ejemplo, en https://support.google.com/googleplay/thread/15850322/activation-family-link-manager-error-message-loop?hl=en y https://support.google.com/googleplay/forum/AAAA8CVOtD88XvbDIUaPF0/?hl=en&gpf=%23!topic%2Fplay%2F8XvbDIUaPF0 . Para al menos una persona, hacks como hacer manualmente la aplicación de enlace familiar un administrador del dispositivo en " Ajustes -> Seguridad -> Administrador del dispositivo", así como "Ajustes -> Administrador de aplicaciones -> Restablecer las preferencias de la aplicación" ayudó, pero "parece que el Family Link Manager espera ser capaz de abrir la aplicación de configuración en una página específica, que no parece existir en todos los dispositivos. Esto también ocurre en la Xiaomi MiPad... https://xiaomi.eu/community/threads/first-xiaomi-eu-rom-released-for-mipad-4.46337/

La configuración manual de la aplicación como administrador del dispositivo no permite superar esta comprobación", lo que puedo confirmar.

Actualización 3: He superado el bucle "A continuación, activará el Family Link" convirtiendo manualmente com.google.android.apps.kids.familylinkhelper y com.google.android.apps.kids.familylinkmanager en las aplicaciones del sistema. Con Magisk, /system/app es un tmpfs escribible (es decir, no persistente); he vuelto a montar / (que el verdadero /system/app está encendido) rw utilizando mount -n / -o rw,remount y luego bind lo montó bajo un directorio: mkdir /mnt/root; mount --bind / /mnt/root . He copiado los dos APKs de mis copias de seguridad de Titanium a /mnt/root/system/app Luego se reinició y la configuración de Family Link pudo completarse.

Ahora vamos a ver cómo restaurar todas las aplicaciones desde la copia de seguridad.

1 votos

Logcat muestra claramente que el módulo Xposed com.aviraxp.adblocker.continued tiene un error. Usted debe presentar un problema en su Proyecto Github .

0 votos

Gracias; lo he notificado.

0 votos

En problema notificado en GitHub sigue abierto. El desarrollo parece estancado. Me pregunto si alguien ha bifurcado AdBlocker Reborn y reanudado el desarrollo.

1voto

Gady Puntos 1473

Tengo una respuesta parcial:

  • Al parecer, no se pueden añadir dos cuentas de Google al mismo perfil de usuario de Android si una de las cuentas es para un menor (y, por tanto, bajo la supervisión de Family Link).
  • La función de usuarios múltiples es relativamente compleja y rompe suposiciones como "puedo acceder a todos los archivos a través de adb shell si es necesario".
  • La forma de cambiar el propietario del dispositivo es eliminar primero todas las cuentas de Google del perfil del propietario y, a continuación, añadir la cuenta de Google del nuevo propietario.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X