Merge "Move SdkSetup app into device/generic/goldfish" am: 16a8d0fa8e am: d42dd28394 am: 895aa04c46

Original change: https://android-review.googlesource.com/c/platform/development/+/2221506

Change-Id: I1261af5c66d13d560535ae05fafbe51833ef1cbd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2022-09-21 23:26:54 +00:00
committed by Automerger Merge Worker
5 changed files with 0 additions and 294 deletions

View File

@@ -1,25 +0,0 @@
package {
// See: http://go/android-license-faq
default_applicable_licenses: ["Android-Apache-2.0"],
}
android_app {
name: "SdkSetup",
privileged: true,
srcs: ["**/*.java"],
platform_apis: true,
certificate: "platform",
optimize: {
enabled: false,
},
system_ext_specific: true,
required: ["privapp_whitelist_com.android.sdksetup"],
}
prebuilt_etc {
name: "privapp_whitelist_com.android.sdksetup",
system_ext_specific: true,
sub_dir: "permissions",
src: "com.android.sdksetup.xml",
filename_from_src: true,
}

View File

@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.sdksetup">
<!-- For miscellaneous settings -->
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SYSTEM_SETTINGS" />
<uses-permission android:name="android.permission.SET_KEYBOARD_LAYOUT" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<application>
<activity android:name="DefaultActivity"
android:excludeFromRecents="true"
android:exported="true">
<intent-filter android:priority="3">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.BACKUP" />
</manifest>

View File

@@ -1,52 +0,0 @@
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# If you don't need to do a full clean build but would like to touch
# a file or delete some intermediate files, add a clean step to the end
# of the list. These steps will only be run once, if they haven't been
# run before.
#
# E.g.:
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
#
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
# files that are missing or have been moved.
#
# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
# Use $(OUT_DIR) to refer to the "out" directory.
#
# If you need to re-do something that's already mentioned, just copy
# the command and add it to the bottom of the list. E.g., if a change
# that you made last week required touching a file and a change you
# made today requires touching the same file, just copy the old
# touch step and add it to the end of the list.
#
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
# For example:
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/product/priv-app/SdkSetup)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/product/priv-app/SdkSetup)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
<!--
This XML file declares which signature|privileged permissions should be granted to privileged
applications on GMS or Google-branded devices.
It allows additional grants on top of privapp-permissions-platform.xml
-->
<permissions>
<privapp-permissions package="com.android.sdksetup">
<permission name="android.permission.BACKUP"/>
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
</permissions>

View File

@@ -1,143 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.sdksetup;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.input.InputManager;
import android.hardware.input.KeyboardLayout;
import android.location.LocationManager;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiConfiguration;
import android.provider.Settings;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.InputDevice;
/**
* Entry point for SDK SetupWizard.
*
*/
public class DefaultActivity extends Activity {
private static final String TAG = "SdkSetup";
private static final int ADD_NETWORK_FAIL = -1;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Edit Settings only for Emulator
if (Build.IS_EMULATOR) {
// Add network with SSID "AndroidWifi"
WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"AndroidWifi\"";
config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
WifiManager mWifiManager = getApplicationContext().getSystemService(WifiManager.class);
int netId = mWifiManager.addNetwork(config);
if (netId == ADD_NETWORK_FAIL || mWifiManager.enableNetwork(netId, true)) {
Log.e(TAG, "Unable to add Wi-Fi network AndroidWifi.");
}
// Set physical keyboard layout based on the system property set by emulator host.
String layoutName = SystemProperties.get("vendor.qemu.keyboard_layout");
String displaySettingsName = SystemProperties.get("ro.boot.qemu.display.settings.xml");
String deviceName = "qwerty2";
InputDevice device = getKeyboardDevice(deviceName);
if (device != null && !layoutName.isEmpty()) {
setKeyboardLayout(device, layoutName);
}
// Add a persistent setting to allow other apps to know the device has been provisioned.
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);
// Disables a dialog shown on adb install execution.
Settings.Global.putInt(getContentResolver(), Settings.Global.PACKAGE_VERIFIER_INCLUDE_ADB, 0);
// Enable the GPS.
// Not needed since this SDK will contain the Settings app.
Settings.Secure.putString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
LocationManager.GPS_PROVIDER);
// enable install from non market
Settings.Secure.putInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 1);
Settings.Global.putInt(getContentResolver(), Settings.Global.ADB_ENABLED, 1);
// Disable offload wifi tethering
Settings.Global.putInt(getContentResolver(), Settings.Global.TETHER_OFFLOAD_DISABLED, 1);
// b/193418404
// the following blocks, TODO: find out why and fix it. disable this for now.
// TelephonyManager mTelephony = getApplicationContext().getSystemService(TelephonyManager.class);
// mTelephony.setPreferredNetworkTypeBitmask(TelephonyManager.NETWORK_TYPE_BITMASK_NR);
if ("freeform".equals(displaySettingsName)) {
Settings.Global.putInt(getContentResolver(), "sf", 1);
Settings.Global.putString(getContentResolver(), Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, "1");
Settings.Global.putString(getContentResolver(), Settings.Global.DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES, "1");
Settings.Global.putString(getContentResolver(), Settings.Global.DEVELOPMENT_WM_DISPLAY_SETTINGS_PATH, "vendor/etc/display_settings_freeform.xml");
} else if ("resizable".equals(displaySettingsName)) {
// Enable auto rotate for resizable AVD
Settings.System.putString(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, "1");
}
}
// remove this activity from the package manager.
PackageManager pm = getPackageManager();
ComponentName name = new ComponentName(this, DefaultActivity.class);
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
// terminate the activity.
finish();
}
private InputDevice getKeyboardDevice(String keyboardDeviceName) {
int[] deviceIds = InputDevice.getDeviceIds();
for (int deviceId : deviceIds) {
InputDevice inputDevice = InputDevice.getDevice(deviceId);
if (inputDevice != null
&& inputDevice.supportsSource(InputDevice.SOURCE_KEYBOARD)
&& inputDevice.getName().equals(keyboardDeviceName)) {
return inputDevice;
}
}
return null;
}
private void setKeyboardLayout(InputDevice keyboardDevice, String layoutName) {
InputManager im = InputManager.getInstance();
KeyboardLayout[] keyboardLayouts =
im.getKeyboardLayoutsForInputDevice(keyboardDevice.getIdentifier());
for (KeyboardLayout keyboardLayout : keyboardLayouts) {
if (keyboardLayout.getDescriptor().endsWith(layoutName)) {
im.setCurrentKeyboardLayoutForInputDevice(
keyboardDevice.getIdentifier(), keyboardLayout.getDescriptor());
return;
}
}
}
}