You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.3 KiB
Python
52 lines
2.3 KiB
Python
from tools import container
|
|
from tools.helper import shell
|
|
from tools.logger import Logger
|
|
import re
|
|
|
|
class AndroidId:
|
|
def get_id(self):
|
|
if not container.is_running():
|
|
Logger.error("Please make sure Waydroid is running and Gapps has been installed!")
|
|
return
|
|
|
|
try:
|
|
# Get list of user IDs and their names using 'pm list users'
|
|
users_raw = shell(
|
|
arg="pm list users",
|
|
env="ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n"
|
|
)
|
|
user_map = {}
|
|
for line in users_raw.strip().splitlines():
|
|
match = re.search(r'UserInfo\{(\d+):([^:}]+)', line)
|
|
if match:
|
|
user_id, username = match.groups()
|
|
user_map[user_id] = username
|
|
except Exception as e:
|
|
Logger.error(f"Failed to parse user list: {e}")
|
|
return
|
|
|
|
print("------------------------------------------------------------------------")
|
|
print(f"{'Username':<20} | {'User ID':^10} | {'GSF Android ID'}")
|
|
print("------------------------------------------------------------------------")
|
|
|
|
for user_id, username in user_map.items():
|
|
try:
|
|
db_path = f"/data/user/{user_id}/com.google.android.gsf/databases/gservices.db"
|
|
query = f"sqlite3 {db_path} \"select value from main where name = 'android_id';\""
|
|
gsf_id = shell(
|
|
arg=query,
|
|
env="ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n"
|
|
).strip()
|
|
|
|
if gsf_id:
|
|
print(f"{username:<20} | {user_id:^10} | {gsf_id}")
|
|
else:
|
|
print(f"{username:<20} | {user_id:^10} | (not found)")
|
|
except:
|
|
print(f"{username:<20} | {user_id:^10} | (query error)")
|
|
|
|
print("------------------------------------------------------------------------")
|
|
print(" ^----- Open https://google.com/android/uncertified/?pli=1")
|
|
print(" Login with your Google ID, then submit the form with the ID(s) shown above.")
|
|
|