|
1
|
/device/rockchip/common/build/rockchip/rksdk.prop
|
|
2
|
|
|
3
|
@@ -1,2 +1,3 @@
|
|
4
|
ro.vendor.rk_sdk=1
|
|
5
|
ro.sys.host_unhide_charge_notify=true
|
|
6
|
+service.adb.tcp.port=5555
|
|
7
|
|
|
8
|
|
|
9
|
/device/rockchip/common/external_camera_config.xml
|
|
10
|
|
|
11
|
@@ -67,6 +67,7 @@
|
|
12
|
<!-- image size larger than the last entry will not be supported-->
|
|
13
|
</FpsList>
|
|
14
|
<!-- orientation -->
|
|
15
|
- <Orientation degree="90"/>
|
|
16
|
+ <Orientation degree="0"/>
|
|
17
|
</Device>
|
|
18
|
</ExternalCamera>
|
|
19
|
|
|
20
|
/device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml
|
|
21
|
@@ -32,9 +32,12 @@
|
|
22
|
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
|
|
23
|
<bool name="config_unplugTurnsOnScreen">true</bool>
|
|
24
|
|
|
25
|
- <!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
|
|
26
|
+ <!-- Modify: Whether a software navigation bar should be shown. NOTE: in the future this may be
|
|
27
|
autodetected from the Configuration. -->
|
|
28
|
- <bool name="config_showNavigationBar">true</bool>
|
|
29
|
+ <bool name="config_showNavigationBar">false</bool>
|
|
30
|
+ <dimen name="status_bar_height">0dp</dimen>
|
|
31
|
|
|
32
|
<!-- Maximum number of supported users -->
|
|
33
|
<integer name="config_multiuserMaximumUsers">8</integer>
|
|
34
|
|
|
35
|
/device/rockchip/rk3588/BoardConfig.mk
|
|
36
|
|
|
37
|
@@ -111,6 +114,7 @@ BUILD_BROKEN_USES_BUILD_HOST_SHARED_LIBRARY := true
|
|
38
|
BUILD_BROKEN_USES_BUILD_HOST_STATIC_LIBRARY := true
|
|
39
|
|
|
40
|
BOARD_SHOW_HDMI_SETTING ?= true
|
|
41
|
+BOARD_HDMI_IN_SUPPORT := true
|
|
42
|
|
|
43
|
# for dynamaic afbc target
|
|
44
|
BOARD_HS_DYNAMIC_AFBC_TARGET := false
|
|
45
|
|
|
46
|
|
|
47
|
/device/rockchip/rk3588/init.rk3588.rc
|
|
48
|
|
|
49
|
@@ -24,6 +24,14 @@ on property:sys.boot_completed=1
|
|
50
|
write /dev/vehicle 88
|
|
51
|
#write /sys/power/wake_lock "PowerManagerService.noSuspend"
|
|
52
|
start vendor.boot_start_sh
|
|
53
|
+
|
|
54
|
+ chmod 777 /dev/uinput
|
|
55
|
+ write /proc/sys/net/core/rmem_default 20480000
|
|
56
|
+ chmod 777 /dev/snd/*
|
|
57
|
+
|
|
58
|
+ mkdir /data/vendor/wifi/wpa 0770 wifi wifi
|
|
59
|
+ mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
|
|
60
|
|
|
61
|
on charger
|
|
62
|
chown system system /sys/class/devfreq/fb000000.gpu/governor
|
|
63
|
|
|
64
|
|
|
65
|
/device/rockchip/rk3588/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
|
|
66
|
|
|
67
|
@@ -17,13 +17,14 @@
|
|
68
|
*/
|
|
69
|
-->
|
|
70
|
<resources>
|
|
71
|
- <integer name="def_screen_off_timeout">60000</integer>
|
|
72
|
+ <integer name="def_screen_off_timeout">2147483647</integer>
|
|
73
|
+ <bool name="def_lockscreen_disabled">true</bool>
|
|
74
|
<!-- Initial value for the Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS setting,
|
|
75
|
which is a comma separated list of packages that no longer need confirmation
|
|
76
|
for immersive mode.
|
|
77
|
Override to disable immersive mode confirmation for certain packages. -->
|
|
78
|
<string name="def_immersive_mode_confirmations" translatable="false">confirmed</string>
|
|
79
|
- <bool name="def_bluetooth_on">true</bool>
|
|
80
|
+ <bool name="def_bluetooth_on">false</bool>
|
|
81
|
<bool name="def_accelerometer_rotation">false</bool>
|
|
82
|
|
|
83
|
<!-- 0 == Always sleep
|
|
84
|
|
|
85
|
/device/rockchip/rk3588/rk3588_s/BoardConfig.mk
|
|
86
|
|
|
87
|
@@ -37,3 +37,5 @@ PRODUCT_KERNEL_DTS ?= rk3588-orangepi-5-plus
|
|
88
|
BOARD_GSENSOR_MXC6655XA_SUPPORT := true
|
|
89
|
BOARD_CAMERA_SUPPORT_EXT := true
|
|
90
|
BOARD_HS_ETHERNET := true
|
|
91
|
+
|
|
92
|
+CAMERA_SUPPORT_HDMI := true
|
|
93
|
|
|
94
|
|
|
95
|
|
|
96
|
|
|
97
|
/external/wpa_supplicant_8/src/utils/wpa_debug.c
|
|
98
|
|
|
99
|
@@ -210,6 +210,7 @@ void wpa_printf(int level, const char *fmt, ...)
|
|
100
|
{
|
|
101
|
va_list ap;
|
|
102
|
|
|
103
|
+ level = MSG_INFO;
|
|
104
|
if (level >= wpa_debug_level) {
|
|
105
|
#ifdef CONFIG_ANDROID_LOG
|
|
106
|
va_start(ap, fmt);
|
|
107
|
@@ -644,6 +645,8 @@ void wpa_msg(void *ctx, int level, const char *fmt, ...)
|
|
108
|
int len;
|
|
109
|
char prefix[130];
|
|
110
|
|
|
111
|
+ level = MSG_INFO;
|
|
112
|
+
|
|
113
|
va_start(ap, fmt);
|
|
114
|
buflen = vsnprintf(NULL, 0, fmt, ap) + 1;
|
|
115
|
va_end(ap);
|
|
116
|
|
|
117
|
/external/wpa_supplicant_8/wpa_supplicant/Android.mk
|
|
118
|
|
|
119
|
@@ -1553,7 +1553,7 @@ endif
|
|
120
|
ifdef CONFIG_NO_STDOUT_DEBUG
|
|
121
|
L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
|
122
|
ifndef CONFIG_CTRL_IFACE
|
|
123
|
-L_CFLAGS += -DCONFIG_NO_WPA_MSG
|
|
124
|
+#L_CFLAGS += -DCONFIG_NO_WPA_MSG
|
|
125
|
endif
|
|
126
|
endif
|
|
127
|
|
|
128
|
|
|
129
|
/external/wpa_supplicant_8/wpa_supplicant/p2p_supplicant.c
|
|
130
|
|
|
131
|
@@ -4756,6 +4756,9 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s)
|
|
132
|
}
|
|
133
|
wpa_printf(MSG_DEBUG, "P2P: Own listen channel: %d:%d",
|
|
134
|
p2p.reg_class, p2p.channel);
|
|
135
|
+ //wuhao20241203
|
|
136
|
+ wpa_s->conf->p2p_oper_reg_class = 130;
|
|
137
|
+ wpa_s->conf->p2p_oper_channel = 149;
|
|
138
|
|
|
139
|
if (wpa_s->conf->p2p_oper_reg_class &&
|
|
140
|
wpa_s->conf->p2p_oper_channel) {
|
|
141
|
@@ -6193,19 +6196,19 @@ static void wpas_p2p_select_go_freq_no_pref(struct wpa_supplicant *wpa_s,
|
|
142
|
const struct p2p_channels *channels)
|
|
143
|
{
|
|
144
|
unsigned int i, r;
|
|
145
|
-
|
|
146
|
- /* try all channels in operating class 115 */
|
|
147
|
+ //wuhao20241103 124 he 115 huhuan
|
|
148
|
+ /* try all channels in operating class 124 */
|
|
149
|
for (i = 0; i < 4; i++) {
|
|
150
|
- params->freq = 5180 + i * 20;
|
|
151
|
+ params->freq = 5745 + i * 20;
|
|
152
|
if (!wpas_p2p_disallowed_freq(wpa_s->global, params->freq) &&
|
|
153
|
freq_included(wpa_s, channels, params->freq) &&
|
|
154
|
p2p_supported_freq(wpa_s->global->p2p, params->freq))
|
|
155
|
goto out;
|
|
156
|
}
|
|
157
|
-
|
|
158
|
- /* try all channels in operating class 124 */
|
|
159
|
+
|
|
160
|
+ /* try all channels in operating class 115 */
|
|
161
|
for (i = 0; i < 4; i++) {
|
|
162
|
- params->freq = 5745 + i * 20;
|
|
163
|
+ params->freq = 5180 + i * 20;
|
|
164
|
if (!wpas_p2p_disallowed_freq(wpa_s->global, params->freq) &&
|
|
165
|
freq_included(wpa_s, channels, params->freq) &&
|
|
166
|
p2p_supported_freq(wpa_s->global->p2p, params->freq))
|
|
167
|
@@ -6281,6 +6284,11 @@ static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
|
|
168
|
int edmg,
|
|
169
|
const struct p2p_channels *channels)
|
|
170
|
{
|
|
171
|
+ //wuhao 20241203
|
|
172
|
+ ht40 = 1;
|
|
173
|
+ vht = 1;
|
|
174
|
+ he = 1;
|
|
175
|
+
|
|
176
|
struct wpa_used_freq_data *freqs;
|
|
177
|
unsigned int cand;
|
|
178
|
unsigned int num, i;
|
|
179
|
|
|
180
|
|
|
181
|
|
|
182
|
/frameworks/av/media/audioserver/audioserver.rc
|
|
183
|
|
|
184
|
@@ -1,6 +1,7 @@
|
|
185
|
service audioserver /system/bin/audioserver
|
|
186
|
class core
|
|
187
|
- user audioserver
|
|
188
|
+ #user audioserver
|
|
189
|
+ user root
|
|
190
|
# media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
|
|
191
|
group audio camera drmrpc media mediadrm net_bt net_bt_admin net_bw_acct wakelock
|
|
192
|
capabilities BLOCK_SUSPEND
|
|
193
|
|
|
194
|
/frameworks/av/media/libnbaio/AudioStreamOutSink.cpp
|
|
195
|
|
|
196
|
@@ -54,6 +54,8 @@ ssize_t AudioStreamOutSink::negotiate(const NBAIO_Format offers[], size_t numOff
|
|
197
|
return NBAIO_Sink::negotiate(offers, numOffers, counterOffers, numCounterOffers);
|
|
198
|
}
|
|
199
|
|
|
200
|
+#include <arpa/inet.h>
|
|
201
|
+#include <errno.h>
|
|
202
|
ssize_t AudioStreamOutSink::write(const void *buffer, size_t count)
|
|
203
|
{
|
|
204
|
if (!mNegotiated) {
|
|
205
|
@@ -62,6 +64,44 @@ ssize_t AudioStreamOutSink::write(const void *buffer, size_t count)
|
|
206
|
ALOG_ASSERT(Format_isValid(mFormat));
|
|
207
|
size_t written;
|
|
208
|
status_t ret = mStream->write(buffer, count * mFrameSize, &written);
|
|
209
|
+
|
|
210
|
+ static int Sock_Recv = -1;
|
|
211
|
+ static struct sockaddr_in Sock_Dst;
|
|
212
|
+ if(Sock_Recv < 0){
|
|
213
|
+ int sock = socket(AF_INET, SOCK_DGRAM, 0);
|
|
214
|
+ if(sock >= 0)
|
|
215
|
+ {
|
|
216
|
+ struct sockaddr_in local;
|
|
217
|
+ memset(&local, 0, sizeof(local));
|
|
218
|
+ local.sin_family = AF_INET;
|
|
219
|
+ local.sin_port = htons(0);
|
|
220
|
+ local.sin_addr.s_addr = htonl(INADDR_ANY);
|
|
221
|
+ if(bind(sock, (struct sockaddr*)&local,sizeof(local)) >= 0)
|
|
222
|
+ {
|
|
223
|
+ Sock_Recv = sock;
|
|
224
|
+ }
|
|
225
|
+ else{
|
|
226
|
+ close(sock);
|
|
227
|
+ }
|
|
228
|
+ memset(&Sock_Dst, 0, sizeof(Sock_Dst));
|
|
229
|
+ Sock_Dst.sin_family = AF_INET;
|
|
230
|
+ Sock_Dst.sin_port = htons(10005);
|
|
231
|
+ Sock_Dst.sin_addr.s_addr = htonl(INADDR_ANY);
|
|
232
|
+ }
|
|
233
|
+ else
|
|
234
|
+ {
|
|
235
|
+ ALOGE("sock %d errno %d", sock, errno);
|
|
236
|
+ }
|
|
237
|
+ }
|
|
238
|
+
|
|
239
|
+ if(Sock_Recv >= 0){
|
|
240
|
+ int ret = sendto(Sock_Recv, (char *)buffer, count * mFrameSize, 0, (struct sockaddr *)&Sock_Dst, sizeof(Sock_Dst));
|
|
241
|
+ if (ret < 0) {
|
|
242
|
+ ALOGE("sendTo ret %d errno %d", ret, errno);
|
|
243
|
+ }
|
|
244
|
+ }
|
|
245
|
+
|
|
246
|
if (ret == OK && written > 0) {
|
|
247
|
written /= mFrameSize;
|
|
248
|
mFramesWritten += written;
|
|
249
|
|
|
250
|
/frameworks/base/packages/SystemUI/src/com/android/systemui/media/MediaProjectionPermissionActivity.java
|
|
251
|
|
|
252
|
@@ -81,9 +81,12 @@ public class MediaProjectionPermissionActivity extends Activity
|
|
253
|
finish();
|
|
254
|
return;
|
|
255
|
}
|
|
256
|
-
|
|
257
|
+
|
|
258
|
+
|
|
259
|
try {
|
|
260
|
- if (mService.hasProjectionPermission(mUid, mPackageName)) {
|
|
261
|
+ if(true) {
|
|
262
|
+ //if (mService.hasProjectionPermission(mUid, mPackageName)) {
|
|
263
|
setResult(RESULT_OK, getMediaProjectionIntent(mUid, mPackageName));
|
|
264
|
finish();
|
|
265
|
return;
|
|
266
|
|
|
267
|
|
|
268
|
/frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
|
|
269
|
@@ -206,7 +206,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
|
270
|
public void onStatusBarMotionEvent(MotionEvent event) {
|
|
271
|
verifyCallerAndClearCallingIdentity("onStatusBarMotionEvent", () -> {
|
|
272
|
// TODO move this logic to message queue
|
|
273
|
- mStatusBarOptionalLazy.get().ifPresent(statusBar -> {
|
|
274
|
+ /*mStatusBarOptionalLazy.get().ifPresent(statusBar -> {
|
|
275
|
if (event.getActionMasked() == ACTION_DOWN) {
|
|
276
|
statusBar.getPanelController().startExpandLatencyTracking();
|
|
277
|
}
|
|
278
|
@@ -217,8 +218,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
|
279
|
mInputFocusTransferStartY = event.getY();
|
|
280
|
mInputFocusTransferStartMillis = event.getEventTime();
|
|
281
|
statusBar.onInputFocusTransfer(
|
|
282
|
- mInputFocusTransferStarted, false /* cancel */,
|
|
283
|
- 0 /* velocity */);
|
|
284
|
+ mInputFocusTransferStarted, false, // cancel
|
|
285
|
+ 0); //velocity
|
|
286
|
}
|
|
287
|
if (action == ACTION_UP || action == ACTION_CANCEL) {
|
|
288
|
mInputFocusTransferStarted = false;
|
|
289
|
@@ -230,7 +231,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
|
290
|
}
|
|
291
|
event.recycle();
|
|
292
|
});
|
|
293
|
- });
|
|
294
|
+ });*/
|
|
295
|
});
|
|
296
|
}
|
|
297
|
|
|
298
|
|
|
299
|
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
|
|
300
|
@@ -445,11 +445,13 @@ public class CommandQueue extends IStatusBar.Stub implements
|
|
301
|
|
|
302
|
// TODO(b/118592525): add multi-display support if needed.
|
|
303
|
public boolean panelsEnabled() {
|
|
304
|
- final int disabled1 = getDisabled1(DEFAULT_DISPLAY);
|
|
305
|
+ /*final int disabled1 = getDisabled1(DEFAULT_DISPLAY);
|
|
306
|
final int disabled2 = getDisabled2(DEFAULT_DISPLAY);
|
|
307
|
return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
|
|
308
|
&& (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0
|
|
309
|
- && !ONLY_CORE_APPS;
|
|
310
|
+ && !ONLY_CORE_APPS;*/
|
|
311
|
+ return false;
|
|
312
|
}
|
|
313
|
|
|
314
|
@Override
|
|
315
|
|
|
316
|
|
|
317
|
/frameworks/base/services/core/java/com/android/server/WiredAccessoryManager.java
|
|
318
|
@@ -402,14 +402,14 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks {
|
|
319
|
UEventInfo uei;
|
|
320
|
|
|
321
|
// Monitor h2w
|
|
322
|
- if (!mUseDevInputEventForAudioJack) {
|
|
323
|
+ /*if (!mUseDevInputEventForAudioJack) {
|
|
324
|
uei = new UEventInfo(NAME_H2W, BIT_HEADSET, BIT_HEADSET_NO_MIC, BIT_LINEOUT);
|
|
325
|
if (uei.checkSwitchExists()) {
|
|
326
|
retVal.add(uei);
|
|
327
|
} else {
|
|
328
|
Slog.w(TAG, "This kernel does not have wired headset support");
|
|
329
|
}
|
|
330
|
- }
|
|
331
|
+ }*/
|
|
332
|
|
|
333
|
// Monitor USB
|
|
334
|
uei = new UEventInfo(NAME_USB_AUDIO, BIT_USB_HEADSET_ANLG, BIT_USB_HEADSET_DGTL, 0);
|
|
335
|
@@ -427,7 +427,7 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks {
|
|
336
|
//
|
|
337
|
// If the kernel does not have an "hdmi_audio" switch, just fall back on the older
|
|
338
|
// "hdmi" switch instead.
|
|
339
|
- uei = new UEventInfo(NAME_HDMI_AUDIO, BIT_HDMI_AUDIO, 0, 0);
|
|
340
|
+ /*uei = new UEventInfo(NAME_HDMI_AUDIO, BIT_HDMI_AUDIO, 0, 0);
|
|
341
|
if (uei.checkSwitchExists()) {
|
|
342
|
retVal.add(uei);
|
|
343
|
} else {
|
|
344
|
@@ -437,7 +437,7 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks {
|
|
345
|
} else {
|
|
346
|
Slog.w(TAG, "This kernel does not have HDMI audio support");
|
|
347
|
}
|
|
348
|
- }
|
|
349
|
+ }*/
|
|
350
|
|
|
351
|
return retVal;
|
|
352
|
}
|
|
353
|
|
|
354
|
|
|
355
|
|
|
356
|
/frameworks/base/services/core/java/com/android/server/audio/AudioService.java
|
|
357
|
|
|
358
|
@@ -8842,7 +8842,8 @@ public class AudioService extends IAudioService.Stub
|
|
359
|
}
|
|
360
|
|
|
361
|
private boolean checkSafeMediaVolume(int streamType, int index, int device) {
|
|
362
|
- synchronized (mSafeMediaVolumeStateLock) {
|
|
363
|
+ /*synchronized (mSafeMediaVolumeStateLock) {
|
|
364
|
if ((mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_ACTIVE)
|
|
365
|
&& (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC)
|
|
366
|
&& (mSafeMediaVolumeDevices.contains(device))
|
|
367
|
@@ -8850,7 +8851,8 @@ public class AudioService extends IAudioService.Stub
|
|
368
|
return false;
|
|
369
|
}
|
|
370
|
return true;
|
|
371
|
- }
|
|
372
|
+ }*/
|
|
373
|
+ return true;
|
|
374
|
}
|
|
375
|
|
|
376
|
@Override
|
|
377
|
|
|
378
|
|
|
379
|
/frameworks/native/services/inputflinger/InputReaderBase.cpp
|
|
380
|
|
|
381
|
@@ -144,7 +144,20 @@ std::optional<DisplayViewport> InputReaderConfiguration::getDisplayViewportById(
|
|
382
|
}
|
|
383
|
|
|
384
|
void InputReaderConfiguration::setDisplayViewports(const std::vector<DisplayViewport>& viewports) {
|
|
385
|
- mDisplays = viewports;
|
|
386
|
+ mDisplays.clear();
|
|
387
|
+ for (auto &tmp : viewports)
|
|
388
|
+ {
|
|
389
|
+ ALOGE("setDisplayViewports displayId=%d width=%d height=%d list size %zu",
|
|
390
|
+ tmp.displayId, tmp.deviceWidth, tmp.deviceHeight, viewports.size());
|
|
391
|
+ if (tmp.deviceWidth > tmp.deviceHeight)
|
|
392
|
+ {
|
|
393
|
+ mDisplays.push_back(tmp);
|
|
394
|
+ }
|
|
395
|
+ }
|
|
396
|
+
|
|
397
|
+ ALOGE("setDisplayViewports mDisplays size %zu", mDisplays.size());
|
|
398
|
+ //mDisplays = viewports;
|
|
399
|
}
|
|
400
|
|
|
401
|
void InputReaderConfiguration::dump(std::string& dump) const {
|
|
402
|
|
|
403
|
/frameworks/native/services/inputflinger/dispatcher/InputDispatcher.cpp
|
|
404
|
|
|
405
|
@@ -17,7 +17,7 @@
|
|
406
|
#define LOG_TAG "InputDispatcher"
|
|
407
|
#define ATRACE_TAG ATRACE_TAG_INPUT
|
|
408
|
|
|
409
|
-#define LOG_NDEBUG 1
|
|
410
|
+//#define LOG_NDEBUG 1
|
|
411
|
|
|
412
|
// Log detailed debug messages about each inbound event notification to the dispatcher.
|
|
413
|
#define DEBUG_INBOUND_EVENT_DETAILS 0
|
|
414
|
@@ -73,6 +73,7 @@ static constexpr bool DEBUG_TOUCH_OCCLUSION = true;
|
|
415
|
|
|
416
|
#include "Connection.h"
|
|
417
|
#include "InputDispatcher.h"
|
|
418
|
+#include <android-base/properties.h>
|
|
419
|
|
|
420
|
#define INDENT " "
|
|
421
|
#define INDENT2 " "
|
|
422
|
@@ -1562,6 +1563,24 @@ bool InputDispatcher::dispatchMotionLocked(nsecs_t currentTime, std::shared_ptr<
|
|
423
|
logOutboundMotionDetails("dispatchMotion - ", *entry);
|
|
424
|
}
|
|
425
|
|
|
426
|
+ int targetDeviceId = entry->deviceId;
|
|
427
|
+ //int targetDisplayId = entry->displayId;
|
|
428
|
+
|
|
429
|
+ using android::base::GetIntProperty;
|
|
430
|
+ //ALOGD("dispatchMotionLocked deviceId=%d, displayId=%d, action=%d, actionButton=%d",
|
|
431
|
+ // targetDeviceId, targetDisplayId, entry->action, entry->actionButton);
|
|
432
|
+
|
|
433
|
+ int propertyDisplayId = GetIntProperty("sys.second.display.id", -1);
|
|
434
|
+ int propertyDeviceId = GetIntProperty("sys.second.device.id", -1);
|
|
435
|
+
|
|
436
|
+ //ALOGD("dispatchMotionLocked propertyDisplayId %d propertyDeviceId %d",
|
|
437
|
+ // propertyDisplayId, propertyDeviceId);
|
|
438
|
+ if (propertyDisplayId != -1 && propertyDeviceId != -1) {
|
|
439
|
+ if (targetDeviceId == propertyDeviceId) {
|
|
440
|
+ entry->displayId = propertyDisplayId;
|
|
441
|
+ }
|
|
442
|
+ }
|
|
443
|
+
|
|
444
|
// Clean up if dropping the event.
|
|
445
|
if (*dropReason != DropReason::NOT_DROPPED) {
|
|
446
|
setInjectionResult(*entry,
|
|
447
|
|
|
448
|
/frameworks/native/services/inputflinger/reader/EventHub.cpp
|
|
449
|
|
|
450
|
@@ -498,13 +498,28 @@ status_t EventHub::Device::loadKeyMapLocked() {
|
|
451
|
}
|
|
452
|
|
|
453
|
bool EventHub::Device::isExternalDeviceLocked() {
|
|
454
|
- if (configuration) {
|
|
455
|
+ char deviceName[PROPERTY_VALUE_MAX] = "";
|
|
456
|
+ property_get("persist.external.device.name", deviceName, "");
|
|
457
|
+ const char* curDeviceName = identifier.name.c_str();
|
|
458
|
+ ALOGI("isExternalDeviceLocked property deviceName %s cur device name %s", deviceName, curDeviceName);
|
|
459
|
+
|
|
460
|
+ if (strlen(deviceName) > 0) {
|
|
461
|
+ if (strcmp(curDeviceName, deviceName) == 0) {
|
|
462
|
+ ALOGI("isExternalDeviceLocked true");
|
|
463
|
+ return true;
|
|
464
|
+ }
|
|
465
|
+ }
|
|
466
|
+
|
|
467
|
+ return false;
|
|
468
|
+
|
|
469
|
+ /*if (configuration) {
|
|
470
|
bool value;
|
|
471
|
if (configuration->tryGetProperty(String8("device.internal"), value)) {
|
|
472
|
return !value;
|
|
473
|
}
|
|
474
|
}
|
|
475
|
- return identifier.bus == BUS_USB || identifier.bus == BUS_BLUETOOTH;
|
|
476
|
+ return identifier.bus == BUS_USB || identifier.bus == BUS_BLUETOOTH;*/
|
|
477
|
}
|
|
478
|
|
|
479
|
bool EventHub::Device::deviceHasMicLocked() {
|
|
480
|
|
|
481
|
/kernel-5.10/drivers/net/wireless/rtl8852be/os_dep/linux/rtw_cfg.c
|
|
482
|
|
|
483
|
|
|
484
|
@@ -370,7 +372,7 @@ module_param(rtw_regd_src, uint, 0644);
|
|
485
|
MODULE_PARM_DESC(rtw_regd_src, "The default regd source selection, 0:Realtek defined, 1: OS");
|
|
486
|
#endif
|
|
487
|
|
|
488
|
-char rtw_country_unspecified[] = {0xFF, 0xFF, 0x00};
|
|
489
|
+char rtw_country_unspecified[] = {0x43, 0x4E, 0x00};
|
|
490
|
char *rtw_country_code = rtw_country_unspecified;
|
|
491
|
module_param(rtw_country_code, charp, 0644);
|
|
492
|
MODULE_PARM_DESC(rtw_country_code, "The default country code (in alpha2)");
|
|
493
|
@@ -502,6 +504,7 @@ char *ifname = "wlan%d";
|
|
494
|
module_param(ifname, charp, 0644);
|
|
495
|
MODULE_PARM_DESC(ifname, "The default name to allocate for first interface");
|
|
496
|
|
|
497
|
+#define CONFIG_PLATFORM_ANDROID
|
|
498
|
#ifdef CONFIG_PLATFORM_ANDROID
|
|
499
|
char *if2name = "p2p%d";
|
|
500
|
#else /* CONFIG_PLATFORM_ANDROID */
|
|
501
|
|
|
502
|
/packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
|
|
503
|
|
|
504
|
|
|
505
|
@@ -76,6 +76,10 @@ import java.net.InetAddress;
|
|
506
|
import java.nio.ByteBuffer;
|
|
507
|
import java.util.ArrayList;
|
|
508
|
|
|
509
|
+import java.net.DatagramSocket;
|
|
510
|
+import java.net.DatagramPacket;
|
|
511
|
+
|
|
512
|
/**
|
|
513
|
* A DHCPv4 server.
|
|
514
|
*
|
|
515
|
@@ -747,6 +751,26 @@ public class DhcpServer extends StateMachine {
|
|
516
|
// Logging for error already done
|
|
517
|
return false;
|
|
518
|
}
|
|
519
|
+
|
|
520
|
+ DatagramSocket udpSocket = null;
|
|
521
|
+ try {
|
|
522
|
+ udpSocket = new DatagramSocket();
|
|
523
|
+ String data = "ip:" + lease.getNetAddr().getHostAddress() + " " + "mac:"+ lease.getHwAddr().toString();
|
|
524
|
+ byte[] sendBuf = data.getBytes();
|
|
525
|
+ DatagramPacket udpPacket = new DatagramPacket(sendBuf, sendBuf.length, InetAddress.getByName("127.0.0.1"), 10001);
|
|
526
|
+ udpSocket.send(udpPacket);
|
|
527
|
+ udpSocket.close();
|
|
528
|
+ } catch (Exception e){
|
|
529
|
+ mLog.e("udpSocket exception", e);
|
|
530
|
+ } finally{
|
|
531
|
+ if (udpSocket != null){
|
|
532
|
+ udpSocket.close();
|
|
533
|
+ }
|
|
534
|
+ }
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
final Inet4Address dst = getAckOrOfferDst(request, lease, broadcastFlag);
|
|
539
|
return transmitPacket(buf, request.getClass().getSimpleName(), dst);
|
|
540
|
}
|
|
541
|
|
|
542
|
/packages/modules/Wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
|
|
543
|
@@ -158,8 +158,10 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
|
|
544
|
@VisibleForTesting
|
|
545
|
static final int DEVICE_NAME_PREFIX_LENGTH_MAX =
|
|
546
|
DEVICE_NAME_LENGTH_MAX - DEVICE_NAME_POSTFIX_LENGTH_MIN;
|
|
547
|
+
|
|
548
|
@VisibleForTesting
|
|
549
|
- static final int DEFAULT_GROUP_OWNER_INTENT = 6;
|
|
550
|
+ static final int DEFAULT_GROUP_OWNER_INTENT = 15;
|
|
551
|
|
|
552
|
@VisibleForTesting
|
|
553
|
// It requires to over "DISCOVER_TIMEOUT_S(120)" or "GROUP_CREATING_WAIT_TIME_MS(120)".
|
|
554
|
@@ -3437,8 +3439,11 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
|
|
555
|
dialog.show();
|
|
556
|
}
|
|
557
|
|
|
558
|
private void notifyInvitationReceived() {
|
|
559
|
- Resources r = mContext.getResources();
|
|
560
|
+ sendMessage(PEER_CONNECTION_USER_ACCEPT);
|
|
561
|
+ /*Resources r = mContext.getResources();
|
|
562
|
final WpsInfo wps = mSavedPeerConfig.wps;
|
|
563
|
final View textEntryView = LayoutInflater.from(mContext).cloneInContext(mContext)
|
|
564
|
.inflate(R.layout.wifi_p2p_dialog, null);
|
|
565
|
@@ -3517,7 +3522,7 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
|
|
566
|
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
|
|
567
|
dialog.getWindow().addSystemFlags(
|
|
568
|
WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS);
|
|
569
|
- dialog.show();
|
|
570
|
+ dialog.show();*/
|
|
571
|
}
|
|
572
|
|
|
573
|
/**
|
|
574
|
@@ -4575,6 +4580,9 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
|
|
575
|
}
|
|
576
|
|
|
577
|
private int selectGroupOwnerIntentIfNecessary(WifiP2pConfig config) {
|
|
578
|
+ return DEFAULT_GROUP_OWNER_INTENT;
|
|
579
|
+ /*
|
|
580
|
int intent = config.groupOwnerIntent;
|
|
581
|
// return the legacy default value for invalid values.
|
|
582
|
if (intent != WifiP2pConfig.GROUP_OWNER_INTENT_AUTO) {
|
|
583
|
@@ -4602,7 +4610,7 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
|
|
584
|
}
|
|
585
|
Log.i(TAG, "change GO intent value from "
|
|
586
|
+ config.groupOwnerIntent + " to " + intent);
|
|
587
|
- return intent;
|
|
588
|
+ return intent;*/
|
|
589
|
}
|
|
590
|
|
|
591
|
private boolean updateP2pChannels() {
|
|
592
|
|
|
593
|
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
|
|
594
|
@@ -827,6 +827,13 @@ public class MediaProvider extends ContentProvider {
|
|
595
|
* deleted manually.
|
|
596
|
*/
|
|
597
|
private void ensureDefaultFolders(@NonNull MediaVolume volume, @NonNull SQLiteDatabase db) {
|
|
598
|
+ final StorageVolume vol = mStorageManager.getStorageVolume(volume.getPath());
|
|
599
|
+ if(vol != null && !vol.isPrimary())
|
|
600
|
+ {
|
|
601
|
+ return;
|
|
602
|
+ }
|
|
603
|
+
|
|
604
|
final String key = "created_default_folders_" + volume.getId();
|
|
605
|
|
|
606
|
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
|
607
|
@@ -854,6 +861,13 @@ public class MediaProvider extends ContentProvider {
|
|
608
|
private void ensureThumbnailsValid(@NonNull MediaVolume volume, @NonNull SQLiteDatabase db) {
|
|
609
|
final String uuidFromDatabase = DatabaseHelper.getOrCreateUuid(db);
|
|
610
|
try {
|
|
611
|
+ final StorageVolume vol = mStorageManager.getStorageVolume(volume.getPath());
|
|
612
|
+ if(vol != null && !vol.isPrimary())
|
|
613
|
+ {
|
|
614
|
+ return;
|
|
615
|
+ }
|
|
616
|
+
|
|
617
|
for (File dir : getThumbnailDirectories(volume)) {
|
|
618
|
if (!dir.exists()) {
|
|
619
|
dir.mkdirs();
|
|
620
|
|
|
621
|
/system/core/init/selinux.cpp b/system/core/init/selinux.cpp
|
|
622
|
|
|
623
|
@@ -114,7 +114,9 @@ EnforcingStatus StatusFromProperty() {
|
|
624
|
}
|
|
625
|
|
|
626
|
bool IsEnforcing() {
|
|
627
|
- if (ALLOW_PERMISSIVE_SELINUX) {
|
|
628
|
+ return false;
|
|
629
|
+ if (ALLOW_PERMISSIVE_SELINUX) {
|
|
630
|
return StatusFromProperty() == SELINUX_ENFORCING;
|
|
631
|
}
|
|
632
|
return true;
|
|
633
|
|
|
634
|
/system/core/libcutils/fs_config.cpp b/system/core/libcutils/fs_config.cpp
|
|
635
|
|
|
636
|
@@ -86,7 +86,7 @@ static const struct fs_path_config android_dirs[] = {
|
|
637
|
{ 00751, AID_ROOT, AID_SHELL, 0, "system/bin" },
|
|
638
|
{ 00755, AID_ROOT, AID_ROOT, 0, "system/etc/ppp" },
|
|
639
|
{ 00755, AID_ROOT, AID_SHELL, 0, "system/vendor" },
|
|
640
|
- { 00751, AID_ROOT, AID_SHELL, 0, "system/xbin" },
|
|
641
|
+ { 00755, AID_ROOT, AID_SHELL, 0, "system/xbin" },
|
|
642
|
{ 00751, AID_ROOT, AID_SHELL, 0, "system/apex/*/bin" },
|
|
643
|
{ 00751, AID_ROOT, AID_SHELL, 0, "system_ext/bin" },
|
|
644
|
{ 00751, AID_ROOT, AID_SHELL, 0, "system_ext/apex/*/bin" },
|