android-checkin

by nviennot

nviennot /android-checkin

Pretends to be a phone to get a legit android_id

126 Stars 32 Forks Last release: Not found 8 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Android Checkin

Android Checkin allows you to register a google account as if you were on android.
It checks in google's servers by passing a Galaxy Nexus / JellyBean profile, and returns a valid android_id usable on Google Play.

The parameters identifying the device are randomized (but valid).

TODO: Add other devices, like tablets.

Usage

Programmatically:

/* Returns the android_id */
new com.android.checkin.Checkin.new(email, password).checkin()

From the command line: ```shell

Outputs the registered android_id

java -jar android-checkin.jar ```

The request

You might be curious to know what is being sent:

AndroidCheckinRequest.newBuilder()
    // imei
    .setId(0)
    .setDigest("1-929a0dca0eee55513280171a8585da7dcd3700f8")
    .setCheckin(AndroidCheckinProto.newBuilder()
        .setBuild(AndroidBuildProto.newBuilder()
            .setId("google/yakju/maguro:4.1.1/JRO03C/398337:user/release-keys")
            .setProduct("tuna")
            .setCarrier("Google")
            .setRadio("I9250XXLA2")
            .setBootloader("PRIMELA03")
            .setClient("android-google")
            .setTimestamp(new Date().getTime()/1000)
            .setGoogleServices(16)
            .setDevice("maguro")
            .setSdkVersion(16)
            .setModel("Galaxy Nexus")
            .setManufacturer("Samsung")
            .setBuildProduct("yakju")
            .setOtaInstalled(false))
        .setLastCheckinMsec(0)
        .addEvent(AndroidEventProto.newBuilder()
            .setTag("event_log_start")
            // value
            .setTimeMsec(new Date().getTime()))
        // stat
        // requestedGroup
        .setCellOperator("310260") // T-Mobile
        .setSimOperator("310260")  // T-Mobile
        .setRoaming("mobile-notroaming")
        .setUserNumber(0))
    // desiredBuild
    .setLocale("en_US")
    .setLoggingId(loggingId)
    .addMacAddr(macAddr)
    .setMeid(meid)
    .addAccountCookie("[" + this.email + "]")
    .addAccountCookie(this.authGsf)
    .setTimeZone("America/New_York")
    // securityToken
    .setVersion(3)
    .addOtaCert("71Q6Rn2DDZl1zPDVaaeEHItd")
    .setSerialNumber(serial)
    // esn
    .setDeviceConfiguration(DeviceConfigurationProto.newBuilder()
        .setTouchScreen(3)
        .setKeyboard(1)
        .setNavigation(1)
        .setScreenLayout(2)
        .setHasHardKeyboard(false)
        .setHasFiveWayNavigation(false)
        .setScreenDensity(320)
        .setGlEsVersion(131072)
        .addAllSystemSharedLibrary(Arrays.asList(
            "android.test.runner",
            "com.android.future.usb.accessory",
            "com.android.location.provider",
            "com.android.nfc_extras",
            "com.google.android.maps",
            "com.google.android.media.effects",
            "com.google.widevine.software.drm",
            "javax.obex"))
        .addAllSystemAvailableFeature(Arrays.asList(
            "android.hardware.bluetooth",
            "android.hardware.camera",
            "android.hardware.camera.autofocus",
            "android.hardware.camera.flash",
            "android.hardware.camera.front",
            "android.hardware.faketouch",
            "android.hardware.location",
            "android.hardware.location.gps",
            "android.hardware.location.network",
            "android.hardware.microphone",
            "android.hardware.nfc",
            "android.hardware.screen.landscape",
            "android.hardware.screen.portrait",
            "android.hardware.sensor.accelerometer",
            "android.hardware.sensor.barometer",
            "android.hardware.sensor.compass",
            "android.hardware.sensor.gyroscope",
            "android.hardware.sensor.light",
            "android.hardware.sensor.proximity",
            "android.hardware.telephony",
            "android.hardware.telephony.gsm",
            "android.hardware.touchscreen",
            "android.hardware.touchscreen.multitouch",
            "android.hardware.touchscreen.multitouch.distinct",
            "android.hardware.touchscreen.multitouch.jazzhand",
            "android.hardware.usb.accessory",
            "android.hardware.usb.host",
            "android.hardware.wifi",
            "android.hardware.wifi.direct",
            "android.software.live_wallpaper",
            "android.software.sip",
            "android.software.sip.voip",
            "com.cyanogenmod.android",
            "com.cyanogenmod.nfc.enhanced",
            "com.google.android.feature.GOOGLE_BUILD",
            "com.nxp.mifare",
            "com.tmobile.software.themes"))
        .addAllNativePlatform(Arrays.asList(
            "armeabi-v7a",
            "armeabi"))
        .setScreenWidth(720)
        .setScreenHeight(1184)
        .addAllSystemSupportedLocale(Arrays.asList(
            "af", "af_ZA", "am", "am_ET", "ar", "ar_EG", "bg", "bg_BG",
            "ca", "ca_ES", "cs", "cs_CZ", "da", "da_DK", "de", "de_AT",
            "de_CH", "de_DE", "de_LI", "el", "el_GR", "en", "en_AU",
            "en_CA", "en_GB", "en_NZ", "en_SG", "en_US", "es", "es_ES",
            "es_US", "fa", "fa_IR", "fi", "fi_FI", "fr", "fr_BE",
            "fr_CA", "fr_CH", "fr_FR", "hi", "hi_IN", "hr", "hr_HR",
            "hu", "hu_HU", "in", "in_ID", "it", "it_CH", "it_IT", "iw",
            "iw_IL", "ja", "ja_JP", "ko", "ko_KR", "lt", "lt_LT", "lv",
            "lv_LV", "ms", "ms_MY", "nb", "nb_NO", "nl", "nl_BE",
            "nl_NL", "pl", "pl_PL", "pt", "pt_BR", "pt_PT", "rm",
            "rm_CH", "ro", "ro_RO", "ru", "ru_RU", "sk", "sk_SK", "sl",
            "sl_SI", "sr", "sr_RS", "sv", "sv_SE", "sw", "sw_TZ", "th",
            "th_TH", "tl", "tl_PH", "tr", "tr_TR", "ug", "ug_CN", "uk",
            "uk_UA", "vi", "vi_VN", "zh_CN", "zh_TW", "zu", "zu_ZA"))
        .addAllGlExtension(Arrays.asList(
            "GL_EXT_debug_marker",
            "GL_EXT_discard_framebuffer",
            "GL_EXT_multi_draw_arrays",
            "GL_EXT_shader_texture_lod",
            "GL_EXT_texture_format_BGRA8888",
            "GL_IMG_multisampled_render_to_texture",
            "GL_IMG_program_binary",
            "GL_IMG_read_format",
            "GL_IMG_shader_binary",
            "GL_IMG_texture_compression_pvrtc",
            "GL_IMG_texture_format_BGRA8888",
            "GL_IMG_texture_npot",
            "GL_IMG_vertex_array_object",
            "GL_OES_EGL_image",
            "GL_OES_EGL_image_external",
            "GL_OES_blend_equation_separate",
            "GL_OES_blend_func_separate",
            "GL_OES_blend_subtract",
            "GL_OES_byte_coordinates",
            "GL_OES_compressed_ETC1_RGB8_texture",
            "GL_OES_compressed_paletted_texture",
            "GL_OES_depth24",
            "GL_OES_depth_texture",
            "GL_OES_draw_texture",
            "GL_OES_egl_sync",
            "GL_OES_element_index_uint",
            "GL_OES_extended_matrix_palette",
            "GL_OES_fixed_point",
            "GL_OES_fragment_precision_high",
            "GL_OES_framebuffer_object",
            "GL_OES_get_program_binary",
            "GL_OES_mapbuffer",
            "GL_OES_matrix_get",
            "GL_OES_matrix_palette",
            "GL_OES_packed_depth_stencil",
            "GL_OES_point_size_array",
            "GL_OES_point_sprite",
            "GL_OES_query_matrix",
            "GL_OES_read_format",
            "GL_OES_required_internalformat",
            "GL_OES_rgb8_rgba8",
            "GL_OES_single_precision",
            "GL_OES_standard_derivatives",
            "GL_OES_stencil8",
            "GL_OES_stencil_wrap",
            "GL_OES_texture_cube_map",
            "GL_OES_texture_env_crossbar",
            "GL_OES_texture_float",
            "GL_OES_texture_half_float",
            "GL_OES_texture_mirrored_repeat",
            "GL_OES_vertex_array_object",
            "GL_OES_vertex_half_float")))
        // deviceClass
        // maxApkDownloadSizeMb
    .addMacAddrType("wifi")
    .setFragment(0)
    // userName

License

Android Checkin is released under the MIT license.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.