B 수정된 폴더
C 패치할 폴더
1. B로 이동
diff -urN A B > patch.diff
B로 이동했기 때문에 A의 경로는 길테고 B는 ./이 될꺼다.
2. 패치할 경로로 이동
patch -p0 > patch.diff
p0가 될 수 있는건 수정된 폴더에서 패치 파일을 만들었기 때문
한칸 위 폴더에서 했으면 -p1
(계산하기 귀찮아서 패치할 폴더에 가서 만든거임)
git checkout -b android-3.0 remotes/origin/android-3.0
맘잡고 육아일기란걸 써야지 했던게 우리 소율이 퇴원하면서 였는데 작심삼일은 커녕 시작도 못했다.. 왜?
요 어린것을 어떻게 키워야 할지 그저 난감하기만 했던 퇴원날.. 그날부터 오늘까지 오빠랑 같이 이것저것 궁리하며 수많은 시행착오와 멘붕을 경험하며 한달이 후딱 지나간거 같다..
그래서 라는 핑계를 대고 있다..ㅋ
우리 귀여운 천사 초짜 엄마 아빠의 어설픈 키움에도 잘 자라주어 그저 고맙다..
이론은 이론일뿐..간호학에서 배운 아동간호학은 아이의 키움에 있어서 많은 도움은 되지만 그것만으론 부족해도 너무 부족하단 말씀..선배들의 경험에서 우러난 요령만이 살길..ㅋㅋ
폭풍 네이버 검색과 지인들에게 카톡질로 많은 도움을 받았다..
지나간 날들의 일기는 초등학교 방학숙제인 일기 쓰기를 개학 전날 다 썼던 6년동안의 경험으로 적어나가 보려한다..몇일이 걸리겠지만..
당일 하루의 일을 쓰는 그날까지 숙제 시작~^^ㅋ
모유수유는 참 힘들고 마음대로 되지 않는거 같다.. 알고는 있었지만 실제로 경험하고 또 완모의 꿈이 깨지고 나니 더욱더 깊게 느껴지는거 같다..
아기가 직접 젖을 물고 적응해가면서 젖 양도 그때그때에 맞게 늘어가고 엄마와의 깊은 애착관계도 형성된단다.. 이론상으론 그렇다..
내가 경험해보지 않은터라 모르겠다..ㅠㅠ
3주 좀 넘는 기간의 신생아 집중치료실 입원으로 아기는 젖병에 익숙해져버렸고 게다가 정시정량을 먹여야 성장에 도움이 되고 탈수를 예방할 수 있다는 의사의 조언(?)에 의해 난 젖한번 제대로 물리지 못하고 유축기에 의해서 모유를 짜내 먹여야 했고 미숙아 분유를 모유와 번갈아가며 먹여야 해서 많은양의 모유를 짜지 않아도 되는 상황이었다..먹이고 남은 모유는 냉동실에서 보관..
지금은 3.7kg으로 건강하지만 모유를 직수하고 미숙아분유를 먹이지 않아도 되는 권고 기준이 '4kg일때까지 성장한후'여서 많이 고민했었는데..
사실 몸무게 3kg넘어서부터는 분유 안먹이고 유축으로 짠 모유수유만 해왔다..
분유만 섭취하면 끙끙거리는 딸을 참아 볼 수 없었기에..게다가 아무리 좋은 분유도 모유의 좋음을 따라갈수 없다는 신랑의 확고한 신념 내지는 고집(?)으로..ㅋㅋ
걱정과는 달리 아주 정상적으로 잘 자라주었다..
그런데 그 좋은 모유가 아가의 성장에 필요한 양만큼 늘지 않았다는게 안타깝다..
전모의 꿈은 저 멀리..
그저 자주 몽땅 비워내는게 내가 젖양을 늘릴수 있는 방법..
아기가 직접 물어주면 좋으련만 누구 말처럼 퉤하고 밷지나 않으니 다행~ 몇번 물고 으앙 몇번 물고 으앙을 반복한다..얼마나 서럽게 우는지..안본 사람은 모를꺼다...
그럼에도 물려야 한다고 젖병으로 아예 주지도 말라고..건강한 막 태어난 아기들한테나 해당하는 말이다..
어떻게 찌운 살인데..3~40g 몸무게 증감에 하루하루 노심초사하던 이른둥이 엄마에게는 그저 울어도 독하게 해보란 말은 불가능한 일..
그 불가능한 일을 하루에 몇번의 시도로 위로하고 유축한다.. 제발..부족해도 분유와 병행할 수 있게 안나오지만 말아라..딱 6개월만 먹일 수 있게..물 두유 미역국 완전 마니머꼬 화장실 달토록 들락날락 거려줄테니...plz...
지금도 짜낸 모유 젖병 수유시키고 이 새벽에 담 수유시간에 줄 모유를 유축하고 있는 난 진정 엄마..나는 가수다 후속 나는 엄마다..홧팅~~!!.
init: - Load policy at boot. - Set the security context for service daemons and their sockets. - New built-in commands: setcon, setenforce, restorecon, setsebool. - New option for services: seclabel.
서비스를 위한 옵션이라고 되어 있다.
음... 좋아 서비스에는 쟬 써야해...
selinux에서처럼
# setsebool -P httpd_can_network_connect_db onbool값의 종류들을 알아두면 관련 서비스가 안 먹을 때 setsebool로 해결이 가능할 것도 같다.다시 소스로 돌아가서 rootdir 아래쪽에init.goldfish.rc를 보면on boot setsebool in_qemu=1 restorecon /sys/qemu_trace/process_name restorecon /sys/qemu_trace/state restorecon /sys/qemu_trace/symbol이런 부분도 패치가 되었다.골드피쉬가 붙는 것들은 에뮬레이터를 위한 녀석이다.http://fedoraproject.org/wiki/SELinux/restorecon보면 설명이 있는데역시나 context 설정을 위한 친구다.restorecon(8) restorecon(8) NAME restorecon - set file security contexts.This manual page describes the restorecon program. This program is primarily used to set the security context (extended attributes) on one or more files. It can be run at any time to correct errors, to add support for new policy, or with the -n option it can just check whether the file con- texts are all as you expect.에러 잡을 때 쓴다는데 그럼 어떤 에러들이 있는 것일까?-----------------------------------------------You don't have permission to access /...../... on this server. 이란 403 퍼미션 에러가 났을 경우.# restorecon -R -v /documentroothttp://allegrett0.tistory.com/entry/restorecon-----------------------------------------------Forbidden You don't have permission to access / on this server./var/log/audit/audit.log 에 다음과 같이 에러가 뜹니다. type=AVC msg=audit(1177139220.333:330): avc: denied { getattr } for pid=4337 comm="httpd" name="phpMyAdmin-2.9.1.1-all-languages" dev=dm-0 ino=6418532 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=dir type=SYSCALL msg=audit(1177139220.333:330): arch=40000003 syscall=196 success=no exit=-13 a0=91d5f38 a1=bf90d63c a2=265ff4 a3=2008171 items=0 ppid=4332 pid=4337 auid=0 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) comm="httpd" exe="/usr/sbin/httpd" subj=root:system_r:httpd_t:s0 key=(null) type=AVC_PATH msg=audit(1177139220.333:330): path="/var/www/html/somedir"# restorecon -rv /homehttp://syynice.egloos.com/8747468-----------------------------------------------인터넷에서 찾은 두 가지 경우를 볼 때CONTEXT 정보가 제대로 붙지 않은 경우(TYPE이라고 할 수도 있을까..)문제가 발생하는데 이 때 해당 디렉토리에 제대로된 context 값을 붙여주는 엯할을 한다.그게 file context에 있는 값을 기준으로 하는 건지 그냥 그 디렉토리 이름을변형해서 해 주는 것인지는 소스를 까봐야 알 듯.변경파일android/system/core/rootdir/init.rcandroid/system/core/rootdir/etc/init.goldfish.rc
ifeq ($(HAVE_SELINUX), true) LOCAL_C_INCLUDES += external/libselinux/include LOCAL_SHARED_LIBRARIES += libselinux LOCAL_CFLAGS += -DHAVE_SELINUX endif # HAVE_SELINUX
이런 친구들이 잔뜩있다.
보면
다 같은 구문
include $(CLEAR_VARS)는 android/build/core/clear_vars.mk를 인클루드 해서
VARIABLES를 다 지운다. 새출발을 위한 준비.
HAVE_SELINUX가 있는지 다 체킹해서 있으면 selinux library를 넣어준다.
얜 Buildconfigration file에 지정되어 있으면 같이 빌드가 되는 것이겄지.
content.c를 보면
int inode_set_selinux(u32 inode_num, const char *secon) { struct ext4_inode *inode = get_inode(inode_num); u32 *hdr; struct ext4_xattr_entry *entry; size_t name_len = strlen(XATTR_SELINUX_SUFFIX); size_t value_len; size_t size, min_offs; char *val; if (!secon) return 0; if (!inode) return -1; hdr = (u32 *) (inode + 1); *hdr = cpu_to_le32(EXT4_XATTR_MAGIC); entry = (struct ext4_xattr_entry *) (hdr+1); memset(entry, 0, EXT4_XATTR_LEN(name_len)); entry->e_name_index = EXT4_XATTR_INDEX_SECURITY; entry->e_name_len = name_len; memcpy(entry->e_name, XATTR_SELINUX_SUFFIX, name_len); value_len = strlen(secon)+1; entry->e_value_size = cpu_to_le32(value_len); min_offs = (char *)inode + info.inode_size - (char*) entry; size = EXT4_XATTR_SIZE(value_len); val = (char *)entry + min_offs - size; entry->e_value_offs = cpu_to_le16(min_offs - size); memset(val + size - EXT4_XATTR_PAD, 0, EXT4_XATTR_PAD); memcpy(val, secon, value_len); inode->i_extra_isize = cpu_to_le16(sizeof(struct ext4_inode) - EXT4_GOOD_OL D_INODE_SIZE); return 0; }
요렇게 되어 있다.
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
보면
inode.i_file_acl*
. The
first use of extended attributes seems to have been for storing file ACLs and
other security data (selinux)Offset | Type | Name | Description |
---|---|---|---|
0x0 | __u8 | e_name_len | Length of name. |
0x1 | __u8 | e_name_index | Attribute name index. |
0x2 | __le16 | e_value_offs | Location of this attribute's value on the disk block where it is stored. Multiple attributes can share the same value. |
0x4 | __le32 | e_value_block | The disk block where the value is stored. Zero indicates the value is in the same block as this entry. |
0x8 | __le32 | e_value_size | Length of attribute value. |
0xC | __le32 | e_hash | Hash value of name and value. |
0x10 | char | e_name[e_name_len] | Attribute name. Does not include trailing NULL. |
UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...