-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdevice_generic_common_gpdwin.diff
409 lines (387 loc) · 12.5 KB
/
device_generic_common_gpdwin.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
diff --git a/app/Android.mk b/app/Android.mk
index 0807688..61784b7 100644
--- a/app/Android.mk
+++ b/app/Android.mk
@@ -23,7 +23,7 @@ LOCAL_MODULE_SUFFIX := $$(suffix $(1))
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := $(1)
-LOCAL_DEX_PREOPT := false
+LOCAL_DEX_PREOPT := true
LOCAL_MODULE_TARGET_ARCH := $$(call get-prebuilt-src-arch,$$(notdir $$(patsubst %/,%,$$(dir $$(LOCAL_LIBS)))))
LOCAL_PREBUILT_JNI_LIBS := $$(addprefix @,$$(filter lib/$$(LOCAL_MODULE_TARGET_ARCH)/%,$$(LOCAL_LIBS)))
#$$(info $$(LOCAL_MODULE) LOCAL_MODULE_TARGET_ARCH=$$(LOCAL_MODULE_TARGET_ARCH))
diff --git a/device.mk b/device.mk
index 3d3468b..20131e9 100644
--- a/device.mk
+++ b/device.mk
@@ -14,6 +14,20 @@
# limitations under the License.
#
+GAPPS_VARIANT := pico
+
+PRODUCT_PACKAGES += \
+ Chrome \
+ YouTube \
+ Velvet
+
+GAPPS_FORCE_BROWSER_OVERRIDES := true
+
+GAPPS_EXCLUDED_PACKAGES := \
+ FaceLock \
+ AndroidPlatformServices \
+ PrebuiltGmsCoreInstantApps
+
PRODUCT_DIR := $(dir $(lastword $(filter-out device/common/%,$(filter device/%,$(ALL_PRODUCTS)))))
PRODUCT_PROPERTY_OVERRIDES := \
@@ -28,6 +42,12 @@ PRODUCT_PROPERTY_OVERRIDES := \
PRODUCT_DEFAULT_PROPERTY_OVERRIDES := \
ro.arch=x86 \
persist.rtc_local_time=1 \
+ ro.product.model=GPDWin \
+ ro.product.brand=GPD \
+ ro.product.name=GPDWin \
+ ro.product.device=Win \
+ ro.product.manufacturer=GPD \
+ ro.build.product=Win
PRODUCT_COPY_FILES := \
$(if $(wildcard $(PRODUCT_DIR)init.rc),$(PRODUCT_DIR)init.rc:root/init.rc) \
@@ -77,6 +97,15 @@ PRODUCT_COPY_FILES += \
$(foreach f,$(wildcard $(LOCAL_PATH)/alsa/*),$(f):$(subst $(LOCAL_PATH),system/etc,$(f))) \
$(foreach f,$(wildcard $(LOCAL_PATH)/idc/*.idc $(LOCAL_PATH)/keylayout/*.kl),$(f):$(subst $(LOCAL_PATH),system/usr,$(f)))
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/media/bootanimation.zip:system/media/bootanimation.zip
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/bin/headphone-listener:system/bin/headphone-listener
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/etc/houdini8_y.sfs:system/etc/houdini8_y.sfs
+
PRODUCT_TAGS += dalvik.gc.type-precise
PRODUCT_CHARACTERISTICS := tablet
@@ -84,6 +113,8 @@ PRODUCT_CHARACTERISTICS := tablet
PRODUCT_AAPT_CONFIG := normal large xlarge mdpi hdpi
PRODUCT_AAPT_PREF_CONFIG := mdpi
+PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=268
+
DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
# Get Android 8.0 HIDL HALs
@@ -111,7 +142,7 @@ $(call inherit-product-if-exists,hardware/libsensors/sensors.mk)
$(call inherit-product,frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk)
# Get GMS
-$(call inherit-product-if-exists,vendor/google/products/gms.mk)
+$(call inherit-product-if-exists,vendor/opengapps/build/opengapps-packages.mk)
# Get native bridge settings
$(call inherit-product-if-exists,$(LOCAL_PATH)/nativebridge/nativebridge.mk)
diff --git a/init.sh b/init.sh
index c92f375..96caf60 100644
--- a/init.sh
+++ b/init.sh
@@ -25,6 +25,20 @@ function init_misc()
# enable sdcardfs if /data is not mounted on tmpfs or 9p
mount | grep /data\ | grep -qE 'tmpfs|9p'
[ $? -ne 0 ] && modprobe sdcardfs
+
+ # fix the eMMC & micro sd lag spikes
+ echo -n -1 > /sys/block/mmcblk0/device/power/autosuspend_delay_ms
+ echo -n on > /sys/block/mmcblk0/device/power/control
+ echo -n -1 > /sys/block/mmcblk2/device/power/autosuspend_delay_ms
+ echo -n on > /sys/block/mmcblk2/device/power/control
+
+ # fix the sleep reboot issue
+ set_property sleep.state none
+
+ # place a magisk su symlink
+ mount -o remount,rw /
+ ln -s /sbin/magisk /sbin/su
+ mount -o remount,ro /
}
function init_hal_audio()
@@ -48,50 +62,6 @@ function init_hal_bluetooth()
type=$(cat $r/type)
[ "$type" = "wlan" -o "$type" = "bluetooth" ] && echo 1 > $r/state
done
-
- case "$PRODUCT" in
- T10*TA|HP*Omni*)
- BTUART_PORT=/dev/ttyS1
- set_property hal.bluetooth.uart.proto bcm
- [ -z "$(getprop sleep.state)" ] && set_property sleep.state none
- ;;
- MacBookPro8*)
- rmmod b43
- modprobe b43 btcoex=0
- modprobe btusb
- ;;
- # FIXME
- # Fix MacBook 2013-2015 (Air6/7&Pro11/12) BCM4360 ssb&wl conflict.
- MacBookPro11* | MacBookPro12* | MacBookAir6* | MacBookAir7*)
- rmmod b43
- rmmod ssb
- rmmod bcma
- rmmod wl
- modprobe wl
- modprobe btusb
- ;;
- *)
- for bt in $(busybox lsusb -v | awk ' /Class:.E0/ { print $9 } '); do
- chown 1002.1002 $bt && chmod 660 $bt
- done
- ;;
- esac
-
- if [ -n "$BTUART_PORT" ]; then
- set_property hal.bluetooth.uart $BTUART_PORT
- chown bluetooth.bluetooth $BTUART_PORT
- start btattach
- fi
-
- # rtl8723bs bluetooth
- if dmesg -t | grep -qE '8723bs.*BT'; then
- TTYSTRING=`dmesg -t | grep -E 'tty.*MMIO' | awk '{print $2}' | head -1`
- if [ -n "$TTYSTRING" ]; then
- echo "RTL8723BS BT uses $TTYSTRING for Bluetooth."
- ln -sf $TTYSTRING /dev/rtk_h5
- start rtk_hciattach
- fi
- fi
}
function init_hal_camera()
@@ -191,94 +161,8 @@ function init_hal_sensors()
local hal_sensors=kbd
local has_sensors=true
- case "$(cat $DMIPATH/uevent)" in
- *Lucid-MWE*)
- set_property ro.ignore_atkbd 1
- hal_sensors=hdaps
- ;;
- *ICONIA*W5*)
- hal_sensors=w500
- ;;
- *S10-3t*)
- hal_sensors=s103t
- ;;
- *Inagua*)
- #setkeycodes 0x62 29
- #setkeycodes 0x74 56
- set_property ro.ignore_atkbd 1
- set_property hal.sensors.kbd.type 2
- ;;
- *TEGA*|*2010:svnIntel:*)
- set_property ro.ignore_atkbd 1
- set_property hal.sensors.kbd.type 1
- io_switch 0x0 0x1
- setkeycodes 0x6d 125
- ;;
- *DLI*)
- set_property ro.ignore_atkbd 1
- set_property hal.sensors.kbd.type 1
- setkeycodes 0x64 1
- setkeycodes 0x65 172
- setkeycodes 0x66 120
- setkeycodes 0x67 116
- setkeycodes 0x68 114
- setkeycodes 0x69 115
- setkeycodes 0x6c 114
- setkeycodes 0x6d 115
- ;;
- *tx2*)
- setkeycodes 0xb1 138
- setkeycodes 0x8a 152
- set_property hal.sensors.kbd.type 6
- set_property poweroff.doubleclick 0
- set_property qemu.hw.mainkeys 1
- ;;
- *MS-N0E1*)
- set_property ro.ignore_atkbd 1
- set_property poweroff.doubleclick 0
- setkeycodes 0xa5 125
- setkeycodes 0xa7 1
- setkeycodes 0xe3 142
- ;;
- *Aspire1*25*)
- modprobe lis3lv02d_i2c
- echo -n "enabled" > /sys/class/thermal/thermal_zone0/mode
- ;;
- *ThinkPad*Tablet*)
- modprobe hdaps
- hal_sensors=hdaps
- ;;
- *i7Stylus*)
- set_property hal.sensors.iio.accel.matrix 1,0,0,0,-1,0,0,0,-1
- ;;
- *ST70416-6*)
- set_property hal.sensors.iio.accel.matrix 0,-1,0,-1,0,0,0,0,-1
- ;;
- *ONDATablet*)
- set_property hal.sensors.iio.accel.matrix 0,1,0,1,0,0,0,0,-1
- ;;
- *Surface.3*|*svnOEMB*)
- set_property ro.iio.accel.y.opt_scale -1
- ;&
- *T10*TA*)
- set_property ro.iio.accel.x.opt_scale -1
- set_property ro.iio.accel.z.opt_scale -1
- ;;
- *)
- has_sensors=false
- ;;
- esac
-
- # has iio sensor-hub?
- if [ -n "`ls /sys/bus/iio/devices/iio:device* 2> /dev/null`" ]; then
- busybox chown -R 1000.1000 /sys/bus/iio/devices/iio:device*/
- hal_sensors=iio
- elif lsmod | grep -q lis3lv02d_i2c; then
- hal_sensors=hdaps
- fi
set_property ro.hardware.sensors $hal_sensors
- [ "$hal_sensors" != "kbd" ] && has_sensors=true
set_property config.override_forced_orient $has_sensors
}
@@ -410,28 +294,29 @@ function do_bootcomplete()
;;
esac
-# [ -d /proc/asound/card0 ] || modprobe snd-dummy
+ # Initialize ALSA
for c in $(grep '\[.*\]' /proc/asound/cards | awk '{print $1}'); do
f=/system/etc/alsa/$(cat /proc/asound/card$c/id).state
if [ -e $f ]; then
alsa_ctl -f $f restore $c
- else
- alsa_ctl init $c
- alsa_amixer -c $c set Master on
- alsa_amixer -c $c set Master 100%
- alsa_amixer -c $c set Headphone on
- alsa_amixer -c $c set Headphone 100%
- alsa_amixer -c $c set Speaker 100%
- alsa_amixer -c $c set Capture 100%
- alsa_amixer -c $c set Capture cap
- alsa_amixer -c $c set PCM 100 unmute
- alsa_amixer -c $c set SPO unmute
- alsa_amixer -c $c set IEC958 on
- alsa_amixer -c $c set 'Mic Boost' 3
- alsa_amixer -c $c set 'Internal Mic Boost' 3
fi
done
+ # Default to the speaker route (aka. merge channels)
+ alsa_amixer -c 0 set "Stereo DAC MIXL DAC R1" on
+ alsa_amixer -c 0 set "Stereo DAC MIXR DAC R1" off
+ alsa_amixer -c 0 set Headphone off
+ alsa_amixer -c 0 set "Headphone Channel" off
+ alsa_amixer -c 0 set "Ext Spk" on
+ alsa_amixer -c 0 set "Speaker Channel" on
+ alsa_amixer -c 0 set "Speaker" 31
+
+ # Start the headphone listener (which takes care of switching our inputs)
+ headphone-listener &
+
+ # Enable Houdini
+ start nativebridge
+
post_bootcomplete
}
diff --git a/nativebridge/bin/enable_nativebridge b/nativebridge/bin/enable_nativebridge
index 2e3a926..bf33b73 100644
--- a/nativebridge/bin/enable_nativebridge
+++ b/nativebridge/bin/enable_nativebridge
@@ -5,39 +5,17 @@ PATH=/system/bin:/system/xbin
houdini_bin=0
dest_dir=/system/lib$1/arm$1
binfmt_misc_dir=/proc/sys/fs/binfmt_misc
+v=8_y
-if [ -z "$1" ]; then
- if [ "`uname -m`" = "x86_64" ]; then
- v=8_y
- url=http://goo.gl/v6c4Co
- else
- v=8_x
- url=http://goo.gl/96BPKe
- fi
-else
- v=8_z
- url=http://goo.gl/CtKjxx
+if [ ! -e /data/arm/houdini$v.sfs ]; then
+ mkdir /data/arm
+ cp /system/etc/houdini$v.sfs /data/arm/houdini$v.sfs
fi
if [ -s /system/lib$1/libhoudini.so ]; then
log -pi -thoudini "found /system/lib$1/libhoudini.so"
-elif [ -e /system/etc/houdini$v.sfs ]; then
- mount /system/etc/houdini$v.sfs $dest_dir
else
- if mountpoint -q $dest_dir; then
- kill -9 `fuser -m $dest_dir`
- umount -f $dest_dir
- fi
- mkdir -p /data/arm
- cd /data/arm
- while ! mount houdini$v.sfs $dest_dir; do
- while [ "$(getprop net.dns1)" = "" ]; do
- sleep 10
- done
- wget $url -cO houdini$v.sfs && continue
- rm -f houdini$v.sfs
- sleep 30
- done
+ mount /data/arm/houdini$v.sfs $dest_dir
fi
[ -s /system/lib$1/libhoudini.so ] || mount --bind $dest_dir/libhoudini.so /system/lib$1/libhoudini.so
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 3e0fe2b..6c0e044 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -107,7 +107,25 @@
<!-- Flag indicating that this device does not rotate and will always remain in its default
orientation. Activities that desire to run in a non-compatible orientation will be run
from an emulated display within the physical display. -->
- <bool name="config_forceDefaultOrientation">true</bool>
+ <bool name="config_forceDefaultOrientation">false</bool>
+
+ <!-- If true, enables auto-rotation features using the accelerometer.
+ Otherwise, auto-rotation is disabled. Applications may still request
+ to use specific orientations but the sensor is ignored and sensor-based
+ orientations are not available. Furthermore, all auto-rotation related
+ settings are omitted from the system UI. In certain situations we may
+ still use the accelerometer to determine the orientation, such as when
+ docked if the dock is configured to enable the accelerometer. -->
+ <bool name="config_supportAutoRotation">false</bool>
+
+ <!-- Indicate whether closing the lid causes the lockscreen to appear.
+ The default is false. -->
+ <bool name="config_lidControlsScreenLock">true</bool>
+
+ <!-- Indicate whether closing the lid causes the device to go to sleep and opening
+ it causes the device to wake up.
+ The default is false. -->
+ <bool name="config_lidControlsSleep">true</bool>
<!-- The device supports freeform window management. Windows have title bars and can be moved
and resized. If you set this to true, you also need to add
@@ -116,6 +134,10 @@
available to the system.-->
<bool name="config_freeformWindowManagement">true</bool>
+ <!-- Allow the gesture to double tap the power button twice to start the camera while the device
+ is non-interactive. -->
+ <bool name="config_cameraDoubleTapPowerGestureEnabled">false</bool>
+
<!-- Controls the opacity of the navigation bar depending on the visibility of the
various workspace stacks.
0 - Nav bar is always opaque when either the freeform stack or docked stack is visible.
diff --git a/packages.mk b/packages.mk
index 665a344..a5b7ffc 100644
--- a/packages.mk
+++ b/packages.mk
@@ -27,12 +27,8 @@ PRODUCT_PACKAGES := \
LiveWallpapers \
LiveWallpapersPicker \
MagicSmokeWallpapers \
- NotePad \
PhaseBeam \
- PinyinIME \
Provision \
- RSSReader \
- Taskbar \
VisualizationWallpapers \
WallpaperPicker \
camera.x86 \