Skip to content

Instantly share code, notes, and snippets.

@joshuatz
Created January 4, 2020 18:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshuatz/5a51ed5ae3576bd4d43644df1c81c619 to your computer and use it in GitHub Desktop.
Save joshuatz/5a51ed5ae3576bd4d43644df1c81c619 to your computer and use it in GitHub Desktop.
TP-Link Kasa Android Manifest
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="29" android:compileSdkVersionCodename="10" package="com.tplink.kasa_android" platformBuildVersionCode="900" platformBuildVersionName="2.18.0.900">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<permission android:name="com.tplink.kasa_android.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="com.tplink.kasa_android.permission.C2D_MESSAGE"/>
<application android:allowBackup="false" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_launcher_2_0" android:label="@string/app_name" android:name="com.tplink.smarthome.core.AppContext" android:resizeableActivity="false" android:roundIcon="@mipmap/ic_launcher_2_0_round" android:supportsRtl="false" android:theme="@style/AppTheme" android:uiOptions="splitActionBarWhenNarrow">
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false"/>
<service android:exported="false" android:label="Application Manager Service" android:name="com.tplink.hellotp.service.AppManagerService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="Device Manager Service" android:name="com.tplink.hellotp.service.DeviceManagerService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="Send Verification Email Service" android:name="com.tplink.hellotp.service.SendVerificationEmailService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="Refresh Token Service" android:name="com.tplink.hellotp.features.tokenrefresh.RefreshTokenService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="Send HelloIOTCloud call" android:name="com.tplink.hellotp.service.HelloIOTCloudService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="get country list service" android:name="com.tplink.hellotp.service.accountsetting.CountryListService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="create account setting service" android:name="com.tplink.hellotp.service.accountsetting.CreateAccountSettingService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="sync local userconsent" android:name="com.tplink.hellotp.service.legalconsent.SyncUnLoggedUserConsent" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="clear notification count" android:name="com.tplink.hellotp.pushnotification.helper.ClearNotificationCountService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="Create universal overheat notification setting if it has been created" android:name="com.tplink.hellotp.features.activitycenterold.setting.overheatsetting.OverheatNotificationSettingCreateService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:label="load scenes" android:name="com.tplink.hellotp.features.scene.service.LoadScenesService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:name="com.tplink.hellotp.service.appstartuptaskexecutor.AppStartUpTaskExecutor" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:name="com.tplink.hellotp.features.accountmanagement.login.postlogin.PostLoginTasksService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:name="com.tplink.hellotp.features.accountmanagement.logout.postlogout.PostLogoutTasksService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<service android:exported="false" android:name="com.tplink.hellotp.pushnotification.CloudFCMListenerService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service android:name="com.tplink.hellotp.pushnotification.CloudInstanceIDListenerService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service android:exported="false" android:name="com.tplink.hellotp.pushnotification.RegistrationIntentService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<activity android:label="@string/app_name" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.SplashScreenActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.tplink.smarthome.ScheduleEditActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.smarthome.ScheduleActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.smarthome.ModifyPortraitActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.smarthome.SettingNameActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="stateAlwaysVisible"/>
<activity android:name="com.tplink.smarthome.AntiTheftActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.device.firmwareupdate.FirmwareUpdateActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.schedule.SmartREAddScheduleActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.device.deviceavailability.AddNewDeviceActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.device.deviceavailability.preconfigureddevices.PreconfiguredDevicesActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.tplink.hellotp.features.setup.SoftAPSetupActivity" android:screenOrientation="portrait"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.tplink.hellotp.features.setup.iotdevice.IOTDeviceSetupActivity" android:parentActivityName="com.tplink.hellotp.activity.WelcomeActivity" android:screenOrientation="portrait">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.WelcomeActivity"/>
</activity>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="Test Onboarding" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.TestOnboardingActivity" android:screenOrientation="portrait"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/app_name" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.MainActivity" android:parentActivityName="com.tplink.hellotp.activity.home.HomeActivity" android:screenOrientation="portrait">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.home.HomeActivity"/>
</activity>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/app_name" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.CredentialsActivity" android:parentActivityName="com.tplink.hellotp.activity.home.HomeActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2" android:windowSoftInputMode="adjustResize">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.home.HomeActivity"/>
</activity>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.EnterPasswordActivity" android:parentActivityName="com.tplink.hellotp.activity.home.HomeActivity" android:screenOrientation="portrait">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.home.HomeActivity"/>
</activity>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.FoundDevicesActivity" android:parentActivityName="com.tplink.hellotp.activity.home.HomeActivity" android:screenOrientation="portrait">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.home.HomeActivity"/>
</activity>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:name="com.tplink.hellotp.activity.home.HomeActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBarShadow" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.activity.PromiscuousSetupActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.activity.REQuickSetupActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.activity.RENetworkDetailsActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.activity.REReconfigActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.activity.LocationAssistantActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.scene.builder.SceneBuilderActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.scene.builder.edit.SceneEditActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.scene.builder.device.viewer.SceneControlsViewerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.scene.builder.device.light.SceneLightControlActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.scene.builder.device.light_old.SceneLightControlActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.light_old.SmartBulbDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.setup.quicksetup.QuickSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.setup.smartiotrouter.SRQuickSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartiotrouter.wifisetting.SRWifiSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartiotrouter.guestwifisetting.SRGuestWifiSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartiotrouter.screenaccesspin.SRSetPinActivity" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysVisible"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.base.DeviceSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.setup.smartre.SmartREQuickSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.setup.smartre.SmartREReconfigActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.smartre.SmartREDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.smarthome.LBScheduleEditActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.device.schedule.list.DeviceScheduleActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.smarthome.LBChooseLightStateScheduleActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.powerstats.light.SBPowerUsageActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBDeviceSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBEditPresetActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBChooseLightStatePresetActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBDefaultStateActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBSelectDefaultStateActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.feedback.AppFeedbackActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize|stateVisible"/>
<activity android:name="com.tplink.hellotp.features.powerstats.smartplug.SPEnergyActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.common.time.devicetimehelper.DeviceTimeHelperActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="stateHidden"/>
<activity android:name="com.tplink.hellotp.features.device.detail.smartiotrouter.SRDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.clientlist.smartrouter.SRWifiClientListActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.device.detail.zdevice.ZDeviceDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.rules.builder.RuleBuilderActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.rules.builder.RulePickerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.devicepicker.NotificationPickerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.rules.builder.edit.RuleEditActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<receiver android:label="@string/text_kasa_scene" android:name="com.tplink.hellotp.appwidget.MainAppWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_provider_main"/>
</receiver>
<service android:exported="false" android:name="com.tplink.hellotp.appwidget.scenes.SceneRemoteViewsService" android:permission="android.permission.BIND_REMOTEVIEWS"/>
<receiver android:label="@string/text_kasa_device" android:name="com.tplink.hellotp.appwidget.onoff.OnOffAppWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_provider_on_off"/>
</receiver>
<activity android:excludeFromRecents="true" android:name="com.tplink.hellotp.appwidget.onoff.OnOffAppWidgetConfigureActivity" android:screenOrientation="portrait" android:taskAffinity="com.tplink.kasa_android.appwidget.task" android:theme="@style/AppTheme2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<receiver android:label="@string/android_camera_widget_title" android:name="com.tplink.hellotp.appwidget.camera.singleevent.SingleCameraEventAppWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_camera_single_provider_info"/>
</receiver>
<service android:exported="false" android:label="Bind camera activity data" android:name="com.tplink.hellotp.appwidget.camera.singleevent.SingleCameraEventAppWidgetService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<activity android:excludeFromRecents="true" android:name="com.tplink.hellotp.appwidget.camera.singleevent.CameraAppWidgetConfigureActivity" android:screenOrientation="portrait" android:taskAffinity="com.tplink.kasa_android.appwidget.task" android:theme="@style/AppTheme2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<activity android:name="com.tplink.hellotp.features.networkdetail.SmartReNetworkDetailsActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.powerstats.smartextender.RunTimeActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.countdown.DeviceCountDownActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.clientlist.ClientListActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.locationassistant.IOTLocationAssistantActivity" android:screenOrientation="portrait"/>
<activity android:name="com.tplink.hellotp.features.device.detail.base.DeviceDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.base.classa.ClassADeviceDetailActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.device.detail.camera.CameraDetailActivity" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.camera.videosummary.VideoSummaryActivity" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.manualwansetup.ManualWanSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.devicedeleter.BoundDeviceRemovePromptActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.ui.web.WebViewerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.light.picker.LightPickerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.detail.common.preset_old.PresetSelectionActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.activitycenterold.setting.settinglist.SettingListActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.activitycenterold.setting.builder.SettingBuilderActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.sensitivitysettings.KCSensitivitySettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.activityzone.KCActivityZoneSettingActivity" android:screenOrientation="landscape" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.activitycenterold.eventhslplayer.ActivityEventHlsPlayerActivity" android:parentActivityName="com.tplink.hellotp.activity.home.HomeActivity" android:theme="@style/AppTheme.NoActionBar">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activity.home.HomeActivity"/>
</activity>
<activity android:name="com.tplink.hellotp.features.device.schedule.builder.base.DeviceScheduleBuilderActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.kasaweb.KasaCareWebActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.promotions.KasaAppPromotionsWebActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.onboarding.postsetupfirmwareupdate.PostSetupFirmwareActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.thirdpartyintegration.Ifttt.IFTTTSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.setup.common.PSECertification.PSECertificationJPActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:excludeFromRecents="true" android:name="com.tplink.hellotp.features.onboarding.OnboardingDeviceActivity" android:theme="@style/AppTheme2.Translucent.NoTitleBar"/>
<activity android:name="com.tplink.hellotp.features.onboarding.wss.WifiSimpleSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.wss.accountlesscontrol.AccountlessControlActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.softap.SoftAPSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.hubsetup.CameraHubSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.hubsetup.hubchildsetup.CameraHubChildSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.physicalinstallation.PhysicalInstallationActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.wifisetup.WifiSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2" android:windowSoftInputMode="adjustResize|stateHidden"/>
<activity android:name="com.tplink.hellotp.features.onboarding.settingsetup.SettingSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.onboarding.settingsetup.multioutletplug.MultiOutletSettingSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.onboarding.installguide.InstallGuideActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.extensioncord.ExtensionCordInstallGuideActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.dimmercalibration.DimmerCalibrationActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.physicalinstallation.camera.legacy.LegacyPhysicalInstallationActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.successfulsetup.SuccessfulSetupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:launchMode="singleTask" android:name="com.tplink.hellotp.features.appforceupdate.AppForceUpdateActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.rotation.KCSetRotationActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.nightvision.KCNightVisionActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.camera.resolution.KCSetResolutionActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.legalconsent.returninguser.LegalUpdatesActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:excludeFromRecents="true" android:exported="false" android:launchMode="singleTask" android:name="com.tplink.hellotp.appreset.AppResetPromptActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:launchMode="singleTask" android:name="com.tplink.hellotp.features.activitycenterold.list.filterpicker.ActivityCenterFilterPickerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.accountmanagement.electiveconsent.ElectiveConsentsActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.groups.manage.create.CreateGroupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.groups.detail.GroupDetailsActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.groups.manage.update.GroupSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.groups.manage.delete.RemoveGroupActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.powerstats.smartplug.SmartPlugUsageActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.device.notification.base.DeviceNotificationSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.smartactions.manage.create.SmartActionsCreateActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<activity android:name="com.tplink.hellotp.features.smartactions.manage.edit.SmartActionsEditActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.smartactions.manage.picker.SmartActionsPickerActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize"/>
<provider android:authorities="com.tplink.kasa_android.fileprovider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/photo_file_paths"/>
</provider>
<activity android:excludeFromRecents="true" android:name="com.tplink.hellotp.appwidget.preset.PresetAppWidgetConfigureActivity" android:screenOrientation="portrait" android:taskAffinity="com.tplink.kasa_android.appwidget.task" android:theme="@style/AppTheme2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<receiver android:label="@string/text_kasa_device" android:name="com.tplink.hellotp.appwidget.preset.PresetAppWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_preset_provider_info"/>
</receiver>
<service android:exported="false" android:name="com.tplink.hellotp.appwidget.preset.PresetRemoteViewsService" android:permission="android.permission.BIND_REMOTEVIEWS"/>
<receiver android:label="@string/text_kasa_scene" android:name="com.tplink.hellotp.appwidget.scenes.single.SingleSceneWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_provider_single_scene"/>
</receiver>
<activity android:excludeFromRecents="true" android:name="com.tplink.hellotp.appwidget.scenes.single.SingleSceneWidgetConfigureActivity" android:screenOrientation="portrait" android:taskAffinity="com.tplink.kasa_android.appwidget.task" android:theme="@style/AppTheme2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<activity android:name="com.tplink.hellotp.features.device.camera.mediaplayer.MediaPlayerActivity" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.onboarding.featuretutorial.OnboardingDeviceFeatureTutorialActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.featuretutorial.appfeature.AppFeatureTutorialActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.common.featuretutorial.DeviceFeatureTutorialActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.kasacare.planview.KasaCarePlanViewActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.devicesettings.smartbulb_old.SBCustomizeIconActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.rules.rulelist.RuleListActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name="com.tplink.hellotp.features.lightingeffects.LightingEffectsActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:exported="true" android:launchMode="singleTask" android:name="com.tplink.hellotp.deeplink.DeeplinkHandlerActivity" android:theme="@style/AppTheme.NoActionBar">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="kasa"/>
<data android:scheme="kasa-dev"/>
</intent-filter>
</activity>
<activity android:name="com.tplink.hellotp.features.device.detail.camera.cvr.CameraCVRActivity" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.cvrsetting.CVRSettingActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.kasacarefreetrial.KasaCareFreeTrialActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:name="com.tplink.hellotp.features.onboarding.kasacarefreetrial.web.FreeTrialWebActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme2"/>
<activity android:exported="false" android:label="" android:name="pub.devrel.easypermissions.AppSettingsDialogHolderActivity" android:theme="@style/EasyPermissions.Transparent"/>
<service android:exported="true" android:name="com.google.firebase.messaging.FirebaseMessagingService">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service android:name="com.google.firebase.components.ComponentDiscoveryService">
<meta-data android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
</service>
<receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
<receiver android:enabled="true" android:exported="true" android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<receiver android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="com.tplink.kasa_android"/>
</intent-filter>
</receiver>
<service android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdService">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<provider android:authorities="com.tplink.kasa_android.firebaseinitprovider" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
<activity android:exported="false" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<provider android:authorities="com.tplink.kasa_android.crashlyticsinitprovider" android:exported="false" android:initOrder="90" android:name="com.crashlytics.android.CrashlyticsInitProvider"/>
<meta-data android:name="ignore" android:value="ignore"/>
<activity android:name="pl.brightinventions.slf4android.NotifyDeveloperDialogDisplayActivity" android:theme="@android:style/Theme.NoDisplay"/>
</application>
</manifest>
@tnmendes
Copy link

