Install a rule file for SDB debugging 19/139419/3 submit/tizen/20170720.045231
authorSunmin Lee <sunm.lee@samsung.com>
Wed, 19 Jul 2017 01:05:55 +0000 (10:05 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Wed, 19 Jul 2017 09:09:21 +0000 (18:09 +0900)
From Tizen 4.0, a rule file for SDB debugging would be installed
by default as symlink. SDB debugging feature would be handled by
existence of actual path which is installed by udev-sdb-init service.

Change-Id: Ic49aa7ea0b099149c288b14d4b825bcd0e6d3dce
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
packaging/system-rw-update.spec
units/udev-sdb-init.service [new file with mode: 0644]
upgrade/99-sdb-switch.rules [new file with mode: 0644]
upgrade/install-sdb-rule.sh [new file with mode: 0755]
upgrade/update.sh

index c6da85c33fe71b33b6c8b272922fc756d4c05b2c..191fcdf9e7554e2a847d8ac998670aef8783be8e 100644 (file)
@@ -2,8 +2,8 @@
 
 Name:       system-rw-update
 Summary:    System RW update management
-Version:    0.1.1
-Release:    2
+Version:    0.1.2
+Release:    3
 Group:      Base/Startup
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.bz2
@@ -26,10 +26,17 @@ mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants
 install -m 644 units/init-update.service %{buildroot}%{_unitdir}
 install -m 644 units/offline-update.service %{buildroot}%{_unitdir}
 #ln -s ../offline-update.service %{buildroot}%{_unitdir}/system-update.target.wants/offline-update.service
-ln -s ../init-update.service %{buildroot}%{_unitdir}/system-update.target.wants/init-update.service
+ln -s ../init-update.service %{buildroot}%{_unitdir}/system-update.target.wants
 ln -s ../getty.target %{buildroot}%{_unitdir}/system-update.target.wants
 ln -s ../cynara.socket %{buildroot}%{_unitdir}/system-update.target.wants
 
+# SDB debugging
+mkdir -p %{buildroot}%{_libdir}/udev/rules.d
+ln -s /opt/data/recovery/99-sdb-switch.rules %{buildroot}%{_libdir}/udev/rules.d
+install -m 644 units/udev-sdb-init.service %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants
+ln -s ../udev-sdb-init.service %{buildroot}%{_unitdir}/sysinit.target.wants
+
 %clean
 rm -rf %{buildroot}
 
@@ -40,3 +47,6 @@ rm -rf %{buildroot}
 %{_unitdir}/offline-update.service
 %{_unitdir}/init-update.service
 %{_unitdir}/system-update.target.wants
+%{_unitdir}/udev-sdb-init.service
+%{_unitdir}/sysinit.target.wants/*
+%{_libdir}/udev/rules.d/*
diff --git a/units/udev-sdb-init.service b/units/udev-sdb-init.service
new file mode 100644 (file)
index 0000000..fc45887
--- /dev/null
@@ -0,0 +1,8 @@
+[Unit]
+Description=Install rule for udev sdb
+DefaultDependencies=no
+Before=sysinit.target systemd-udevd.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/upgrade/install-sdb-rule.sh
diff --git a/upgrade/99-sdb-switch.rules b/upgrade/99-sdb-switch.rules
new file mode 100644 (file)
index 0000000..75238f5
--- /dev/null
@@ -0,0 +1,2 @@
+SUBSYSTEM=="switch", ATTR{name}=="usb_cable", ATTR{state}=="1", RUN+="/usr/bin/direct_set_debug.sh --sdb-set"
+SUBSYSTEM=="switch", ATTR{name}=="usb_cable", ATTR{state}=="0", RUN+="/usr/bin/direct_set_debug.sh --sdb-unset"
diff --git a/upgrade/install-sdb-rule.sh b/upgrade/install-sdb-rule.sh
new file mode 100755 (executable)
index 0000000..3fac92f
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+SDB_RULE="99-sdb-switch.rules"
+DEST=/opt/data/recovery
+
+if [ ! -e ${DEST}/${SDB_RULE} ]; then
+       /bin/mkdir -p ${DEST}
+       /bin/cp /usr/share/upgrade/${SDB_RULE} ${DEST}
+fi
index c3dc8e19699b3c61f525b71141bf59ffe1d7c376..651f628665eab8b5e609d4525be16754b2df7c21 100755 (executable)
@@ -6,6 +6,7 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
 PATCH_DIR=/usr/share/upgrade/scripts
 RESULT_FILE=/opt/data/recovery/rw_result
+SDB_RULE=/opt/data/recovery/99-sdb-switch.rules
 RUN=/bin/sh
 
 # Execute update scripts
@@ -24,5 +25,9 @@ else
        echo "SUCCESS: Upgrade successfully finished" > ${RESULT_FILE}
 fi
 
+if [ -e ${SDB_RULE} ]; then
+       rm ${SDB_RULE}
+fi
+
 # Reboot
 reboot -f