Hey Joshua, I see that you are also investigating the Kasa app, I have been too. In one of the last updates, they added two-factor authentication.
I'm trying to figure out how kasa is doing the 2FA. Right now I sow in the code from android app that have "getVerifyCode", "checkVerifyCode", "registerWithVerifyCode".
But sadly I still can't get any of those requests to work, do you know anything about this?

@joshuatz
Copy link
Author

@tnmendes Most of my research (which was limited) was into the API, rather than the app itself - you can find it here. But no, unfortunately I don't know anything about how the new 2FA requests work.

@tnmendes
Copy link

ahhh okiy, thank you anyway 😃

@Sternbach-Software
Copy link

FWIW, I just made an Android SDK for the API: https://github.com/Sternbach-Software/KasaTPLinkAndroidSDK . It currently can get a list of devices, get a devices status, and turn devices on and off. I worked hard to make the SDK's API service very user-friendly, because I couldn't find anything available.

@Sternbach-Software
Copy link

@joshuatz Would you consider adding that to your list? https://docs.joshuatz.com/random/tp-link-kasa/

@joshuatz
Copy link
Author

joshuatz commented Dec 4, 2022

@Sternbach-Software Absolutely - that looks neat, nice work! Added.

@Sternbach-Software
Copy link

Sternbach-Software commented Dec 5, 2022

@joshuatz You know that your last name means sugar in Yiddish/German, right? I couldn't resist pointing it out - I'm very into languages and genealogy.

@tnmendes
Copy link

tnmendes commented Dec 5, 2022

since you guys are interested in finding new stuff here is a link with a lot of information regarding TP-link, that you can maybe get something interesting out of this

http://iot.tplinkra.com/1.0/sdk-config

@joshuatz
Copy link
Author

@joshuatz You know that your last name means sugar in Yiddish/German, right? I couldn't resist pointing it out - I'm very into languages and genealogy.

@Sternbach-Software Haha, yes, I have heard that before. We don't have much in the way of historical records, so I can't say for certain, but I like to imagine that my ancestors were confectioners 🍬 🍪

@joshuatz
Copy link
Author

since you guys are interested in finding new stuff here is a link with a lot of information regarding TP-link, that you can maybe get something interesting out of this

http://iot.tplinkra.com/1.0/sdk-config

Interesting find!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment